From c28812eb7e5afa79cb5e2f4fbee7f96c7d7767ed Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期五, 03 四月 2026 14:33:22 +0800
Subject: [PATCH] AGV出库,立库查询库存优化

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  217 ++++++++++++++++++++++++++++++++----------------------
 1 files changed, 129 insertions(+), 88 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 68a48e4..0703a78 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -5,23 +5,20 @@
 import com.core.common.BaseRes;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
-import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.EmptyPlateOutParam;
 import com.zy.asrs.entity.param.FullStoreParam;
 import com.zy.asrs.entity.param.LocDetlAdjustParam;
 import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.enums.ContainerType;
 import com.zy.asrs.enums.LocAreaType;
-import com.zy.asrs.enums.LocStsType;
-import com.zy.asrs.enums.TaskIOType;
 import com.zy.asrs.mapper.LocMastMapper;
 import com.zy.asrs.entity.result.FindLocNoAttributeVo;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.OrderInAndOutUtil;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.*;
-import com.zy.common.model.enumUtils.OrderEnumVo;
 import com.zy.common.model.enums.IoWorkType;
 import com.zy.common.model.enums.WorkNoType;
 import com.zy.common.properties.SlaveProperties;
@@ -124,7 +121,23 @@
 //        List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
 //        List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList());
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(param.getList().get(0));
-        StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), findLocNoAttributeVo, locTypeDto);
+
+//        BasContainer container = basContainerService.selectOne(new EntityWrapper<BasContainer>().eq("barcode", param.getBarcode()));
+//        if (Objects.isNull(container)) {
+//            throw new CoolException("瀹瑰櫒缂栫爜鏈淮鎶わ紝璇风淮鎶ゅ悗鍐嶆搷浣滐紒锛�");
+//        }
+//
+//        Integer whsType = 1;
+//        Short lcoType = 1;
+//        //鐢ㄤ簬鍒ゆ柇鏂欑鎵樼洏锛屾枡绠憋紝绗兼
+//        if (!container.getType().equals(ContainerType.CONTAINER_TYPE_BOX.type)) {
+//            whsType = 2;
+//            if (container.getType().equals(ContainerType.CONTAINER_TYPE_SALVER.type)) {
+//                lcoType = 2;
+//            }
+//        }
+
+        StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), sourceStaNo.getDevNo(), findLocNoAttributeVo, locTypeDto);
         if (Cools.isEmpty(dto)) {
             throw new CoolException("鏌ヨ搴撲綅澶辫触锛侊紒==銆媠tartupFullPutStore ==銆� commonService.getLocNo");
         }
@@ -287,7 +300,9 @@
                                 locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3(), locDetl.getAnfme(), locDetl.getThreeCode()));
                         locDetl.setOwner(param.getOwnerId());
                         try {
-                            locDetlService.update(locDetl, new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr", locDetl.getMatnr()));
+                            locDetlService.update(locDetl, new EntityWrapper<LocDetl>().eq("loc_no", locNo)
+                                    .eq("supp_code", locDetl.getStandby1())
+                                    .eq("matnr", locDetl.getMatnr()));
                         } catch (Exception e) {
                             throw new Exception("鏇存柊搴撳瓨鏄庣粏鎷ユ湁鑰呭瓧娈典俊鎭嚭閿欎簡");
                         }
@@ -420,17 +435,18 @@
         String orderNo = taskDto.getLocDtos().get(0).getOrderNo();
 //        OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo);
 
-        int ioType =  (taskDto.isAll() ? 101 : 103);
-        if(ioType == 101){
+//        int ioType = (taskDto.isAll() ? 101 : 103);
+        int ioType = 103;
+        if (ioType == 101) {
             boolean DiffQty = taskDto.getLocDtos().stream().allMatch(locDto ->
                     locDetlService.selectOne(new EntityWrapper<LocDetl>()
                             .eq("loc_no", locDto.getLocNo())
                             .eq("matnr", locDto.getMatnr())
-                            .eq("batch", locDto.getBatch())
-                            .eq("standby1",locDto.getStandby1())
+                            .eq(!Cools.isEmpty(locDto.getBatch()), "batch", locDto.getBatch())
+                            .eq("standby1", locDto.getStandby1())
                     ).getDiffQty().compareTo(BigDecimal.ZERO) == 0
             );
-            if (!DiffQty){
+            if (!DiffQty) {
                 ioType = 103;
             }
         }
@@ -468,7 +484,7 @@
             }
 //            OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
             OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getBrand()
-                    , locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3());
+                    , locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), "1", locDto.getBoxType2(), locDto.getBoxType3());
 //            if (orderDetl == null) {
 ////                orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
 //                orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), null);
