From 3ad65283c54059e0c61110589fb19398ac3525fe Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 08 七月 2025 08:32:32 +0800
Subject: [PATCH] 完善拣料转全板

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |   50 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 45 insertions(+), 5 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 2d9eb30..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,8 +91,13 @@
                     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) {
@@ -143,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());
                             }
                         }
@@ -273,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());
@@ -289,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());
@@ -338,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
                     }
@@ -375,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