From fd4ce2e507d27baceae451027ea1273c17739830 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期三, 24 一月 2024 19:12:44 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   77 +++++++++++++++++++++++++-------------
 1 files changed, 51 insertions(+), 26 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 7aeadc4..0c3d176 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -98,6 +98,8 @@
     private WrkMastStaMapper wrkMastStaMapper;
     @Autowired
     private BasRgvMapMapper basRgvMapMapper;
+    @Autowired
+    private RgvOneSignMapper rgvOneSignMapper;
 
     @Value("${wms.url}")
     private String wmsUrl;
@@ -602,6 +604,11 @@
                     case 5://鏀�//鎷嗙洏
                         stnToCrnStnPick4();
                         return;
+                    default:
+                        return;
+                }
+            } else if (staProtocol.isAutoing() && staProtocol.isLoading()){
+                switch (sign){
                     case 3://婊℃斁
                     case 6://婊℃斁
                         stnToCrnStnPick5();
@@ -618,8 +625,7 @@
      * 2妤�212鍛煎彨绌烘澘
      */
     public synchronized void stnToCrnStnPick3() {
-        int workNo = 20211;
-        WrkMast wrkMast = wrkMastMapper.selectPakInStep3(workNo);
+        WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
         if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=61){//61銆佺瓑寰呯┖鏉�
             return;
         }
@@ -640,7 +646,7 @@
                         || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000)) ){
                     boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
 
-                    staProtocol.setWorkNo(workNo-1);
+                    staProtocol.setWorkNo(wrkMast.getWrkNo()-1);
                     staProtocol.setStaNo(driveSta.getStaNo()==215? 217:221);
                     boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                     if (!result2) {
@@ -660,8 +666,7 @@
      * 2妤�212鍛煎彨绌烘澘
      */
     public synchronized void stnToCrnStnPick4() {
-        int workNo = 20211;
-        WrkMast wrkMast = wrkMastMapper.selectPakInStep3(workNo);
+        WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
         if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=62){//62銆佺瓑寰呭皬杞︽惉杩�
             return;
         }
@@ -686,10 +691,10 @@
                 }
                 if (staProtocol212.isAutoing() && !staProtocol212.isLoading() && staProtocol212.getWorkNo()==0){
                     if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo()==0
-                            || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000) || staProtocol.getWorkNo()==20210) ){
-                        boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
+                            || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000) || staProtocol.getWorkNo()==wrkMast.getWrkNo()-1) ){
+//                        boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
 
-                        staProtocol.setWorkNo(workNo-1);
+                        staProtocol.setWorkNo(wrkMast.getWrkNo());
                         staProtocol.setStaNo(212);
                         boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                         if (!result2) {
@@ -698,7 +703,7 @@
                         wrkMast.setWrkSts(63L);
                         wrkMastMapper.updateById(wrkMast);
 
-                        boolean result3 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol));
+//                        boolean result3 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol));
                         return;
                     }
                 }
@@ -710,8 +715,7 @@
      * 2妤�212鍛煎彨绌烘澘
      */
     public synchronized void stnToCrnStnPick5() {
-        int workNo = 20211;
-        WrkMast wrkMast = wrkMastMapper.selectPakInStep3(workNo);
+        WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
         if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=63){//63銆佺瓑寰呭畬鎴�
             return;
         }
@@ -724,13 +728,13 @@
         } else {
             staProtocol = staProtocol.clone();
         }
-        if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo()==workNo ){
-            boolean result1 = MessageQueue.offer(SlaveType.Devp, 2, new Task(3, staProtocol));
+        if (staProtocol.isAutoing() && staProtocol.isLoading()){
+//            boolean result1 = MessageQueue.offer(SlaveType.Devp, 2, new Task(3, staProtocol));
 
             wrkMast.setWrkSts(64L);
             wrkMastMapper.updateById(wrkMast);
 
-            boolean result3 = MessageQueue.offer(SlaveType.Devp, 2, new Task(4, staProtocol));
+//            boolean result3 = MessageQueue.offer(SlaveType.Devp, 2, new Task(4, staProtocol));
             return;
         }
     }