@@ -479,6 +495,7 @@
             wrkDetl.setZpallet(wrkMast.getBarcode());
             wrkDetl.setIoTime(now);
             wrkDetl.setWrkNo(workNo);
+            wrkDetl.setBoxType1(locDto.getBoxType1());
             wrkDetl.setBatch(locDto.getBatch());
             wrkDetl.setOrderNo(locDto.getOrderNo());
             wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
@@ -496,7 +513,7 @@
 //            orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
             OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE, orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(),
                     orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(),
-                    orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3()
+                    "1", orderDetl.getBoxType2(), orderDetl.getBoxType3()
                     , locDto.getAnfme());
             OrderInAndOutUtil.updateOrder(Boolean.FALSE, orderDetl.getOrderId(), 2L, userId);
         }
@@ -518,7 +535,8 @@
     @Transactional(rollbackFor = Exception.class)
     public void checkStockOut(BasDevp staNo, TaskDto taskDto, Long userId) {
         Date now = new Date();
-        List<LocDto> locDtos = taskDto.getLocDtos();
+        List<LocDto> locDtos = taskDto.getLocDtos().stream().distinct().collect(Collectors.toList());
+//        Map<String, List<LocDto>> collect = taskDto.getLocDtos().stream().collect(Collectors.groupingBy(LocDto::getLocNo));
         for (LocDto locDto : locDtos) {
             if (!taskDto.getLocNo().equals(locDto.getLocNo()) && !taskDto.getStaNo().equals(locDto.getStaNo())) {
                 throw new CoolException("璁㈠崟鍑哄簱寮傚父锛岃鑱旂郴绠$悊鍛�");
@@ -555,27 +573,27 @@
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + taskDto.getLocNo());
         }
         // 鐢熸垚宸ヤ綔妗f槑缁�
-        for (LocDto locDto : taskDto.getLocDtos()) {
+        for (LocDto locDto : locDtos) {
             if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) {
                 continue;
             }
 
-            List<CheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<CheckOrderDetl>()
+            CheckOrderDetl checkOrderDetls = checkOrderDetlService.selectOne(new EntityWrapper<CheckOrderDetl>()
                     .eq("loc_no", locDto.getLocNo())
                     .eq("matnr", locDto.getMatnr())
-                    .eq("batch", locDto.getBatch())
-                    .eq("order_no", locDto.getOrderNo())
-            );
+                    .eq("supp_code", locDto.getSuppCode())
+                    .eq("order_no", locDto.getOrderNo()));
 
-            if (checkOrderDetls.size() > 1) {
+            if (Objects.isNull(checkOrderDetls)) {
                 throw new CoolException("鏁版嵁澶т簬1,璇锋鏌ユ暟鎹�");
             }
 
             WrkDetl wrkDetl = new WrkDetl();
-            wrkDetl.sync(checkOrderDetls.get(0));
-            wrkDetl.setOrderId(checkOrderDetls.get(0).getId());
+            wrkDetl.sync(checkOrderDetls);
+            wrkDetl.setOrderId(checkOrderDetls.getId());
             wrkDetl.setZpallet(wrkMast.getBarcode());
             wrkDetl.setIoTime(now);
+            wrkDetl.setBoxType1(locDto.getBoxType1());
             wrkDetl.setWrkNo(workNo);
             wrkDetl.setBatch(locDto.getBatch());
             wrkDetl.setOrderNo(locDto.getOrderNo());
@@ -588,8 +606,8 @@
                 throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
             }
             // 淇敼璁㈠崟鏄庣粏
-            checkOrderDetls.get(0).setStatus(2);
-            if (!checkOrderDetlService.updateById(checkOrderDetls.get(0))){
+            checkOrderDetls.setStatus(2);
+            if (!checkOrderDetlService.updateById(checkOrderDetls)) {
                 throw new CoolException("淇濆瓨璁㈠崟鏄庣粏澶辫触");
             }
         }
@@ -619,14 +637,14 @@
         }
         // 鑾峰彇搴撲綅
         LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", taskDto.getLocNo()));
