From bd6aef1e650db4c24352988ff0cd1ec726498af5 Mon Sep 17 00:00:00 2001
From: yxFwq <1>
Date: 星期二, 19 十一月 2024 16:23:56 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  153 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 119 insertions(+), 34 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 b05492e..ce6b280 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -3112,18 +3112,37 @@
                 continue;
             }
 
+            if (wrkMast.getStaNo()>309){
+                int wrkCount = wrkMastMapper.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 110).gt("sta_no", 309).lt("sta_no", 314).gt("wrk_sts",11L));
+                if (wrkCount>=12){
+                    continue;
+                }
+                RgvOneSign bigTurn = rgvOneSignMapper.selectOneSign("bigTurn");
+                if (Cools.isEmpty(bigTurn)){
+                    continue;
+                }
+                if (bigTurn.getRgvOneSign()>13){
+                    continue;
+                }
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+                StaProtocol staProtocolEnt = devpThread.getStation().get(212);
+                if (staProtocolEnt.isLoading() || staProtocolEnt.getWorkNo()!=0){
+                    continue;
+                }
+            }
+
             // 宸ヤ綔妗g姸鎬佸垽鏂�
             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("oneSign");
-                if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
-                    continue;
-                }
-            }
+//            //閫�搴撴ā寮忚烦杩�118銆�119鍑哄簱浠诲姟
+//            if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){
+//                RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign");
+//                if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
+//                    continue;
+//                }
+//            }
             // 鑾峰彇婧愬簱浣嶄俊鎭�
             LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
             if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) {
@@ -5108,16 +5127,17 @@
                                 break;
                             }
                             BasJar basJar = basJarMapper.selectById(jarSlave.getId());
+                            BasJar basJarOther = basJarMapper.selectById(jarSlave.getJarOtherId());
                             jarMaxLoc = basJar.getJarCount();
-                            if (jarMaxLoc == 0) {
+                            if (jarMaxLoc == 0 || basJarOther.getJarCount() == 0) {
                                 break;
                             }
-                            int count = basJarMastService.selectCount(new EntityWrapper<BasJarMast>().eq("jar_regin", basJar.getRegion()).lt("status", 17).gt("status", 11));
+                            int count = basJarMastService.selectCount(new EntityWrapper<BasJarMast>().eq("jar_regin", basJar.getRegion()).lt("status", 17).gt("status", 6));
                             if (count>0){
                                 break;
                             }
                             if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),3)!=0){
-                                if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(), 3).equals(jarMaxLoc)){
+                                if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(), 3).equals(basJarOther.getJarCount())){
                                     JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
                                     JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
                                     if (jarOtherProtocol == null) {
@@ -5325,6 +5345,8 @@
                     signExecute = jarWrkMastExecuteGenerateBurial(signExecute, sign);//鍐峰嵈妲藉彇杈撻�佺嚎
                 default:
                     jarWrkMastExecuteGenerateSte(signExecute,sign);//灏忚溅绉诲姩
+//                    signExecute = jarWrkMastExecuteGenerateBurial(signExecute, sign);//鍐峰嵈妲藉彇杈撻�佺嚎
+
             }
             if (!signExecute[0] && !signExecute[1]){
                 //Ste绉诲姩
@@ -5658,9 +5680,9 @@
             List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
                 add(4);
             }});
-//            if (basJarMastList.size() != jarMaxLoc){
-//                return false;
-//            }
+            if (basJarMastList.isEmpty()){
+                return false;
+            }
 
             BasJarMast basJarMastSign = basJarMastList.get(0);
             if (Cools.isEmpty(basJarMastSign)){
@@ -5746,11 +5768,9 @@
             List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
                 add(6);
             }});
-//            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=0
-//                    && basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=jarMaxLoc
-//                    && basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=jarMaxLoc*2){
-//                return false;
-//            }
+            if (basJarMastList.isEmpty()){
+                return false;
+            }
 
             BasJarMast basJarMastSign = basJarMastList.get(0);
             if (Cools.isEmpty(basJarMastSign)){
@@ -5809,6 +5829,15 @@
                         log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMastSign));
                     }
                     return true;
+                } else if (jarProtocol.isAutoing() && jarProtocol.statusType != JarStatusType.SOS
+                        && jarProtocol.statusType != JarStatusType.WAITING2 && jarProtocol.jarErr==0
+                            && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+                            && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
+                        Integer integer = basJarMastService.updateStatus(jarProtocol.getJarNo(), 6, 8);
+                        if (basJarMastList.size()!=integer){
+                            log.error("{}鍙风~鍖栫綈纭寲瀹屾垚鍚庡紑闂ㄥ畬鎴愪慨鏀圭~鍖栨。妗堢姸鎬佺粨鏋滄暟閲忎笉涓�鑷达紒锛侊紒鏌ヨ璧勬枡鏁伴噺={}锛屾洿鏂拌繑鍥炴暟閲�={}",jarProtocol.getJarNo(),basJarMastList.size(),integer);
+                        }
+                        return true;
                 }
                 return false;
             } else {
@@ -5895,7 +5924,24 @@
                 if (basJarMastList10.size()==jarMaxLoc){
                     return false;
                 }
-                if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),4)!=0 && !basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(), 4).equals(jarMaxLoc)){
+
+                BasJar basJarOther = basJarMapper.selectById(jarSlave.getJarOtherId());
+                if (Cools.isEmpty(basJarOther)){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarSlave.getJarOtherId());
+                    return false;
+                }
+
+                if (basJarOther.getJarCount() == 0) {
+                    return false;
+                }
+
+                List<BasJarMast> basJarMastListOther = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getJarOtherId(), new ArrayList<Integer>() {{
+                    add(8);
+                }});
+                if (!basJarMastListOther.isEmpty() && basJarMastListOther.size() < basJarOther.getJarCount()){
+                    return false;
+                }
+                if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),4)!=0 && !basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(), 4).equals(basJarOther.getJarCount() )){
                     return false;
                 }
 
