From 7100335f6ccdf4839f3fcc82c40cef496ea39f90 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期日, 18 二月 2024 20:57:39 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  471 +++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 399 insertions(+), 72 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 075d879..d9832fd 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -8,10 +8,7 @@
 import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.EmptyPlateOutParam;
-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.entity.param.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.OutboundAllocationUtil;
 import com.zy.asrs.utils.Utils;
@@ -164,12 +161,28 @@
         BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
         // 鑾峰彇搴撲綅鏄庣粏
         List<LocDetlDto> locDetlDtos = new ArrayList<>();
+        List<String> locNoList = new ArrayList<>();
         for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
+            if (!locNoList.contains(paramLocDetl.getLocNo())){
+                locNoList.add(paramLocDetl.getLocNo());
+            }
             if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
                 LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
                 if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo()));
             }
         }
+
+        List<String> locNoOtherListOne = new ArrayList<>();
+        for (String locNo :locNoList) {
+            //灏忔枡绠变即鐢熷嚭搴�
+            if (Utils.getRow(locNo) <= 8) {
+                String locNoOther = staNoOther(locNo);
+                if (!locNoList.contains(locNoOther)) {
+                    locNoOtherListOne.add(locNoOther);
+                }
+            }
+        }
+
         if (!locDetlDtos.isEmpty()) {
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
             if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){
@@ -180,6 +193,207 @@
             }
         } else {
             throw new CoolException("搴撳瓨涓嶅瓨鍦�");
+        }
+
+
+        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")){
+                // 鑾峰彇婧愮珯
+                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け璐�");
+                }
+            }else if (locMast.getLocSts().equals("F")){
+                // 鑾峰彇婧愮珯
+                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();
+                List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo));
+
+// 淇濆瓨宸ヤ綔妗�
+                WrkMast wrkMast = new WrkMast();
+                wrkMast.setWrkNo(workNo);
+                wrkMast.setIoTime(now);
+                wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+                wrkMast.setIoType(101); // 鍏ュ嚭搴撶姸鎬侊細 101.婊℃澘鍑哄簱
+                wrkMast.setIoPri(13D);
+                wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+                wrkMast.setStaNo(crnStaRu(locMast.getCrnNo())); // 鐩爣绔�  鍫嗗灈鏈哄叆搴撳彛
+                wrkMast.setCrnNo(locMast.getCrnNo());
+                wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
+                wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+                wrkMast.setPicking("N"); // 鎷f枡
+                wrkMast.setExitMk("N"); // 閫�鍑�
+                wrkMast.setEmptyMk("N"); // 绌烘澘
+                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け璐�");
+                }
+
+                // 鏇存柊搴撲綅鐘舵�� F.婊℃澘 -> R.鍑哄簱棰勭害
+                if (locMast.getLocSts().equals("F")){
+                    locMast.setLocSts("R");
+                    locMast.setModiUser(userId);
+                    locMast.setModiTime(now);
+                    if (!locMastService.updateById(locMast)) {
+                        throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+                    }
+                }
+
+
+
+                List<WaitPakin> waitPakins = new ArrayList<>();
+                for (LocDetl locDetl:locDetlList){
+                    Mat mat = matService.selectByMatnr(locDetl.getMatnr());
+                    if (Cools.isEmpty(mat)) {
+                        throw new CoolException("瑙勬牸娣诲姞澶辫触锛岃鑱旂郴绠$悊鍛�");
+                    }
+                    WaitPakin waitPakin = new WaitPakin();
+                    waitPakin.sync(locDetl);
+                    waitPakin.setBatch(locDetl.getBatch());       //鏈ㄧ缂栫爜  //鎵规  鍞竴鍊�  绠卞彿
+                    waitPakin.setModel(locDetl.getModel());       //鍗峰彿  鍞竴鍊�
+                    waitPakin.setIoStatus("Y");     // 鍏ュ嚭鐘舵��
+                    waitPakin.setAnfme(locDetl.getAnfme());  // 鏁伴噺
+                    waitPakin.setStatus("Y");    // 鐘舵��
+                    waitPakin.setAppeUser(userId);
+                    waitPakin.setAppeTime(now);
+                    waitPakin.setModiUser(userId);
+                    waitPakin.setModiTime(now);
+                    waitPakin.setLocNo(null);
+                    if (!waitPakinService.insert(waitPakin)) {
+                        throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+                    }
+                    waitPakins.add(waitPakin);
+                }
+                // 鐢熸垚宸ヤ綔妗�
+                WrkMast wrkMastRu = new WrkMast();
+                wrkMastRu.setWrkNo(workNoRu);
+                wrkMastRu.setIoTime(new Date());
+                wrkMastRu.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+                wrkMastRu.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+                wrkMastRu.setIoPri(13D); // 浼樺厛绾�
+                wrkMastRu.setSourceStaNo(sourceStaNo); // 婧愮珯
+                wrkMastRu.setStaNo(crnStaRu(locMast.getCrnNo())); // 鐩爣绔�  鍫嗗灈鏈哄叆搴撳彛
+                wrkMastRu.setCrnNo(locMast.getCrnNo());
+                wrkMastRu.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮�
+                wrkMastRu.setFullPlt("Y"); // 婊℃澘锛歒
+                wrkMastRu.setPicking("N"); // 鎷f枡
+                wrkMastRu.setExitMk("N"); // 閫�鍑�
+                wrkMastRu.setEmptyMk("N"); // 绌烘澘
+                wrkMastRu.setLinkMis("Y");
+                // 鎿嶄綔浜哄憳鏁版嵁
+                wrkMastRu.setAppeTime(now);
+                wrkMastRu.setModiTime(now);
+                boolean resOther = wrkMastService.insert(wrkMastRu);
+                if (!resOther) {
+                    throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+                }
+                // 鐢熸垚宸ヤ綔妗f槑缁�
+                waitPakins.forEach(waitPakin -> {
+                    WrkDetl wrkDetl = new WrkDetl();
+                    wrkDetl.sync(waitPakin);
+                    wrkDetl.setWrkNo(wrkMastRu.getWrkNo());
+                    wrkDetl.setIoTime(wrkMastRu.getIoTime());
+                    wrkDetl.setAppeTime(now);
+                    wrkDetl.setModiTime(now);
+                    if (!wrkDetlService.insert(wrkDetl)) {
+                        throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+                    }
+                });
+
+            }else {
+                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+            }
         }
     }
     @Override
