From 479d51e0c9662bebfe37a48401ec23fbd6496d0e Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 27 十月 2022 15:17:10 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/properties/SlaveProperties.java   |    2 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  118 +++++++++++++++++++++++----------------
 src/main/resources/application.yml                          |    2 
 3 files changed, 74 insertions(+), 48 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 e1bfc3f..24f1439 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1399,7 +1399,7 @@
         steCommand.setTaskNo(wrkCharge.getWrkNo()); // 宸ヤ綔鍙�
         steCommand.setTaskMode(SteTaskModeType.findOriginByLoc(steProtocol.getRow().intValue())); // 浠诲姟妯″紡:  鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
 
-        steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
+        steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue(), true).shortValue());
         steCommand.setBay(steProtocol.getBay());
         steCommand.setLev(steProtocol.getLev());
 
@@ -1898,10 +1898,10 @@
                                     steThread.setResetFlag(true);
                                 }
                             } else if (wrkCharge.getWrkSts() == 25) {
-                                // 25.灏忚溅鍘诲厖鐢� ===>> 26.绛夊緟鍏呯數
+                                // 25.灏忚溅璧拌 ===>> 26.绛夊緟鍏呯數
                                 wrkCharge.setWrkSts(26L);
                                 if (!wrkChargeService.updateById(wrkCharge)) {
-                                    log.error("淇敼鍏呯數浠诲姟鐘舵�� 25.灏忚溅鍘诲厖鐢� ===>> 26.绛夊緟鍏呯數 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
+                                    log.error("淇敼鍏呯數浠诲姟鐘舵�� 25.灏忚溅璧拌 ===>> 26.绛夊緟鍏呯數 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
                                 } else {
                                     steThread.setResetFlag(true);
                                 }
@@ -2499,7 +2499,7 @@
                     wrkCharge.setSteNo(ste.getId());
                     wrkCharge.setWrkNo(commonService.getChargeWorkNo(4));
                     wrkCharge.setWrkSts(21L);   // 21.鍑嗗鍏呯數
-//                    wrkCharge.setCrnNo(basSte.getCrnNo());
+                    wrkCharge.setCrnNo(2);  // 鍥哄畾2鍙峰爢鍨涙満
                     wrkCharge.setIoPri((double) 10);
                     wrkCharge.setLocNo(chargeLocNo);
                     wrkCharge.setMemo("charge");
@@ -2530,33 +2530,43 @@
 
                     // 22.灏忚溅寰呮惉
                     if (wrkCharge.getWrkSts() == 22) {
-                        // 鎼皬杞﹁嚦鍏呯數搴撲綅
-                        LocMast locMast = locMastService.selectById(basSte.getIdleLoc());
 
-                        // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
-                        CrnCommand crnCommand = new CrnCommand();
-                        crnCommand.setCrnNo(wrkCharge.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
-                        crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-                        crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-                        crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-                        crnCommand.setSourcePosX(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());     // 婧愬簱浣嶆帓
-                        crnCommand.setSourcePosY(steProtocol.getBay());     // 婧愬簱浣嶅垪
-                        crnCommand.setSourcePosZ(steProtocol.getLev());     // 婧愬簱浣嶅眰
-                        crnCommand.setDestinationPosX(Utils.getGroupRow(locMast.getLocNo()).shortValue());     // 鐩爣搴撲綅鎺�
-                        crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
-                        crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
-                        if (!MessageQueue.offer(SlaveType.Crn, wrkCharge.getCrnNo(), new Task(2, crnCommand))) {
-                            log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getCrnNo(), JSON.toJSON(crnCommand));
-                        } else {
-                            // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
-                            steThread.modifyPos(Utils.getGroupRow(locMast.getLocNo()), locMast.getBay1(), locMast.getLev1());
-                            // 淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍
-                            Date now = new Date();
-                            wrkCharge.setWrkSts(23L);
-                            wrkCharge.setCrnStrTime(now);
-                            wrkCharge.setModiTime(now);
-                            if (!wrkChargeService.updateById(wrkCharge)) {
-                                log.error("淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
+                        // 鎼皬杞﹁嚦灏忚溅璧板悜閫氶亾
+                        List<String> channel = slaveProperties.getChannel();
+                        for (String channelLocNo : channel) {
+                            Integer otherSte = existOtherSte(channelLocNo, wrkCharge.getSteNo());
+                            if (null != otherSte) {
+                                log.warn("{}鍙峰皬杞︾Щ鍏}搴撲綅缁勫け璐ワ紝鍘熷洜锛氬瓨鍦▄}鍙风┛姊溅锛�", wrkCharge.getSteNo(), channelLocNo, otherSte);
+                            } else {
+                                LocMast channelLoc = locMastService.selectById(channelLocNo);
+
+                                // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
+                                CrnCommand crnCommand = new CrnCommand();
+                                crnCommand.setCrnNo(wrkCharge.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+                                crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+                                crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+                                crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+                                crnCommand.setSourcePosX(Utils.getGroupRow(steProtocol.getRow().intValue(), true).shortValue());     // 婧愬簱浣嶆帓
+                                crnCommand.setSourcePosY(steProtocol.getBay());     // 婧愬簱浣嶅垪
+                                crnCommand.setSourcePosZ(steProtocol.getLev());     // 婧愬簱浣嶅眰
+                                crnCommand.setDestinationPosX(Utils.getGroupRow(channelLoc.getLocNo(), true).shortValue());     // 鐩爣搴撲綅鎺�
+                                crnCommand.setDestinationPosY(channelLoc.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
+                                crnCommand.setDestinationPosZ(channelLoc.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+                                if (!MessageQueue.offer(SlaveType.Crn, wrkCharge.getCrnNo(), new Task(2, crnCommand))) {
+                                    log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getCrnNo(), JSON.toJSON(crnCommand));
+                                } else {
+                                    // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
+                                    steThread.modifyPos(Utils.getGroupRow(channelLoc.getLocNo(), true), channelLoc.getBay1(), channelLoc.getLev1());
+                                    // 淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍
+                                    Date now = new Date();
+                                    wrkCharge.setWrkSts(23L);
+                                    wrkCharge.setCrnStrTime(now);
+                                    wrkCharge.setModiTime(now);
+                                    if (!wrkChargeService.updateById(wrkCharge)) {
+                                        log.error("淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
+                                    }
+                                }
+                                break;
                             }
                         }
 
@@ -2568,37 +2578,49 @@
                             SteCommand steCommand = new SteCommand();
                             steCommand.setSteNo(wrkCharge.getSteNo()); // 绌挎杞︾紪鍙�
                             steCommand.setTaskNo(wrkCharge.getWrkNo()); // 宸ヤ綔鍙�
-                            steCommand.setTaskMode(SteTaskModeType.findChargeByLoc(steProtocol.getRow().intValue()));
+                            steCommand.setTaskMode(SteTaskModeType.GO_ORIGIN);  // 鍘诲彸绔�
                             if (!MessageQueue.offer(SlaveType.Ste, wrkCharge.getSteNo(), new Task(2, steCommand))) {
                                 log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getSteNo(), JSON.toJSON(steCommand));
                             } else {
-                                // 淇敼宸ヤ綔妗g姸鎬� 24.灏忚溅鍒拌揪 ===> 25.灏忚溅鍘诲厖鐢�
+                                // 淇敼宸ヤ綔妗g姸鎬� 24.灏忚溅鍒拌揪 ===> 25.灏忚溅璧拌
                                 wrkCharge.setWrkSts(25L);
                                 Date now = new Date();
                                 wrkCharge.setCrnEndTime(now);
                                 wrkCharge.setModiTime(now);
                                 if (!wrkChargeService.updateById(wrkCharge)) {
-                                    log.error("淇敼鍏呯數浠诲姟鐘舵�� 24.灏忚溅鍒拌揪 ===> 25.灏忚溅鍘诲厖鐢� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
+                                    log.error("淇敼鍏呯數浠诲姟鐘舵�� 24.灏忚溅鍒拌揪 ===> 25.灏忚溅璧拌 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
                                 }
                             }
                         }
                     } else if (wrkCharge.getWrkSts() == 26) {
-                        if (steProtocol.getChargeStatus() == 0) { continue; }
-                        // 缁欒緭閫佺嚎涓嬪彂鍏呯數浠诲姟
-                        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                        SteChargeType steChargeType = SteChargeType.get(wrkCharge.getLocNo());
-                        if (null != steChargeType) {
-                            if (devpThread.charge(steChargeType.ssbm - 1, true)) {
-                                // 淇敼宸ヤ綔妗g姸鎬� 26.绛夊緟鍏呯數 ===> 28.瀹屾垚鍏呯數
-                                wrkCharge.setWrkSts(28L);
-                                if (!wrkChargeService.updateById(wrkCharge)) {
-                                    log.error("淇敼鍏呯數浠诲姟鐘舵�� 26.绛夊緟鍏呯數 ===> 28.瀹屾垚鍏呯數 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
-                                } else {
-                                    steThread.setResetFlag(true);
-                                }
-                            }
+                        // 27.鏀捐嚦鍏呯數浣�
+                        LocMast chargeLoc = locMastService.selectById(wrkCharge.getLocNo());
+
+                        // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
+                        CrnCommand crnCommand = new CrnCommand();
+                        crnCommand.setCrnNo(wrkCharge.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+                        crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+                        crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+                        crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+                        crnCommand.setSourcePosX(Utils.getGroupRow(steProtocol.getRow().intValue(), true).shortValue());     // 婧愬簱浣嶆帓
+                        crnCommand.setSourcePosY(steProtocol.getBay());     // 婧愬簱浣嶅垪
+                        crnCommand.setSourcePosZ(steProtocol.getLev());     // 婧愬簱浣嶅眰
+                        crnCommand.setDestinationPosX(Utils.getGroupRow(channelLoc.getLocNo(), true).shortValue());     // 鐩爣搴撲綅鎺�
+                        crnCommand.setDestinationPosY(channelLoc.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
+                        crnCommand.setDestinationPosZ(channelLoc.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+                        if (!MessageQueue.offer(SlaveType.Crn, wrkCharge.getCrnNo(), new Task(2, crnCommand))) {
+                            log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getCrnNo(), JSON.toJSON(crnCommand));
                         } else {
-                            log.error("鑾峰彇鍏呯數妗╁彿澶辫触锛岃В鏋愬簱浣嶏細{}", wrkCharge.getLocNo());
+                            // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
+                            steThread.modifyPos(Utils.getGroupRow(channelLoc.getLocNo(), true), channelLoc.getBay1(), channelLoc.getLev1());
+                            // 淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍
+                            Date now = new Date();
+                            wrkCharge.setWrkSts(23L);
+                            wrkCharge.setCrnStrTime(now);
+                            wrkCharge.setModiTime(now);
+                            if (!wrkChargeService.updateById(wrkCharge)) {
+                                log.error("淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
+                            }
                         }
                     }
                 }
diff --git a/src/main/java/com/zy/core/properties/SlaveProperties.java b/src/main/java/com/zy/core/properties/SlaveProperties.java
index d90276f..b40fca2 100644
--- a/src/main/java/com/zy/core/properties/SlaveProperties.java
+++ b/src/main/java/com/zy/core/properties/SlaveProperties.java
@@ -26,6 +26,8 @@
 
     private int groupCount;
 
+    private List<String> channel = new ArrayList<>();
+
     private List<CrnSlave> crn = new ArrayList<>();
 
     private List<SteSlave> ste = new ArrayList<>();
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index b715869..4e56e87 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -46,6 +46,8 @@
   doubleLocs: 32
   # 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
   groupCount: 2
+  # 绌挎杞﹂�氶亾搴撲綅
+  channel: 0200101
   # 鍫嗗灈鏈�1
   crn[0]:
     id: 1

--
Gitblit v1.9.1