-        int ioType = (taskDto.isAll() ? 101 : 103);
+        int ioType = 103;
         // 鐢熸垚宸ヤ綔鍙�
-        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+        int workNo = commonService.getWorkNo(4);
 
         Task task = new Task();
         task.setWrkNo(workNo)
                 .setIoTime(new Date())
-                .setWrkSts(11L) // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+                .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
                 .setIoType(ioType) // 鍏ュ嚭搴撶姸鎬�
                 .setTaskType("agv")
                 .setIoPri(10D)
@@ -666,6 +684,7 @@
                     .setIoTime(new Date())
                     .setOrderNo(locDto.getOrderNo())
                     .setAnfme(locDto.getAnfme())
+                    .setBoxType1(locDto.getBoxType1())
                     .setZpallet(locCache.getBarcode())
                     .setBatch(locDto.getBatch())
                     .setAppeUser(userId)
@@ -681,7 +700,7 @@
 //            orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
             OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE, orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(),
                     orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(),
-                    orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3()
+                    "1", orderDetl.getBoxType2(), orderDetl.getBoxType3()
                     , locDto.getAnfme());
             OrderInAndOutUtil.updateOrder(Boolean.FALSE, orderDetl.getOrderId(), 2L, userId);
         }
@@ -691,7 +710,7 @@
             locCache.setLocSts(ioType == 101 ? "R" : "P");
             locCache.setModiUser(userId);
             locCache.setModiTime(now);
-            if (!locCacheService.updateById(locCache)) {
+            if (!locCacheService.update(locCache, new EntityWrapper<LocCache>().eq("loc_no", locCache.getLocNo()))) {
                 throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + taskDto.getLocNo());
             }
         } else {
@@ -708,7 +727,7 @@
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
 
-        StartupDto dto = commonService.getLocNo(10, devpNo, findLocNoAttributeVo, locTypeDto);
+        StartupDto dto = commonService.getLocNo(10, devpNo, sourceStaNo.getDevNo(), findLocNoAttributeVo, locTypeDto);
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
@@ -784,15 +803,15 @@
                 throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
             }
             // 鑾峰彇婧愮珯
-            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-                    .eq("type_no", 110)
-                    .eq("stn_no", param.getOutSite())
-                    .eq("crn_no", locMast.getCrnNo());
-            StaDesc staDesc = staDescService.selectOne(wrapper);
-            Integer sourceStaNo = staDesc.getCrnStn();
-            if (Cools.isEmpty(sourceStaNo)) {
-                throw new CoolException("妫�绱㈡簮绔欏け璐�");
-            }
+//            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+//                    .eq("type_no", 110)
+//                    .eq("stn_no", param.getOutSite())
+//                    .eq("crn_no", locMast.getCrnNo());
+//            StaDesc staDesc = staDescService.selectOne(wrapper);
+//            Integer sourceStaNo = staDesc.getCrnStn();
+//            if (Cools.isEmpty(sourceStaNo)) {
+//                throw new CoolException("妫�绱㈡簮绔欏け璐�");
+//            }
             Date now = new Date();
             // 淇濆瓨宸ヤ綔妗�
             WrkMast wrkMast = new WrkMast();
