From 6f1daffee3b65b5943dad26e1af3cbcafa46fd90 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期日, 18 二月 2024 16:57:26 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  124 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 112 insertions(+), 12 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 4972b51..075d879 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -536,8 +536,17 @@
         if (Cools.isEmpty(param.getOutSite())) {
             throw new CoolException("绔欑偣涓嶅瓨鍦�");
         }
-        List<String> locNoOtherList = new ArrayList<>();
+        List<String> locNoOtherListOne = new ArrayList<>();
         for (String locNo : param.getLocNos()) {
+
+            //灏忔枡绠变即鐢熷嚭搴�
+            if (Utils.getRow(locNo)<=8){
+                String locNoOther = staNoOther(locNo);
+                if (!param.getLocNos().contains(locNoOther)){
+                    locNoOtherListOne.add(locNoOther);
+                }
+            }
+
             // 鑾峰彇宸ヤ綔鍙�
             int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
             // 鑾峰彇搴撲綅
@@ -593,21 +602,112 @@
                 }
             }
         }
+
+        for (String locNo:locNoOtherListOne){
+            // 鑾峰彇宸ヤ綔鍙�
+            int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
+
+            //浼寸敓鍏ュ簱宸ヤ綔鍙�
+            int workNoRu = commonService.getWorkNo(0);
+
+            // 鑾峰彇搴撲綅
+            LocMast locMast = locMastService.selectById(locNo);
+            if (Cools.isEmpty(locMast)) {
+                throw new CoolException(locNo+"搴撲綅涓嶅瓨鍦�");
+            }
+            if (!locMast.getLocSts().equals("D")){
+                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+            }
+            // 鑾峰彇婧愮珯
+            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                    .eq("type_no", 110)
+                    .eq("stn_no", param.getOutSite())
+                    .eq("crn_no", locMast.getCrnNo());
+            StaDesc staDesc = staDescService.selectOne(wrapper);
+            Integer sourceStaNo = staDesc.getCrnStn();
+            if (Cools.isEmpty(sourceStaNo)) {
+                throw new CoolException("妫�绱㈡簮绔欏け璐�");
+            }
+            Date now = new Date();
+            // 淇濆瓨宸ヤ綔妗�
+            WrkMast wrkMast = new WrkMast();
+            wrkMast.setWrkNo(workNo);
+            wrkMast.setIoTime(now);
+            wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+            wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
+            wrkMast.setIoPri(10D);
+            wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+            wrkMast.setStaNo(crnStaRu(locMast.getCrnNo())); // 鐩爣绔�  鍫嗗灈鏈哄叆搴撳彛
+            wrkMast.setCrnNo(locMast.getCrnNo());
+            wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
+            wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+            wrkMast.setPicking("N"); // 鎷f枡
+            wrkMast.setExitMk("N"); // 閫�鍑�
+            wrkMast.setEmptyMk("Y"); // 绌烘澘
+            wrkMast.setLinkMis("N");
+            wrkMast.setAppeUser(userId);
+            wrkMast.setAppeTime(now);
+            wrkMast.setModiUser(userId);
+            wrkMast.setModiTime(now);
+            wrkMast.setWorkNoOther(workNoRu);
+            boolean res = wrkMastService.insert(wrkMast);
+            if (!res) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+            }
+            // 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害
+            if (locMast.getLocSts().equals("D")){
+                locMast.setLocSts("R");
+                locMast.setModiUser(userId);
+                locMast.setModiTime(now);
+                if (!locMastService.updateById(locMast)) {
+                    throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+                }
+            }
+
+            // 鐢熸垚宸ヤ綔妗�
+            WrkMast wrkMastRu = new WrkMast();
+            wrkMastRu.setWrkNo(workNoRu);
+            wrkMastRu.setIoTime(new Date());
+            wrkMastRu.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+            wrkMastRu.setIoType(10); // 鍏ュ嚭搴撶姸鎬侊細10.绌烘澘鍏ュ簱
+            wrkMastRu.setIoPri(13D); // 浼樺厛绾�
+            wrkMastRu.setCrnNo(wrkMast.getCrnNo());
+            wrkMastRu.setSourceStaNo(wrkMast.getSourceStaNo());
+            wrkMastRu.setStaNo(wrkMast.getStaNo());
+//        wrkMast.setLocNo(dto.getLocNo());
+            wrkMastRu.setFullPlt("N"); // 婊℃澘
+            wrkMastRu.setPicking("N"); // 鎷f枡
+            wrkMastRu.setExitMk("N"); // 閫�鍑�
+            wrkMastRu.setEmptyMk("Y"); // 绌烘澘
+            wrkMastRu.setLinkMis("Y");
+            wrkMastRu.setCtnType(wrkMast.getCtnType()); // 瀹瑰櫒绫诲瀷
+            // 鎿嶄綔浜哄憳鏁版嵁
+            wrkMastRu.setAppeTime(new Date());
+            wrkMastRu.setModiTime(new Date());
+            boolean resOther = wrkMastService.insert(wrkMastRu);
+            if (!resOther) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+            }
+        }
     }
 
-    public String[] staNoOther(String locNo){
-        String[] strings = new String[2];
+    public Integer crnStaRu(Integer crnNo){
+        switch (crnNo){
+            case 1:
+                return 153;
+            case 2:
+                return 145;
+            default:
+                return null;
+        }
+    }
+
+    public String staNoOther(String locNo){
         int row = Utils.getRow(locNo);
-        if (row==1 || row==5 ){
-            strings[0] = locNo;
-            strings[1] = getDeepLoc2(locNo,row);
-            return strings;
-        } else if (row == 4 || row == 8){
-            strings[0] = getDeepLoc2(locNo,row);
-            strings[1] = locNo;
-            return strings;
+        if (row%4==0 || row%4==1){
+            return getDeepLoc2(locNo,row);
         }else {
-            return null;
+            return getDeepLoc(locNo,row);
         }
     }
 

--
Gitblit v1.9.1