From d25daa625c821b214a83609361fdd42f58f521ab Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期六, 11 十月 2025 11:56:19 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   66 ++++++++++++++++++++++++++------
 1 files changed, 53 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index d5dbdff..06acf8f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -197,14 +197,14 @@
                         continue;
                     }
 
-                    if (inSta.getStaNo() == 1005) {
+                    if (inSta.getStaNo() == 1002 || inSta.getStaNo() == 1007) {
                         //妫�娴嬫槸鍚︽湁鍑哄簱浠诲姟
                         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                                 .in("io_type", 101, 103, 107)
-                                .in("sta_no", 1003, 1007)
+                                .in("sta_no", 1003, 1004)
                         );
                         if (!wrkMasts.isEmpty()) {
-                            News.error("" + mark + " - 4" + " - 1003绔欏叆搴擄紝妫�娴嬪瓨鍦ㄥ嚭搴撲换鍔★紝绛夊緟鍑哄簱浠诲姟鎵ц瀹屾垚,鎵樼洏鐮�={}", barcode);
+                            News.error("" + mark + " - 4" + " - 鍏ュ簱锛屾娴嬪瓨鍦ㄥ嚭搴撲换鍔★紝绛夊緟鍑哄簱浠诲姟鎵ц瀹屾垚,鎵樼洏鐮�={}", barcode);
                             continue;
                         }
                     }
@@ -708,9 +708,14 @@
                     LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
                             .eq("loc_no", wrkMast.getSourceLocNo()));
 
+                    short staNo = wrkMast.getStaNo().shortValue();
+                    if (wrkMast.getStaNo() == 1004) {
+                        staNo = 2003;
+                    }
+
                     // 涓嬪彂绔欑偣淇℃伅
                     staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
-                    staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                    staProtocol.setStaNo(staNo);
                     staProtocol.setPalletSize(locMast.getLocType2());
                     if (!MessageQueue.offer(SlaveType.Devp, devpId, new Task(2, staProtocol))) {
                         continue;
@@ -1044,7 +1049,7 @@
                     News.warn("" + mark + " - 1" + " - 12" + " - // F銆丏  搴撲綅={},搴撲綅鐘舵��={}", shallowLoc.getLocNo(), shallowLoc.getLocSts());
                     // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
                     if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
-                        if (moveLocForDeepLoc(slave, shallowLoc, mark)) {
+                        if (moveLocForDeepLoc(slave, crnProtocol, shallowLoc, mark)) {
                             wrkMast.setUpdMk("Y");
                             wrkMast.setIoPri(14D);
                             wrkMastMapper.updateById(wrkMast);
@@ -1132,6 +1137,13 @@
             devpCheckTaskStackOver = Integer.parseInt(config2.getValue());
         }
 
+        int outNumber = 13;
+        Config config3 = configService.selectOne(new EntityWrapper<Config>()
+                .eq("code", "fullBoardOutboundNumber"));
+        if (config3 != null) {
+            outNumber = Integer.parseInt(config3.getValue());
+        }
+
 
         Integer devpWorkingCount = commonService.queryDevpWorkingCount();
         if (devpWorkingCount > devpTaskStackOver) {
@@ -1169,11 +1181,11 @@
                     staProtocol = staProtocol.clone();
                 }
 
-                if (wrkMast.getStaNo() == 1003 || wrkMast.getStaNo() == 1007) {
+                if (wrkMast.getStaNo() == 1003 || wrkMast.getStaNo() == 1007 || wrkMast.getStaNo() == 1004) {
                     //妫�娴嬫槸鍚︽湁鍏ュ簱浠诲姟
                     List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                             .in("io_type", 1, 53, 57)
-                            .in("source_sta_no", 1005)
+                            .in("source_sta_no", 1002, 1007)
                     );
                     if (!inWrkMasts.isEmpty()) {
                         News.error("" + mark + " - 2" + " - 妫�娴嬪瓨鍦ㄥ叆搴撲换鍔★紝绛夊緟鍏ュ簱浠诲姟鎵ц瀹屾垚鍐嶅嚭搴擄紝宸ヤ綔鍙�={}" + wrkMast.getWrkNo());
@@ -1201,6 +1213,14 @@
                             News.error("" + mark + " - 2" + " - 妫�娴嬪瓨鍦�1062绔欑偣锛屽瓨鍦ㄤ袱绗斿伐浣滀腑鐨勪换鍔★紝宸ヤ綔鍙�={}" + wrkMast.getWrkNo());
                             continue;
                         }
+                    }
+                }else if (wrkMast.getIoType() == 101) {
+                    List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+                            .in("wrk_sts", 12, 14)
+                    );
+                    if (!Cools.isEmpty(inWrkMasts) && inWrkMasts.size() >= outNumber) {
+                        News.error("" + mark + " - 4" + " - 妫�娴嬪埌鍏ㄦ澘鍑哄簱鐨勪换鍔″凡缁忓埌杈句笂绾匡紝宸ヤ綔鍙�={}" + wrkMast.getWrkNo());
+                        continue;
                     }
                 }
 
