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);