From 383c6139926563f02fba4432effbfc27f87d88c5 Mon Sep 17 00:00:00 2001
From: bfwms <1>
Date: 星期三, 30 七月 2025 14:36:57 +0800
Subject: [PATCH] ERP对接

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |   76 ++++++++++++++++++++++++++++++++++---
 1 files changed, 69 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 816c14d..ea77a6a 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -9,6 +9,8 @@
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -36,6 +38,8 @@
     private LocDetlService locDetlService;
     @Autowired
     private WaitPakinService waitPakinService;
+    @Autowired
+    private ConfigService configService;
 
     public ReturnT<String> start(WrkMast wrkMast) {
         // 9.鍏ュ簱瀹屾垚
@@ -51,6 +55,9 @@
     private ReturnT<String> doIn(WrkMast wrkMast){
         Date now = new Date();
         LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+
+        //鍒ゆ柇浠诲姟鏄惁鏈夎鍗曞彿
+        Boolean boo=false;
         try {
             if (null == locMast) {
                 exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
@@ -84,9 +91,14 @@
                     if (wrkDetls.isEmpty()) {
                         exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪锛沎workNo={0}]", wrkMast.getWrkNo());
                     }
+                    //鍒ゆ柇鏄惁鏈夎鍗曞彿
+                    if(!Cools.isEmpty(wrkDetls.get(0).getOrderNo())){
+                        boo=true;
+                    }
                     // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
                     for (WrkDetl wrkDetl : wrkDetls) {
 
+                        wrkDetl.setBatch("");
                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                         if (null != locDetl) {
                             if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
@@ -127,8 +139,10 @@
                     if (locMast.getLocSts().equals("S")) {
                         locMast.setLocSts("F");
                         locMast.setBarcode(wrkMast.getBarcode());
+                        locMast.setFrozen(wrkMast.getFrozen());
                         locMast.setIoTime(now);
                         locMast.setModiTime(now);
+                        locMast.setFrozenMemo(wrkMast.getMemo());
                         if (!locMastService.updateById(locMast)) {
                             exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                         }
@@ -141,11 +155,17 @@
                     if (wrkDetls53.isEmpty()) {
                         exceptionHandle("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
                     }
+
+                    //鍒ゆ柇鏄惁鏈夎鍗曞彿
+                    if(!Cools.isEmpty(wrkDetls53.get(0).getOrderNo())){
+                        boo=true;
+                    }
+
                     for (WrkDetl wrkDetl : wrkDetls53) {
 
                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                         if (null != locDetl) {
-                            if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+                            if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getManu(),wrkDetl.getMemo())) {
                                 exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                             }
                         }
@@ -207,6 +227,24 @@
                     if (wrkDetls57.isEmpty()) {
                         exceptionHandle("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
                     }
+                    if(!Cools.isEmpty(locDetlService.selectByLocNo(wrkMast.getLocNo()))){
+                        locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
+                    }
+                    if (Cools.isEmpty(locDetlService.selectByLocNo(wrkMast.getLocNo()))){
+                        for (WrkDetl wrkDetl:wrkDetls57){
+                            LocDetl locDetl = new LocDetl();
+                            locDetl.sync(wrkDetl);
+                            locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
+                            locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
+                            locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+                            locDetl.setModiTime(now);
+                            locDetl.setAppeTime(now);
+                            if (!locDetlService.insert(locDetl)) {
+                                exceptionHandle("鐩樼偣鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+                            }
+                        }
+                    }
+
                     // 淇敼搴撲綅鐘舵�� Q ====>> F
                     if (locMast.getLocSts().equals("Q")) {
                         locMast.setLocSts(wrkMast.getFullPlt().equals("Y")?"F":"D");
@@ -218,8 +256,8 @@
                         }
                     }
                     break;
-                // 搴撲綅绉昏浆
-                case 11:
+                case 11:// 搴撲綅绉昏浆
+                case 111:// 搴撲綅绉昏浆(楂橀鍖哄煙)
                     // 榛樿鐩爣搴撲綅鏄┖鏉�
                     String locSts = "D";
                     // 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
@@ -253,8 +291,15 @@
                 default:
                     break;
             }
-            // 淇敼宸ヤ綔涓绘。鐘舵��
-            wrkMast.setWrkSts(10L);
+
+            //鏄惁闇�瑕佷笂鎶RP
+            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "newErpReport"));
+            if(!Cools.isEmpty(config)&&config.getValue().equals("Y")&&boo){
+                wrkMast.setWrkSts(40L);//浠诲姟鐘舵�佽浆ERP涓婃姤涓�
+            }else{
+                // 淇敼宸ヤ綔涓绘。鐘舵��
+                wrkMast.setWrkSts(10L);
+            }
             wrkMast.setModiTime(now);
             if (!wrkMastService.updateById(wrkMast)) {
                 exceptionHandle("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
@@ -269,8 +314,12 @@
     }
 
     private ReturnT<String> doOut(WrkMast wrkMast){
+
         Date now = new Date();
         LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+
+        //鍒ゆ柇浠诲姟鏄惁鏈夎鍗曞彿
+        Boolean boo=false;
         try {
             if (null == locMast) {
                 exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
@@ -318,6 +367,11 @@
                     if (wrkDetls101.isEmpty()) {
                         exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
                     }
+                    //鍒ゆ柇鏄惁鏈夎鍗曞彿
+                    if(!Cools.isEmpty(wrkDetls101.get(0).getOrderNo())){
+                        boo=true;
+                    }
+
                     for (WrkDetl wrkDetl : wrkDetls101) {
                         // todo:luxiaotao 3)淇敼鍑哄簱閫氱煡妗� status ==> Y
                     }
@@ -329,8 +383,10 @@
                     if (locMast.getLocSts().equals("R")) {
                         locMast.setLocSts("O");
                         locMast.setBarcode("");
+                        locMast.setFrozen(0);
                         locMast.setModiTime(now);
                         locMast.setIoTime(now);
+                        locMast.setFrozenMemo("");
                         if (!locMastService.updateById(locMast)) {
                             exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                         }
@@ -353,8 +409,14 @@
                     break;
             }
             if(wrkMast.getIoType()!=11) {
-                // 淇敼宸ヤ綔涓绘。鐘舵��
-                wrkMast.setWrkSts(18L);
+                //鏄惁闇�瑕佷笂鎶RP
+                Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "newErpReport"));
+                if(!Cools.isEmpty(config)&&config.getValue().equals("Y")&&boo){
+                    wrkMast.setWrkSts(40L);//浠诲姟鐘舵�佽浆ERP涓婃姤涓�
+                }else{
+                    // 淇敼宸ヤ綔涓绘。鐘舵��
+                    wrkMast.setWrkSts(18L);
+                }
                 wrkMast.setModiTime(now);
                 if (!wrkMastService.updateById(wrkMast)) {
                     exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());

--
Gitblit v1.9.1