From db92e88a70a59437b48c9369cf1c46dba0ecb0a5 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期日, 15 十月 2023 13:25:33 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   71 +++++++++++++++++++++++++----------
 1 files changed, 50 insertions(+), 21 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 2d8788c..49075cb 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -191,13 +191,13 @@
                 }
             }
 
-            List<String> groupInnerLoc = Utils.getGroupInnerLoc(locNo);
-            if (!Cools.isEmpty(groupInnerLoc)) {
-                for (String insideLoc : groupInnerLoc) {
-                    if (locNos.contains(insideLoc)){
+            List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo);
+            if (!Cools.isEmpty(groupOuterLoc)) {
+                for (String outerLoc : groupOuterLoc) {
+                    if (locNos.contains(outerLoc)){
                         continue;
                     }
-                    LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", insideLoc));
+                    LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", outerLoc));
                     if (locMast != null) {
                         if (!locMast.getLocSts().equals("O") && !locMast.getLocSts().equals("R")){
                             sign=true;
@@ -217,7 +217,7 @@
         List<LocDetlDto> locDetlDtos = new ArrayList<>();
         for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
             if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
-                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(), null);
                 if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
             }
         }
@@ -304,6 +304,14 @@
             StaDesc staDesc = staDescService.queryCrnStn(ioType, outCrnNo, staNo.getDevNo());
             // 鐢熸垚宸ヤ綔鍙�
             int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+
+            Integer stnNo = staDesc.getStnNo();//鐩爣绔�
+            Integer sourceStaNo = staDesc.getCrnStn();//婧愮珯
+            if (stnNo == 325 || stnNo == 331 || stnNo == 333 || stnNo == 339) {
+                stnNo = staDesc.getCrnStn();
+                sourceStaNo = staDesc.getStnNo();
+            }
+
             // 鐢熸垚宸ヤ綔妗�
             WrkMast wrkMast = new WrkMast();
             wrkMast.setWrkNo(workNo);
@@ -314,15 +322,14 @@
             wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13
             wrkMast.setOutMost(outMost?1:0);;
             wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo());
-            wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
-            wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+            wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+            wrkMast.setStaNo(stnNo); // 鐩爣绔�
             wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
             wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
             wrkMast.setPicking("N"); // 鎷f枡
             wrkMast.setExitMk("N"); // 閫�鍑�
             wrkMast.setEmptyMk("N"); // 绌烘澘
             wrkMast.setLinkMis("N");
-            wrkMast.setCtnNo(locMast.getLocType3() == 7 ? "Y" : "N");
             wrkMast.setBarcode(locMast.getBarcode());
             wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
             wrkMast.setAppeTime(now);
@@ -383,6 +390,14 @@
         StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, outCrnNo, staNo.getDevNo());
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+
+        Integer stnNo = staDesc.getStnNo();//鐩爣绔�
+        Integer sourceStaNo = staDesc.getCrnStn();//婧愮珯
+        if (stnNo == 325 || stnNo == 331 || stnNo == 333 || stnNo == 339) {
+            stnNo = staDesc.getCrnStn();
+            sourceStaNo = staDesc.getStnNo();
+        }
+
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
@@ -393,15 +408,14 @@
         wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13
         wrkMast.setOutMost(outMost?1:0);;
         wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo());
-        wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
-        wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+        wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+        wrkMast.setStaNo(stnNo); // 鐩爣绔�
         wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
         wrkMast.setPicking("N"); // 鎷f枡
         wrkMast.setExitMk("N"); // 閫�鍑�
         wrkMast.setEmptyMk("N"); // 绌烘澘
         wrkMast.setLinkMis("N");
-        wrkMast.setCtnNo(locMast.getLocType3() == 7 ? "Y" : "N");
         wrkMast.setBarcode(locMast.getBarcode());
         wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
         wrkMast.setAppeTime(now);
