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 d3466aef4..11ff3673e 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 @@ -2,6 +2,8 @@ package org.nl.b_lms.pdm.subpackagerelation.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.StopWatch; +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; @@ -744,6 +746,39 @@ 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)) { + throw new BadRequestException("未查询到可用的分切计划!"); + } + PdmBiSubpackagerelation sub = new PdmBiSubpackagerelation(); + sub.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + sub.setContainer_name(plan.getContainer_name()); + sub.setSale_order_name(plan.getSale_order_name()); + sub.setCustomer_name("test"); + sub.setCustomer_description("临时包装关系"); + sub.setProduct_description(plan.getDescription()); + sub.setWidth(String.valueOf(plan.getSplit_breadth())); + if (StringUtils.isBlank(plan.getWeight()) || StringUtils.isBlank(plan.getPaper_weight())) { + throw new BadRequestException("该子卷分切计划中的子卷重量参数为空!"); + } + int net_weight = Integer.parseInt(plan.getWeight()) - Integer.parseInt(plan.getPaper_weight()); + sub.setNet_weight(net_weight + ""); + sub.setLength("1000"); + sub.setIs_un_plan_production("0"); + sub.setCreate_id(1L); + sub.setCreate_name("管理员"); + sub.setCreate_time(DateUtil.now()); + sub.setStatus("99"); + sub.setSap_pcsn("Test"); + sub.setExt_code("BC01"); + sub.setBox_group(null); + sub.setProduct_name("测试"); + this.saveOrUpdate(sub); + } + + } @@ -770,7 +805,8 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl 10) { throw new BadRequestException("子卷搬运任务数已达上限!"); @@ -811,7 +847,6 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl workIdList, Set containerNameList, String deviceCode, Integer maxBoxGroup, String boxType) { //均衡获取装箱对接位 - //String deviceCode = "ZXQ_1_1"; StopWatch stopWatch = new StopWatch(); stopWatch.start(); JSONObject boxInfo = new JSONObject(); @@ -823,7 +858,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl装箱区agv任务 @@ -839,7 +874,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl装箱区agv任务异常:" + e); } }, pool); stopWatch1.stop(); @@ -878,6 +913,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl().eq(BstIvtPackageinfoivt::getContainer_name, whereJson.getString("container_name"))); if (dto == null) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java index 689e8fdf7..a88f5d232 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java @@ -134,7 +134,7 @@ public class ZxqTask extends AbstractAcsTask { //2.改变起点点位状态 packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); //更新库存记录 - packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); + packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("合格品")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); //3.查询子卷对应的包装关系表,判断装箱位的木箱号是否为子卷对应的木箱号,是,创建搬运任务到装箱对接位位桁架任务,否,什么都不做 //zxqToZxw(schBaseTask); } @@ -232,6 +232,9 @@ public class ZxqTask extends AbstractAcsTask { } + /** + * 返回实体 + */ public SchBaseTask createTaskReturnTask(JSONObject form) { Assert.notNull(form, "请求参数不能为空"); String taskType = form.getString("task_type"); 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 d02433a9d..0997184ab 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 @@ -82,7 +82,7 @@ public class AutoSendZxToDjw { return; } //装箱区有子卷且没有正在进行的装箱任务 - List zxqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"), "", "", ""); + List zxqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"), "", "", ""); if (CollectionUtils.isEmpty(zxqPackageinfoivtList)) { return; } @@ -91,6 +91,7 @@ public class AutoSendZxToDjw { //获取木箱信息,未包装的木箱 BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper().eq(BstIvtBoxinfo::getBox_no, boxNo).ne(BstIvtBoxinfo::getIs_packing, "1")); if (bstIvtBoxinfo == null) { + log.info("请检查木箱号:" + boxNo + "是否存在或者状态为已装箱!"); throw new BadRequestException("请检查木箱号:" + boxNo + "是否存在或者状态为已装箱!"); } //检查木箱信息 @@ -99,6 +100,7 @@ public class AutoSendZxToDjw { List relationList = subpackageRelationService .list(new LambdaUpdateWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, boxNo).eq(PdmBiSubpackagerelation::getStatus, "0")); if (CollectionUtils.isEmpty(relationList)) { + log.info("装箱位的木箱号" + boxNo + "对应的子卷包装关系为空,请检查子卷包装关系状态是否为0!"); throw new BadRequestException("装箱位的木箱号" + boxNo + "对应的子卷包装关系异常,请检查子卷包装关系状态是否为0!"); } //获取与该木箱号匹配的子卷号 @@ -108,6 +110,7 @@ public class AutoSendZxToDjw { if (CollectionUtils.isNotEmpty(zxqPoint)) { List productionPlanList = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper().eq(PdmBiSlittingproductionplan::getContainer_name, containerName)); if (productionPlanList.isEmpty()) { + log.info("装箱区的子卷号为" + containerName + "无对应的分切计划信息,请检查!"); throw new BadRequestException("装箱区的子卷号为" + containerName + "无对应的分切计划信息,请检查!"); } //校验是否存在相同子卷号任务 @@ -157,6 +160,7 @@ public class AutoSendZxToDjw { */ public void transferBoxPackageToMes(List packagerelationList, BstIvtBoxinfo bstIvtBoxinfo) { if (StringUtils.isBlank(packagerelationList.get(0).getPackage_box_sn()) || packagerelationList.get(0).getBox_weight() == null) { + log.info("transferBoxPackageToMes接口的子卷号:" + packagerelationList.get(0).getContainer_name() + ",子卷未确定木箱规格信息"); throw new BadRequestException("子卷未确定木箱规格信息!"); } JSONObject param = new JSONObject(); @@ -165,6 +169,7 @@ public class AutoSendZxToDjw { .collect(Collectors.toSet()); List planList = iPdmBiSlittingproductionplanService.list(new LambdaQueryWrapper().in(PdmBiSlittingproductionplan::getContainer_name, containerNameList)); if (CollectionUtils.isEmpty(planList)) { + log.info("装箱区的子卷号为" + planList.get(0).getContainer_name() + "无对应的分切计划信息,请检查!"); throw new BadRequestException("该箱号不存在分切计划"); } BigDecimal totalWeight; @@ -175,14 +180,17 @@ public class AutoSendZxToDjw { .map(BigDecimal::new) .reduce(BigDecimal.ZERO, BigDecimal::add); if (totalWeight.compareTo(new BigDecimal(0)) == 0) { + log.info(planList.get(0).getContainer_name()+"分切计划的子卷重量不能为0"); throw new BadRequestException("分切计划的子卷重量不能为0"); } BigDecimal boxWeight = new BigDecimal(bstIvtBoxinfo.getBox_weight()); if (boxWeight.compareTo(new BigDecimal(0)) == 0) { + log.info(planList.get(0).getContainer_name()+"对应的木箱的重量不能0"); throw new BadRequestException("木箱的重量不能0"); } totalWeight = totalWeight.add(boxWeight); if (totalWeight.compareTo(new BigDecimal(0)) == 0) { + log.info(planList.get(0).getContainer_name()+"理论毛重计算有误,不能为0,请检查!"); throw new BadRequestException("理论毛重不能为0"); } //更新子卷包装关系的重量 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/TaskQueue.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/TaskQueue.java index 91b964c47..7b08a34f7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/TaskQueue.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/TaskQueue.java @@ -64,7 +64,7 @@ public class TaskQueue { task.setPoint_code2(pointCode); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); taskService.updateById(task); - //删除子卷包装关系 + //同步删除子卷包装关系 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(PdmBiSubpackagerelation::getContainer_name, task.getVehicle_code()); pdmBiSubpackagerelationMapper.delete(queryWrapper); diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue b/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue index 53bdc3e9a..9b6772861 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue @@ -307,6 +307,7 @@ export default { // 表格1的行点击事件 handleRowClick(scope) { debugger + // 按钮禁用 this.isButtonDisabled = !!(scope.status !== '99') this.isButtonDisabled1 = scope.status === '99' const table2 = this.$refs.dis_table