From b03799a01cbadde1eed0b053bfec000fe63efb8f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期五, 28 十月 2022 13:35:22 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/WrkChargeService.java       |    2 +
 src/main/java/com/zy/asrs/service/BasSteService.java          |    2 +
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java   |   29 ++++++++++++++
 src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java |   17 ++++++++
 src/main/java/com/zy/core/thread/SiemensDevpThread.java       |   17 --------
 5 files changed, 49 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/BasSteService.java b/src/main/java/com/zy/asrs/service/BasSteService.java
index 0b1f825..bcd6cc1 100644
--- a/src/main/java/com/zy/asrs/service/BasSteService.java
+++ b/src/main/java/com/zy/asrs/service/BasSteService.java
@@ -9,4 +9,6 @@
 
     Boolean updatePakMk(Integer steNo, String pakMk);
 
+    Integer hasCarOfLocNo(String locNo);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkChargeService.java b/src/main/java/com/zy/asrs/service/WrkChargeService.java
index b14f662..53209ef 100644
--- a/src/main/java/com/zy/asrs/service/WrkChargeService.java
+++ b/src/main/java/com/zy/asrs/service/WrkChargeService.java
@@ -7,4 +7,6 @@
 
     WrkCharge selectWorking(Integer steNo);
 
+
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java
index 7571e41..12269ae 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasSteServiceImpl.java
@@ -1,11 +1,15 @@
 package com.zy.asrs.service.impl;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.zy.asrs.entity.BasSte;
 import com.zy.asrs.mapper.BasSteMapper;
 import com.zy.asrs.service.BasSteService;
+import com.zy.asrs.utils.Utils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 @Slf4j
 @Service("basSteService")
@@ -21,4 +25,17 @@
         return this.baseMapper.updatePakMk(steNo, pakMk) > 0;
     }
 
+    @Override
+    public Integer hasCarOfLocNo(String locNo) {
+        List<BasSte> basStes = this.selectList(new EntityWrapper<>());
+        for (BasSte basSte : basStes) {
+            if (Utils.getRow(locNo) == basSte.getRow()
+                && Utils.getBay(locNo) == basSte.getBay()
+                && Utils.getLev(locNo) == basSte.getLev()){
+                return basSte.getSteNo();
+            }
+        }
+        return null;
+    }
+
 }
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 8435624..b9a00cc 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2458,6 +2458,7 @@
     /**
      * 灏忚溅鐢甸噺妫�娴� ===>> 鍙戣捣鍏呯數
      */
+    @SuppressWarnings("serial")
     public synchronized void loopSteCharge() {
         SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
         for (SteSlave ste : slaveProperties.getSte()) {
@@ -2484,7 +2485,33 @@
 
                 if (wrkCharge == null && steProtocol.getChargeStatus() == 0) {
                     // 瀵绘壘绌洪棽鍏呯數妗�
-                    SteChargeType steCharge = devpThread.getIdleChargeLocNo();
+                    SteChargeType steCharge = null;
+                    do {
+                        String locNo;
+                        if (!devpThread.charge0) {
+                            locNo = SteChargeType.FIRST.locNo;
+                            if (basSteService.hasCarOfLocNo(locNo) == null) {
+                                steCharge = SteChargeType.FIRST;
+                                break;
+                            }
+                        }
+                        if (!devpThread.charge1) {
+                            locNo = SteChargeType.SECOND.locNo;
+                            if (basSteService.hasCarOfLocNo(locNo) == null) {
+                                steCharge = SteChargeType.SECOND;
+                                break;
+                            }
+                        }
+                        if (!devpThread.charge2) {
+                            locNo = SteChargeType.THIRD.locNo;
+                            if (basSteService.hasCarOfLocNo(locNo) == null) {
+                                steCharge = SteChargeType.THIRD;
+                                break;
+                            }
+                        }
+                        break;
+                    } while (false);
+
                     if (steCharge == null) {
                         log.warn("{}鍙峰皬杞︺�愮數閲忥細{}銆戝厖鐢靛け璐ワ紝鍘熷洜锛氭病鏈夌┖闂插厖鐢垫々銆�", ste.getId(), steProtocol.getCharge());
                         continue;
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 6901ef7..d74e6e3 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -15,7 +15,6 @@
 import com.zy.core.cache.OutputQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
-import com.zy.core.enums.SteChargeType;
 import com.zy.core.model.DevpSlave;
 import com.zy.core.model.Task;
 import com.zy.core.model.protocol.StaProtocol;
@@ -278,22 +277,6 @@
             log.error("杈撻�佺嚎plc缂栧彿={} {}鍙峰厖鐢垫々{}鎺у埗鎴愬姛", slave.getId(), index + 1, open?"鎵撳紑":"鍏抽棴");
         }
         return true;
-    }
-
-    /**
-     * 鑾峰彇绌洪棽鍏呯數妗�
-     */
-    public SteChargeType getIdleChargeLocNo() {
-        if (!this.charge0) {
-            return SteChargeType.FIRST;
-        }
-        if (!this.charge1) {
-            return SteChargeType.SECOND;
-        }
-        if (!this.charge2) {
-            return SteChargeType.THIRD;
-        }
-        return null;
     }
 
     @Override

--
Gitblit v1.9.1