@@ -7854,26 +7900,18 @@
         try{
             switch (sign){
                 case 1:
-                case 5:
-                case 9:
                     if (jarWrkMastExecuteGenerateSteComplete(sign)){
                         break;
                     }
                 case 2:
-                case 6:
-                case 10:
                     if (jarWrkMastExecuteGenerateJarComplete(sign)){
                         break;
                     }
                 case 3:
-                case 7:
-                case 11:
                     if (jarWrkMastExecuteGenerateRgvComplete1(sign)){
                         break;
                     }
                 case 4:
-                case 8:
-                case 12:
                     if (jarWrkMastExecuteGenerateRgvComplete2(sign)){
                         break;
                     }
@@ -8086,7 +8124,7 @@
                         && (jarProtocol.leftDoorClose==2  || jarProtocol.rightDoorClose==2)){
                     if (jarProtocol.getJarTemperature()>jarTemperature){
                         log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
-                        return false;
+                        continue;
                     }
                     WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
                     wrkMastExecuteSou.setWrkSts(3);
@@ -8392,7 +8430,14 @@
                     continue;
                 }
                 SteProtocol steProtocol = steThread.getSteProtocol();
-                if (steProtocol == null || steProtocol.getChargeStatus()!=0) {
+                if (steProtocol == null) {
+                    continue;
+                }
+                if (Cools.isEmpty(steProtocol.getChargeStatus())) {
+                    log.error("{}鍙峰皬杞︼紝鍏呯數鐘舵�佷俊鎭紓甯革紝灏忚溅淇℃伅锛歿}",steProtocol.getSteNo(),steProtocol.toString());
+                    continue;
+                }
+                if (steProtocol.getChargeStatus()!=0) {
                     continue;
                 }
                 WrkMastExecute wrkMastExecuteByCharge = wrkMastExecuteService.getWrkMastExecuteByCharge(steSlave.getId());
@@ -8506,7 +8551,14 @@
                     continue;
                 }
                 SteProtocol steProtocol = steThread.getSteProtocol();
-                if (steProtocol == null || steProtocol.getChargeStatus()!=1) {
+                if (steProtocol == null) {
+                    continue;
+                }
+                if (Cools.isEmpty(steProtocol.getChargeStatus())) {
+                    log.error("{}鍙峰皬杞︼紝鍏呯數鐘舵�佷俊鎭紓甯革紝灏忚溅淇℃伅锛歿}",steProtocol.getSteNo(),steProtocol.toString());
+                    continue;
+                }
+                if (steProtocol.getChargeStatus()!=1) {
                     continue;
                 }
 
@@ -8643,13 +8695,44 @@
             }
         }
 
+        try{
+            for (int idi = 1;idi<5;idi++){
+                LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, idi);
+
+                if (ledThread != null) {
+                    ErrMsg errMsg1 = new ErrMsg();
+                    errMsg1.setErrMsg("娴嬭瘯锛�"+idi);
+                    errMsg1.setArea("1");
+                    MessageQueue.offer(SlaveType.Led, idi, new Task(5, errMsg1));
+                } try {
+                    Thread.sleep(500);
+                } catch (Exception e){
+
+                }
+            }
+            LedThread ledThread3 = (LedThread) SlaveConnection.get(SlaveType.Led, 3);
+
+            if (ledThread3 != null) {
+                ErrMsg errMsg1 = new ErrMsg();
+                errMsg1.setErrMsg("娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯锛�"+3);
+                errMsg1.setArea("1");
+                MessageQueue.offer(SlaveType.Led, 3, new Task(5, errMsg1));
+            } try {
+                Thread.sleep(500);
+            } catch (Exception e){
+
+            }
+        } catch (Exception e){
+
+        }
+
 
     }
     public synchronized Integer jarGetStartStaNo(Integer staNo) {
         try {
             int[] jarNos=new int[]{3,1,4,2};//(607鍒嗛厤纭寲缃�)
             ArrayList<Integer> staNos = new ArrayList<Integer>() {{
-                add(607);add(608);add(609);add(610);add(611);add(612);
+                add(608);add(609);add(610);add(611);add(612);
                 add(613);add(614);add(615);add(616);add(617);add(618);
                 add(619);add(620);add(621);add(622);
             }};
@@ -8750,14 +8833,16 @@
                     add(3);
                     add(4);
                 }});
-                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
 
                 Integer count = basJarMastList.size();
                 ArrayList<Integer> wrkNoList = new ArrayList<>();
-
                 for (Integer staNoEnt : staNos){
+                    DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
                     StaProtocol staProtocolEnt = devpThread.getStation().get(staNoEnt);
-                    if (staProtocolEnt != null && staProtocolEnt.getWorkNo()!=0 && !wrkNoList.contains(staProtocolEnt.getWorkNo())){
+                    if (staProtocolEnt == null || (staProtocolEnt.isLoading() && staProtocolEnt.getWorkNo()==0)){
+//                        log.error("绔欑偣寮傚父,璁℃暟鍔犱竴锛岀珯鐐瑰彿锛�"+staNoEnt);
+                        count++;
+                    } else if (staProtocolEnt != null && staProtocolEnt.getWorkNo()!=0 && !wrkNoList.contains(staProtocolEnt.getWorkNo())){
                         if (staProtocolEnt.getStaNo().equals(basJar.getEntStaNo$())){
                             count++;
                             wrkNoList.add(staProtocolEnt.getWorkNo());

--
Gitblit v1.9.1