From 428afb64e7fc9b7c3701eacab98086fb622cca7b Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期四, 06 十一月 2025 09:30:03 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   84 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 74 insertions(+), 10 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 3db0c17..412410d 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -121,7 +121,7 @@
     private Integer inventoryNumber;
 
     public Integer wrkNo = 10001;
-    public static final List<Integer> LEFT_POSITION = Arrays.asList(1018,2018);
+    public static final List<Integer> LEFT_POSITION = Arrays.asList(1004,1014,1018,1028,1035,2006,2012,2018,2024,2030);
     /**
      * 缁勬墭
      * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
@@ -496,7 +496,6 @@
                         staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()));
                         devpThread.setPakMk(staProtocol.getSiteId(), false);
                         MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                        log.error("杈撻�佺嚎涓嬪彂4锛�"+9996+","+(pickSta.getStaNo().shortValue()-(short)1));
                         //LED
                         LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
                         // led 寮傚父鏄剧ず
@@ -1378,6 +1377,13 @@
                     staProtocol2 = staProtocol2.clone();
                 }
                 SiemensDevpThread devpThread2 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+                StaProtocol staProtocol4004 = devpThread2.getStation().get(4004);
+                if (staProtocol4004 == null) {
+                    News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol4004);
+                    break;
+                } else {
+                    staProtocol4004 = staProtocol4004.clone();
+                }
                 StaProtocol staProtocol3 = devpThread2.getStation().get(2016);
                 if (staProtocol3 == null) {
                     News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2);
@@ -1401,6 +1407,9 @@
                     if (wrkMastMapper.selectWorking(slave.getId()) != null) {
                         break;
 //                        return;
+                    }
+                    if(staProtocol4004.isLoading()){
+                        continue;
                     }
                     // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
                     CrnCommand crnCommand = new CrnCommand();
@@ -1440,6 +1449,9 @@
                         break;
 //                        return;
                     }
+                    if(staProtocol4004.isLoading()){
+                        continue;
+                    }
                     // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
                     CrnCommand crnCommand = new CrnCommand();
                     crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
@@ -1469,6 +1481,8 @@
                 }
             }
             if (slave.getId() == 3 && wrkMast9996 != null) {
+                SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+
                 SiemensDevpThread devpThread2 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
                 StaProtocol staProtocol4001 = devpThread2.getStation().get(4001);
                 if (staProtocol4001 == null) {
@@ -1476,6 +1490,20 @@
                     break;
                 } else {
                     staProtocol4001 = staProtocol4001.clone();
+                }
+                StaProtocol staProtocol2013 = devpThread2.getStation().get(2013);
+                if (staProtocol2013 == null) {
+                    News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2013);
+                    break;
+                } else {
+                    staProtocol2013 = staProtocol2013.clone();
+                }
+                StaProtocol staProtocol1019 = devpThread1.getStation().get(1019);
+                if (staProtocol1019 == null) {
+                    News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol1019);
+                    break;
+                } else {
+                    staProtocol1019 = staProtocol1019.clone();
                 }
                 BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
                 if (staDetl == null) {
@@ -1493,6 +1521,12 @@
                     if (wrkMastMapper.selectWorking(slave.getId()) != null) {
                         break;
 //                        return;
+                    }
+                    if(staProtocol1019.isLoading() && wrkMast9996.getStaNo() < 2000){
+                        continue;
+                    }
+                    if(staProtocol2013.isLoading() && wrkMast9996.getStaNo() > 2000){
+                        continue;
                     }
                     // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
                     CrnCommand crnCommand = new CrnCommand();
@@ -2242,6 +2276,12 @@
                     case 10:
                         ledCommand.setTitle("绌烘澘鍏ュ簱");
                         break;
+                    case 12:
+                        ledCommand.setTitle("鐗╂枡琛旀帴");
+                        break;
+                    case 57:
+                        ledCommand.setTitle("鐩樼偣鍐嶅叆搴�");
+                        break;
                     case 101:
                         ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
                         break;
@@ -2265,6 +2305,20 @@
                 ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
                 ledCommand.setStaNo(wrkMast.getStaNo());
                 ledCommand.setBarcode(wrkMast.getBarcode());
+                if(wrkMast.getIoType() == 12){
+                    List<WrkDetl> wrkDetls = wrkDetlService.findByBarcode(wrkMast.getBarcode());
+                    wrkDetls.forEach(wrkDetl -> {
+                        Double total = 0.0;
+                        EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+                        LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
+                        if (Cools.isEmpty(locDetl)) {
+                            total = wrkDetl.getAnfme();
+                        } else {
+                            total = locDetl.getAnfme();
+                        }
+                        ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
+                    });
+                }
                 if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
                     List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
 
@@ -3357,7 +3411,7 @@
                         continue;
                     }
 
-                    if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
+                    if (staProtocol.isAutoing()  && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
                         flag = true;
                     }
                     if (!flag) {
@@ -3503,7 +3557,7 @@
             // 鍙湁褰揜GV绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
             if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE &&
                     rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk()
-                    && basRgv.getPakToCrn().equals("1") && rgvThread.isPaking()) {
+                     && rgvThread.isPaking()) {
                 News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛孯GV鍏ュ嚭搴撲綔涓氫笅鍙�");
                 // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
 //                rgvRunWrkMastInTest();
@@ -3749,13 +3803,13 @@
             basRgvMap.setNowRoute(rgvProtocol.getRgvNo() == 1?rgvProtocol.getRgvPosI1():rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
             basRgvMapService.updateById(basRgvMap);
             WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
-            if( null == wrkMastSta ) {
-                News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
-                continue;
-            }
             WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1());
             if(basRgv.getPakToCrn().equals("0")){
                 wrkMastSta = wrkMastStaMapper.selectNoInterfereCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));//澶勭悊鎺ラ┏浠诲姟鏃讹紝杩炵画鍙彇鎺ラ┏浠诲姟
+            }
+            if( null == wrkMastSta ) {
+                News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
+                continue;
             }
             boolean result = false;
             if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻   2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
@@ -3766,6 +3820,18 @@
                 basRgvService.updateById(basRgv);
 
                 continue;
+            }
+            if(wrkMastSta != null &&LEFT_POSITION.contains(wrkMastSta.getStaEnd())){
+                StaProtocol staProtocolSta = devpThread.getStation().get(wrkMastSta.getStaEnd());
+                if (staProtocolSta == null) {
+                    News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
+                    continue;
+                } else {
+                    staProtocolSta = staProtocolSta.clone();
+                }
+                if(staProtocolSta.isLoading()){
+                    continue;
+                }
             }
             wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣�
             wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo());
@@ -3781,7 +3847,6 @@
                         }
                     }
                 }
-
                 if(wrkMastSta3 != null ){
                     List<WrkMastSta> wrkMastStaPaking = wrkMastStaService.selectPakingWrk(wrkMastSta3.getStaStart());
                     if(wrkMastStaPaking.size() < 1){
@@ -3800,7 +3865,6 @@
                 basRgvService.updateById(basRgv);
 
                 rgvThread.setPaking(false);
-//                rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
                 try{
                     wrkMastSta.setWrkSts(1);
                     wrkMastStaMapper.updateById(wrkMastSta);

--
Gitblit v1.9.1