From 3c0129480a0493bd87bf38273b23eae3099c3f3d Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期二, 21 十月 2025 15:03:39 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  248 ++++++++++++++++++++++++------------------------
 1 files changed, 124 insertions(+), 124 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 596db23..c525150 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -49,10 +49,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -200,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;
                         }
                     }
@@ -417,15 +414,6 @@
                             continue;
                         }
 
-                        // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹�
-//                    int stnNo = 0;
-//                    if (wrkMast.getStaNo() == 109) {
-//                        stnNo = 127;
-//                    } else if (wrkMast.getStaNo() == 113) {
-//                        stnNo = 128;
-//                    } else {
-//                        log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo());
-//                    }
                         // 鑾峰彇鐩爣绔�
                         Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                                 .eq("type_no", wrkMast.getIoType() - 50)
@@ -449,62 +437,41 @@
                         }
 
                         try {
-                            // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
-                            if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
-                                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
-                            }
-                            // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
-                            if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
-                                throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
-                            }
+                            LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
 
-                            Date now = new Date();
-                            // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
-                            Integer staNo = staDesc.getCrnStn();
-                            // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
-                            wrkMast.setIoTime(now);
-                            wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
-                            wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
-                            wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
-                            wrkMast.setStaNo(staNo); // 鐩爣绔�
-                            wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
-                            wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
-                            wrkMast.setModiTime(now);
-                            wrkMast.setUpdMk("");//鍏佽鍐嶆绉诲簱
-                            if (wrkMastMapper.updateById(wrkMast) == 0) {
-                                throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
-                            }
-                            // 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
-                            wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
-                            // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
-                            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-                            locMast.setLocSts("Q");
-                            locMast.setModiTime(new Date());
-                            if (!locMastService.updateById(locMast)) {
-                                throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+                            SearchLocParam param = new SearchLocParam();
+                            param.setBarcode(wrkMast.getBarcode());
+                            param.setSourceStaNo(pickSta.getStaNo());
+                            param.setLocType1(locTypeDto.getLocType1());
+                            String response = new HttpHandler.Builder()
+                                    .setUri(wmsUrl)
+                                    .setPath("/rpc/pakin/pick/loc/v1")
+                                    .setJson(JSON.toJSONString(param))
+                                    .build()
+                                    .doPost();
+                            JSONObject jsonObject = JSON.parseObject(response);
+                            if (jsonObject.getInteger("code").equals(200)) {
+                                LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+                                // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+                                staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
+                                staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                                staProtocol.setPalletSize(locMast.getLocType2());
+                                devpThread.setPakMk(staProtocol.getSiteId(), false);
+                                boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                                if (!result) {
+                                    News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+                                }
+                            } else {
+                                News.error("" + mark + " - 5" + " - 璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/pick/loc/v1", JSON.toJSONString(param), response);
                             }
                         } catch (Exception e) {
                             e.printStackTrace();
-                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                            continue;
-                        }
-
-                        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-                        // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-                        staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
-                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
-                        staProtocol.setPalletSize(locMast.getLocType2());
-                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                        if (!result) {
-                            News.error("" + mark + " - 3" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
                         }
 
                     } else {
                         News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
                                 + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk());
                     }
-
                 }
 
             }
@@ -711,9 +678,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;
@@ -1047,7 +1019,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);
@@ -1135,6 +1107,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) {
@@ -1172,11 +1151,12 @@
                     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)
+                            .notIn("wrk_sts", 3, 4, 5)
+                            .in("source_sta_no", 1002, 1007)
                     );
                     if (!inWrkMasts.isEmpty()) {
                         News.error("" + mark + " - 2" + " - 妫�娴嬪瓨鍦ㄥ叆搴撲换鍔★紝绛夊緟鍏ュ簱浠诲姟鎵ц瀹屾垚鍐嶅嚭搴擄紝宸ヤ綔鍙�={}" + wrkMast.getWrkNo());
@@ -1204,6 +1184,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;
                     }
                 }
 
@@ -1304,7 +1292,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);
@@ -2020,6 +2008,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();
@@ -2069,8 +2067,9 @@
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
             // 鍛戒护闆嗗悎
             List<LedCommand> commands = new ArrayList<>();
-            // 宸ヤ綔妗i泦鍚�
-            List<WrkMast> wrkMasts = new ArrayList<>();
+//            // 宸ヤ綔妗i泦鍚�
+//            List<WrkMast> wrkMasts = new ArrayList<>();
+            List<Integer> workNoList = new ArrayList<>();
             for (Integer staNo : led.getStaArr()) {
                 // 鑾峰彇鍙夎溅绔欑偣
                 StaProtocol staProtocol = devpThread.getStation().get(staNo);
@@ -2079,6 +2078,13 @@
                 } else {
                     staProtocol = staProtocol.clone();
                 }
+                Integer wrkNo = null;
+                Integer ioType = null;
+                Integer targetStaNo = null;
+                String sourceLocNo = null;
+                String locNo = null;
+                String barcode = null;
+
                 // 鑾峰彇宸ヤ綔妗f暟鎹�
                 WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
 //                if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; }
@@ -2092,17 +2098,28 @@
                     }
 
                     WrkMastLog wrkMastLog = wrkMastLogs.get(0);
