From cb5092a38a5123bd9da452ad311b9323561802b1 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 20 五月 2025 13:55:11 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/web/WcsController.java |   62 ++++++++++++++++++++++++++++--
 1 files changed, 57 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 6f16d15..c6150ae 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -58,15 +58,19 @@
         WrkMast wrkMast =wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                 .eq("wrk_no",param.getTaskNo())
                 .in("io_type",103,107));
-        if (Cools.isEmpty(wrkMast)){
+        WrkMast wrkMast537 =wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+                .eq("wrk_no",param.getTaskNo())
+                .in("io_type",53,57));
+        if (Cools.isEmpty(wrkMast)&&Cools.isEmpty(wrkMast537)){
             storageResult.setReturnStatus(1);
             storageResult.setErrorMessage("娌℃湁鎵惧埌鐩樼偣鎷f枡浠诲姟---------"+param.getTaskNo());
             return storageResult;
         }
+
         SearchLocParam searchLocParam = new SearchLocParam();
-        searchLocParam.setBoxNo(wrkMast.getBarcode());
+        searchLocParam.setBoxNo(Cools.isEmpty(wrkMast)?wrkMast537.getBarcode() : wrkMast.getBarcode());
         searchLocParam.setWcsIoType(1);//婊℃澘
-        searchLocParam.setWcsSourceStaNo(wrkMast.getStaNo());
+        searchLocParam.setWcsSourceStaNo(Cools.isEmpty(wrkMast)?wrkMast537.getSourceStaNo() : wrkMast.getStaNo());
         searchLocParam.setWcsStatus(0);
         return getLocNo(searchLocParam);
     }
@@ -85,6 +89,16 @@
         if (Cools.isEmpty(param.getWcsSourceStaNo())) {
             storageResult.setReturnStatus(1);
             storageResult.setErrorMessage("婧愮珯缂栧彿涓嶈兘涓虹┖");
+            return storageResult;
+        }
+        BasDevp basDevp=basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",param.getWcsSourceStaNo()));
+        //
+        List<WrkMast> wrkMasts=wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("sta_no",param.getWcsSourceStaNo()).in("wrk_sts",11,12,13));
+        if(!Cools.isEmpty(wrkMasts)){
+            storageResult.setReturnStatus(1);
+            storageResult.setErrorMessage("鏈夊嚭搴撲换鍔$姝㈠叆搴�");
+            basDevp.setArea("鏈夊嚭搴撲换鍔$姝㈠叆搴�");
+            basDevpService.updateById(basDevp);
             return storageResult;
         }
         int ioType = 0;
@@ -108,6 +122,8 @@
                 if (Cools.isEmpty(param.getBoxNo())) {
                     storageResult.setReturnStatus(1);
                     storageResult.setErrorMessage("鏉$爜涓嶈兘涓虹┖");
+                    basDevp.setArea("鏉$爜涓嶈兘涓虹┖");
+                    basDevpService.updateById(basDevp);
                     return storageResult;
                 }
                 waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBoxNo()));
@@ -116,10 +132,14 @@
                     if (wrkMast != null && wrkMast.getIoType() == 103) {
                         storageResult.setReturnStatus(1);
                         storageResult.setErrorMessage(CodeRes.PICK_600);
+                        basDevp.setArea(CodeRes.PICK_600);
+                        basDevpService.updateById(basDevp);
                         return storageResult;
                     }
                     storageResult.setReturnStatus(1);
                     storageResult.setErrorMessage(CodeRes.NO_COMB_700);
+                    basDevp.setArea(CodeRes.NO_COMB_700);
+                    basDevpService.updateById(basDevp);
                     return storageResult;
                 }
                 int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBoxNo()));
