From 44b6b79dd5dee0ebbd2d11b08abbc2be275bed58 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 09 二月 2026 16:10:17 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  125 +++++++++++++++++++++++++++--------------
 1 files changed, 82 insertions(+), 43 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 ed3f0b1..6298d71 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -420,7 +420,7 @@
         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
         String wrkCode = null;
         if (!Objects.isNull(deviceNo)) {
-            wrkCode = workNo + "-1";
+            wrkCode = workNo + "";
             ioType = 101;
             generateOutStock(taskDto, userId, workNo, wrkCode, now, ioType, locMast, staDesc, deviceNo);
         } else {
@@ -453,44 +453,53 @@
             throw new CoolException("鏈哄彴淇℃伅涓嶅瓨鍦ㄦ垨宸茬鐢紒锛�");
         }
 
-        List<LocAroundBind> binds = locAroundBindService.selectList(new EntityWrapper<LocAroundBind>()
-                .eq("dev_no", basDevice.getDevNo())
-                .eq("is_default", 1));
+        LocAroundBind binds = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>()
+                .eq("loc_type", LocStsType.LOC_STS_TYPE_O.type)
+                .eq("dev_no", basDevice.getType()).orderBy("order_no"));
 
-        if (Objects.isNull(binds) || binds.isEmpty()) {
+        if (Objects.isNull(binds)) {
             throw new CoolException("鏈哄彴鏈缃粯璁ゅ伐浣滀綅锛侊紒");
         }
+//
+//        Set<String> locs = binds.stream().map(LocAroundBind::getBlocNo).collect(Collectors.toSet());
 
-        Set<String> locs = binds.stream().map(LocAroundBind::getBlocNo).collect(Collectors.toSet());
+//        LocMast locMasts = locMastService.selectOne(new EntityWrapper<LocMast>()
+//                .in("loc_no", locs)
+//                .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
+//                .orderAsc(Arrays.asList("loc_no")));
+
+//        if (Objects.isNull(locMasts)) {
+//            binds = locAroundBindService.selectList(new EntityWrapper<LocAroundBind>()
+//                    .eq("dev_no", basDevice.getDevNo()));
+//
+//            Set<String> nlocs = binds.stream().map(LocAroundBind::getBlocNo).collect(Collectors.toSet());
+//
+//            locMasts = locMastService.selectOne(new EntityWrapper<LocMast>()
+//                    .in("loc_no", nlocs)
+//                    .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
+//                    .orderAsc(Arrays.asList("loc_no")));
+//            if (Objects.isNull(locMasts)) {
+//                throw new CoolException("鏆傛棤鍙敤宸ヤ綔浣嶏紒锛�");
+//            }
+//        }
+
+        LocAroundBind bLocNo = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", binds.getBlocNo()));
+        bLocNo.setLocType(LocStsType.LOC_STS_TYPE_S.type);
+
+        if (!locAroundBindService.updateById(bLocNo)) {
+            throw new CoolException("宸ヤ綅棰勭害澶辫触锛侊紒");
+        }
 
         LocMast locMasts = locMastService.selectOne(new EntityWrapper<LocMast>()
-                .in("loc_no", locs)
-                .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
-                .orderAsc(Arrays.asList("loc_no"))
-                .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
+                .eq("loc_no", bLocNo.getBlocNo()));
 
-        if (Objects.isNull(locMasts)) {
-            binds = locAroundBindService.selectList(new EntityWrapper<LocAroundBind>()
-                    .eq("dev_no", basDevice.getDevNo()));
-
-            Set<String> nlocs = binds.stream().map(LocAroundBind::getBlocNo).collect(Collectors.toSet());
-
-            locMasts = locMastService.selectOne(new EntityWrapper<LocMast>()
-                    .in("loc_no", nlocs)
-                    .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
-                    .orderAsc(Arrays.asList("loc_no"))
-                    .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
-            if (Objects.isNull(locMasts)) {
-                throw new CoolException("鏆傛棤鍙敤宸ヤ綔浣嶏紒锛�");
-            }
-
-            LocAroundBind bLocNo = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", locMasts.getLocNo()));
-            bLocNo.setLocType(LocStsType.LOC_STS_TYPE_S.type);
-
-            if (!locAroundBindService.updateById(bLocNo)) {
-                throw new CoolException("宸ヤ綅棰勭害澶辫触锛侊紒");
-            }
+        locMasts.setLocSts(LocStsType.LOC_STS_TYPE_S.type);
+        locMasts.setModiUser(userId);
+        locMasts.setModiTime(now);
+        if (!locMastService.updateById(locMasts)) {
+            throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + locMasts.getLocNo());
         }
+
 
         List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locMasts.getLocNo(), 1);
         //TODO 1. 鑾峰彇鍏ュ簱绔欑偣锛� 鐩爣搴撲綅  3. 灏嗗嚭搴撴槑缁嗘坊鍔犺嚦鍏ュ簱鏄庣粏
@@ -505,9 +514,11 @@
         wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
         wrkMast.setIoPri(13D); // 浼樺厛绾э細13
         wrkMast.setCrnNo(locMast.getCrnNo());
-        wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 婧愮珯
 //        wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
-        wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
+        if(!Objects.equals(locMasts.getCrnNo(), locMast.getCrnNo())){
+            wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 婧愮珯
+            wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
+        }
         wrkMast.setLocNo(locMasts.getLocNo());
         wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
@@ -542,7 +553,7 @@
             wrkDetl.setIoTime(now);
             wrkDetl.setWrkNo(workNo);
             wrkDetl.setOrderNo(locDto.getOrderNo());
-            wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
+//            wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
             wrkDetl.setStandby1(locDto.getStandby1());
             LocDetl locDel = locDetlService.selectOne(new EntityWrapper<LocDetl>()
                     .eq("loc_no", locDto.getLocNo())
@@ -557,7 +568,12 @@
             wrkDetl.setUnit(locDel.getUnit());
             wrkDetl.setSpecs(locDel.getSpecs());
             wrkDetl.setBatch(locDel.getBatch());
-//            wrkDetl.setAnfme(locDel.getAnfme());
+            //搴撳瓨鏁伴噺
+            wrkDetl.setStockQty(locDel.getAnfme());
+            //鍗曟嵁鏁伴噺
+            wrkDetl.setRealQty(locDto.getAnfme());
+            //鍗曟嵁鏁伴噺
+            wrkDetl.setAnfme(locDto.getAnfme());
             wrkDetl.setAppeTime(now);
             wrkDetl.setAppeUser(userId);
             wrkDetl.setModiTime(now);
@@ -1206,9 +1222,18 @@
             if (!Objects.isNull(wrkMast.getWrkCode())) {
                 LocAroundBind aroundBind = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", wrkMast.getSourceLocNo()));
                 if (!Objects.isNull(aroundBind)) {
-                    aroundBind.setLocType(LocStsType.LOC_STS_TYPE_O.type);
+                    aroundBind.setLocType(LocStsType.LOC_STS_TYPE_F.type);
                     if (!locAroundBindService.updateById(aroundBind)) {
                         throw new CoolException("宸ヤ綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+                    }
+                }
+
+
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
+                if (!Objects.isNull(locMast)) {
+                    locMast.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
+                    if (!locMastService.updateById(locMast)) {
+                        throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
                     }
                 }
             }
@@ -1218,6 +1243,16 @@
             // 鍑哄簱 ===>> F.鍦ㄥ簱
             if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
                 locSts = "F";
+                if (!Cools.isEmpty(wrkMast.getLocNo())) {
+                    LocAroundBind bLocId = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_id", wrkMast.getLocNo()));
+                    if (!Objects.isNull(bLocId)) {
+                        bLocId.setLocType(LocStsType.LOC_STS_TYPE_O.type);
+                        if (!locAroundBindService.updateById(bLocId)) {
+
+                        }
+                    }
+                }
+
                 // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
             } else if (wrkMast.getIoType() == 110) {
                 locSts = "D";
@@ -1433,11 +1468,13 @@
             ioType = 1;
         }
         wokNo = commonService.getWorkNo(0);
+        LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo()));
+
         // 鑾峰彇鐩爣绔�
         Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                 .eq("type_no", ioType)
-                .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
-                .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+//                .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+                .eq("crn_no", locMast1.getCrnNo()); // 鍫嗗灈鏈哄彿
         StaDesc staDesc = staDescService.selectOne(wrapper);
         if (Cools.isEmpty(staDesc)) {
             throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
@@ -1454,10 +1491,10 @@
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(locDetl);
 
         // 婧愮珯鐐圭姸鎬佹娴�
-        BasDevp sourceStaNo = basDevpService.checkSiteStatus(Integer.parseInt(wrkMast.getStaNo()), false);
+        BasDevp sourceStaNo = basDevpService.checkSiteStatus(staDesc.getCrnStn(), false);
         sourceStaNo.setLocType1((short) 1);
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
-        StartupDto locNo = commonService.getLocNo(1, Integer.parseInt(wrkMast.getStaNo()), findLocNoAttributeVo, locTypeDto);
+        StartupDto locNo = commonService.getLocNo1(locMast1.getCrnNo());
 
         Date now = new Date();
         // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
@@ -1467,9 +1504,9 @@
         mast.setWrkNo(wokNo);
         // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
         mast.setIoType(ioType); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
-        mast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
-        mast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
-        mast.setStaNo(staNo + ""); // 鐩爣绔�
+        mast.setWrkSts(1L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+        mast.setSourceStaNo(""); // 婧愮珯
+        mast.setStaNo(""); // 鐩爣绔�
         mast.setSourceLocNo(wrkMast.getLocNo());
         mast.setLocNo(locNo.getLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
         mast.setModiTime(now);
@@ -1504,6 +1541,7 @@
             wrkDetls.forEach(wrkDetl -> {
                 WrkDetl wrkDetl1 = new WrkDetl();
                 BeanUtils.copyProperties(wrkDetl, wrkDetl1);
+                wrkDetl1.setAnfme(wrkDetl.getStockQty() - wrkDetl.getAnfme());
                 wrkDetl1.setWrkNo(wokNo);
                 if (!wrkDetlService.insert(wrkDetl1)) {
                     throw new CoolException("浠诲姟妗f槑缁嗕繚瀛樺け璐ワ紒锛�");
@@ -1519,6 +1557,7 @@
         if (!locMastService.updateById(locMast)) {
             throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
         }
+
 //        wrkMast.setWrkCode(null);
 //
 //        if (!wrkMastService.updateById(wrkMast)) {

--
Gitblit v1.9.1