From b830ec60edf8b4a581e6ed7ca4a62e16a82d7081 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期二, 17 十二月 2024 15:33:12 +0800
Subject: [PATCH] 优化逻辑并调整线程池配置

---
 src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java |   74 +++++++++++++++++++++----------------
 1 files changed, 42 insertions(+), 32 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java
index 646d5a2..451c395 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java
@@ -29,6 +29,9 @@
     private LocDetlService locDetlService;
     @Autowired
     private LocMastService locMastService;
+
+    @Autowired
+    private AgvLocMastService agvLocMastService;
     @Autowired
     private CommonService commonService;
     @Autowired
@@ -64,16 +67,16 @@
         Date now = new Date();
 
         Set<String> locNos = pakoutLoc(order);
-        for (String locNo : locNos){
+        for (String locNo : locNos) {
             LocMast locMast = locMastService.selectByLoc(locNo);
-            if(!"F".equals(locMast.getLocSts())){
+            if (!"F".equals(locMast.getLocSts())) {
                 throw new CoolException("搴撲綅鐘舵�佸凡鍙樻洿");
             }
             //鐢熸垚宸ヤ綔妗�
-            WrkMast wrkMast = createWrkMast(locNo,locMast.getBarcode(),now);
+            WrkMast wrkMast = createWrkMast(locNo, locMast.getBarcode(), now);
             //鐢熸垚宸ヤ綔妗f槑缁�
             List<LocDetl> locDetls = locDetlService.selectByLocNo(locNo);
-            createWrkDetl(locDetls, wrkMast,order.getOrderNo(),now);
+            createWrkDetl(locDetls, wrkMast, order.getOrderNo(), now);
             //淇敼搴撲綅鐘舵��
             locMast.setLocSts("R");
             locMastService.updateByLocNo(locMast);
@@ -84,7 +87,7 @@
         return SUCCESS;
     }
 
-    private Order createOrder(){
+    private Order createOrder() {
         Date now = new Date();
         return new Order(
                 String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
@@ -125,7 +128,7 @@
 
     }
 
-    private OrderDetl createOrderDetl(Order order){
+    private OrderDetl createOrderDetl(Order order) {
         Date now = new Date();
         OrderDetl orderDetl = new OrderDetl();
 
@@ -141,14 +144,14 @@
         return orderDetl;
     }
 
-    private Set<String> pakoutLoc(Order order){
+    private Set<String> pakoutLoc(Order order) {
         //闇�瑕佸嚭搴撶殑搴撲綅
         Set<String> locNos = new HashSet<>();
         //鏍规嵁璁㈠崟鐢熸垚鍥涢」搴撳嚭搴撳伐浣滄。
         List<OrderDetl> orderDetlList = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", order.getOrderNo()));
 
-        for(OrderDetl orderDetl : orderDetlList){
-            if(orderDetl.getAnfme() - orderDetl.getQty() <= 0){
+        for (OrderDetl orderDetl : orderDetlList) {
+            if (orderDetl.getAnfme() - orderDetl.getQty() <= 0) {
                 continue;
             }
 
@@ -162,16 +165,16 @@
             //杩囨护搴撲綅璐х墿涓洪珮璐х墿
             locNosSearch = locNosSearch.stream().filter(locNo -> {
                 LocMast locMast = locMastService.selectByLoc(locNo);
-                if(locMast.getLocType1() == 3){
+                if (locMast.getLocType1() == 3) {
                     return false;
-                }else {
+                } else {
                     //涓旀娴嬭搴撲綅鏄惁鍚病鏈夎揣鏋剁爜鐨勭墿鏂欙紝濡傛湁鏈夊垯涓嶅厑璁稿嚭搴�
 //                    LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locNo)
 //                            .andNew().eq("supp_code", "").or().isNull("supp_code"));
 
-                    if(Cools.isEmpty(locDetlService.selectByLocWithoutContainer(locNo))){
+                    if (Cools.isEmpty(locDetlService.selectByLocWithoutContainer(locNo))) {
                         return true;
-                    }else {
+                    } else {
                         return false;
                     }
                 }
@@ -180,13 +183,13 @@
             //閲嶆柊鎺掑簭
             Set<String> resort = resort(locNosSearch);
 
-            for(String locNo : resort){
+            for (String locNo : resort) {
                 List<LocDetl> locDetls = locDetlService.selectByLocNo(locNo);
                 locNos.add(locNo);
-                for (LocDetl locDetl :locDetls){
-                    if(matnr.equals(locDetl.getMatnr())){
+                for (LocDetl locDetl : locDetls) {
+                    if (matnr.equals(locDetl.getMatnr())) {
                         orderAnfme -= locDetl.getAnfme();
-                    }else {
+                    } else {
                         OrderDetl odNew = createOrderDetl(order);
                         odNew.setMatnr(locDetl.getMatnr());
                         odNew.setMaktx(locDetl.getMaktx());
@@ -199,13 +202,13 @@
                         orderDetlService.insert(odNew);
                     }
                 }
-                if(orderAnfme <= 0){
+                if (orderAnfme <= 0) {
                     orderDetl.setQty(orderDetl.getAnfme() - orderAnfme);
                     orderDetlService.updateById(orderDetl);
                     break;
                 }
             }
-            if(orderAnfme > 0){
+            if (orderAnfme > 0) {
                 orderDetl.setAnfme(orderDetl.getAnfme() - orderAnfme);
                 orderDetl.setQty(orderDetl.getAnfme());
                 orderDetlService.updateById(orderDetl);
@@ -216,30 +219,30 @@
     }
 
     //鏍规嵁娣辨祬搴撲綅杩涜閲嶆柊鎺掑簭
-    private Set<String> resort(Set<String> locNos){
+    private Set<String> resort(Set<String> locNos) {
         Set<String> locNosResort = new LinkedHashSet<>();
 
-        for(String locNoSearch : locNos){
+        for (String locNoSearch : locNos) {
             LocMast locMast = locMastService.selectById(locNoSearch);
-            if(!"F".equals(locMast.getLocSts())){
+            if (!"F".equals(locMast.getLocSts())) {
                 continue;
             }
 
             List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNoSearch);
 
-            if(Cools.isEmpty(groupOuterLoc)){
+            if (Cools.isEmpty(groupOuterLoc)) {
                 locNosResort.add(locNoSearch);
-            }else {
+            } else {
                 groupOuterLoc.add(locNoSearch);
                 //濡傛灉鏄繁搴撲綅锛屽垯鍏堟壘澶栦晶鐨勫簱浣�
-                for (String locNoOut : groupOuterLoc){
+                for (String locNoOut : groupOuterLoc) {
                     LocMast locMastOuter = locMastService.selectById(locNoOut);
                     //澶栦晶濡傛灉鏄嫞鏂欙紝鍒欏唴娴嬩笉鍏佽鍑�
-                    if("P".equals(locMastOuter.getLocSts()) || "Q".equals(locMastOuter.getLocSts()) || "S".equals(locMastOuter.getLocSts())){
+                    if ("P".equals(locMastOuter.getLocSts()) || "Q".equals(locMastOuter.getLocSts()) || "S".equals(locMastOuter.getLocSts())) {
                         break;
                     }
 
-                    if(!"F".equals(locMastOuter.getLocSts())){
+                    if (!"F".equals(locMastOuter.getLocSts())) {
                         continue;
                     }
                     locNosResort.add(locNoOut);
@@ -250,7 +253,7 @@
         return locNosResort;
     }
 
-    private WrkMast createWrkMast(String locNo,String barCode,Date now){
+    private WrkMast createWrkMast(String locNo, String barCode, Date now) {
         int ioType = 101;
         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
         WrkMast wrkMast = new WrkMast();
@@ -274,19 +277,26 @@
         wrkMast.setAppeTime(now);
         //wrkMast.setModiUser(userId);
         wrkMast.setModiTime(now);
-
+        Integer pltType = null;
+        if (!Cools.isEmpty(locNo) && Cools.isEmpty(pltType)) {
+            AgvLocMast agvLocMast = agvLocMastService.selectById(locNo);
+            if (agvLocMast != null) {
+                pltType = agvLocMast.getPltType();
+            }
+        }
+        wrkMast.setPltType(pltType);
         //琛ヨ揣鏍囪瘑
         wrkMast.setMk("Y");
         if (!wrkMastService.insert(wrkMast)) {
-            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+locNo);
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + locNo);
         }
         return wrkMast;
     }
 
-    private void createWrkDetl(List<LocDetl> locDetls, WrkMast wrkMast,String orderNo, Date now){
+    private void createWrkDetl(List<LocDetl> locDetls, WrkMast wrkMast, String orderNo, Date now) {
         locDetls.forEach(locDetl -> {
             WrkDetl wrkDetl = new WrkDetl();
-            BeanUtils.copyProperties(locDetl,wrkDetl);
+            BeanUtils.copyProperties(locDetl, wrkDetl);
             wrkDetl.setZpallet(wrkMast.getBarcode());
             wrkDetl.setIoTime(now);
             wrkDetl.setWrkNo(wrkMast.getWrkNo());

--
Gitblit v1.9.1