From 0467c8f9c2f3604ddd6e7e3a0372ce0fbaa46dff Mon Sep 17 00:00:00 2001
From: Administrator <1051256694@qq.com>
Date: 星期六, 14 三月 2026 13:58:32 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/api/service/impl/HmesApiServiceImpl.java |   16 +++++++
 src/main/java/com/zy/asrs/task/WorkMastScheduler.java         |   12 +++---
 src/main/java/com/zy/common/web/WcsController.java            |    2 
 src/main/java/com/zy/common/service/CommonService.java        |   34 +++++++++++++++--
 4 files changed, 52 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/zy/api/service/impl/HmesApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/HmesApiServiceImpl.java
index 968cd42..f00ac7f 100644
--- a/src/main/java/com/zy/api/service/impl/HmesApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/HmesApiServiceImpl.java
@@ -100,8 +100,9 @@
                 list.add(dto);
             }
         }
+
         //涓嬪彂鐨勮鍗曟槑缁嗭紝鏌ョ湅搴撳瓨鏄惁鏈夎冻澶熺殑搴撳瓨锛屾帓闄ゆ満鍙扮殑搴撲綅
-        for (DetlDto detail : list) {
+         for (DetlDto detail : list) {
             List<LocDetl> matnr = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", detail.getMatnr()));
             Double count=0.0;
             for (LocDetl detl : matnr) {
@@ -116,6 +117,19 @@
             if (count<detail.getAnfme()) {
                 return R.error("鐗╂枡="+detail.getMatnr()+"搴撳瓨涓嶈冻鏃犳硶鐢熸垚璁㈠崟");
             }
+            //鏈哄彴鏈夊喕缁撴椂绂佹鍛煎彨鐗╂枡
+            BasDevice basDevice = basDeviceService.selectOne(new EntityWrapper<BasDevice>()
+                    .eq("status", 1)
+                    .eq("dev_no", detail.getStandby1()));
+            if (Objects.isNull(basDevice)) {
+                return R.error(detail.getStandby1()+"鏈哄彴淇℃伅涓嶅瓨鍦ㄦ垨宸茬鐢紒锛�");
+            }
+            List<LocAroundBind> binds = locAroundBindService.selectList(new EntityWrapper<LocAroundBind>()
+                    .eq("dev_no", basDevice.getType())
+                    .eq("freeze", 1));
+            if (!Cools.isEmpty(binds)) {
+                return  R.error(detail.getStandby1()+"鏈哄彴琚喕缁撴棤娉曞懠鍙墿鏂�");
+            }
         }
         // 鍗曟嵁涓绘。
         order = new OrderPakout(
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 4ce13b4..c446587 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -103,12 +103,12 @@
                     markPublishError(wrkMast.getWrkNo(), String.valueOf("鐩爣搴撲綅琚喕缁�"));
                     continue;
                 }
-//            Integer crnNo = wrkMast.getCrnNo();
-//            //璇ュ爢鍨涙満宸茬粡涓嬪彂浠诲姟缁檞cs鍚庝笉鍐嶄笅鍙戞柊鐨勬惉杩愪换鍔�
-//            List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).in("wrk_sts", Arrays.asList(2L, 12L)));
-//            if (!wrkMasts1.isEmpty()) {
-//                continue;
-//            }
+            Integer crnNo = wrkMast.getCrnNo();
+            //璇ュ爢鍨涙満宸茬粡涓嬪彂浠诲姟缁檞cs鍚庝笉鍐嶄笅鍙戞柊鐨勬惉杩愪换鍔�
+            List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).in("wrk_sts", Arrays.asList(12L)));
+            if (!wrkMasts1.isEmpty()) {
+                continue;
+            }
                 //婧愬簱浣嶄负鍐荤粨搴撲綅鏃剁姝笅鍙戞惉杩愪换鍔$粰鍫嗗灈鏈�
                 if (!Cools.isEmpty(wrkMast.getSourceLocNo())) {
                     LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 845ecd9..3131f1a 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -216,7 +216,7 @@
         int sRow = rowLastno.getsRow();
         int eRow = rowLastno.geteRow();
         int crnNumber = rowLastno.getCrnQty();
-
+       int sCrnNo= rowLastno.getsCrnNo()!=null?rowLastno.getsCrnNo():1;
 
         // ===============>>>> 寮�濮嬫墽琛�
         curRow = rowLastno.getCurrentRow();
@@ -229,11 +229,15 @@
                 curRow = moveCrnNo * 4 - 2;
             }
         }