-                    wrkMast = new WrkMast();
-                    wrkMast.sync(wrkMastLog);
+                    wrkNo = wrkMastLog.getWrkNo();
+                    ioType = wrkMastLog.getIoType();
+                    sourceLocNo = wrkMastLog.getSourceLocNo();
+                    locNo = wrkMastLog.getLocNo();
+                    targetStaNo = wrkMastLog.getStaNo();
+                    barcode = wrkMastLog.getBarcode();
+                }else {
+                    wrkNo = wrkMast.getWrkNo();
+                    ioType = wrkMast.getIoType();
+                    sourceLocNo = wrkMast.getSourceLocNo();
+                    locNo = wrkMast.getLocNo();
+                    targetStaNo = wrkMast.getStaNo();
+                    barcode = wrkMast.getBarcode();
                 }
                 News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�:鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�");
-                wrkMasts.add(wrkMast);
+                workNoList.add(wrkNo);
                 // 缁勮鍛戒护
                 LedCommand ledCommand = new LedCommand();
-                ledCommand.setWorkNo(wrkMast.getWrkNo());
-                ledCommand.setIoType(wrkMast.getIoType());
+                ledCommand.setWorkNo(wrkNo);
+                ledCommand.setIoType(ioType);
                 // 鍑哄簱妯″紡
-                switch (wrkMast.getIoType()) {
+                switch (ioType) {
                     case 1:
                         ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
                         break;
@@ -2135,30 +2152,16 @@
                         ledCommand.setTitle("骞舵澘鍏ュ簱");
                         break;
                     default:
-                        News.error("" + mark + " - 1" + " - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+                        News.error("" + mark + " - 1" + " - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkNo, ioType);
                         break;
                 }
-                ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
-                ledCommand.setLocNo(wrkMast.getLocNo());
-                ledCommand.setStaNo(wrkMast.getStaNo());
-                ledCommand.setBarcode(wrkMast.getBarcode());
+                ledCommand.setSourceLocNo(sourceLocNo);
+                ledCommand.setLocNo(locNo);
+                ledCommand.setStaNo(targetStaNo);
+                ledCommand.setBarcode(barcode);
 //                ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
-                if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
-                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
-//                    try{
-//                        if (wrkMast.getIoType()>100){
-//                            for (WrkDetl wrkDetl : wrkDetls){
-//                                LocDetl locDetl = locDetlService.selectMatnrSpecs(wrkDetl.getMatnr(), wrkDetl.getSpecs(), wrkMast.getSourceLocNo());
-//                                wrkDetl.setWeight(locDetl.getAnfme());
-//                            }
-//                        }else {
-//                            for (WrkDetl wrkDetl : wrkDetls){
-//                                wrkDetl.setWeight(wrkDetl.getAnfme());
-//                            }
-//                        }
-//                    }catch (Exception e){
-//                        log.error("宸ヤ綔妗f鏄庣粏杈撳叆鐢佃鏈哄け璐�1锛氬紓甯镐俊鎭�==銆�"+e);
-//                    }
+                if (ioType != 110 && ioType != 10) {
+                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkNo);
 
                     if (!wrkDetls.isEmpty()) {
                         WrkDetl wrkDetl = wrkDetls.get(0);
@@ -2199,24 +2202,8 @@
                                 , wrkDetl.getCstateid$()
                         ));
 
-//                        wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(
-//                                wrkDetl.getMatnr()
-//                                , wrkDetl.getMaktx()
-//                                , wrkDetl.getAnfme()
-//                                , wrkDetl.getWeight()
-//                                , wrkDetl.getStockNum()
-//                                , wrkDetl.getStockNum2()
-//                                , wrkDetl.getSpecs()
-//                                , wrkDetl.getSku()
-//                                , wrkDetl.getZpallet()
-//                                , wrkDetl.getModel()
-//                                , wrkDetl.getSupp()
-//                                , wrkDetl.getKpCstmrName()
-//                                , wrkDetl.getOrderNo()
-//                                , wrkDetl.getCstateid$()
-//                        )));
                     }else {
-                        List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectTodayByWrkNo(wrkMast.getWrkNo());
+                        List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectTodayByWrkNo(wrkNo);
                         if(!wrkDetlLogs.isEmpty()) {
                             WrkDetlLog wrkDetlLog = wrkDetlLogs.get(0);
 
@@ -2230,7 +2217,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) {
@@ -2262,7 +2249,7 @@
                 }
                 commands.add(ledCommand);
             }
-            Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
+            Set<Integer> workNos = new HashSet<>(workNoList);
             // 鑾峰彇LED绾跨▼
             LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
             // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
@@ -2300,12 +2287,15 @@
 
             try {
                 // 淇敼涓绘。led鏍囪
-                for (WrkMast wrkMast : wrkMasts) {
-                    wrkMast.setOveMk("Y");
-                    wrkMast.setModiTime(new Date());
-                    if (wrkMastMapper.updateById(wrkMast) == 0) {
-                        News.errorNoLog("" + mark + " - 4" + " - 鏇存柊宸ヤ綔妗eけ璐�");
-                        throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+                for (Integer wrkNo : workNoList) {
+                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo));
+                    if (wrkMast != null) {
+                        wrkMast.setOveMk("Y");
+                        wrkMast.setModiTime(new Date());
+                        if (wrkMastMapper.updateById(wrkMast) == 0) {
+                            News.errorNoLog("" + mark + " - 4" + " - 鏇存柊宸ヤ綔妗eけ璐�");
+                            throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+                        }
                     }
                 }
 
@@ -2440,8 +2430,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());
@@ -2449,8 +2438,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);
@@ -2470,6 +2464,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