From 2ded9514aa9a93ee440af0b1437d788fb052028b Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期六, 23 八月 2025 08:36:59 +0800
Subject: [PATCH] wms功能完善

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  105 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 95 insertions(+), 10 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 b6df9d2..a713524 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -24,6 +24,8 @@
 import com.zy.common.properties.SlaveProperties;
 import com.zy.common.service.CommonService;
 import com.zy.common.web.WcsController;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -97,6 +99,9 @@
 
     @Resource
     private OrderDetlPakoutMapper orderDetlPakoutMapper;
+
+    @Resource
+    private ConfigService configService;
 
     @Override
     @Transactional
@@ -184,6 +189,16 @@
     public void startupFullTakeStore(StockOutParam param, Long userId) {
         // 鐩爣绔欑偣鐘舵�佹娴�
         BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+        // 鍒ゆ柇浠诲姟鐩爣绔欑偣鏄惁鏄嚭搴撴ā寮�
+        if (param.getOutSite() == 1016 || param.getOutSite() == 1043) {
+            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "inOrOutBoundMode").eq("status", 1));
+            if (config != null && !Cools.isEmpty(config.getValue())) {
+                int value = Integer.parseInt(config.getValue());
+                if (value != 2) {
+                    throw new CoolException("鐩爣绔欑偣" + param.getOutSite() + "涓嶆槸鍑哄簱妯″紡锛屽綋鍓嶆ā寮忎负锛�" + value);
+                }
+            }
+        }
         // 鑾峰彇搴撲綅鏄庣粏
         List<LocDetlDto> locDetlDtos = new ArrayList<>();
         for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
@@ -897,7 +912,7 @@
         wrkMast.setCrnNo(locMast.getCrnNo());
         wrkMast.setSourceLocNo(locMast.getLocNo());
         wrkMast.setLocNo(locMast.getLocNo());
-        wrkMast.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮�
+        wrkMast.setBarcode(list.get(0).getZpallet()); // 鎵樼洏鐮�
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
         wrkMast.setPicking("N"); // 鎷f枡
         wrkMast.setExitMk("N"); // 閫�鍑�
@@ -914,6 +929,10 @@
         boolean deleteFlag = true;
         boolean addFlag = true;
 
+        // 搴撲綅鐘舵�佹槸绌猴紝鍒欐坊鍔�
+        // 搴撲綅鐘舵�佸湪搴擄紝鏈夋彁浜ゆ暟鎹紝鍒欎慨鏀�
+        // 搴撲綅鐘舵�佸湪搴擄紝娌℃湁鎻愪氦鏁版嵁锛屽垯鍒犻櫎
+
         // 淇敼鏁伴噺
         Iterator<LocDetl> iterator = locDetls.iterator();
         while (iterator.hasNext()) {
@@ -924,13 +943,20 @@
                 LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next();
                 if (adjust.getCount() == 0) { continue; }
                 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() + "鎵瑰彿淇敼鏁伴噺澶辫触");
-                        }
+//                        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.setAnfme(adjust.getCount());
+                        locDetl.setZpallet(adjust.getZpallet());
+                        locDetl.setModel(adjust.getModel());
+                        locDetl.setManuDate(adjust.getManuDate());
+                        locDetl.setWeight(adjust.getWeight());
+                        locDetl.setManLength(adjust.getManLength());
+                        locDetl.setVolume(adjust.getVolume());
+                        locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("loc_no",locDetl.getLocNo()).eq("matnr",locDetl.getMatnr()).eq("batch",locDetl.getBatch()));
                         // 淇濆瓨璋冩暣璁板綍
                         AdjDetl adjDetl = new AdjDetl();
                         adjDetl.setLocNo(locDetl.getLocNo());
@@ -960,6 +986,13 @@
                         wrkDetl.setWrkNo(wrkMast.getWrkNo());
                         wrkDetl.setIoTime(wrkMast.getIoTime());
                         wrkDetl.setAnfme(adjust.getCount());
+                        wrkDetl.setAnfme(adjust.getCount());
+                        wrkDetl.setZpallet(adjust.getZpallet());
+                        wrkDetl.setModel(adjust.getModel());
+                        wrkDetl.setManuDate(adjust.getManuDate());
+                        wrkDetl.setWeight(adjust.getWeight());
+                        wrkDetl.setManLength(adjust.getManLength());
+                        wrkDetl.setVolume(adjust.getVolume());
                         wrkDetl.setAppeTime(now);
                         wrkDetl.setModiTime(now);
                         wrkMast.setAppeUser(userId);