-
+        log.info("\ncurRow:\n{}",curRow);
         //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿
         for (int i = times; i < crnNumber * 2; i++) {
+        log.info("\ni:\n{}",i);
+        log.info("\ntimes:\n{}",times);
+        log.info("\ncrnNumber:\n{}",crnNumber);
             int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber);
             crnNo = locNecessaryParameters[2];
+            log.info("\ncrnNo:\n{}",crnNo);
             if (basCrnpService.checkSiteError(crnNo, true)) {
                 nearRow = locNecessaryParameters[3];
                 List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
@@ -242,7 +246,9 @@
                         .eq("frozen", 0)
                         .eq("deleted", 0)
                         .eq("whs_type", rowLastnoType.getType().longValue()));
-                int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).le("io_type", 100));
+//                log.info("\nlocMasts:\n{}",locMasts);
+                int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>()
+                        .eq("crn_no", crnNo).le("io_type", 100));
                 if (locMasts.size() - crnCountO <= 2) {
                     if(curRow+2==7){
 
@@ -254,6 +260,20 @@
                 }
                 break;
             } else {
+//                curRow = crnNo +2;// crnNo=3  curRow=5
+//                if (curRow == 9||curRow==10) {
+//                    curRow = 1;
+//                }
+
+                int nextCrnNo=crnNo + 1;//涓嬩竴涓爢鍨涙満鍙�
+                if(nextCrnNo> sCrnNo+crnNumber-1){//涓嬩竴鍙板ぇ浜�
+                    nextCrnNo=sCrnNo;
+                }
+                if(nextCrnNo==sCrnNo){
+                    curRow=0;
+                }else {
+                    curRow = sRow + (nextCrnNo - sCrnNo) * 4;
+                }
                 times++;
             }
         }
@@ -266,6 +286,7 @@
         BasDevp staNo = null;
 
         if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) {
+            int selectedCrnNo=crnNo;
             // 鑾峰彇鐩爣绔�
             wrapper = new EntityWrapper<StaDesc>()
                     .eq("type_no", staDescId)
@@ -287,7 +308,12 @@
             }
             // 鏇存柊搴撲綅鎺掑彿
             if (Cools.isEmpty(locMast)) {
-                rowLastno.setCurrentRow(curRow);
+                int crnNoForRotation=crnNo!=0?crnNo:selectedCrnNo;
+                int nextCrnNoAfterSuccess=(crnNoForRotation>=sCrnNo+crnNumber-1?sCrnNo:crnNoForRotation+1);
+                int curRowToSave = (nextCrnNoAfterSuccess==sCrnNo)?0:sRow+(nextCrnNoAfterSuccess-sCrnNo)*4;
+
+                rowLastno.setCurrentRow(curRowToSave);
+                log.info("\ncurRowToSave:\n{}",curRowToSave);
                 rowLastnoService.updateById(rowLastno);
             }
         }
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 1124064..73510d7 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -104,7 +104,7 @@
                 String s = Utils.WMSLocToWCSLoc(wrkMast1.getLocNo());
                 dto1.setLocNo(s);
                 dto1.setCrnNo(wrkMast1.getCrnNo());
-                dto1.setWorkNo(wrkMast1.getWrkNo());
+                dto1.setTaskNo(wrkMast1.getWrkNo());
                 dto1.setTaskPri((int) Math.round(wrkMast1.getIoPri()));
                 return R.ok(dto1);
             }

--
Gitblit v1.9.1