@@ -801,9 +820,10 @@
             wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
             wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
             wrkMast.setIoPri(10D);
-            wrkMast.setSourceStaNo(sourceStaNo + ""); // 婧愮珯
+//            wrkMast.setSourceStaNo(sourceStaNo + ""); // 婧愮珯
             wrkMast.setStaNo(param.getOutSite() + ""); // 鐩爣绔�
             wrkMast.setCrnNo(locMast.getCrnNo());
+            wrkMast.setBarcode(locMast.getBarcode());
             wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
             wrkMast.setFullPlt("N"); // 婊℃澘锛歒
             wrkMast.setPicking("N"); // 鎷f枡
@@ -965,7 +985,7 @@
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
         wrkMast.setIoTime(now);
-        wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+        wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
         wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
         wrkMast.setIoPri(10D);
         wrkMast.setCrnNo(sourceLoc.getCrnNo());
@@ -991,6 +1011,7 @@
             wrkDetl.sync(locDetl);
             wrkDetl.setWrkNo(workNo);
             wrkDetl.setIoTime(now);
+            wrkDetl.setBoxType1(locDetl.getBoxType1());
             wrkDetl.setAnfme(locDetl.getAnfme());
             wrkDetl.setAppeTime(now);
             wrkDetl.setAppeUser(userId);
@@ -1109,11 +1130,21 @@
                 if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) {
                     if (!locDetl.getAnfme().equals(adjust.getCount())) {
                         // todo 鐩樼偣璁板綍
-                        // 淇敼搴撳瓨
-                        if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(),
-                                locDetl.getStandby1(), locDetl.getStandby2(), locDetl.getStandby3(), locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3())) {
-                            throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触");
+                        locDetl.setSuppCode(adjust.getSuppCode());
+                        locDetl.setBoxType1(adjust.getBoxType1());
+                        locDetl.setAnfme(adjust.getCount());
+                        locDetl.setStandby1(adjust.getSuppCode());
+//                        locDetl.setZpallet(locDetl.getZpallet());
+
+
+                        if (!locDetlService.update(locDetl, new EntityWrapper<LocDetl>().eq("loc_no", locDetl.getLocNo()))) {
+                            throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getSuppCode() + "渚涘簲鍟嗕慨鏀规暟閲忓け璐�");
                         }
+                        // 淇敼搴撳瓨
+//                        if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(),
+//                                locDetl.getStandby1(), locDetl.getStandby2(), locDetl.getStandby3(), locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3())) {
+//                            throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触");
+//                        }
                         // 淇濆瓨璋冩暣璁板綍
                         AdjDetl adjDetl = new AdjDetl();
                         adjDetl.setLocNo(locDetl.getLocNo());
@@ -1125,8 +1156,10 @@
                         adjDetl.setModiUser(userId);
                         adjDetl.setAppeTime(now);
                         adjDetl.setAppeUser(userId);
-                        adjDetlService.save(adjDetl, userId);
-
+                        if (!adjDetlService.insert(adjDetl)) {
+                            throw new CoolException("璋冩暣璁板綍淇濆瓨澶辫触锛侊紒");
+                        }
+//                        adjDetlService.save(adjDetl, userId);
                         if (updateFlag) {
                             wrkMast.setWrkNo(commonService.getWorkNo(3));
                             wrkMast.setIoType(23);
@@ -1141,6 +1174,7 @@
                         WrkDetlLog wrkDetl = new WrkDetlLog();
                         wrkDetl.sync(locDetl);
                         wrkDetl.setWrkNo(wrkMast.getWrkNo());
+                        wrkDetl.setBoxType1(locDetl.getBoxType1());
                         wrkDetl.setIoTime(wrkMast.getIoTime());
                         wrkDetl.setAnfme(adjust.getCount());
                         wrkDetl.setAppeTime(now);
@@ -1162,7 +1196,7 @@
             // todo 鐩樼偣璁板綍
             if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(),
                     locDetl.getStandby1(), locDetl.getStandby2(), locDetl.getStandby3(), locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3())) {
-                throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿搴撳瓨鏄庣粏澶辫触");
+//                throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿搴撳瓨鏄庣粏澶辫触");
             }
             // 淇濆瓨璋冩暣璁板綍
             AdjDetl adjDetl = new AdjDetl();
