From 3a129dc7cbc261d6d73521875f94ff75ba88aa84 Mon Sep 17 00:00:00 2001
From: gt-fuwuqi <3272660260@qq.com>
Date: 星期二, 11 二月 2025 13:05:54 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |  119 ++-------------------------------------
 src/main/java/com/zy/asrs/controller/MobileController.java  |    2 
 src/main/java/com/zy/common/web/WcsController.java          |   20 +++++-
 src/main/java/com/zy/asrs/controller/OutController.java     |   10 +-
 src/main/java/com/zy/common/service/CommonService.java      |    2 
 5 files changed, 30 insertions(+), 123 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index ba1e078..361f7e6 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -285,7 +285,7 @@
         WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                 .eq("barcode", combParam.getBarcode())
                 .eq("io_type", 104)
-                .eq("wrk_sts", 14));
+                .in("wrk_sts", 14,105));
         if (Cools.isEmpty(wrkMast)) {
             mobileService.comb(combParam, getUserId());
             return R.ok("缁勬墭鎴愬姛");
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index c40cac8..ccc2f61 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -155,13 +155,13 @@
                                         .eq("matnr", locDetl.getMatnr()).eq("batch", locDetl.getBatch()));
                                 if (!Cools.isEmpty(locDetl1)) {
                                     ExistDto existDto = new ExistDto();
-                                    existDto.setLocNo(locDetl.getLocNo());
-                                    existDto.setMatnr(locDetl.getMatnr());
+                                    existDto.setLocNo(locDetl1.getLocNo());
+                                    existDto.setMatnr(locDetl1.getMatnr());
                                     if (existDtos.add(existDto)){
                                         if (issued > 0) {
-                                            LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
-                                                    issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
-                                            List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
+                                            LocDto locDto = new LocDto(locDetl1.getLocNo(), locDetl1.getMatnr(), locDetl1.getMaktx(), locDetl1.getBatch(), orderDetl.getOrderNo(),
+                                                    issued >= locDetl1.getAnfme() ? locDetl1.getAnfme() : issued);
+                                            List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl1.getLocNo(), issued >= locDetl1.getAnfme() ? 101 : 103);
                                             List<LocDto.staListDto> maps = new ArrayList<>();
                                             for (Integer staNo : staNos) {
                                                 LocDto.staListDto staListDto = new LocDto.staListDto();
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 8d7d5cd..92fd77b 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -6,7 +6,6 @@
 import com.zy.asrs.entity.*;
 import com.zy.asrs.mapper.BasDevpMapper;
 import com.zy.asrs.service.*;
-import com.zy.asrs.service.impl.ManLocDetlServiceImpl;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 import lombok.extern.slf4j.Slf4j;
@@ -40,10 +39,6 @@
     private WaitPakinService waitPakinService;
     @Autowired
     private OrderDetlService orderDetlService;
-    @Autowired
-    private ManLocDetlService manLocDetlService;
-    @Autowired
-    private NodeService nodeService;
 
     private static final Map<Integer,Integer> sourceSite = new HashMap<>();
     static {
@@ -66,28 +61,14 @@
 
     private ReturnT<String> doIn(WrkMast wrkMast){
         Date now = new Date();
-        LocMast locMast = null;
-        Node node = null;
-        if (wrkMast.getIoType() == 300){
-            node = nodeService.selectOne(new EntityWrapper<Node>().eq("name",wrkMast.getLocNo()).eq("type",3));
-            if (null == node) {
-//                exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return FAIL.setMsg("宸ヤ綔妗workNo=" + wrkMast.getWrkNo() + "]搴撲綅鍙烽敊璇痆locNo=" + wrkMast.getLocNo() + "]");
-            }
-            assert node != null;
-        }else {
-            locMast = locMastService.selectById(wrkMast.getLocNo());
+        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+        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;
-        }
-
-        try {
-
             switch (wrkMast.getIoType()) {
                 // 绌烘澘鍏ュ簱
                 case 10:
@@ -362,61 +343,6 @@
                         return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                     }
                     break;
-                case 300:
-                    // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
-                    List<WrkDetl> wrkDetls300 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
-                    if (wrkDetls300.isEmpty()) {
-//                        exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return FAIL.setMsg("骞冲簱鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                    }
-                    // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
-                    for (WrkDetl wrkDetl:wrkDetls300) {
-
-                        ManLocDetl manLocDetl = manLocDetlService.selectItem(node.getName(), wrkDetl.getMatnr(), wrkDetl.getBatch());
-                        if (null != manLocDetl) {
-                            Double anfme = manLocDetl.getAnfme()+wrkDetl.getAnfme();
-                            if (!manLocDetlService.updateAnfme(anfme, 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 {
-                            manLocDetl = new ManLocDetl();
-                            manLocDetl.sync(wrkDetl);
-                            manLocDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
-                            manLocDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
-                            manLocDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
-                            manLocDetl.setModiTime(now);
-                            manLocDetl.setCreateTime(now);
-                            if (!manLocDetlService.insert(manLocDetl)) {
-//                                exceptionHandle("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
-                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                return FAIL.setMsg("骞冲簱鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                            }
-                        }
-                        if (!Cools.isEmpty(wrkDetl.getOrderNo())){
-                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                            OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
-                            if (orderDetl==null){
-                                orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
-                            }
-                            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){}
-                        }
-
-                    }
-
-                    break;
                 default:
                     break;
             }
@@ -451,24 +377,12 @@
         Date now = new Date();
         LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
         try {
-            Node node = null;
-            if (wrkMast.getIoType() == 301){
-                node = nodeService.selectOne(new EntityWrapper<Node>().eq("name",wrkMast.getSourceLocNo()).eq("type",3));
-                if (null == node) {
+            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 node != null;
-            }else {
-                locMast = locMastService.selectById(wrkMast.getLocNo());
-                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;
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return FAIL.setMsg("宸ヤ綔妗e簱浣嶅彿閿欒; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
             }
+            assert locMast != null;
             switch (wrkMast.getIoType()) {
                 // 鍏ㄦ澘鍑哄簱
                 case 101:
@@ -533,27 +447,6 @@
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                             return FAIL.setMsg("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                         }
-                    }
-                    break;
-                case 301:
-                    List<WrkDetl> wrkDetls301 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
-                    for (WrkDetl wrkDetl : wrkDetls301) {
-                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
-                        if (orderDetl==null){
-                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
-                        }
-                        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.getSourceLocNo() + "]");
-                                }
-                            }
-                        } catch (Exception ignore){}
                     }
                     break;
                 default:
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index a8e9ebf..c22b2dc 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -621,7 +621,7 @@
         if (Cools.isEmpty(locMast) && crnNo != 0) {
             List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                     .eq("bay1", nearRow)
-                    .eq("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue())
+                    .in("loc_sts", "O","X").eq("whs_type",rowLastnoType.getType().longValue())
                     .eq("crn_no",7)
                     .eq("loc_type1",locTypeDto.getLocType1())
                     .orderBy("lev1",true).orderBy("row1",false));//鏈�娴呭簱浣�
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 0fb2cc6..2eab1e8 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -207,7 +207,7 @@
         if (Cools.isEmpty(staDesc)){
             throw new CoolException("鏈壘鍒扮珯鐐硅矾寰�");
         }
-        if (wrkMast.getWrkSts() == 14 && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107)){
+        if (wrkMast.getWrkSts() == 14 && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107 || wrkMast.getIoType() == 104)){
             try {
                 // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
 //                if (wrkMastService.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
@@ -414,7 +414,7 @@
         }
         WrkMast wrkMastPakin = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                 .eq("barcode", param.getBarcode())
-                .in("io_type", 103,53,107,57)
+                .in("io_type", 103,53,107,57,104,54)
                 .eq("wrk_sts",14));
         if (!Cools.isEmpty(wrkMastPakin)){
             StartupDto locNo3 = getLocNo3(param);
@@ -528,7 +528,21 @@
         // 妫�绱㈠簱浣�
         List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
         List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
-        StartupDto dto = commonService.getLocNo( 1, devpNo, matnrs.get(0),batchs.get(0),null, locTypeDto, matnrs.size() > 1);
+        boolean mixtrue =false;
+
+        if (matnrs.size() == 1 && batchs.size() == 1) {
+
+        }else if(matnrs.size() > 1 && batchs.size() == 1) {
+            mixtrue = true;
+        }else if(matnrs.size() == 1 && batchs.size() > 1) {
+            mixtrue = true;
+        }else if(matnrs.size() > 1 && batchs.size() > 1) {
+            mixtrue = true;
+        }
+        StartupDto dto = commonService.getLocNo( 1, devpNo, matnrs.get(0),batchs.get(0),null, locTypeDto, mixtrue);
+        if (Cools.isEmpty(dto)){
+            throw new CoolException("鏈壘鍒板簱浣嶄俊鎭�");
+        }
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�

--
Gitblit v1.9.1