@@ -413,7 +427,7 @@
         // 鐢熸垚宸ヤ綔妗f槑缁�
         for (LocDto locDto : taskDto.getLocDtos()) {
             if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
-            LocDetl locDetl = locDetlService.selectItem(locDto.getLocNo(), locDto.getMatnr(), locDto.getBatch());
+            LocDetl locDetl = locDetlService.selectItem(locDto.getLocNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getContainerCode());
             if (locDetl == null || locDetl.getAnfme() < locDto.getAnfme()) {
                 throw new CoolException(locDto.getLocNo() + "搴撲綅涓�" + locDto.getMatnr() + "鍟嗗搧搴撳瓨涓嶈冻锛�");
             }
@@ -431,6 +445,9 @@
             wrkDetl.setAppeUser(userId);
             wrkDetl.setModiTime(now);
             wrkDetl.setModiUser(userId);
+            wrkDetl.setSuppCode(locDto.getContainerCode());
+            wrkDetl.setThreeCode(locDto.getCsocode());
+            wrkDetl.setDeadTime(locDto.getIsoseq());
             if (!wrkDetlService.insert(wrkDetl)) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
             }
@@ -600,8 +617,7 @@
             // 鑾峰彇婧愮珯
             Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                     .eq("type_no", 110)
-                    .eq("stn_no", param.getOutSite())
-                    .eq("crn_no", outCrnNo);
+                    .eq("stn_no", param.getOutSite());
             StaDesc staDesc = staDescService.selectOne(wrapper);
             if (Cools.isEmpty(staDesc)) {
                 throw new CoolException("闈炴硶璺緞锛�");
@@ -657,7 +673,7 @@
         List<LocDetlDto> locDetlDtos = new ArrayList<>();
         for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
             if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
-                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(),paramLocDetl.getContainerCode());
                 if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
             }
         }
@@ -704,7 +720,6 @@
         wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘
         wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
         wrkMast.setLinkMis("N");
-        wrkMast.setCtnNo(loc.getLocType3() == 7 ? "Y" : "N");
         wrkMast.setAppeUser(userId);
         wrkMast.setAppeTime(now);
         wrkMast.setModiUser(userId);
@@ -759,15 +774,22 @@
         if (Cools.isEmpty(wrkMast)){
             throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
         }
-        if (wrkMast.getWrkSts() == 9 || wrkMast.getWrkSts() == 17) {
+
+        if (wrkMast.getIoType() == 200) {
+            //灏忚溅绉诲簱浠诲姟锛岀洿鎺ュ垹闄ゅ伐浣滄。
+            wrkMastService.deleteById(wrkMast);
+            return;
+        }
+
+        if (wrkMast.getWrkSts() == 9 || wrkMast.getWrkSts() == 29) {
             throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
         }
         // 鍏ュ簱 + 搴撲綅杞Щ
         if (wrkMast.getWrkSts() < 9 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) {
             wrkMast.setWrkSts(9L);
             // 鍑哄簱
-        } else if (wrkMast.getWrkSts() > 10) {
-            wrkMast.setWrkSts(17L);
+        } else if (wrkMast.getWrkSts() > 20) {
+            wrkMast.setWrkSts(29L);
         }
         Date now = new Date();
         wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
@@ -924,6 +946,13 @@
         if (Cools.isEmpty(wrkMast)){
             throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
         }
+
+        if (wrkMast.getIoType() == 200) {
+            //灏忚溅绉诲簱浠诲姟锛岀洿鎺ュ垹闄ゅ伐浣滄。
+            wrkMastService.deleteById(wrkMast);
+            return;
+        }
+
         String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
         String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
         // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
@@ -944,7 +973,7 @@
                 locMastService.updateById(locMast);
             }
         // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
-        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 19) {
+        } else if (wrkMast.getWrkSts() > 20) {
             locNo = wrkMast.getSourceLocNo();
             // 鍑哄簱 ===>> F.鍦ㄥ簱
             if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {

--
Gitblit v1.9.1