@@ -1215,6 +1249,9 @@
             locDetl.setZpallet(locMast.getBarcode());
             locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
             locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
+            locDetl.setSuppCode(adjust.getSuppCode());
+            locDetl.setStandby1(adjust.getSuppCode());
+            locDetl.setBoxType1(adjust.getBoxType1());
             locDetl.setModiTime(now);
             locDetl.setAppeUser(userId);
             locDetl.setAppeTime(now);
@@ -1249,6 +1286,7 @@
             wrkDetl.sync(locDetl);
             wrkDetl.setWrkNo(wrkMast.getWrkNo());
             wrkDetl.setIoTime(wrkMast.getIoTime());
+            wrkDetl.setBoxType1(locDetl.getBoxType1());
             wrkDetl.setAnfme(adjust.getCount());
             wrkDetl.setAppeTime(now);
             wrkDetl.setModiTime(now);
@@ -1282,7 +1320,7 @@
     @Transactional(rollbackFor = Exception.class)
     public void cancelWrkMast(String workNo, Long userId) {
         Date now = new Date();
-        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",workNo));
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo));
         if (Cools.isEmpty(wrkMast)) {
             throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
         }
@@ -1388,8 +1426,7 @@
 
         if (wrkMast.getIoType() == 107) {
             List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-            if (!Cools.isEmpty(wrkDetls.get(0).getOrderNo())){
-
+            if (!Objects.isNull(wrkDetls) && !wrkDetls.isEmpty()) {
                 for (WrkDetl wrkDetl : wrkDetls) {
                     CheckOrderDetl checkOrderDetl = checkOrderDetlService.selectOne(new EntityWrapper<CheckOrderDetl>()
                             .eq("loc_no", wrkMast.getSourceLocNo())
@@ -1397,17 +1434,21 @@
                             .eq("batch", wrkDetl.getBatch())
                             .eq("order_no", wrkDetl.getOrderNo())
                     );
-                    checkOrderDetl.setStatus(1);
-                    checkOrderDetlService.updateById(checkOrderDetl);
+                    if (!Objects.isNull(checkOrderDetl)) {
+                        checkOrderDetl.setStatus(1);
+                        checkOrderDetlService.updateById(checkOrderDetl);
+                    }
                 }
                 CheckOrder checkOrder = checkOrderService.selectOne(new EntityWrapper<CheckOrder>().eq("order_no", wrkDetls.get(0).getOrderNo()));
                 List<CheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<CheckOrderDetl>().eq("order_id", checkOrder.getId()));
                 boolean is = checkOrderDetls.stream().allMatch(item -> item.getStatus().equals(1));
-                checkOrder.setSettle(is?1L:12L);
+                checkOrder.setSettle(is ? 1L : 12L);
                 checkOrderService.updateById(checkOrder);
             }
-
-
+//            if (!Cools.isEmpty(wrkDetls.get(0).getOrderNo())) {
+//
+//
+//            }
         }
 
 //        // 璁㈠崟鍏宠仈
@@ -1478,10 +1519,6 @@
         if (wrkMast.getWrkSts() < 11 || wrkMast.getWrkSts() == 15) {
             throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曡繘琛屾搷浣�");
         }
-        String agvSta = null;
-        if (wrkMast.getIoType() == TaskIOType.MERGE_OUT.type) {
-            agvSta = wrkMast.getAvgSta();
-        }
 
         // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
 //        if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
