From d6330217348af2b6aba4c40dc53f4c8317da092f Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Wed, 5 Mar 2025 23:36:00 +0800 Subject: [PATCH] =?UTF-8?q?opt:1.=E4=BC=98=E5=8C=96=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=88=86=E9=85=8D=E7=AD=96=E7=95=A5=EF=BC=9B?= =?UTF-8?q?2.=E4=BC=98=E5=8C=96=E7=A7=BB=E5=BA=93=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=B7=B1=E8=B4=A7=E4=BD=8D=E5=AF=B9=E5=BA=94=E6=B5=85=E8=B4=A7?= =?UTF-8?q?=E4=BD=8D=E6=9C=89=E6=97=A0=E8=B4=A7=E7=AD=9B=E9=80=89=EF=BC=9B?= =?UTF-8?q?=203.=E4=BC=98=E5=8C=96=E5=8D=95=E6=8D=AE=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E4=B8=8D=E5=90=8C=E4=BB=93=E5=BA=93=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E9=9D=9E=E7=AB=8B=E5=BA=93=E5=8D=95=E6=8D=AE=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=EF=BC=9B=204.=E4=BC=98=E5=8C=96=E6=9C=88?= =?UTF-8?q?=E6=9C=AB=E5=85=B3=E5=8D=95=E7=94=A8=E6=96=99=E5=9B=9E=E6=89=A7?= =?UTF-8?q?=E5=8D=95=E5=9B=9E=E4=BC=A0=E5=A4=B1=E8=B4=A5=EF=BC=8C=E5=8F=96?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E6=97=B6=E9=97=B4=EF=BC=9B=205.=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=94=A8=E6=96=99=E5=8D=95=E5=9B=9E=E4=BC=A0=E8=BE=85?= =?UTF-8?q?=E5=8A=A9=E5=8D=95=E4=BD=8D=E9=83=A8=E5=88=86=E4=B8=BAid?= =?UTF-8?q?=E4=B8=8D=E6=98=AFcode=E7=9A=84=E7=89=A9=E6=96=99=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wms_pro/hd/nladmin-system/pom.xml | 34 ++++++++++----- .../impl/base/LimitStorageRuleHandler.java | 19 +++----- .../impl/diy/DepthPriorityHandler.java | 38 ++++++++++++++-- .../service/impl/SchBaseTaskServiceImpl.java | 6 +-- .../SyncReceiptProcessHandler.java | 25 +++++------ .../service/impl/PmFormDataServiceImpl.java | 43 ++++++++++++++----- 6 files changed, 113 insertions(+), 52 deletions(-) diff --git a/wms_pro/hd/nladmin-system/pom.xml b/wms_pro/hd/nladmin-system/pom.xml index 46c6f2d0..80409d5f 100644 --- a/wms_pro/hd/nladmin-system/pom.xml +++ b/wms_pro/hd/nladmin-system/pom.xml @@ -23,7 +23,7 @@ 0.11.1 1.2.83 - + 1.9 @@ -85,7 +85,7 @@ hutool-all ${hutool.version} - + org.apache.poi poi @@ -193,7 +193,20 @@ org.apache.commons commons-lang3 - + + com.google.gson + gson-jar + 2.8.0 + system + D:/Program/jar/gson-2.8.0.jar + + + com.kingdee.bos.webapi + kingdee-jar + 8.0.6 + system + D:/Program/jar/k3cloud-webapi-sdk8.0.6.jar + mysql @@ -205,14 +218,14 @@ gson-jar 2.8.0 system - /Users/mima0000/Desktop/gson-2.8.0.jar + D:/Program/jar/gson-2.8.0.jar com.kingdee.bos.webapi kingdee-jar 8.0.6 system - /Users/mima0000/Desktop/k3cloud-webapi-sdk8.0.6.jar + D:/Program/jar/k3cloud-webapi-sdk8.0.6.jar @@ -226,11 +239,11 @@ lombok true - - com.alibaba - fastjson - ${fastjson.version} - + + com.alibaba + fastjson + ${fastjson.version} + cn.dev33 sa-token-dao-redis @@ -269,7 +282,6 @@ commons-configuration ${configuration.version} - com.google.guava guava diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/LimitStorageRuleHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/LimitStorageRuleHandler.java index 8eb342eb..806da199 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/LimitStorageRuleHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/LimitStorageRuleHandler.java @@ -4,13 +4,10 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.apache.commons.lang3.StringUtils; import org.nl.common.domain.exception.BadRequestException; -import org.nl.wms.stor_manage.io.service.iostor_dtl.IStIvtIostorinvdtlService; -import org.nl.wms.stor_manage.io.service.iostor_dtl.dao.StIvtIostorinvdtl; -import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService; import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo; import org.nl.wms.decision_manage.handler.decisioner.Decisioner; - +import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -50,18 +47,16 @@ public class LimitStorageRuleHandler extends Decisioner collect = list.stream().filter(struct -> struct.getCol_num() > 2).collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(collect)){ - list = collect; - } + String errorTask = param.getString("errorTask"); + if ((StringUtils.isNotEmpty(start_point) && "1109".equals(start_point)) || StringUtils.isNotEmpty(errorTask)) { + list = list.stream().filter(struct -> struct.getCol_num() > 2).collect(Collectors.toList()); } - List resultList = inHandler(list,vehileInfo); + List resultList = inHandler(list, vehileInfo); return resultList; } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/diy/DepthPriorityHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/diy/DepthPriorityHandler.java index 408b7fff..df426e8c 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/diy/DepthPriorityHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/diy/DepthPriorityHandler.java @@ -1,11 +1,15 @@ package org.nl.wms.decision_manage.handler.decisioner.impl.diy; import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; import org.nl.wms.decision_manage.handler.decisioner.Decisioner; +import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -15,14 +19,42 @@ import java.util.stream.Collectors; * @Date 2024/7/31 15:19 */ @Service("depthPriority") +@Slf4j public class DepthPriorityHandler extends Decisioner { //现场1/4排深位 @Override public List handler(List list, JSONObject param) { - List collect = list.stream().filter(a -> a.getRow_num() == 1 || a.getRow_num() == 4).collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(collect)){ - return collect; + //深货位 + List depCollect = list.stream().filter(a -> a.getRow_num() == 1 || a.getRow_num() == 4).collect(Collectors.toList()); + //浅货位 + List shallowCollect = list.stream().filter(a -> a.getRow_num() == 2 || a.getRow_num() == 3).collect(Collectors.toList()); + List matchingCollect = new ArrayList<>(); + depCollect.forEach(r -> { + shallowCollect.forEach(s -> { + String depCode = r.getCol_num() + "-" + r.getLayer_num(); + String shallowCode = s.getCol_num() + "-" + s.getLayer_num(); + if (r.getRow_num() == 1 && s.getRow_num() == 2) { + if (depCode.equals(shallowCode)) { + matchingCollect.add(r); + } + } else if (r.getRow_num() == 4 && s.getRow_num() == 3) { + if (depCode.equals(shallowCode)) { + matchingCollect.add(r); + } + } + }); + }); + if (!CollectionUtils.isEmpty(matchingCollect)) { + log.info("深位优先分配结果: 存在深位并对应浅位无货的库位,分配结果:" + matchingCollect.get(0).getStruct_code()); + return matchingCollect; + } else if (!CollectionUtils.isEmpty(depCollect)) { + log.info("深位优先分配结果: 存在深位但对应浅位有货的库位,分配结果:" + depCollect.get(0).getStruct_code()); + return depCollect; } + log.info("深位优先分配结果: 不存在深位库位,分配结果:" + list.get(0).getStruct_code()); return list; } + + + } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java index 2c1f3335..bb0a1f06 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java @@ -297,7 +297,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl { System.out.println("---3--" + Thread.currentThread().getName()); //出阻挡说明是同排跟任务一个类型载具 - Map process = SpringContextHolder.getBean(DecisionHandler.class).dispenseTransa(ListOf.of("limitStorage","depthPriority","nearby"), new JSONObject(MapOf.of( "is_move",true,"stor_code", stIvtStructattr.getStor_code(),"vehicle_code",task.getVehicle_code()))); + Map process = SpringContextHolder.getBean(DecisionHandler.class).dispenseTransa(ListOf.of("limitStorage","depthPriority","nearby"), new JSONObject(MapOf.of( "is_move",true,"stor_code", stIvtStructattr.getStor_code(),"vehicle_code",task.getVehicle_code(),"errorTask","errorTask"))); moveStruct.set(((Map) process.get("form_data")).get("end_struct_code")); }, "1" + stIvtStructattr.getStor_code(), 5); Map moveForm = MapOf.of("task_type", StatusEnum.IOBILL_TYPE_MOVE.code("异常位移库") @@ -333,7 +333,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl) map.get("form_data")).get("end_struct_code"); iActRuExecutionService.update(new UpdateWrapper() .set("remark", stIvtStructattr.getStruct_code() + "入满异常重新分配货位" + new_struct_code) @@ -364,7 +364,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl) map.get("form_data")).get("end_struct_code"); if (vehicleCode!=null){ iActRuExecutionService.update(new UpdateWrapper() diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/classprocessimpl/SyncReceiptProcessHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/classprocessimpl/SyncReceiptProcessHandler.java index ab20b91c..a0659450 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/classprocessimpl/SyncReceiptProcessHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/classprocessimpl/SyncReceiptProcessHandler.java @@ -118,6 +118,7 @@ public class SyncReceiptProcessHandler implements ClassProcess { if (model == null) { return; } + model.put("FDate", DateUtil.now()); JSONArray fEntityArray = formData.getJSONObject("Model").getJSONArray("FEntity"); if ("RECEIPT_PRD".equals(formType)) { for (int i = 0; i < fEntityArray.size(); i++) { @@ -189,13 +190,6 @@ public class SyncReceiptProcessHandler implements ClassProcess { throw new BadRequestException("回传失败:查询物料信息,物料编码不存在:" + JSON.parseObject(fEntity.getString("FMaterialId")).getString("FNumber")); } MdMeMaterialbase materialInfo = materialList.get(0); - //没有启用批次号 - if ("0".equals(materialInfo.getPrint_no())) { - if (fEntity.containsKey("FLot")) { - fEntity.remove("FLot"); - } - } - //辅助单位 Map linkedMap = new LinkedHashMap<>(); for (String key : fEntity.keySet()) { linkedMap.put(key, fEntity.get(key)); @@ -203,16 +197,23 @@ public class SyncReceiptProcessHandler implements ClassProcess { Map tempMap = new LinkedHashMap<>(); for (Map.Entry entry : linkedMap.entrySet()) { tempMap.put(entry.getKey(), entry.getValue()); + if ("FPPBomEntryId".equals(entry.getKey())) { + tempMap.put("FSrcBillType", "PRD_PPBOM"); + tempMap.put("FSrcBillNo", jsonArray.getJSONObject(0).getString("BillNo")); + tempMap.put("FEntrySrcEnteryId", entity.getString("Id")); + tempMap.put("FEntrySrcEntrySeq", entity.getString("Seq")); + } + //辅助单位 if (!"0".equals(materialInfo.getAssist_unit_id()) && "FUnitID".equals(entry.getKey())) { JSONObject fUnit = new JSONObject(); fUnit.put("FNumber", materialInfo.getAssist_unit_id()); tempMap.put("FSecUnitId", fUnit); } - if ("FActualQty".equals(entry.getKey())) { - tempMap.put("FSrcBillType", "PRD_PPBOM"); - tempMap.put("FSrcBillNo", jsonArray.getJSONObject(0).getString("BillNo")); - tempMap.put("FEntrySrcEnteryId", entity.getString("Id")); - tempMap.put("FEntrySrcEntrySeq", entity.getString("Seq")); + //没有启用批次号 + if ("0".equals(materialInfo.getPrint_no())) { + if (entry.getKey().contains("FLot")) { + tempMap.remove("FLot"); + } } } JSONArray fEntityLinkArray = new JSONArray(); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java index c1a70ea1..77d463e9 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java @@ -322,10 +322,21 @@ public class PmFormDataServiceImpl extends ServiceImpl parents = pmFormDataDtos.stream().map(PmFormDataDto::getId).collect(Collectors.toList()); List childs = this.baseMapper.selectChilds(parents); //过滤非料箱与托盘库 - childs.removeIf(r -> - !new HashSet<>(Arrays.asList("1233925", "1233926")) - .contains(r.getForm_data().getString("stock_Id")) - ); + String stockId = ""; + if (pmFormDataDtos.get(0).getCode().contains("PPBOM")) { + stockId = "stock_Id"; + } else if (pmFormDataDtos.get(0).getCode().contains("JDSCLLSQ")) { + stockId = "stockId"; + } else if (pmFormDataDtos.get(0).getCode().contains("ZJDB")) { + stockId = "SrcStockId_Id"; + } + if (StringUtils.isNotBlank(stockId)) { + String finalStockId = stockId; + childs.removeIf(r -> + !new HashSet<>(Arrays.asList("1233925", "1233926")) + .contains(r.getForm_data().getString(finalStockId)) + ); + } if (!CollectionUtils.isEmpty(childs)) { Map> childMap = childs.stream().collect(Collectors.groupingBy(PmFormDataDto::getParent_id)); for (PmFormDataDto dataDto : pmFormDataDtos) { @@ -354,17 +365,27 @@ public class PmFormDataServiceImpl extends ServiceImpl childs = this.baseMapper.selectChilds(ListOf.of(pmFormDataDto.getId())); + if (CollectionUtils.isEmpty(childs)) { + throw new BadRequestException(code + "单据明细数据为空"); + } //过滤非料箱与托盘库 - childs.removeIf(r -> - !new HashSet<>(Arrays.asList("1233925", "1233926")) - .contains(r.getForm_data().getString("stock_Id")) - ); - if (CollectionUtils.isEmpty(childs)){ - throw new BadRequestException(code+"单据明细数据为空"); + String stockId = ""; + if (code.contains("PPBOM")) { + stockId = "stock_Id"; + } else if (code.contains("JDSCLLSQ")) { + stockId = "stockId"; + } else if (code.contains("ZJDB")) { + stockId = "SrcStockId_Id"; + } + if (StringUtils.isNotBlank(stockId)) { + String finalStockId = stockId; + childs.removeIf(r -> + !new HashSet<>(Arrays.asList("1233925", "1233926")) + .contains(r.getForm_data().getString(finalStockId)) + ); } String productArea = pmFormDataDto.getForm_data().getString("product_area"); pmFormDataDto.setProduct_area(productArea); - List collect = childs.stream().map(PmFormDataDto::getMaterial_id).collect(Collectors.toList()); //TODO:指定仓库 List structMaterials = iStIvtStructattrService.getStructIvtAssign(collect, stor_code);