From c5b1af3ab966596ee5ec8b79df75df59e40fd881 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期六, 07 六月 2025 10:32:24 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   82 ++++++++++++++++++++++++++++------------
 1 files changed, 57 insertions(+), 25 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 3d2dee6..15ffe1e 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -89,8 +89,13 @@
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
         // 妫�绱㈠簱浣�
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+
+        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("source_sta_no", param.getDevpNo()));
+        if (!wrkMasts.isEmpty()) {
+            throw new CoolException("宸叉湁浠诲姟");
+        }
         List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
-        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs, locTypeDto, 0);
+        StartupDto dto = commonService.getLocNo(2, 1, param.getDevpNo(), null,null,null,0, locTypeDto,0);
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
@@ -207,6 +212,10 @@
             assert ioType != null;
             // 鑾峰彇搴撲綅
             LocMast locMast = locMastService.selectById(dto.getLocNo());
+            //zc
+            if (!locMast.getLocSts().equals("F")){
+                throw new CoolException(locMast.getLocNo()+"璇ュ簱浣嶄笉鏄湪搴撶姸鎬�");
+            }
 
             Integer outSta = staNo.getDevNo();
 //            //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负204绔欙紝鎷f枡绔欐寚瀹氫负202
@@ -374,7 +383,7 @@
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
-        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto, 0);
+        StartupDto dto = commonService.getLocNo(1, 10, devpNo, null,null,null,0, locTypeDto,0);
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
@@ -439,6 +448,10 @@
             if (Cools.isEmpty(locMast)) {
                 throw new CoolException(locNo+"搴撲綅涓嶅瓨鍦�");
             }
+            //zc
+            if (!locMast.getLocSts().equals("D")){
+                throw new CoolException(locNo+"搴撲綅鐘舵�佷笉瀵�");
+            }
             // 鑾峰彇婧愮珯
             Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                     .eq("type_no", 110)
@@ -490,9 +503,6 @@
     @Transactional
     public WrkMast emptyPlateOut(EmptyPlateOutParam param) {
         WrkMast wrkMast = new WrkMast();
-        if (Cools.isEmpty(param.getOutSite())) {
-            throw new CoolException("绔欑偣涓嶅瓨鍦�");
-        }
         for (String locNo : param.getLocNos()) {
             // 鑾峰彇宸ヤ綔鍙�
             int workNo = commonService.getWorkNo(0);
@@ -504,8 +514,8 @@
             // 鑾峰彇婧愮珯
             Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                     .eq("type_no", 110)
-                    .eq("stn_no", param.getOutSite())
-                    .eq("crn_no", locMast.getCrnNo());
+                    .eq("crn_no", locMast.getCrnNo())
+                    .eq("stn_no",param.getOutSite());
             StaDesc staDesc = staDescService.selectOne(wrapper);
             Integer sourceStaNo = staDesc.getCrnStn();
             if (Cools.isEmpty(sourceStaNo)) {
@@ -520,7 +530,7 @@
             wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
             wrkMast.setIoPri(10D);
             wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
-            wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔�
+            wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
             wrkMast.setCrnNo(locMast.getCrnNo());
             wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
             wrkMast.setFullPlt("N"); // 婊℃澘锛歒
@@ -586,6 +596,10 @@
         if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) {
             throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�");
         }
+        //zc
+//        if (!loc.getLocSts().equals("F")){
+//            throw new CoolException(locNo+"搴撲綅鐘舵�佷笉瀵�");
+//        }
         Date now = new Date();
         // 鑾峰彇宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
@@ -624,6 +638,8 @@
             wrkDetl.setAppeUser(userId);
             wrkDetl.setModiTime(now);
             wrkDetl.setModiUser(userId);
+            wrkDetl.setOwner(locDetl.getOwner());
+            wrkDetl.setPayment(locDetl.getPayment());
             if (!wrkDetlService.insert(wrkDetl)) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
             }
@@ -666,8 +682,10 @@
         if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) {
             wrkMast.setWrkSts(4L);
         // 鍑哄簱
-        } else if (wrkMast.getWrkSts() > 10) {
+        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()!=199) {
             wrkMast.setWrkSts(14L);
+        }else if (wrkMast.getIoType() == 199) {
+            wrkMast.setWrkSts(15L);
         }
         Date now = new Date();
         wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
@@ -810,6 +828,12 @@
         if (Cools.isEmpty(wrkMast)){
             throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
         }
