From ef19ce2bc384c00b590ebdbd4e8c14ebfa9f0188 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 24 十月 2024 14:49:14 +0800
Subject: [PATCH] 去掉日志打印

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |  801 ++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 595 insertions(+), 206 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 5417171..810b43d 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -1,22 +1,33 @@
 package com.zy.asrs.task.handler;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.mapper.LocDetlMapper;
+import com.zy.asrs.mapper.OrderDetlMapper;
+import com.zy.asrs.mapper.OrderMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import javax.annotation.Resource;
 import java.util.Date;
 import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  * Created by vincent on 2020/7/4
  */
+@Slf4j
 @Service
 @Transactional
-public class WorkMastHandler extends AbstractHandler {
+public class WorkMastHandler extends AbstractHandler<String> {
 
     @Autowired
     private WrkMastService wrkMastService;
@@ -28,222 +39,600 @@
     private LocDetlService locDetlService;
     @Autowired
     private WaitPakinService waitPakinService;
+    @Autowired
+    private OrderDetlService orderDetlService;
+    @Resource
+    private OrderDetlMapper orderDetlMapper;
 
-    public void start() {
-        List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData();
-        if (wrkMasts.isEmpty()) {
-            return;
+    @Resource
+    private LocDetlMapper locDetlMapper;
+
+    @Resource
+    private OrderMapper orderMapper;
+    public ReturnT<String> start(WrkMast wrkMast) {
+        // 4.鍏ュ簱瀹屾垚
+        if (wrkMast.getWrkSts() == 4) {
+            return doIn(wrkMast);
+        // 14.鍑哄簱瀹屾垚
+        } else  if (wrkMast.getWrkSts() == 14) {
+            return doOut(wrkMast);
         }
-        for (WrkMast wrkMast : wrkMasts) {
-            // 4.鍏ュ簱瀹屾垚
-            if (wrkMast.getWrkSts() == 4) {
-                doIn(wrkMast);
-            // 14.鍑哄簱瀹屾垚
-            } else  if (wrkMast.getWrkSts() == 14) {
-                doOut(wrkMast);
-            }
-        }
+        return SUCCESS;
     }
 
-    private void doIn(WrkMast wrkMast){
+    private ReturnT<String> doIn(WrkMast wrkMast){
         Date now = new Date();
         LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-        if (null == locMast) {
-            exceptionHandle(""); // todo
-            return;
-        }
-        switch (wrkMast.getIoType()) {
-            // 绌烘澘鍏ュ簱
-            case 10:
-                // 淇敼搴撲綅鐘舵��=D
-                if (locMast.getLocType().equals("S") || locMast.getLocType().equals("Q")) {
-                    locMast.setLocType("D");
-                    locMast.setIoTime(now);
-                    locMast.setModiTime(now);
-                    if (!locMastService.updateById(locMast)) {
-                        exceptionHandle(""); // todo
-                    }
-                }
-                break;
-            // 鍏ㄦ澘鍏ュ簱
-            case 1:
-                // 娓呴櫎鎵�灞炲簱浣嶄箣鍓嶇殑搴撳瓨鏄庣粏
-                List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
-                if (!locDetls.isEmpty()) {
-                    locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
-                }
-                // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
-                List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
-                if (wrkDetls.isEmpty()) {
-                    exceptionHandle(""); // todo
-                }
-                // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
-                for (WrkDetl wrkDetl : wrkDetls) {
-                    LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()).eq("matnr", wrkDetl.getMatnr()));
-                    if (null != locDetl) {
-                        boolean res = locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr());
-                        if (!res) {
-                            exceptionHandle(""); // todo
-                        }
-                    } else {
-                        locDetl = new LocDetl(
-                                wrkMast.getLocNo(), // 搴撲綅鍙�
-                                wrkDetl.getMatnr(), // 鐗╂枡鍙�
-                                null,    // 浠撳簱鍙�
-                                null,    // 杞偍璇锋眰缂栧彿
-                                null,    // 琛岄」鐩�
-                                null,    // 鐗╂枡鏍囩ID
-                                wrkDetl.getMaktx(),    // 鐗╂枡鎻忚堪
-                                null,    // 宸ュ巶
-                                wrkDetl.getAnfme(),    // 鏁伴噺
-                                wrkDetl.getAltme(),    // 鍗曚綅
-                                wrkDetl.getZpallet(),    // 鎵樼洏鏉$爜
-                                null,    // 鐢ㄦ埛ID
-                                null,    // 澶囨敞
-                                null,    // 淇敼浜哄憳
-                                now,    // 淇敼鏃堕棿
-                                null,    // 鍒涘缓鑰�
-                                now    // 娣诲姞鏃堕棿
-                        );
-                        if (!locDetlService.insert(locDetl)) {
-                            exceptionHandle(""); // todo
-                        }
-                    }
-                    // 鏇存柊鍏ュ簱閫氱煡妗� status ===>> Y
-                    WaitPakin setParam = new WaitPakin();
-                    setParam.setStatus("Y");
-                    boolean updateRes = waitPakinService.update(setParam
-                            , new EntityWrapper<WaitPakin>().eq("barcode", wrkDetl.getZpallet())
-                                    .eq("matnr", wrkDetl.getMatnr())
-                                    .eq("anfme", wrkDetl.getAnfme()));
-                    if (!updateRes) {
-                        exceptionHandle(""); // todo
-                    }
-                }
-                // 淇敼搴撲綅鐘舵�� S ====>> F
-                if (locMast.getLocType().equals("S")) {
-                    locMast.setLocType("F");
-                    locMast.setBarcode(wrkMast.getBarcode());
-                    locMast.setIoTime(now);
-                    locMast.setModiTime(now);
-                    if (!locMastService.updateById(locMast)) {
-                        exceptionHandle(""); // todo
-                    }
-                }
-                break;
-            // 鎷f枡鍏ュ簱
-            case 53:
-                // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
-                List<WrkDetl> wrkDetls53 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
-                if (wrkDetls53.isEmpty()) {
-                    exceptionHandle(""); // todo
-                }
-                for (WrkDetl wrkDetl:wrkDetls53) {
-                    // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏋滃伐浣滄槑缁嗘暟閲忎负0鏃讹紝鍒犻櫎搴撳瓨鏄庣粏
-                    LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()).eq("matnr", wrkDetl.getMatnr()));
-                    if (null != locDetl) {
-                        if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr())) {
-                            exceptionHandle(""); // todo
-                        }
-                        // todo:luxiaotao 3)淇敼鍑哄簱閫氱煡妗� status ==> Y
-                    }
-                }
-                // 淇敼搴撲綅鐘舵�� Q ====>> F
-                if (locMast.getLocType().equals("Q")) {
-                    locMast.setLocType("F");
-                    locMast.setBarcode(wrkMast.getBarcode());
-                    locMast.setIoTime(now);
-                    locMast.setModiTime(now);
-                    if (!locMastService.updateById(locMast)) {
-                        exceptionHandle(""); // todo
-                    }
-                }
-                break;
-            // 骞舵澘鍏ュ簱
-            case 54:
-                // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
-                List<WrkDetl> wrkDetls54 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
-                if (wrkDetls54.isEmpty()) {
-                    exceptionHandle(""); // todo
-                }
-                // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
-                for (WrkDetl wrkDetl:wrkDetls54) {
-                    LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()).eq("matnr", wrkDetl.getMatnr()));
-                    if (null != locDetl) {
-                        if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr())) {
-                            exceptionHandle(""); // todo
-                        }
-                    } else {
-                        locDetl = new LocDetl(
-                                wrkMast.getLocNo(), // 搴撲綅鍙�
-                                wrkDetl.getMatnr(), // 鐗╂枡鍙�
-                                null,    // 浠撳簱鍙�
-                                null,    // 杞偍璇锋眰缂栧彿
-                                null,    // 琛岄」鐩�
-                                null,    // 鐗╂枡鏍囩ID
-                                wrkDetl.getMaktx(),    // 鐗╂枡鎻忚堪
-                                null,    // 宸ュ巶
-                                wrkDetl.getAnfme(),    // 鏁伴噺
-                                wrkDetl.getAltme(),    // 鍗曚綅
-                                wrkDetl.getZpallet(),    // 鎵樼洏鏉$爜
-                                null,    // 鐢ㄦ埛ID
-                                null,    // 澶囨敞
-                                null,    // 淇敼浜哄憳
-                                now,    // 淇敼鏃堕棿
-                                null,    // 鍒涘缓鑰�
-                                now    // 娣诲姞鏃堕棿
-                        );
-                        if (!locDetlService.insert(locDetl)) {
-                            exceptionHandle(""); // todo
-                        }
-                    }
-                    // todo:luxiaotao 3)淇敼鍑哄簱閫氱煡妗� status ==> Y
-                }
-                // 淇敼搴撲綅鐘舵�� Q ====>> F
-                if (locMast.getLocType().equals("Q")) {
-                    locMast.setLocType("F");
-                    locMast.setBarcode(wrkMast.getBarcode());
-                    locMast.setIoTime(now);
-                    locMast.setModiTime(now);
-                    if (!locMastService.updateById(locMast)) {
-                        exceptionHandle(""); // todo
-                    }
-                }
-                break;
-            case 57:
-                break;
-            case 11:
-                break;
-            default:
-                break;
-        }
-    }
-
-    private void doOut(WrkMast wrkMast){
-
-    }
-
-
-
-
-    public static void main(String[] args) {
-        for (int i = 0;i<10;i++) {
-
-            try {
-
-                System.out.println("====" + i);
-                if (i == 5){
-                    throw new Exception("dsa");
-                }
-                System.out.println("----" + i);
-
-            } catch (Exception e) {
-                e.printStackTrace();
+        try {
+            if (null == locMast) {
+//                exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return FAIL.setMsg("宸ヤ綔妗workNo=" + wrkMast.getWrkNo() + "]搴撲綅鍙烽敊璇痆locNo=" + wrkMast.getLocNo() + "]");
             }
+            assert locMast != null;
+            switch (wrkMast.getIoType()) {
+                // 绌烘澘鍏ュ簱
+                case 10:
+                    // 淇敼搴撲綅鐘舵��=D
+                    if (locMast.getLocSts().equals("S") || locMast.getLocSts().equals("Q")) {
+                        if (!Cools.isEmpty(wrkMast.getBarcode())) {
+                            locMast.setBarcode(wrkMast.getBarcode());
+                        }
+                        locMast.setLocSts("D");
+                        locMast.setIoTime(now);
+                        locMast.setModiTime(now);
+                        if (!locMastService.updateById(locMast)) {
+//                            exceptionHandle("绌烘澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("绌烘澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        }
+                    }
+                    break;
+                // 鍏ㄦ澘鍏ュ簱
+                case 1:
+                    // 娓呴櫎鎵�灞炲簱浣嶄箣鍓嶇殑搴撳瓨鏄庣粏
+                    List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
+                    if (!locDetls.isEmpty()) {
+                        locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
+                    }
+                    // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                    List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (wrkDetls.isEmpty()) {
+//                        exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪锛沎workNo={0}]", wrkMast.getWrkNo());
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                    }
+                    // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
+                    for (WrkDetl wrkDetl : wrkDetls) {
 
+//                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+//                        if (null != locDetl) {
+//                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+////                                exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+//                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                                return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+//                            }
+//                        } else {
+                        LocDetl locDetl = new LocDetl();
+                            locDetl.sync(wrkDetl);
+                            locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
+                            locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
+                            locDetl.setZpallet(wrkMast.getBarcode()); // 鎵樼洏鏉$爜
+                            locDetl.setBarcode(wrkMast.getBarcode());
+                            locDetl.setModiTime(now);
+                            locDetl.setAppeTime(now);
+                            locDetl.setBatch("");
+                            if (!locDetlService.insert(locDetl)) {
+//                                exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            }
+//                        }
 
+                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+                        if (orderDetl==null){
+                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+                        }
+                        try {
+                            if(!Cools.isEmpty(orderDetl)){
+                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+                                        orderDetl.getBatch(),wrkDetl.getAnfme())){
+//                                    exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                    return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                                }
+                            }
+                        } catch (Exception ignore){}
 
+                    }
+                    // 淇敼搴撲綅鐘舵�� S ====>> F
+                    if (locMast.getLocSts().equals("S")) {
+                        locMast.setLocSts("F");
+                        locMast.setBarcode(wrkMast.getBarcode());
+                        locMast.setSheetNo("0");
+                        locMast.setIoTime(now);
+                        locMast.setModiTime(now);
+                        if (!locMastService.updateById(locMast)) {
+//                            exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        }
+                    }
+                    break;
+                // 鎷f枡鍏ュ簱
+                case 53:
+                    // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                    List<WrkDetl> wrkDetls53 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (wrkDetls53.isEmpty()) {
+//                        exceptionHandle("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                    }
+                    for (WrkDetl wrkDetl : wrkDetls53) {
+
+//                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+                        // 绠卞彿+鍗峰彿
+                        LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("batch",wrkDetl.getBatch())
+                                .eq("model",wrkDetl.getModel()));
+                        if (null != locDetl) {
+
+//                            if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+                            if (!locDetlService.updateAnfme2(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getModel(), wrkDetl.getBatch())) {
+//                                exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            }
+                        }
+
+                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+//                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+//                        if (orderDetl==null){
+//                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+//                        }
+//                        try {
+//                            if(!Cools.isEmpty(orderDetl)){
+//                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+//                                        orderDetl.getBatch(),wrkDetl.getAnfme())){
+////                                    exceptionHandle("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+////                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+//                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                                    return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+//                                }
+//                            }
+//                        } catch (Exception ignore){}
+
+                    }
+
+                    // 淇敼鎹℃枡鍏ュ簱鐨勫簱瀛樻槑缁嗙殑鐞嗚揣鐘舵�佷负寰呯悊璐�
+                    locDetlMapper.updateLhStsByLocNo(wrkMast.getLocNo(),0);
+
+                    // 淇敼搴撲綅鐘舵�� Q ====>> F
+                    if (locMast.getLocSts().equals("Q")) {
+                        locMast.setLocSts("F");
+                        locMast.setBarcode(wrkMast.getBarcode());
+                        locMast.setSheetNo("0");
+                        locMast.setIoTime(now);
+                        locMast.setModiTime(now);
+                        if (!locMastService.updateById(locMast)) {
+//                            exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        }
+                    }
+                    break;
+                // 骞舵澘鍏ュ簱
+                case 54:
+                    // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                    List<WrkDetl> wrkDetls54 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (wrkDetls54.isEmpty()) {
+//                        exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                    }
+                    // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
+                    for (WrkDetl wrkDetl:wrkDetls54) {
+
+                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+                        if (null != locDetl) {
+                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+//                                exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            }
+                        } else {
+                            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());
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            }
+                        }
+                    }
+                    // 淇敼搴撲綅鐘舵�� Q ====>> F
+                    if (locMast.getLocSts().equals("Q")) {
+                        locMast.setLocSts("F");
+                        locMast.setBarcode(wrkMast.getBarcode());
+                        locMast.setSheetNo("0");
+                        locMast.setIoTime(now);
+                        locMast.setModiTime(now);
+                        if (!locMastService.updateById(locMast)) {
+//                            exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        }
+                    }
+                    break;
+                // 鐩樼偣鍏ュ簱
+                case 57:
+                    // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                    List<WrkDetl> wrkDetls57 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (wrkDetls57.isEmpty()) {
+//                        exceptionHandle("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                    }
+                    for(WrkDetl wrkDetl : wrkDetls57) {
+                        if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                            orderDetlMapper.updateOrderDetlQtyByGroupNo(wrkDetl.getOrderNo(), wrkDetl.getBrand());
+                        }
+//                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+//                        if (orderDetl==null){
+//                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+//                        }
+//                        try {
+//                            if(!Cools.isEmpty(orderDetl)){
+//                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+//                                        orderDetl.getBatch(),wrkDetl.getAnfme())){
+////                                    exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+////                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+//                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                                    return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+//                                }
+//                            }
+//                        } catch (Exception ignore){}
+                    }
+                    // 淇敼搴撲綅鐘舵�� Q ====>> F
+                    if (locMast.getLocSts().equals("Q")) {
+                        locMast.setLocSts(wrkMast.getFullPlt().equals("Y")?"F":"D");
+                        locMast.setBarcode(wrkMast.getBarcode());
+                        locMast.setSheetNo("0");
+                        locMast.setIoTime(now);
+                        locMast.setModiTime(now);
+                        if (!locMastService.updateById(locMast)) {
+//                            exceptionHandle("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        }
+                    }
+                    break;
+                // 搴撲綅绉昏浆
+                case 11:
+                    // 榛樿鐩爣搴撲綅鏄┖鏉�
+                    String locSts = "D";
+                    // 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
+                    if (wrkMast.getEmptyMk().equals("N")) {
+                        locSts = "F";
+                        // 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
+                        if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
+//                            exceptionHandle("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={0}],[鐩爣搴撲綅={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        }
+                    }
+                    // 澶囪揣锛屾洿鏂拌鍗曟槑缁嗗強璁㈠崟鐘舵��
+                    List<WrkDetl> wrkDetlList = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (!wrkDetlList.isEmpty()) {
+                        List<String> brands = wrkDetlList.stream().map(WrkDetl::getBrand).distinct().collect(Collectors.toList());
+                        // 鏌ヨ璁㈠崟鏄庣粏
+                        List<OrderDetl> orderDetlList = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().in("brand", brands));
+                        if (!orderDetlList.isEmpty()) {
+                            // 鏇存柊鏄庣粏涓哄凡澶囪揣
+                            orderDetlMapper.updateOrderDetlStatusByPackageNo(brands,2);
+                            // 鑾峰彇璁㈠崟鍙�
+                            String orderNo = orderDetlList.get(0).getOrderNo();
+                            // 鍒ゆ柇璇ヨ鍗曟槑缁嗘槸鍚﹀叏閮ㄥ凡澶囪揣
+                            Integer selectCount = orderDetlMapper.selectCount(new EntityWrapper<OrderDetl>().eq("order_no", orderNo).ne("inspect", 2));
+                            if (selectCount == 0) {
+                                // 鏇存柊璁㈠崟涓哄璐у畬鎴�
+                                orderMapper.updateStatusByOrderNo(orderNo,2,29);
+                            }
+                        }
+                    }
+
+                    // 淇敼婧愬簱浣嶇姸鎬� ==> O
+                    LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
+                    if (null != sourceLoc) {
+                        sourceLoc.setBarcode("");
+                        sourceLoc.setLocSts("O");
+                        sourceLoc.setSheetNo("0");
+                        sourceLoc.setModiTime(now);
+                        sourceLoc.setIoTime(now);
+                        if (!locMastService.updateById(sourceLoc)) {
+//                            exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        }
+                    }
+                    // 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts
+                    locMast.setLocSts(locSts);
+                    locMast.setBarcode(wrkMast.getBarcode());
+                    locMast.setSheetNo("0");
+                    locMast.setIoTime(now);
+                    locMast.setModiTime(now);
+                    if (!locMastService.updateById(locMast)) {
+//                        exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                    }
+                    break;
+                // 璺ㄥ贩閬撳簱浣嶇Щ杞畬鎴�
+                case 12:
+                    // 榛樿鐩爣搴撲綅鏄┖鏉�
+                    String locSts2 = "D";
+                    // 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
+                    if (wrkMast.getEmptyMk().equals("N")) {
+                        locSts2 = "F";
+                        // 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
+                        if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
+//                            exceptionHandle("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={0}],[鐩爣搴撲綅={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        }
+                    }
+                    // 璺ㄥ贩閬撶Щ搴擄紝鏇存柊璁㈠崟鏄庣粏鍙婅鍗曠姸鎬�
+                    List<WrkDetl> wrkDetlList2 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (!wrkDetlList2.isEmpty()) {
+                        // 鍒ゆ柇鏈夋棤鍗曟嵁缂栧彿
+                        Optional<WrkDetl> any = wrkDetlList2.stream().filter(wrkDetl -> wrkDetl.getOrderNo() != null).findAny();
+                        if (any.isPresent()) {
+                            String orderNo = any.get().getOrderNo();
+                            // 鏍规嵁鍗曟嵁缂栧彿鍜屽簱浣嶅彿鏌ヨ鍗曟嵁鏄庣粏
+                            List<OrderDetl> orderDetlList = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().in("order_no",orderNo).eq("specs",wrkMast.getSourceLocNo()));
+                            // 鏇存柊鍗曟嵁鏄庣粏鐨勭Щ搴撶姸鎬�
+                            for(OrderDetl orderDetl: orderDetlList) {
+                                orderDetl.setDanger(2);
+                                orderDetl.setUpdateTime(now);
+                                orderDetlMapper.updateById(orderDetl);
+                            }
+                            // 鍒ゆ柇鍗曟嵁鏄庣粏鏄笉鏄叏閮ㄧЩ搴撳畬鎴�
+                            Integer count = orderDetlMapper.selectCount(new EntityWrapper<OrderDetl>().lt("danger", 2).eq("order_no", orderNo));
+                            if (count == 0) {
+                                // 鏇存柊鍗曟嵁涓哄凡瀹屾垚
+                                orderMapper.updateSettleByOrderNo(orderNo,4,null);
+                            }
+                        }
+                    } else { // 绌烘澘杞Щ娌℃湁宸ヤ綔鏄庣粏,浣嗘槸瑕佹洿鏂板崟鎹槑缁嗙姸鎬�
+
+                        // 鍙湁涓�鏉′綔涓氫腑鐨勭Щ搴撳崟鎹�
+                        List<Order> orderList = orderMapper.selectList(new EntityWrapper<Order>().eq("doc_type", 24).le("settle", 3));
+                        if(orderList.isEmpty()) {
+                            log.error("娌℃湁鑾峰彇鍒版鍦ㄦ墽琛屼腑鐨勭Щ搴撳崟鎹�");
+                        } else {
+                            Order order = orderList.get(0);
+                            // 鏍规嵁鍗曟嵁缂栧彿鍜屽簱浣嶅彿鏌ヨ鍗曟嵁鏄庣粏
+                            List<OrderDetl> orderDetlList = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().in("order_no",order.getOrderNo()).eq("specs",wrkMast.getSourceLocNo()));
+                            // 鏇存柊鍗曟嵁鏄庣粏鐨勭Щ搴撶姸鎬�
+                            for(OrderDetl orderDetl: orderDetlList) {
+                                orderDetl.setDanger(2);
+                                orderDetl.setUpdateTime(now);
+                                orderDetlMapper.updateById(orderDetl);
+                            }
+                            // 鍒ゆ柇鍗曟嵁鏄庣粏鏄笉鏄叏閮ㄧЩ搴撳畬鎴�
+                            Integer count = orderDetlMapper.selectCount(new EntityWrapper<OrderDetl>().lt("danger", 2).eq("order_no", order.getOrderNo()));
+                            if (count == 0) {
+                                // 鏇存柊鍗曟嵁涓哄凡瀹屾垚
+                                orderMapper.updateSettleByOrderNo(order.getOrderNo(),4,null);
+                            }
+                        }
+
+                    }
+
+                    // 淇敼婧愬簱浣嶇姸鎬� ==> O
+                    LocMast sourceLoc2 = locMastService.selectById(wrkMast.getSourceLocNo());
+                    if (null != sourceLoc2) {
+                        sourceLoc2.setBarcode("");
+                        sourceLoc2.setLocSts("O");
+                        sourceLoc2.setSheetNo("0");
+                        sourceLoc2.setModiTime(now);
+                        sourceLoc2.setIoTime(now);
+                        if (!locMastService.updateById(sourceLoc2)) {
+//                            exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        }
+                    }
+                    // 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts
+                    locMast.setLocSts(locSts2);
+                    locMast.setBarcode(wrkMast.getBarcode());
+                    locMast.setSheetNo("0");
+                    locMast.setIoTime(now);
+                    locMast.setModiTime(now);
+                    if (!locMastService.updateById(locMast)) {
+//                        exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                    }
+                    break;
+                // 绌洪棽鐞嗚揣鍏ュ簱
+                case 59:
+
+                    // 淇敼搴撲綅鐘舵�� S ====>> F
+                    if (locMast.getLocSts().equals("S")) {
+                        locMast.setLocSts("F");
+                        locMast.setModiTime(now);
+                        locMastService.updateById(locMast);
+                    }
+
+                    // 淇敼绌洪棽鐞嗚揣鍏ュ簱鐨勫簱瀛樻槑缁嗙殑鐞嗚揣鐘舵�佷负寰呯悊璐�
+                    locDetlMapper.updateLhStsByLocNo(wrkMast.getLocNo(),0);
+                    break;
+                default:
+                    break;
+            }
+            // 淇敼宸ヤ綔涓绘。鐘舵��
+            wrkMast.setWrkSts(5L);
+            wrkMast.setModiTime(now);
+            if (!wrkMastService.updateById(wrkMast)) {
+//                exceptionHandle("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return FAIL.setMsg("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+            }
+        } catch (Exception e) {
+            log.error("fail", e);
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return FAIL.setMsg(e.getMessage());
         }
+        return SUCCESS;
+    }
+
+    private ReturnT<String> doOut(WrkMast wrkMast){
+        Date now = new Date();
+        LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+        try {
+            if (null == locMast) {
+//                exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return FAIL.setMsg("宸ヤ綔妗e簱浣嶅彿閿欒; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+            }
+            assert locMast != null;
+            switch (wrkMast.getIoType()) {
+                // 鍏ㄦ澘鍑哄簱
+                case 101:
+//                    // 鍑哄簱纭淇″彿浣�
+//                    if (Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N")) {
+//                        return SUCCESS;
+//                    }
+                    // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                    List<WrkDetl> wrkDetls101 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (wrkDetls101.isEmpty()) {
+//                        exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                    }
+                    for (WrkDetl wrkDetl : wrkDetls101) {
+                        if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                            orderDetlMapper.updateOrderDetlQtyByGroupNo(wrkDetl.getOrderNo(), wrkDetl.getBrand());
+                        }
+                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+//                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+//                        if (orderDetl==null){
+//                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
+//                        }
+//                        // 绠卞彿+鍗峰彿
+//                        OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("batch",wrkDetl.getBatch())
+//                                .eq("model",wrkDetl.getModel()));
+//
+//                        try {
+//                            if(!Cools.isEmpty(orderDetl)){
+//                                // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+////                                orderDetlService.update(null,new EntityWrapper<OrderDetl>().eq("order_no",orderDetl.getOrderNo())
+////                                        .eq("batch",orderDetl.getBatch()).eq("model", orderDetl.getModel()));
+//                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), orderDetl.getModel(),
+//                                        orderDetl.getBatch(),wrkDetl.getAnfme())){
+////                                    exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+////                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+//                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                                    return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+//                                }
+//                            }
+//                        } catch (Exception ignore){}
+                    }
+                    // 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁�
+                    if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
+//                        exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                    }
+                    // 淇敼婧愬簱浣嶇姸鎬� R ===>> O
+                    if (locMast.getLocSts().equals("R")) {
+                        locMast.setLocSts("O");
+                        locMast.setBarcode("");
+                        locMast.setSheetNo("0");
+                        locMast.setModiTime(now);
+                        locMast.setIoTime(now);
+                        if (!locMastService.updateById(locMast)) {
+//                            exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                        }
+                    }
+                    break;
+                // 绌烘澘鍑哄簱
+                case 110:
+                    // 淇敼搴撲綅鐘舵�� R ===>> O
+                    if (locMast.getLocSts().equals("R")) {
+                        locMast.setLocSts("O");
+                        locMast.setBarcode("");
+                        locMast.setModiTime(now);
+                        locMast.setIoTime(now);
+                        if (!locMastService.updateById(locMast)) {
+//                            exceptionHandle("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                        }
+                    }
+                    break;
+                // 鐞嗚揣璐存爣鍑哄簱
+                case 111:
+                    List<WrkDetl> wrkDetls111 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (wrkDetls111.isEmpty()) {
+//                        exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                    }
+                    for (WrkDetl wrkDetl : wrkDetls111) {
+                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                        if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                            orderDetlMapper.updateOrderDetlQtyByGroupNo(wrkDetl.getOrderNo(), wrkDetl.getBrand());
+                        }
+//                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+//                        if (orderDetl == null) {
+//                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+//                        }
+//                        try {
+//                            if (!Cools.isEmpty(orderDetl)) {
+//                                if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+//                                        orderDetl.getBatch(), wrkDetl.getAnfme())) {
+////                                    exceptionHandle("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+////                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+//                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                                    return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+//                                }
+//                            }
+//                        } catch (Exception ignore) {
+//                        }
+                    }
+                    break;
+                default:
+                    break;
+            }
+            // 淇敼宸ヤ綔涓绘。鐘舵��
+            wrkMast.setWrkSts(15L);
+            wrkMast.setModiTime(now);
+            if (!wrkMastService.updateById(wrkMast)) {
+//                exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return FAIL.setMsg("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+            }
+        } catch (Exception e) {
+            log.error("fail", e);
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return FAIL.setMsg(e.getMessage());
+        }
+        return SUCCESS;
     }
 
 }

--
Gitblit v1.9.1