From a366af32ddcc768a848d12288d8736ec13bab5e1 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Sun, 20 Jul 2025 18:49:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=BC=82=E5=B8=B8=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E3=80=81NG=E5=8D=B7=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmBiSubpackagerelationServiceImpl.java | 204 ++++++------ .../mapper/BstIvtPackageinfoivtMapper.java | 1 + .../dao/mapper/BstIvtPackageinfoivtMapper.xml | 9 + .../impl/BstIvtPackageinfoivtServiceImpl.java | 310 ++++++++++-------- .../org/nl/b_lms/sch/tasks/TwoOutTask.java | 2 +- .../sch/tasks/first_floor_area/GzqTask.java | 43 +-- .../auto/AutoSendMzToDjq.java | 82 ++++- .../util/impl/LashManageServiceImpl.java | 84 +++-- .../acs/service/impl/AcsToWmsServiceImpl.java | 257 ++++++++------- .../wms/ext/mes/rest/LmsToMesController.java | 7 + .../wms/ext/mes/service/LmsToMesService.java | 2 + .../mes/service/impl/LmsToMesServiceImpl.java | 92 ++++-- 12 files changed, 655 insertions(+), 438 deletions(-) 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 76e4a7444..b68ce311a 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 @@ -166,8 +166,8 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区")))) { // throw new BadRequestException("该子卷不在待检区,请检查!"); // } @@ -276,11 +286,11 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl packagerelationList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class); + List packagerelationList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class); //子卷信息校验 checkEntityList(whereJson, packagerelationList); //均衡获取木箱出库装箱区对接位 - //= getPointCode(packagerelationList.size()); + //= getPointCode(packagerelationList.size()); List workIdList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class).stream() .map(PdmBiSubpackagerelation::getWorkorder_id) .map(String::valueOf) @@ -295,13 +305,13 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl planList = iPdmBiSlittingproductionplanService.list(new LambdaQueryWrapper() .in(PdmBiSlittingproductionplan::getContainer_name, containerNameList) - .eq(PdmBiSlittingproductionplan::getIs_delete,IOSEnum.IS_NOTANDYES.code("否")) + .eq(PdmBiSlittingproductionplan::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) ); List subpackagerelations = this.list(new QueryWrapper().in("workorder_id", workIdList)); if (ObjectUtils.isEmpty(planList)) { @@ -310,9 +320,9 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl any = subpackagerelations.stream() .filter(sub -> sub.getStatus().equals("0") && StringUtils.isNotEmpty(sub.getPackage_box_sn())) .findAny(); - if (any.isPresent()){ + if (any.isPresent()) { PdmBiSubpackagerelation subpackagerelation = any.get(); - throw new BadRequestException(subpackagerelation.getPackage_box_sn()+"包装关系已存在"+subpackagerelation.getPackage_box_sn()+",如重新生成请确认MES跟LMS包装关系已解绑定"); + throw new BadRequestException(subpackagerelation.getPackage_box_sn() + "包装关系已存在" + subpackagerelation.getPackage_box_sn() + ",如重新生成请确认MES跟LMS包装关系已解绑定"); } BigDecimal totalWeight; @@ -338,23 +348,23 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl collect = ivtList.stream().map(a -> a.getIvt_id()).collect(Collectors.toList()); packageinfoivtService.update(new UpdateWrapper() .set("update_time", DateUtil.now()) - .in("ivt_id",collect)); + .in("ivt_id", collect)); } @Override public List zjInBound(JSONObject whereJson) { String containerName = whereJson.getString("container_name"); - if (StringUtils.isEmpty(containerName)){ + if (StringUtils.isEmpty(containerName)) { throw new BadRequestException("子卷编码不能为空"); } String[] split = containerName.split(","); List subList = this.list(new QueryWrapper() .eq("status", "0") .in("container_name", split)); - if (CollectionUtils.isEmpty(subList)){ + if (CollectionUtils.isEmpty(subList)) { throw new BadRequestException("当前子卷还为组盘"); } - if (subList.size() != split.length){ + if (subList.size() != split.length) { throw new BadRequestException("子卷包装信息与子卷不相符合"); } return subList; @@ -364,7 +374,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl() - .eq("point_status",PackageInfoIvtEnum.POINT_STATUS.code("装箱区")) - .eq("ivt_status",PackageInfoIvtEnum.IVT_STATUS.code("合格品"))); - if (count+count2>8){ + .eq("point_status", PackageInfoIvtEnum.POINT_STATUS.code("装箱区")) + .eq("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("合格品"))); + if (count + count2 > 8) { throw new BadRequestException("当前装箱区木箱任务已满,稍后再试"); } @@ -384,63 +394,63 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl subList = this.list(new QueryWrapper() .eq("status", "0") .in("container_name", split)); - if (subList.size() != split.length){ + if (subList.size() != split.length) { throw new BadRequestException("子卷包装信息与子卷不相符合"); } Set collect = subList.stream().map(PdmBiSubpackagerelation::getPackage_box_sn).collect(Collectors.toSet()); Set containers = subList.stream().map(PdmBiSubpackagerelation::getContainer_name).collect(Collectors.toSet()); List containerList = subList.stream().map(PdmBiSubpackagerelation::getContainer_name).collect(Collectors.toList()); - if (collect.size() == 0){ + if (collect.size() == 0) { throw new BadRequestException("当前子卷还未进行装箱组盘操作"); } - if (collect.size()>1){ - throw new BadRequestException("当前子卷不属于同一组"+ collect); + if (collect.size() > 1) { + throw new BadRequestException("当前子卷不属于同一组" + collect); } - if (subList.get(0).getQuanlity_in_box().intValue()!= split.length){ - throw new BadRequestException("当前木箱"+subList.get(0).getQuanlity_in_box()+"要装箱的子卷"+split.length+"未装完"); + if (subList.get(0).getQuanlity_in_box().intValue() != split.length) { + throw new BadRequestException("当前木箱" + subList.get(0).getQuanlity_in_box() + "要装箱的子卷" + split.length + "未装完"); } String boxSn = subList.get(0).getPackage_box_sn(); //查询木箱所在货位 WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); JSONArray boxAttrs = attrTab.query("storagevehicle_code = '" + boxSn + "' and sect_id = '1748219897940414464'").getResultJSONArray(0); - if (boxAttrs.size() == 0){ - throw new BadRequestException("当前木箱"+boxSn+"库存信息查询不到,请确认"); + if (boxAttrs.size() == 0) { + throw new BadRequestException("当前木箱" + boxSn + "库存信息查询不到,请确认"); } - JSONObject boxAttr = boxAttrs.getJSONObject(0); + JSONObject boxAttr = boxAttrs.getJSONObject(0); List hasTask = taskService.list(new QueryWrapper() .select("point_code2") .eq("is_delete", "0") .eq("point_code1", boxAttr.getString("struct_code")) .lt("task_status", TaskStatusEnum.FINISHED.getCode())); - if (!CollectionUtils.isEmpty(hasTask)){ + if (!CollectionUtils.isEmpty(hasTask)) { boolean zxq = hasTask.stream().map(a -> a.getPoint_code2()).filter(a -> a.contains("ZXQ")).findAny().isPresent(); - if (zxq){ + if (zxq) { throw new BadRequestException("当前子卷正在执行装箱入库操作"); - }else{ - throw new BadRequestException("当前空木箱"+boxSn+"存在正在执行的任务,稍后再操作"); + } else { + throw new BadRequestException("当前空木箱" + boxSn + "存在正在执行的任务,稍后再操作"); } } // 查询木箱对应的托盘号 JSONObject jsonVeExt = WQLObject.getWQLObject("md_pb_storagevehicleext").query("pcsn = '" + boxSn + "'") .uniqueResult(0); if (ObjectUtil.isEmpty(jsonVeExt)) { - throw new BadRequestException("此木箱没有绑定托盘号!"+boxSn); + throw new BadRequestException("此木箱没有绑定托盘号!" + boxSn); } //子卷到装箱区 agvTransfer(containers, deviceCode, boxSn); String task_group_id = null; if (boxAttr.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) { JSONObject 浅Attr = attrTab - .query("zdepth = '1' and row_num = '"+boxAttr.getString("row_num")+"' and col_num = '" + boxAttr.getString("col_num") + "' and layer_num = '"+boxAttr.getString("layer_num")+"'") + .query("zdepth = '1' and row_num = '" + boxAttr.getString("row_num") + "' and col_num = '" + boxAttr.getString("col_num") + "' and layer_num = '" + boxAttr.getString("layer_num") + "'") .uniqueResult(0); - if (ObjectUtil.isEmpty(浅Attr)){ - throw new BadRequestException(boxAttr.getString("struct_code")+"对应浅货位信息不正确"); + if (ObjectUtil.isEmpty(浅Attr)) { + throw new BadRequestException(boxAttr.getString("struct_code") + "对应浅货位信息不正确"); } - if (ObjectUtil.isEmpty(浅Attr.getString("storagevehicle_code"))){ + if (ObjectUtil.isEmpty(浅Attr.getString("storagevehicle_code"))) { if (!浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { - throw new BadRequestException("木箱货位"+boxAttr.getString("struct_code")+"的浅货位存在正在执行的任务"); + throw new BadRequestException("木箱货位" + boxAttr.getString("struct_code") + "的浅货位存在正在执行的任务"); } - }else { + } else { if (浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { // 判断浅货位木箱和深货位木箱是否相同规格 task_group_id = outBoxManageService.createBoxMove(浅Attr); @@ -449,11 +459,11 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl { try { log.error("----回传子卷包装关系----"); @@ -670,7 +679,6 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl djqPointList = packageinfoivtService .list(new LambdaUpdateWrapper() .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) - .in(BstIvtPackageinfoivt::getContainer_name,containerNameList)); - if (CollectionUtils.isEmpty(djqPointList)){ - throw new BadRequestException(containerNameList+"子卷信息不存在"); + .in(BstIvtPackageinfoivt::getContainer_name, containerNameList)); + if (CollectionUtils.isEmpty(djqPointList)) { + throw new BadRequestException(containerNameList + "子卷信息不存在"); } boolean hasNo = djqPointList.stream().anyMatch(a -> !a.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))); - if (hasNo){ - throw new BadRequestException(containerNameList+"子卷未质检合格"); + if (hasNo) { + throw new BadRequestException(containerNameList + "子卷未质检合格"); } List djqPoints = djqPointList.stream().filter(a -> a.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区"))).collect(Collectors.toList()); //任务组id @@ -767,14 +775,14 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl taskList = taskService.list(new LambdaQueryWrapper() .eq(SchBaseTask::getVehicle_code, item.getContainer_name()).eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")) .eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")).lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())); - if (CollectionUtils.isEmpty(taskList)){ + if (CollectionUtils.isEmpty(taskList)) { JSONObject jo = new JSONObject(); //确定搬运任务不执行 jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")); jo.put("vehicle_code", item.getContainer_name()); jo.put("point_code1", item.getPoint_code()); - jo.put("date",now); - jo.put("task_step",i1); + jo.put("date", now); + jo.put("task_step", i1); jo.put("task_status", TaskStatusEnum.SURE_START.getCode()); jo.put("vehicle_code2", groupId); zxqTask.createTaskReturnTask(jo); @@ -786,39 +794,39 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl().eq("container_name", code)); - if (containerName==null){ - throw new BadRequestException("当前子卷"+code+"还未生成子卷包装"); + if (containerName == null) { + throw new BadRequestException("当前子卷" + code + "还未生成子卷包装"); } if (SUBEnum.STATUS.code("入库").equals(containerName.getStatus()) - ||SUBEnum.STATUS.code("出库").equals(containerName.getStatus())){ - throw new BadRequestException("当前子卷"+code+"已完成出入库不允许手动解除"); + || SUBEnum.STATUS.code("出库").equals(containerName.getStatus())) { + throw new BadRequestException("当前子卷" + code + "已完成出入库不允许手动解除"); } - if (StringUtils.isNotEmpty(containerName.getPackage_box_sn())){ + if (StringUtils.isNotEmpty(containerName.getPackage_box_sn())) { String packageBoxSn = containerName.getPackage_box_sn(); WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); JSONObject attr = attrTab.query("storagevehicle_code = '" + packageBoxSn + "'").uniqueResult(0); - if (ObjectUtils.isNotEmpty(attr)){ + if (ObjectUtils.isNotEmpty(attr)) { String structCode = attr.getString("struct_code"); int count = taskService.count(new QueryWrapper() .eq("task_type", "010704") .eq("is_delete", "0") .eq("point_code1", structCode) .lt("task_status", TaskStatusEnum.FINISHED.getCode())); - if (count>0){ + if (count > 0) { throw new BadRequestException("当前子卷已经生成装箱入库任务,不允许直接解绑"); } - attr.put("lock_type","1"); + attr.put("lock_type", "1"); attrTab.update(attr); } } this.removeById(containerName.getWorkorder_id()); - result.put("message", code+"子卷包装解除成功,同时确认MES装箱以解绑定"); - PdmProductSpecServiceImpl.doRecord(SpecEnum.BZ_REMOVE,MapOf.of("子卷编号",code),Boolean.TRUE,null,code); + result.put("message", code + "子卷包装解除成功,同时确认MES装箱以解绑定"); + PdmProductSpecServiceImpl.doRecord(SpecEnum.BZ_REMOVE, MapOf.of("子卷编号", code), Boolean.TRUE, null, code); return result; } @@ -836,12 +844,12 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl() .eq("container_name", whereJson.getString("container_name"))); - if (one!=null){ + if (one != null) { throw new BadRequestException("包装关系存在,请先在MES和LMS解绑包装关系"); } BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper() @@ -861,16 +869,16 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl3){ + if (day > 3) { throw new BadRequestException("只能导出前三天数据"); } Date time = DateUtil.offsetDay(new Date(), -day); @@ -884,57 +892,57 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl> log = new ArrayList<>(); - if (total>0){ - PageResult page = (PageResult)logPage.get("page"); + List> log = new ArrayList<>(); + if (total > 0) { + PageResult page = (PageResult) logPage.get("page"); for (LogRepositoryDTO dto : page) { String message = dto.getMessage(); - if (!StringUtils.isEmpty(message)){ + if (!StringUtils.isEmpty(message)) { String requestTime = dto.getRequestTime(); int start = message.indexOf("{"); int end = message.lastIndexOf("}"); - if (start>0 && end>start){ + if (start > 0 && end > start) { String substring = message.substring(start, end + 1); JSONObject object = JSONObject.parseObject(substring); String deviceCode = object.getString("device_code"); - log.add(MapOf.of("呼叫时间",requestTime,"设备",deviceCode)); + log.add(MapOf.of("呼叫时间", requestTime, "设备", deviceCode)); } } } } - List> databases = this.baseMapper.downloadData(time.toString()); + List> databases = this.baseMapper.downloadData(time.toString()); List> ioData = new ArrayList<>(); int max = Math.max(databases.size(), log.size()); for (int i = 0; i < max; i++) { Map item = new HashMap<>(); - if (databases.size()>i){ + if (databases.size() > i) { Map item1 = databases.get(i); item.putAll(item1); - }else { - item.put("下卷设备",""); - item.put("下卷开始",""); - item.put("下卷结束",""); + } else { + item.put("下卷设备", ""); + item.put("下卷开始", ""); + item.put("下卷结束", ""); } - if (log.size()>i){ + if (log.size() > i) { Map item2 = log.get(i); item.putAll(item2); - }else { - item.put("设备",""); - item.put("呼叫时间",""); + } else { + item.put("设备", ""); + item.put("呼叫时间", ""); } - item.put("分割",""); - if (item.keySet().size()==6){ + item.put("分割", ""); + if (item.keySet().size() == 6) { ioData.add(item); } } String[] strings = new String[6]; strings[0] = "下卷设备"; - strings[1] ="下卷开始"; - strings[2] ="下卷结束"; + strings[1] = "下卷开始"; + strings[2] = "下卷结束"; strings[3] = "分割"; strings[4] = "设备"; strings[5] = "呼叫时间"; - new FileUtil().downloadExcelIO(ioData,strings,response); + new FileUtil().downloadExcelIO(ioData, strings, response); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.java index 57a11a602..a11405429 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.java @@ -36,5 +36,6 @@ public interface BstIvtPackageinfoivtMapper extends BaseMapper getTaskList(Set pointCodes1, Set pointCodes2, Set pointCodes3, Set pointCodes4); List selectNoTaskPoint(@Param("pointStatus") String pointStatus, @Param("ivtStatus")String ivtStatus); + List selectNoTaskPoint2(@Param("pointStatus") String pointStatus, @Param("ivtStatus")String ivtStatus); List selectNoTargetTaskPoint(@Param("pointStatus") String pointStatus, @Param("ivtStatus")String ivtStatus); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.xml index 699c3b2c9..d684b52d2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/BstIvtPackageinfoivtMapper.xml @@ -90,6 +90,15 @@ AND (t.point_code1 = p.point_code OR t.point_code2 = p.point_code OR t.point_code3 = p.point_code OR t.point_code4 = p.point_code) AND t.is_delete = '0') +