From 5875bad1254965cbb921e0c64776043d344f5548 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 27 十月 2022 13:41:53 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 54 insertions(+), 2 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 18f276f..e78cd7b 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -95,7 +95,6 @@
      * 缁勬墭
      * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
      */
-    @Async
     public void generateStoreWrkFile() {
         // 鏍规嵁杈撻�佺嚎plc閬嶅巻
         for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -226,7 +225,6 @@
      * wms鍏ュ簱
      * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 1 ==>> 2
      */
-    @Async
     public void generateStoreWrkFile0() {
         // 鏍规嵁杈撻�佺嚎plc閬嶅巻
         for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -1268,6 +1266,37 @@
     }
 
     /**
+     * 褰撳墠搴撲綅缁勬槸鍚﹀瓨鍦ㄥ叾浠栧皬杞�
+     */
+    public Integer existOtherSte(String locNo, Integer steNo) {
+        Integer otherSteNo = null;
+        for (SteSlave ste : slaveProperties.getSte()) {
+            if (ste.getId().equals(steNo)) { continue; }
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId());
+            SteProtocol steProtocol = steThread.getSteProtocol();
+            if (steProtocol == null) { continue; }
+            if (steProtocol.isEnable()) {
+                BasSte basSte = basSteService.selectById(ste.getId());
+                if (basSte != null) {
+                    if ((Utils.getGroupRow(locNo, true).equals(Utils.getGroupRow(basSte.getRow(), true))
+                            && basSte.getBay() == Utils.getBay(locNo)
+                            && basSte.getLev() == Utils.getLev(locNo))
+                        ||
+                        (Utils.getGroupRow(locNo, true).equals(Utils.getGroupRow(steProtocol.getRow().intValue(), true))
+                                && steProtocol.getBay() == Utils.getBay(locNo)
+                                && steProtocol.getLev() == Utils.getLev(locNo))
+                    ) {
+                        otherSteNo = ste.getId();
+                        break;
+                    }
+                }
+            }
+        }
+        return otherSteNo;
+    }
+
+    /**
      * 褰撳墠搴撲綅缁勬槸鍚﹀瓨鍦ㄧ┖闂插皬杞�
      */
     public Integer hasCarOfIdle(String locNo) {
@@ -1468,6 +1497,14 @@
                 LocMast locMast;
                 // 鍏ュ簱鎼�
                 if (wrkMast.getWrkSts() <= 10) {
+
+                    // 鍒ゆ柇琚Щ搴撲綅鏄惁瀛樺湪鍏朵粬灏忚溅
+                    Integer otherSte = existOtherSte(wrkMast.getLocNo(), steNo);
+                    if (otherSte != null) {
+                        log.warn("{}鍙峰皬杞︾Щ鍏}搴撲綅缁勫け璐ワ紝鍘熷洜锛氬瓨鍦▄}鍙风┛姊溅锛�", steNo, wrkMast.getLocNo(), otherSte);
+                        return;
+                    }
+
                     locMast = locMastService.selectById(wrkMast.getLocNo());
                     // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
                     CrnCommand crnCommand = new CrnCommand();
@@ -1497,6 +1534,13 @@
                     }
                 // 鍑哄簱鎼�
                 } else {
+                    // 鍒ゆ柇琚Щ搴撲綅鏄惁瀛樺湪鍏朵粬灏忚溅
+                    Integer otherSte = existOtherSte(wrkMast.getSourceLocNo(), steNo);
+                    if (otherSte != null) {
+                        log.warn("{}鍙峰皬杞︾Щ鍏}搴撲綅缁勫け璐ワ紝鍘熷洜锛氬瓨鍦▄}鍙风┛姊溅锛�", steNo, wrkMast.getSourceLocNo(), otherSte);
+                        return;
+                    }
+
                     locMast = locMastService.selectById(wrkMast.getSourceLocNo());
                     // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
                     CrnCommand crnCommand = new CrnCommand();
@@ -1548,8 +1592,16 @@
                     log.error("{}鍙风┛姊溅鍦ㄦ暟鎹簱涓嶅瓨鍦紒锛侊紒", steNo);
                     return;
                 }
+
                 String idleLocNo = basSte.getIdleLoc();
 
+                // 鍒ゆ柇琚Щ搴撲綅鏄惁瀛樺湪鍏朵粬灏忚溅
+                Integer otherSte = existOtherSte(idleLocNo, steNo);
+                if (otherSte != null) {
+                    log.warn("{}鍙峰皬杞︾Щ鍏}搴撲綅缁勫け璐ワ紝鍘熷洜锛氬瓨鍦▄}鍙风┛姊溅锛�", steNo, idleLocNo, otherSte);
+                    return;
+                }
+
                 // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
                 CrnCommand crnCommand = new CrnCommand();
                 crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�

--
Gitblit v1.9.1