diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java index cdfa915c4..6097bc1bf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java @@ -16,6 +16,7 @@ import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingprodu import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper; import org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto; import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.domain.query.PageQuery; import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.TaskUtils; @@ -113,7 +114,7 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl lam = new QueryWrapper().lambda(); - lam.eq(PdmBiSlittingproductionplan::getContainer_name, containerName); + lam.eq(PdmBiSlittingproductionplan::getContainer_name, containerName).eq(PdmBiSlittingproductionplan::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")); return pdmBiSlittingproductionplanMapper.selectOne(lam); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml index 1b25e5058..39447a4ca 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml @@ -84,6 +84,7 @@ WHERE b.point_status = '3' AND b.ivt_status = '3' AND a.sale_order_name = #{sale_order_name} + AND c.is_delete = '0' ORDER BY box_group diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 431d935a7..bc0fbe26b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -755,10 +755,11 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl subList = this.list(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getContainer_name, jo.getString("container_name"))); if (CollectionUtils.isEmpty(subList)) { - PdmBiSlittingproductionplan plan = iPdmBiSlittingproductionplanService.getOne(new LambdaQueryWrapper().eq(PdmBiSlittingproductionplan::getContainer_name, containerName)); - if (ObjectUtil.isEmpty(plan)) { + List planList = iPdmBiSlittingproductionplanService.list(new LambdaQueryWrapper().eq(PdmBiSlittingproductionplan::getContainer_name, containerName).eq(PdmBiSlittingproductionplan::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))); + if (CollectionUtils.isEmpty(planList)) { throw new BadRequestException("未查询到可用的分切计划!"); } + PdmBiSlittingproductionplan plan = planList.get(0); PdmBiSubpackagerelation sub = new PdmBiSubpackagerelation(); sub.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextId() + ""); sub.setContainer_name(plan.getContainer_name()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java index d933c6d94..a740817f6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/service/impl/BstIvtPackageinfoivtServiceImpl.java @@ -506,35 +506,39 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl待检区")) || baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))) { - String pointCode; + if (StringUtils.isNotBlank(baseTask.getRequest_param())) { + if (baseTask.getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) { + throw new BadRequestException(baseTask.getTask_code() + "取货完成失败" + ",该任务已发送过取货完成信号请勿频繁发送!"); + } + } //取满轴 if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))) { - //过滤未二次分配的任务 - if (StringUtils.isBlank(baseTask.getResponse_param())) { - throw new BadRequestException("取货完成失败" + baseTask.getTask_code() + ",起点未进行二次分配!"); - } - List ivtList = packageinfoivtService.list(new LambdaQueryWrapper() + BstIvtPackageinfoivt ivtInfo = packageinfoivtService.getOne(new LambdaQueryWrapper() .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) .eq(BstIvtPackageinfoivt::getPoint_code, baseTask.getPoint_code1())); - if (CollectionUtils.isEmpty(ivtList)) { - throw new BadRequestException("取货完成失败" + baseTask.getTask_code() + "agv取货完成的目标点位不存在!"); + if (ivtInfo == null) { + throw new BadRequestException(baseTask.getTask_code() + "取货完成或放货完成失败,目标点位:" + baseTask.getPoint_code1() + "不存在!"); + } + //过滤未二次分配的任务 + if (StringUtils.isBlank(baseTask.getResponse_param())) { + throw new BadRequestException(baseTask.getTask_code() + "取货完成失败" + ",起点未进行二次分配!"); } //只有子卷号相同才能清除库存 - if (baseTask.getVehicle_code().equals(ivtList.get(0).getContainer_name())) { + if (baseTask.getVehicle_code().equals(ivtInfo.getContainer_name())) { upDateIvtOrTask(baseTask, baseTask.getPoint_code1()); } } else if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))) { - pointCode = baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) ? baseTask.getPoint_code3() : baseTask.getPoint_code1(); - if (StringUtils.isBlank(baseTask.getRequest_param())) { - upDateIvtOrTask(baseTask, pointCode); - } else if (StringUtils.isNotBlank(baseTask.getRequest_param())) { - if (!baseTask.getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) { - upDateIvtOrTask(baseTask, pointCode); - } - } + String pointCode = baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) ? baseTask.getPoint_code3() : baseTask.getPoint_code1(); + upDateIvtOrTask(baseTask, pointCode); + } } } else { + if (StringUtils.isNotBlank(baseTask.getCar_no())) { + if (baseTask.getCar_no().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货完成"))) { + throw new BadRequestException(baseTask.getTask_code() + "放货完成失败" + ",该任务已发送过放货完成信号请勿频繁发送!"); + } + } //放货任务 List ivtList = packageinfoivtService.list(new LambdaQueryWrapper() .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) @@ -548,7 +552,12 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl updateWrapper1 = new UpdateWrapper<>(); + updateWrapper1.eq("task_id", baseTask.getTask_id()); + updateWrapper1.set("car_no", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货完成")); + taskService.update(updateWrapper1); + log.info("一楼装箱区二次放货完成" + baseTask.getTask_code() + ",放货完成执行成功,放货信息:点位:" + baseTask.getPoint_code2() + "子卷号为:" + baseTask.getVehicle_code()); } else { throw new BadRequestException("该点位已有库存!"); } @@ -560,14 +569,14 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("point_code", pointCode); updateWrapper.set("ivt_status", "0"); updateWrapper.set("container_name", null); - //清空起点库存状态 bstIvtPackageinfoivtMapper.update(null, updateWrapper); - log.info("一楼装箱区二次分配清空起点库存" + baseTask.getTask_code() + ",执行成功,点位:" + pointCode + "子卷号:" + baseTask.getVehicle_code()); - //标记agv取满轴或四个点或两个点任务取空载具完成 + log.info("一楼装箱区二次分配清空库存" + baseTask.getTask_code() + ",执行成功,点位:" + pointCode + "子卷号:" + baseTask.getVehicle_code()); + //标记agv取满轴或四个点或两个点放满轴任务取空载具完成 UpdateWrapper updateWrapper1 = new UpdateWrapper<>(); updateWrapper1.eq("task_id", baseTask.getTask_id()); updateWrapper1.set("request_param", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.xml index 8fe74cbea..35b8ab105 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.xml @@ -18,5 +18,6 @@ LEFT JOIN pdm_bi_slittingproductionplan p ON p.qzzno = t.vehicle_code OR p.qzzno = t.vehicle_code2 WHERE t.task_status '071' AND t.task_status ]]> '07' AND t.task_type = '010813' AND p.resource_name = #{resourceName} + AND IFNULL(p.qzzno, '') ]]> '' diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java index f9a382729..2e54a911f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java @@ -101,7 +101,7 @@ public class DjqTask extends AbstractAcsTask { //2.更新库存记录 String ivtStatus; if (StringUtils.isNotBlank(schBaseTask.getRequest_param())) { - if (schBaseTask.getRequest_param().equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))) { + if (schBaseTask.getRequest_param().equals("99")) { //管制品重新质检 ivtStatus = PackageInfoIvtEnum.IVT_STATUS.code("合格品"); packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendGzqToDjq.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendGzqToDjq.java index 73f33c605..b02f2f2ea 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendGzqToDjq.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendGzqToDjq.java @@ -63,7 +63,7 @@ public class AutoSendGzqToDjq { JSONObject task = new JSONObject(); task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("管制区->待检区")); //区分管制品重新检测为合格品 - task.put("request_param", PackageInfoIvtEnum.IVT_STATUS.code("合格品")); + task.put("request_param", "99"); task.put("vehicle_code", gzqPackageinfoivtList.get(0).getContainer_name()); task.put("point_code1", gzqPackageinfoivtList.get(0).getPoint_code()); task.put("point_code2", djqPackageinfoivtList.get(0).getPoint_code()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java index 17a5f3197..0bd34718d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java @@ -128,7 +128,7 @@ public class AutoSendZxToDjw { List zxqPoint = zxqPackageinfoivtList.stream().filter(r -> r.getContainer_name().equals(containerName)).collect(Collectors.toList()); //装箱区点位上有与该木箱号匹配的子卷 if (CollectionUtils.isNotEmpty(zxqPoint)) { - List productionPlanList = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper().eq(PdmBiSlittingproductionplan::getContainer_name, containerName)); + List productionPlanList = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper().eq(PdmBiSlittingproductionplan::getContainer_name, containerName).eq(PdmBiSlittingproductionplan::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))); if (productionPlanList.isEmpty()) { log.info("装箱区的子卷号为" + containerName + "无对应的分切计划信息,请检查!"); throw new BadRequestException("装箱区的子卷号为" + containerName + "无对应的分切计划信息,请检查!"); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index fd68cac60..733d8d31e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -112,6 +112,7 @@ public class AutoCallAirShaftTask { makePullShaft(empty, specification); return; } + log.info("获取过滤后的分切计划数据:{}", plans); // 查看套轴对接位是否满了 // todo: 这里需要注意不要去校验071的任务,不然提前释放货位没意义。 List emptyShaftPoint = bcutpointivtService.getAreaNotTaskPointByStatus("1",