@@ -615,78 +829,191 @@
             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("鏇存柊搴撲綅鐘舵�佸け璐�");
+                // 鑾峰彇婧愮珯
+                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 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け璐�");
+                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け璐�");
+                }
+            }else if (locMast.getLocSts().equals("F")){
+                // 鑾峰彇婧愮珯
+                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();
+                List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo));
+
+// 淇濆瓨宸ヤ綔妗�
+                WrkMast wrkMast = new WrkMast();
+                wrkMast.setWrkNo(workNo);
+                wrkMast.setIoTime(now);
+                wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+                wrkMast.setIoType(101); // 鍏ュ嚭搴撶姸鎬侊細 101.婊℃澘鍑哄簱
+                wrkMast.setIoPri(13D);
+                wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+                wrkMast.setStaNo(crnStaRu(locMast.getCrnNo())); // 鐩爣绔�  鍫嗗灈鏈哄叆搴撳彛
+                wrkMast.setCrnNo(locMast.getCrnNo());
+                wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
+                wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+                wrkMast.setPicking("N"); // 鎷f枡
+                wrkMast.setExitMk("N"); // 閫�鍑�
+                wrkMast.setEmptyMk("N"); // 绌烘澘
+                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け璐�");
+                }
+
+                // 鏇存柊搴撲綅鐘舵�� F.婊℃澘 -> R.鍑哄簱棰勭害
+                if (locMast.getLocSts().equals("F")){
+                    locMast.setLocSts("R");
+                    locMast.setModiUser(userId);
+                    locMast.setModiTime(now);
+                    if (!locMastService.updateById(locMast)) {
+                        throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+                    }
+                }
+
+
+
+                List<WaitPakin> waitPakins = new ArrayList<>();
+                for (LocDetl locDetl:locDetlList){
+                    Mat mat = matService.selectByMatnr(locDetl.getMatnr());
+                    if (Cools.isEmpty(mat)) {
+                        throw new CoolException("瑙勬牸娣诲姞澶辫触锛岃鑱旂郴绠$悊鍛�");
+                    }
+                    WaitPakin waitPakin = new WaitPakin();
+                    waitPakin.sync(locDetl);
+                    waitPakin.setBatch(locDetl.getBatch());       //鏈ㄧ缂栫爜  //鎵规  鍞竴鍊�  绠卞彿
+                    waitPakin.setModel(locDetl.getModel());       //鍗峰彿  鍞竴鍊�
+                    waitPakin.setIoStatus("Y");     // 鍏ュ嚭鐘舵��
+                    waitPakin.setAnfme(locDetl.getAnfme());  // 鏁伴噺
+                    waitPakin.setStatus("Y");    // 鐘舵��
+                    waitPakin.setAppeUser(userId);
+                    waitPakin.setAppeTime(now);
+                    waitPakin.setModiUser(userId);
+                    waitPakin.setModiTime(now);
+                    waitPakin.setLocNo(null);
+                    if (!waitPakinService.insert(waitPakin)) {
+                        throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+                    }
+                    waitPakins.add(waitPakin);
+                }
+                // 鐢熸垚宸ヤ綔妗�
+                WrkMast wrkMastRu = new WrkMast();
+                wrkMastRu.setWrkNo(workNoRu);
+                wrkMastRu.setIoTime(new Date());
+                wrkMastRu.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+                wrkMastRu.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+                wrkMastRu.setIoPri(13D); // 浼樺厛绾�
+                wrkMastRu.setSourceStaNo(sourceStaNo); // 婧愮珯
+                wrkMastRu.setStaNo(crnStaRu(locMast.getCrnNo())); // 鐩爣绔�  鍫嗗灈鏈哄叆搴撳彛
+                wrkMastRu.setCrnNo(locMast.getCrnNo());
+                wrkMastRu.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮�
+                wrkMastRu.setFullPlt("Y"); // 婊℃澘锛歒
+                wrkMastRu.setPicking("N"); // 鎷f枡
+                wrkMastRu.setExitMk("N"); // 閫�鍑�
+                wrkMastRu.setEmptyMk("N"); // 绌烘澘
+                wrkMastRu.setLinkMis("Y");
+                // 鎿嶄綔浜哄憳鏁版嵁
+                wrkMastRu.setAppeTime(now);
+                wrkMastRu.setModiTime(now);
+                boolean resOther = wrkMastService.insert(wrkMastRu);
+                if (!resOther) {
+                    throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+                }
+                // 鐢熸垚宸ヤ綔妗f槑缁�
+                waitPakins.forEach(waitPakin -> {
+                    WrkDetl wrkDetl = new WrkDetl();
+                    wrkDetl.sync(waitPakin);
+                    wrkDetl.setWrkNo(wrkMastRu.getWrkNo());
+                    wrkDetl.setIoTime(wrkMastRu.getIoTime());
+                    wrkDetl.setAppeTime(now);
+                    wrkDetl.setModiTime(now);
+                    if (!wrkDetlService.insert(wrkDetl)) {
+                        throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+                    }
+                });
+
+            }else {
+                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
             }
         }
     }

--
Gitblit v1.9.1