@@ -1441,6 +1445,13 @@
             if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
                 log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
                 continue;
+            }
+            //閫�搴撴ā寮忚烦杩�118銆�119鍑哄簱浠诲姟
+            if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){
+                RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign();
+                if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
+                    continue;
+                }
             }
             // 鑾峰彇婧愬簱浣嶄俊鎭�
             LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
@@ -2167,6 +2178,10 @@
      */
     public synchronized void storeEmptyPlt3() {
         try{
+            RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign();
+            if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
+                return;
+            }
             for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
                 RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
                 RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
@@ -2286,6 +2301,10 @@
                         ledCommand.setTitle("鐩樼偣鍑哄簱");
                         break;
                     case 110:
+                        ledCommand.setTitle("绌烘澘鍑哄簱");
+                        ledCommand.setEmptyMk(true);
+                        break;
+                    case 212:
                         ledCommand.setTitle("绌烘澘鍑哄簱");
                         ledCommand.setEmptyMk(true);
                         break;
@@ -3043,7 +3062,7 @@
                         // 鏃犳嫞鏂欐暟鎹�
                         continue;
                     }
-                    if (!wrkMast.getSheetNo().equals("2") || wrkMast.getIoType()<100 || wrkMast.getWrkSts()!=14){
+                    if (Cools.isEmpty(wrkMast.getSheetNo()) || !wrkMast.getSheetNo().equals("2") || wrkMast.getIoType()<100 || wrkMast.getWrkSts()!=14){
                         continue;
                     }
                     if (wrkMast.getIoType()==101){
@@ -3235,9 +3254,9 @@
                         && staProtocol.isLoading()
                         && basDevp.getReportSign()==0
                 ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
-                    if (true){
-                        return;
-                    }
+//                    if (true){
+//                        return;
+//                    }
 
                     //浠诲姟瀹屾垚
                     boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol135));
@@ -3246,7 +3265,8 @@
                     }catch (Exception e){ }
                     basDevp135.setReportSign(2);
                     basDevpService.updateById(basDevp135);
-                    staProtocol135.setWorkNo(32222);
+                    int workNo = commonService.getWorkNo(7);
+                    staProtocol135.setWorkNo(workNo);
                     staProtocol135.setStaNo(144);
                     devpThread.setPakMk(staProtocol135.getSiteId(), false);
                     boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol135));
@@ -3416,7 +3436,8 @@
     /**
      * 鍏ュ嚭搴�  ===>>  灏忚溅浣滀笟涓嬪彂
      */
-    public synchronized void rgvIoExecute(Integer sign) {
+    public synchronized boolean rgvIoExecute(Integer sign) {
+        boolean rgvIoExecuteSign = false;
         try{
             for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
                 // 鑾峰彇灏忚溅淇℃伅
@@ -3465,7 +3486,7 @@
                             break;
                     }
                 }
-                for (int signCount = 1;!signWork && signCount<8;signCount++){
+                for (int signCount = 1;!signWork && signCount<7;signCount++){
                     switch (signCount){
                         case 1://鎵ц灏忚溅璐х墿鎼繍浠诲姟
                             signWork = rgvRunWrkMastFullSta();
@@ -3486,18 +3507,22 @@
 //                            signWork = rgvRunWrkMastEmptyStaPut();
                             break;
                         default:
-                            if (sign>6){
-                                rgvRunWrkMastEmptyStaAvoidance();//閬胯
-                                signWork = true;
-                            }
                             break;
                     }
                 }
-
+                if (!rgvIoExecuteSign){
+                    rgvIoExecuteSign = signWork;
+                }
+            }
+            if (!rgvIoExecuteSign){
+                if (sign>6){
+                    rgvRunWrkMastEmptyStaAvoidance();//閬胯
+                }
             }
         }catch (Exception e){
             log.error("RGV灏忚溅浠诲姟涓嬪彂鎶ラ敊"+e);
         }
+        return rgvIoExecuteSign;
     }
     /**
      * 鎵ц灏忚溅鎼繍浠诲姟

--
Gitblit v1.9.1