From 8ae2f2dcfe7e263d42c21ed7644641c780445b95 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期五, 16 一月 2026 17:45:50 +0800
Subject: [PATCH] 空板改余料回库优化

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   62 ++++++++++++++++++-------------
 1 files changed, 36 insertions(+), 26 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 dde3022..1748b6e 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -453,42 +453,45 @@
             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.getDevNo()).orderBy("is_default", false));
 
-        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")));
 
-        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("鏆傛棤鍙敤宸ヤ綔浣嶏紒锛�");
+//            }
+//        }
 
-        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", locMasts.getLocNo()));
+        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>()
+                .eq("loc_no", bLocNo.getBlocNo()));
 
         locMasts.setLocSts(LocStsType.LOC_STS_TYPE_S.type);
         locMasts.setModiUser(userId);
@@ -562,7 +565,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);
@@ -1518,6 +1526,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槑缁嗕繚瀛樺け璐ワ紒锛�");
@@ -1533,6 +1542,7 @@
         if (!locMastService.updateById(locMast)) {
             throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
         }
+
 //        wrkMast.setWrkCode(null);
 //
 //        if (!wrkMastService.updateById(wrkMast)) {

--
Gitblit v1.9.1