From 707d414c0e6a8baff3ce7affec820f0fc1a13c19 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期二, 24 二月 2026 09:06:04 +0800
Subject: [PATCH] no message

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  131 ++++++++++++++++++++++++++++++-------------
 1 files changed, 90 insertions(+), 41 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 c175ce5..fe251d2 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -5,20 +5,19 @@
 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.LocAreaType;
 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;
@@ -99,6 +98,12 @@
     private TaskService taskService;
     @Autowired
     private TaskDetlService taskDetlService;
+    @Autowired
+    private BasStationService basStationService;
+    @Autowired
+    private BasStationDetlService basStationDetlService;
+    @Autowired
+    private BasAreasService basAreasService;
 
     @Override
     @Transactional
@@ -115,7 +120,7 @@
 //        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);
+        StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), sourceStaNo.getDevNo(), findLocNoAttributeVo, locTypeDto);
         if (Cools.isEmpty(dto)) {
             throw new CoolException("鏌ヨ搴撲綅澶辫触锛侊紒==銆媠tartupFullPutStore ==銆� commonService.getLocNo");
         }
@@ -278,7 +283,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("鏇存柊搴撳瓨鏄庣粏鎷ユ湁鑰呭瓧娈典俊鎭嚭閿欎簡");
                         }
@@ -411,17 +418,17 @@
         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);
+        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;
             }
         }
@@ -459,7 +466,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);
@@ -487,7 +494,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);
         }
@@ -554,7 +561,7 @@
             List<CheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<CheckOrderDetl>()
                     .eq("loc_no", locDto.getLocNo())
                     .eq("matnr", locDto.getMatnr())
-                    .eq("batch", locDto.getBatch())
+                    .eq(!Cools.isEmpty(locDto.getBatch()),"batch", locDto.getBatch())
                     .eq("order_no", locDto.getOrderNo())
             );
 
@@ -580,7 +587,7 @@
             }
             // 淇敼璁㈠崟鏄庣粏
             checkOrderDetls.get(0).setStatus(2);
-            if (!checkOrderDetlService.updateById(checkOrderDetls.get(0))){
+            if (!checkOrderDetlService.updateById(checkOrderDetls.get(0))) {
                 throw new CoolException("淇濆瓨璁㈠崟鏄庣粏澶辫触");
             }
         }
@@ -672,7 +679,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);
         }
@@ -699,7 +706,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();
         // 鐢熸垚宸ヤ綔妗�
@@ -775,15 +782,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();
@@ -792,9 +799,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枡
@@ -956,7 +964,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());
@@ -1273,7 +1281,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笉瀛樺湪");
         }
@@ -1379,7 +1387,7 @@
 
         if (wrkMast.getIoType() == 107) {
             List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-            if (!Cools.isEmpty(wrkDetls.get(0).getOrderNo())){
+            if (!Cools.isEmpty(wrkDetls.get(0).getOrderNo())) {
 
                 for (WrkDetl wrkDetl : wrkDetls) {
                     CheckOrderDetl checkOrderDetl = checkOrderDetlService.selectOne(new EntityWrapper<CheckOrderDetl>()
@@ -1394,7 +1402,7 @@
                 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);
             }
 
@@ -1457,6 +1465,10 @@
         if (Cools.isEmpty(wrkMast)) {
             throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
         }
+        BasAreas basAreas = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("whs_type_id", LocAreaType.LOC_AREA_TYPE_CRN.type));
+        if (Objects.isNull(basAreas)) {
+            throw new CoolException("鏁版嵁閿欒锛屽簱鍖轰笉瀛樺湪锛侊紒");
+        }
         // 鍏ュ嚭搴撶被鍨嬪垽鏂�
         if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) {
             throw new CoolException("褰撳墠鍏ュ嚭搴撶被鍨嬫棤娉曡繘琛屾搷浣�");
@@ -1465,6 +1477,7 @@
         if (wrkMast.getWrkSts() < 11 || wrkMast.getWrkSts() == 15) {
             throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曡繘琛屾搷浣�");
         }
+
         // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
 //        if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
 //            throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
@@ -1474,22 +1487,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);
@@ -1498,12 +1511,47 @@
             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());
+        locMast.setBarcode(locMast.getBarcode());
         locMast.setModiTime(now);
         locMast.setModiUser(userId);
         if (!locMastService.updateById(locMast)) {
             throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+        }
+
+        // .淇敼骞舵墭鍏ュ簱鏄庣粏鎵樼爜
+        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
+                .eq("area_id", locMast.getAreaId())
+                .eq("loc_no", locMast.getLocNo()));
+        if (!Objects.isNull(locDetls) && !locDetls.isEmpty()) {
+            locDetls.forEach(locDetl -> {
+                locDetl.setZpallet(locMast.getBarcode());
+                locDetl.setBarcode(locMast.getBarcode());
+                if (!locDetlService.updateById(locDetl)) {
+                    throw new CoolException("搴撳瓨鏄庣粏淇敼澶辫触锛侊紒");
+                }
+            });
+        }
+
+        // .淇敼浠诲姟妗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槑缁嗕慨鏀瑰け璐ワ紒锛�");
+                }
+            }
         }
     }
 
@@ -1619,7 +1667,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