@@ -127,6 +147,8 @@
                 if (countLoc > 0 || countWrk > 0) {
                     storageResult.setReturnStatus(1);
                     storageResult.setErrorMessage(CodeRes.EXIST_500);
+                    basDevp.setArea(CodeRes.NO_COMB_700);
+                    basDevpService.updateById(basDevp);
                     return storageResult;
                 }
             }else {
@@ -157,6 +179,8 @@
      */
     @Transactional
     public StorageResult startupFullPutStore(Integer devpNo, String barcode, List<WaitPakin> waitPakins,Integer ioType) {
+        BasDevp basDevp=basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",devpNo));
+
         StorageResult storageResult=new StorageResult();
         Integer[] arr=arr();
         LocMast locMast1=new LocMast();
@@ -170,24 +194,39 @@
             WaitPakin waitPakin1=new WaitPakin();
             waitPakin1.sync(wrkDetl);
             locMast1 =commonService.getLocNo2(waitPakin1,arr,0,type,1);
+            if (locMast1 == null) {
+                basDevp.setArea("鏈壘鍒扮┖搴撲綅");
+                basDevpService.updateById(basDevp);
+                throw new CoolException("鏈壘鍒扮┖搴撲綅");
+            }
 
+            //鏇存柊璐х墿鎵�鍦ㄥ簱浣嶇殑娣辨祬鍙�
+            wrkDetl.setSource(locMast1.getLocAttribute());
+            wrkDetlService.update(wrkDetl,new EntityWrapper<WrkDetl>().eq("wrk_no", wrkDetl.getWrkNo()));
             WrkMast wrkMast=wrkMastService.selectByBarcode(barcode);
             workNo = wrkMast.getWrkNo();
-            int mbz=wrkMast.getStaNo()*10+Integer.valueOf(wrkMast.getSourceLocNo().substring(6));
+            int mbz=basDevp.getDevNo()*10+Integer.valueOf(wrkMast.getSourceLocNo().substring(6));
             String ykw=wrkMast.getLocNo();
             wrkMast.setIoType(ioType-50);
             wrkMast.setWrkSts(1L);//鍏ュ簱
             wrkMast.setModiTime(new Date());
-            wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+            wrkMast.setSourceStaNo(basDevp.getDevNo()); // 婧愮珯
             wrkMast.setStaNo(mbz); // 鐩爣绔�
             wrkMast.setLocNo(locMast1.getLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
             wrkMast.setSourceLocNo(ykw); // 婧愬簱浣�
+
             wrkMastService.updateById(wrkMast);
         }else{
             int type=Cools.isEmpty(waitPakins.get(0).getBeBatch())?1:waitPakins.get(0).getBeBatch();
             // 妫�绱㈠簱浣�
             locMast1 =commonService.getLocNo2(waitPakins.get(0),arr,0,type,1);
+            if (locMast1 == null) {
+                basDevp.setArea("鏈壘鍒扮┖搴撲綅");
+                basDevpService.updateById(basDevp);
+                throw new CoolException("鏈壘鍒扮┖搴撲綅");
+            }
 
+            int mbz=devpNo*10+Integer.valueOf(locMast1.getLocNo().substring(6));
             //姝e父鍏ュ簱
             workNo = commonService.getWorkNo(0);
             Date now = new Date();
@@ -199,6 +238,7 @@
             wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
             wrkMast.setIoPri(13D); // 浼樺厛绾�
             wrkMast.setSourceStaNo(devpNo);
+            wrkMast.setStaNo(mbz);
             wrkMast.setLocNo(locMast1.getLocNo());
             wrkMast.setBarcode(barcode); // 鎵樼洏鐮�
             wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
@@ -212,9 +252,12 @@
             wrkMast.setModiTime(now);
             boolean res = wrkMastService.insert(wrkMast);
             if (!res) {
+                basDevp.setArea("淇濆瓨宸ヤ綔妗eけ璐�");
+                basDevpService.updateById(basDevp);
                 throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
             }
             // 鐢熸垚宸ヤ綔妗f槑缁�
+            int source = locMast1.getLocAttribute();
             waitPakins.forEach(waitPakin -> {
                 WrkDetl wrkDetl = new WrkDetl();
                 wrkDetl.sync(waitPakin);
@@ -222,7 +265,10 @@
                 wrkDetl.setIoTime(wrkMast.getIoTime());
                 wrkDetl.setAppeTime(now);
                 wrkDetl.setModiTime(now);
+                wrkDetl.setSource(source);
                 if (!wrkDetlService.insert(wrkDetl)) {
+                    basDevp.setArea("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+                    basDevpService.updateById(basDevp);
                     throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
                 }
             });
@@ -234,6 +280,8 @@
             setParam.setIoStatus("Y");
             setParam.setModiTime(now);
             if (!waitPakinService.update(setParam, wrapper)) {
+                basDevp.setArea("鏇存柊閫氱煡妗eけ璐�");
+                basDevpService.updateById(basDevp);
                 throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
             }
         }
@@ -243,9 +291,13 @@
             locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
             locMast.setModiTime(new Date());
             if (!locMastService.updateById(locMast)){
+                basDevp.setArea("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+                basDevpService.updateById(basDevp);
                 throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
             }
         } else {
+            basDevp.setArea(locMast1.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+            basDevpService.updateById(basDevp);
             throw new CoolException(locMast1.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
         }
 

--
Gitblit v1.9.1