add: 功能优化

This commit is contained in:
ls
2025-06-09 10:29:26 +08:00
parent 299164fc4a
commit f4dce5ee53
12 changed files with 61 additions and 5 deletions

View File

@@ -119,6 +119,13 @@ public class SlitterPdaServiceImpl implements SlitterPdaService {
if (isTask) {
throw new BadRequestException("点位[" + pointCode + "" + zcPoint + "]已经创建过任务!");
}
//校验分切上料任务数
Boolean isTask2 = taskService.checkHaveTaskByPointsType();
// 判断是否呼叫过任务
if (isTask2) {
throw new BadRequestException("分切上料最大任务数为2条");
}
SchBasePoint zcPointObj = pointService.getById(zcPoint);
StIvtHotpointivt hotpointivt = hotpointivtService.getPointByCode(zcPoint, false);

View File

@@ -99,6 +99,8 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
*/
List<SchBasePoint> getHotNotTaskPoint(String area, String region, String pointType, String pointStatus);
List<SchBasePoint> getHotNotTaskPoint2(String area, String region, String pointType, String pointStatus);
/**
* 从点位查找以下条件可用的没任务点位
* @param area 生产区域

View File

@@ -35,6 +35,9 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
*/
List<SchBasePoint> getHotNotTaskPoint(String area, String region, String pointType, String pointStatus);
List<SchBasePoint> getHotNotTaskPoint2(String area, String region, String pointType, String pointStatus);
List<SchBasePoint> getAllBusinessNotTaskPoint(String area, String region, String pointType, String pointStatus,
String vehicleType, String vehicleCode);

View File

@@ -39,6 +39,20 @@
AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status <![CDATA[<]]> '07'
AND (t.point_code1 = p.point_code OR t.point_code2 = p.point_code OR t.point_code4 = p.point_code))
</select>
<select id="getHotNotTaskPoint2" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
SELECT p.*
FROM sch_base_point p
WHERE p.product_area = #{area}
AND p.region_code = #{region}
<if test="pointType != null">
AND p.point_type = #{pointType}
</if>
AND p.point_status = #{pointStatus}
AND p.is_used = TRUE
AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status <![CDATA[<]]> '071' and t.task_status <![CDATA[<>]]> '07'
AND (t.point_code1 = p.point_code OR t.point_code2 = p.point_code OR t.point_code4 = p.point_code))
</select>
<select id="getAllBusinessNotTaskPoint" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
SELECT p.*
FROM sch_base_point p

View File

@@ -229,6 +229,11 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
return pointMapper.getHotNotTaskPoint(area, region, pointType, pointStatus);
}
@Override
public List<SchBasePoint> getHotNotTaskPoint2(String area, String region, String pointType, String pointStatus) {
return pointMapper.getHotNotTaskPoint2(area, region, pointType, pointStatus);
}
@Override
public List<SchBasePoint> getAllBusinessNotTaskPoint(String area, String region, String pointType,
String pointStatus, String vehicleType, String vehicleCode) {

View File

@@ -162,6 +162,13 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
*/
Boolean checkHaveTaskByPoints(List<String> collect);
/**
* 判断是否存在任务
*
* @return /
*/
Boolean checkHaveTaskByPointsType();
/**
* 获取同配置、状态的任务
* @param configCode 配置

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -287,6 +288,17 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
return list.size() > 0;
}
@Override
public Boolean checkHaveTaskByPointsType() {
LambdaQueryWrapper<SchBaseTask> lam = new QueryWrapper<SchBaseTask>().lambda();
lam.eq(SchBaseTask::getIs_delete, "0")
.lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
.eq(SchBaseTask::getConfig_code,"SlitterUpTrussTask");
List<SchBaseTask> list = list(lam);
return list.size() >= 2;
}
@Override
public List<SchBaseTask> getTaskByConfigAndStatus(String configCode, String status) {
LambdaQueryWrapper<SchBaseTask> lam = new QueryWrapper<SchBaseTask>().lambda();

View File

@@ -50,7 +50,7 @@ public class InHotDockingTrussTask extends AbstractTask {
public void createCompletion(SchBaseTask task) {
TaskUtils.taskLock(RegionConstant.REGION_A1_HXZC + "5", () -> {
// 找个对接位(状态是空的,没有任务的)
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint(RegionConstant.A1, RegionConstant.REGION_A1_HXZC,
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint2(RegionConstant.A1, RegionConstant.REGION_A1_HXZC,
POINT_TYPE_HOT_DOCKING, POINT_STATUS_EMPTY);
if (endPoints.size() == 0) {
throw new BadRequestException("没有可用的烘箱对接位!");

View File

@@ -55,7 +55,7 @@ public class OutHotToDockingTrussTask extends AbstractTask {
public void createCompletion(SchBaseTask task) {
TaskUtils.taskLock(REGION_A1_HXZC + "5", () -> {
// 从烘箱对接位中找一个空位
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint(RegionConstant.A1, RegionConstant.REGION_A1_HXZC,
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint2(RegionConstant.A1, RegionConstant.REGION_A1_HXZC,
POINT_TYPE_HOT_DOCKING, POINT_STATUS_EMPTY);
if (endPoints.size() == 0) {
throw new BadRequestException("没有可用的烘箱对接位!");

View File

@@ -165,6 +165,12 @@ public class SlitterUpAGVTask extends AbstractTask {
.set(SchBaseTask::getUpdate_time, DateUtil.now())
.eq(SchBaseTask::getTask_code, task.getTask_code());
boolean update = taskService.update(lam);
String pointCode1 = task.getPoint_code1();
SchBasePoint point1 = pointService.query().eq("point_code", pointCode1).one();
point1.setPoint_status("1");
pointService.updateById(point1);
log.info("任务[{}]取货完成执行{}", task.getTask_code(), update);
}
}

View File

@@ -67,7 +67,7 @@ public class SlitterUpTrussTask extends AbstractTask {
JSONObject requestObj = JSONObject.parseObject(requestParam);
String pointCode = requestObj.getString("zc_point");
// 终点为出口
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint("A1", HX_REGION,
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint2("A1", HX_REGION,
"5", "1");
if (endPoints.size() == 0) {
throw new BadRequestException("烘箱没有可以用的对接位!");