From f48878cdae5652be9e8f1145eda84d2ca9ca0544 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期二, 07 一月 2025 13:52:05 +0800
Subject: [PATCH] 优化订单同步逻辑及环境配置

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |   62 +++++++++++++++++++++++++++---
 1 files changed, 55 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 bd3d89a..d99bc36 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -1,7 +1,9 @@
 package com.zy.asrs.task.handler;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.core.exception.CoolException;
 import com.zy.asrs.entity.LocDetl;
 import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.WrkDetl;
@@ -38,10 +40,10 @@
     private WaitPakinService waitPakinService;
 
     public ReturnT<String> start(WrkMast wrkMast) {
-        // 14.鍏ュ簱瀹屾垚
+        // 9.鍏ュ簱瀹屾垚
         if (wrkMast.getWrkSts() == 9) {
             return doIn(wrkMast);
-            // 34.鍑哄簱瀹屾垚
+            // 29.鍑哄簱瀹屾垚
         } else  if (wrkMast.getWrkSts() == 29) {
             return doOut(wrkMast);
         }
@@ -90,7 +92,7 @@
                             locDetl.sync(wrkDetl);
                             locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
                             locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
-                            locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+                            locDetl.setZpallet(wrkDetl.getZpallet()); // 璐ф灦鏉$爜
                             locDetl.setModiTime(now);
                             locDetl.setAppeTime(now);
                             if (!locDetlService.insert(locDetl)) {
@@ -134,10 +136,12 @@
                     if (wrkDetls53.isEmpty()) {
                         exceptionHandle("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
                     }
+                    log.info("宸ヤ綔鍙凤細" + wrkMast.getWrkNo() + "锛岃揣鏋剁爜锛�" + wrkMast.getBarcode() + "锛屽伐浣滄。鏄庣粏鍒楄〃锛�" + JSON.toJSONString(wrkDetls53));
                     for (WrkDetl wrkDetl : wrkDetls53) {
 
                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getSuppCode());
                         if (null != locDetl) {
+                            log.info("宸ヤ綔鍙凤細" + wrkMast.getWrkNo() + "锛岃揣鏋剁爜锛�" + wrkMast.getBarcode() + "锛屽伐浣滄。鏄庣粏锛�" + JSON.toJSONString(wrkDetl) + "锛屽簱瀛樻槑缁嗭細" + JSON.toJSONString(locDetl));
                             if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(),
                                     locMast.getLocNo(),
                                     wrkDetl.getMatnr(),
@@ -158,7 +162,24 @@
                         if (!locMastService.updateById(locMast)) {
                             exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                         }
+
+                        List<LocDetl> locDetls1 = locDetlService.selectByLocNo(locMast.getLocNo());
+                        log.info("宸ヤ綔鍙凤細" + wrkMast.getWrkNo() + "锛岃揣鏋剁爜锛�" + wrkMast.getBarcode() + "锛屼慨鏀瑰簱浣嶇姸鎬丵=>F鎴愬姛锛屽簱瀛樻槑缁嗭細" + JSON.toJSONString(locDetls1));
                     }
+
+                    //娓呯┖婧愬簱浣嶆暟鎹� P ====>> O
+                    LocMast locMast1 = locMastService.selectByLoc(wrkMast.getSourceLocNo());
+                    if (locMast1.getLocSts().equals("P")) {
+                        locMast1.setLocSts("O"); // 娓呯┖搴撲綅
+                        locMast1.setModiTime(new Date());
+                        if (!locMastService.updateById(locMast1)) {
+                            throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+                        }
+                        locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no",locMast1.getLocNo()));
+                    } else {
+                        throw new CoolException("婧愬簱浣嶇姸鎬佸紓甯�");
+                    }
+
                     break;
                 // 骞舵澘鍏ュ簱
                 case 54:
@@ -180,7 +201,7 @@
                             locDetl.sync(wrkDetl);
                             locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
                             locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
-                            locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+                            locDetl.setZpallet(wrkDetl.getZpallet()); // 璐ф灦鏉$爜
                             locDetl.setModiTime(now);
                             locDetl.setAppeTime(now);
                             if (!locDetlService.insert(locDetl)) {
@@ -206,8 +227,21 @@
                     if (wrkDetls57.isEmpty()) {
                         exceptionHandle("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
                     }
-                    // 淇敼搴撲綅鐘舵�� Q ====>> F
-                    if (locMast.getLocSts().equals("Q")) {
+                    // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
+                    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}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                        }
+                    }
+                    // 淇敼搴撲綅鐘舵�� S ====>> F
+                    if (locMast.getLocSts().equals("S")) {
                         locMast.setLocSts(wrkMast.getFullPlt().equals("Y")?"F":"D");
                         locMast.setBarcode(wrkMast.getBarcode());
                         locMast.setIoTime(now);
@@ -253,7 +287,7 @@
                     break;
             }
             // 淇敼宸ヤ綔涓绘。鐘舵��
-            wrkMast.setWrkSts(10L);//15.搴撳瓨鏇存柊瀹屾垚
+            wrkMast.setWrkSts(10L);//10.搴撳瓨鏇存柊瀹屾垚
             wrkMast.setModiTime(now);
             if (!wrkMastService.updateById(wrkMast)) {
                 exceptionHandle("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
@@ -305,6 +339,20 @@
                         }
                     }
                     break;
+                //鐩樼偣鍑哄簱
+                case 107:
+                    // 淇敼搴撲綅鐘舵�� R ===>> O
+                    if (locMast.getLocSts().equals("P")) {
+                        locMast.setLocSts("O");
+                        locMast.setBarcode("");
+                        locMast.setModiTime(now);
+                        locMast.setIoTime(now);
+                        if (!locMastService.updateById(locMast)) {
+                            exceptionHandle("鐩樼偣鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+                        }
+                        locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no",locMast.getLocNo()));
+                    }
+                    return SUCCESS;//鐩樼偣鍙鐞嗗簱瀛樻暟鎹笉鏀瑰彉宸ヤ綔妗g姸鎬�
                 // 绌烘澘鍑哄簱
                 case 110:
                     // 淇敼搴撲綅鐘舵�� R ===>> O

--
Gitblit v1.9.1