@@ -1492,22 +1529,22 @@
             throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
         }
         // 鑾峰彇鐩爣绔�
-        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-                .eq("type_no", wrkMast.getIoType() - 50)
-                .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
-                .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
-        StaDesc staDesc = staDescService.selectOne(wrapper);
-        if (Cools.isEmpty(staDesc)) {
-            throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
-        }
+//        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+//                .eq("type_no", wrkMast.getIoType() - 50)
+//                .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+//                .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+//        StaDesc staDesc = staDescService.selectOne(wrapper);
+//        if (Cools.isEmpty(staDesc)) {
+//            throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+//        }
         Date now = new Date();
         // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
-        Integer staNo = staDesc.getCrnStn();
+//        Integer staNo = staDesc.getCrnStn();
         // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
         wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
         wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
         wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
-        wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
+//        wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
         wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
         wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
         wrkMast.setModiTime(now);
@@ -1516,7 +1553,10 @@
             throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
         }
         // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
-        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo()));
+        if (Cools.isEmpty(locMast)) {
+            throw new CoolException("搴撲綅涓嶅瓨鍦�:" + wrkMast.getLocNo());
+        }
         locMast.setLocSts("Q");
         locMast.setAreaId(basAreas.getId());
         locMast.setAreaName(basAreas.getName());
@@ -1527,22 +1567,9 @@
             throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
         }
 
-        // . 鍒犻櫎缂撳瓨绔欑偣鏄庣粏
-        if (!Objects.isNull(agvSta)) {
-            // 淇敼鐩爣绔欑偣淇℃伅
-            BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", agvSta));
-            if (Objects.isNull(station)) {
-                throw new CoolException("绔欑偣涓嶅瓨鍦�!!");
-            }
-            basStationDetlService.delete(new EntityWrapper<BasStationDetl>().eq("dev_no", station.getDevNo()));
-            station.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
-            if (!basStationService.updateById(station)) {
-                throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
-            }
-        }
-        // .淇敼骞舵墭鍏ュ簱鏄庣粏鎵樼爜鐮�
+        // .淇敼骞舵墭鍏ュ簱鏄庣粏鎵樼爜
         List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
-                        .eq("area_id", locMast.getAreaId())
+                .eq("area_id", locMast.getAreaId())
                 .eq("loc_no", locMast.getLocNo()));
         if (!Objects.isNull(locDetls) && !locDetls.isEmpty()) {
             locDetls.forEach(locDetl -> {
@@ -1554,7 +1581,20 @@
             });
         }
 
-
+        // .淇敼浠诲姟妗f槑缁嗘墭鐩樼爜
+        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+        if (!Objects.isNull(wrkDetls) && !wrkDetls.isEmpty()) {
+            for (WrkDetl wrkDetl : wrkDetls) {
+                wrkDetl.setZpallet(wrkMast.getBarcode());
+                wrkDetl.setBarcode(wrkMast.getBarcode());
+                if (!wrkDetlService.update(wrkDetl, new EntityWrapper<WrkDetl>()
+                        .eq("matnr", wrkDetl.getMatnr())
+                        .eq("standby1", wrkDetl.getStandby1())
+                        .eq("wrk_no", wrkMast.getWrkNo()))) {
+                    throw new CoolException("浠诲姟妗f槑缁嗕慨鏀瑰け璐ワ紒锛�");
+                }
+            }
+        }
     }
 
     @Override
@@ -1669,7 +1709,8 @@
         if (Cools.isEmpty(mat)) {
             throw new CoolException("鐩爣搴撲綅鍟嗗搧缂栫爜鏈夎锛�");
         }
-        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getLocDetls().get(0).getMatnr()));
+        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
+                .eq("matnr", param.getLocDetls().get(0).getMatnr()));
         if (Cools.isEmpty(locDetls) || locDetls.size() < 1) {
             throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛�  鍝佸彿锛�" + param.getLocDetls().get(0).getMatnr());
         }

--
Gitblit v1.9.1