From f1438e7816f5d5ea213834efbd7c39a4ac7d5fd4 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期三, 02 十一月 2022 10:15:10 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   31 +++++++++++++++++++++----------
 1 files changed, 21 insertions(+), 10 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 3412253..2eba0c1 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2487,6 +2487,9 @@
         if (null != wrkChargeService.selectWorking(null, WrkChargeType.reset)) {
             return;
         }
+        if (null != wrkChargeService.selectWorking(null, WrkChargeType.charge)) {
+            return;
+        }
         SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
         for (SteSlave ste : slaveProperties.getSte()) {
             SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId());
@@ -2509,7 +2512,7 @@
                 if (steProtocol.getCharge() > Float.parseFloat(basSte.getChargeLine())) {
                     continue;
                 }
-                WrkCharge wrkCharge = wrkChargeService.selectWorking(ste.getId(), WrkChargeType.charge);
+                WrkCharge wrkCharge = wrkChargeService.selectWorking(null, WrkChargeType.charge);
 
                 if (wrkCharge == null && steProtocol.getChargeStatus() == 0) {
                     // 瀵绘壘绌洪棽鍏呯數妗�
@@ -2517,23 +2520,29 @@
                     do {
                         String locNo;
                         if (!devpThread.charge0) {
-                            locNo = SteChargeType.FIRST.locNo;
-                            if (basSteService.hasCarOfLocNo(locNo) == null) {
-                                steCharge = SteChargeType.FIRST;
+                            SteChargeType first = SteChargeType.FIRST;
+                            locNo = first.locNo;
+                            if (basSteService.hasCarOfLocNo(locNo) == null
+                                && wrkChargeService.selectWorkingOfCharge(first.ssbm) != null) {
+                                steCharge = first;
                                 break;
                             }
                         }
                         if (!devpThread.charge1) {
-                            locNo = SteChargeType.SECOND.locNo;
-                            if (basSteService.hasCarOfLocNo(locNo) == null) {
-                                steCharge = SteChargeType.SECOND;
+                            SteChargeType second = SteChargeType.SECOND;
+                            locNo = second.locNo;
+                            if (basSteService.hasCarOfLocNo(locNo) == null
+                                && wrkChargeService.selectWorkingOfCharge(second.ssbm) != null) {
+                                steCharge = second;
                                 break;
                             }
                         }
                         if (!devpThread.charge2) {
-                            locNo = SteChargeType.THIRD.locNo;
-                            if (basSteService.hasCarOfLocNo(locNo) == null) {
-                                steCharge = SteChargeType.THIRD;
+                            SteChargeType third = SteChargeType.THIRD;
+                            locNo = third.locNo;
+                            if (basSteService.hasCarOfLocNo(locNo) == null
+                                && wrkChargeService.selectWorkingOfCharge(third.ssbm) != null) {
+                                steCharge = third;
                                 break;
                             }
                         }
@@ -2573,6 +2582,8 @@
                     } else {
                         this.letCarBeWaiting(wrkCharge, ste.getId());
                     }
+
+                    break;
                 }
             } catch (Exception e) {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

--
Gitblit v1.9.1