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 |   52 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 45 insertions(+), 7 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 aa3be9f..0703a78 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -11,6 +11,7 @@
 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.mapper.LocMastMapper;
 import com.zy.asrs.entity.result.FindLocNoAttributeVo;
@@ -120,6 +121,22 @@
 //        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));
+
+//        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");
@@ -478,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()); // 鏁伴噺
@@ -575,6 +593,7 @@
             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());
@@ -665,6 +684,7 @@
                     .setIoTime(new Date())
                     .setOrderNo(locDto.getOrderNo())
                     .setAnfme(locDto.getAnfme())
+                    .setBoxType1(locDto.getBoxType1())
                     .setZpallet(locCache.getBarcode())
                     .setBatch(locDto.getBatch())
                     .setAppeUser(userId)
@@ -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);

--
Gitblit v1.9.1