@@ -967,7 +1000,6 @@
                         if (!wrkDetlLogService.insert(wrkDetl)) {
                             throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
                         }
-                    }
                     iterator.remove();
                     iterator1.remove();
                 }
@@ -1027,8 +1059,13 @@
             locDetl.sync(mat);
             locDetl.setBatch(adjust.getBatch());
             locDetl.setLocNo(locMast.getLocNo());
-            locDetl.setZpallet(locMast.getBarcode());
+            locDetl.setZpallet(adjust.getZpallet());
             locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
+            locDetl.setModel(adjust.getModel());
+            locDetl.setManuDate(adjust.getManuDate());
+            locDetl.setWeight(adjust.getWeight());
+            locDetl.setManLength(adjust.getManLength());
+            locDetl.setVolume(adjust.getVolume());
             locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
             locDetl.setModiTime(now);
             locDetl.setAppeUser(userId);
@@ -1077,12 +1114,15 @@
         int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
         if (locMast.getLocSts().equals("F")) {
             if (count == 0) {
-                locMast.setLocSts("D");
+                locMast.setLocSts("O");
+            } else {
+                locMast.setBarcode(wrkMast.getBarcode());
             }
         }
         if (locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O")) {
             if (count > 0) {
                 locMast.setLocSts("F");
+                locMast.setBarcode(wrkMast.getBarcode());
             }
         }
         locMast.setModiUser(userId);
@@ -1103,7 +1143,52 @@
         }
         String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
         String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
+        Long wrkSts = wrkMast.getWrkSts();
+        Integer ioType = wrkMast.getIoType();
+
+        // 浠诲姟瀹屾垚锛屾棤娉曞彇娑�
+        if(wrkSts == 4 || wrkSts == 5 || wrkSts == 14 || wrkSts == 15 || wrkSts == 54) {
+            throw new CoolException(workNo+"浠诲姟宸插畬鎴愶紝鏃犳硶鍙栨秷");
+        }
+
+        if(ioType == 101 || ioType == 110) {
+            if(wrkSts == 11 || wrkSts == 12) {
+
+            } else {
+                throw new CoolException(workNo+"搴撳瓨淇℃伅宸叉洿鏂帮紝鏃犳硶鍙栨秷");
+            }
+        }
         // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
+//        if(ioType == 1 || ioType == 10) {
+//            if(wrkSts == 1 || wrkSts == 2|| wrkSts == 3 || wrkSts == 9 || wrkSts == 10) {
+//                locNo = wrkMast.getLocNo();
+//                locSts = "O";
+//            } else {
+//                throw new CoolException(workNo+"鍙栨秷澶辫触锛屽綋鍓嶇姸鎬侊細" + wrkSts);
+//            }
+//        } else if(ioType == 11){
+//            if(wrkSts <= 10) {
+//                locNo = wrkMast.getLocNo();
+//                locSts = "O";
+//                // 搴撲綅杞Щ锛氭簮搴撲綅
+//                LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+//                if (Cools.isEmpty(locMast)) {
+//                    throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo());
+//                }
+//                locMast.setLocSts(wrkMast.getFullPlt().equalsIgnoreCase("N")?wrkMast.getEmptyMk():"F");
+//                locMast.setModiTime(now);
+//                locMast.setModiUser(userId);
+//                locMastService.updateById(locMast);
+//            } else {
+//                throw new CoolException(workNo+"鍙栨秷澶辫触锛屽綋鍓嶇姸鎬侊細" + wrkSts);
+//            }
+//        } else if(ioType == 3) {
+//
+//        } else if(ioType == 101) {
+//
+//        } else if(ioType == 110) {
+//
+//        }
         if (wrkMast.getWrkSts() <= 10  && wrkMast.getIoType()!=120) {
             locNo = wrkMast.getLocNo();
             locSts = "O";
@@ -1135,7 +1220,7 @@
                 locSts = "F";
                 // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
             } else if (wrkMast.getIoType() == 11) {
-                locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F";
+                locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?wrkMast.getEmptyMk():"F";
                 // 搴撲綅杞Щ锛氱洰鏍囧簱浣�
                 LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
                 if (Cools.isEmpty(locMast)) {

--
Gitblit v1.9.1