@@ -1301,7 +1321,7 @@
 //                            if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
 //                                || Cools.isEmpty(waitWrkMast)) {
                             if (Cools.isEmpty(waitWrkMast)) {
-                                if (moveLocForDeepLoc(slave, shallowLoc, mark)) {
+                                if (moveLocForDeepLoc(slave, crnProtocol, shallowLoc, mark)) {
                                     wrkMast.setUpdMk("Y");
 //                                    wrkMast.setIoPri(14D);
                                     wrkMastMapper.updateById(wrkMast);
@@ -2017,6 +2037,16 @@
                         continue;
                     }
 
+                    //妫�娴嬫槸鍚︽湁鍏ュ簱浠诲姟
+                    List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+                            .in("io_type", 1, 53, 57)
+                            .in("source_sta_no", 1002, 1007)
+                    );
+                    if (!inWrkMasts.isEmpty()) {
+                        News.error("" + mark + " - 2" + " - 妫�娴嬪瓨鍦ㄥ叆搴撲换鍔★紝绛夊緟鍏ュ簱浠诲姟鎵ц瀹屾垚鍐嶅叆绌烘墭锛屽伐浣滃彿={}");
+                        continue;
+                    }
+
                     int workNo = commonService.getWorkNo(3);
                     // 鐢熸垚宸ヤ綔妗�
                     WrkMast wrkMast1 = new WrkMast();
@@ -2202,7 +2232,7 @@
                         ));
 
                     }else {
-                        List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectTodayByWrkNo(wrkMast.getWrkNo());
+                        List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectTodayByWrkNo(wrkNo);
                         if(!wrkDetlLogs.isEmpty()) {
                             WrkDetlLog wrkDetlLog = wrkDetlLogs.get(0);
 
@@ -2216,7 +2246,7 @@
                             }
 
                             List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
-                                    .eq("loc_no", wrkMast.getSourceLocNo()));
+                                    .eq("loc_no", sourceLocNo));
                             double totalAnfme = 0D;
                             double totalWeight = 0D;
                             for (LocDetl locDetl : locDetls) {
@@ -2429,8 +2459,7 @@
      * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
      * tip锛氬悓姝�
      */
-    private synchronized boolean moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc, Integer mark) {
-
+    private synchronized boolean moveLocForDeepLoc(CrnSlave crn, CrnProtocol crnProtocol, LocMast shallowLoc, Integer mark) {
         try {
             News.warnNoLog("" + mark + "moveLocForDeepLoc" + " - 0" + " - 寮�濮嬫墽琛�:鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)");
             List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
@@ -2438,8 +2467,13 @@
             for (Integer row : rows) {
                 if (Utils.isDeepLoc(slaveProperties, row)) {
                     loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
-
                     if (loc != null) {
+                        if (crn.getId() == 1) {
+                            if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) {
+                                continue;
+                            }
+                        }
+
                         if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
                             String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
                             LocMast shallowLoc1 = locMastService.selectById(shallowLocNo);
@@ -2459,6 +2493,12 @@
                         loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
 
                         if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
+                            if (crn.getId() == 1) {
+                                if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) {
+                                    continue;
+                                }
+                            }
+
                             String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
                             LocMast deepLoc1 = locMastService.selectById(deepLoc);
                             if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("D")) {

--
Gitblit v1.9.1