+        if (wrkMast.getIoType() == 1 && (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 5)){
+            throw new CoolException(workNo+"涓嶅彲鍙栨秷");
+        }
+        if (wrkMast.getIoType() == 101 && (wrkMast.getWrkSts() == 14 || wrkMast.getWrkSts() == 15)){
+            throw new CoolException(workNo+"涓嶅彲鍙栨秷");
+        }
         String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
         String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
         // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
@@ -851,6 +875,8 @@
                 locMast.setModiUser(userId);
                 locMastService.updateById(locMast);
             }
+        } else if (wrkMast.getIoType() == 199)  {
+            
         } else {
             throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
         }
@@ -937,19 +963,21 @@
             // 鍒犻櫎宸ヤ綔妗f槑缁�
             boolean wrkDetlRes = wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
         }
+        if (wrkMast.getIoType()!=199){
+            // 淇敼搴撲綅鐘舵��
+            LocMast locMast = locMastService.selectById(locNo);
+            if (Cools.isEmpty(locMast)) {
+                throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:"+ locNo);
+            }
+            locMast.setLocSts(locSts);
+            locMast.setModiTime(now);
+            locMast.setModiUser(userId);
+            boolean locMastRes = locMastService.updateById(locMast);
+            if (!wrkMastRes || !locMastRes) {
+                throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+            }
+        }
 
-        // 淇敼搴撲綅鐘舵��
-        LocMast locMast = locMastService.selectById(locNo);
-        if (Cools.isEmpty(locMast)) {
-            throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:"+ locNo);
-        }
-        locMast.setLocSts(locSts);
-        locMast.setModiTime(now);
-        locMast.setModiUser(userId);
-        boolean locMastRes = locMastService.updateById(locMast);
-        if (!wrkMastRes || !locMastRes) {
-            throw new CoolException("淇濆瓨鏁版嵁澶辫触");
-        }
     }
 
     @Override
@@ -1043,14 +1071,14 @@
                 Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
                 targetLoc = locMastService.queryFreeLocMast(deepRow, locMast.getLocType1());
                 // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
-                if (!locMastService.checkEmptyCount(targetLoc)) {
+                if (!locMastService.checkEmptyCount(targetLoc,10)) {
                     continue;
                 }
             }
             if (Cools.isEmpty(targetLoc)) {
                 targetLoc = locMastService.queryFreeLocMast(curRow, locMast.getLocType1());
                 // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
-                if (!locMastService.checkEmptyCount(targetLoc)) {
+                if (!locMastService.checkEmptyCount(targetLoc,10)) {
                     continue;
                 }
                 // 鐩爣搴撲綅 ===>> 娴呭簱浣嶏紝 鍒欐牎楠屽叾娣卞簱浣嶆槸鍚︿负 F D X
@@ -1186,6 +1214,10 @@
     @Override
     @Transactional
     public void turnOverOutPayment(EmptyPlateOutParam param, Long userId) {
+        if (Cools.isEmpty(param.getPayment())){
+            throw new CoolException("璇烽�夋嫨鐩爣璐х墿褰㈡��");
+        }
+        log.info("鏇存柊璐х墿褰㈡�侊細鐩爣璐х墿褰㈡�侊細"+param.getPayment$(param.getPayment())+";鏇存敼璐х墿淇℃伅锛�"+param.getLocDetls());
         try {
             if (param.getLocDetls().size()<=0){
                 throw new CoolException("璇锋彁鍙栨槑缁�");
@@ -1206,7 +1238,7 @@
                 if (locNo1[1].equals("骞冲簱")){
                     List<ManLocDetl> manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>().eq("loc_no", locNo));
                     for (ManLocDetl manLocDetl:manLocDetls){
-                        manLocDetl.setPayment(1);
+                        manLocDetl.setPayment(param.getPayment());
                         try{
                             manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr",manLocDetl.getMatnr()));
                         }catch (Exception e){
@@ -1216,7 +1248,7 @@
                 }else if (locNo1[1].equals("绔嬪簱")){
                     List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo));
                     for (LocDetl locDetl:locDetls){
-                        locDetl.setPayment(1);
+                        locDetl.setPayment(param.getPayment());
                         try{
                             locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr",locDetl.getMatnr()));
                         }catch (Exception e){

--
Gitblit v1.9.1