From a01cd9b188ec5e7e16baa5a79a647cd199043c5c Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 19 三月 2025 09:53:42 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   44 ++++++++++++++++++++++++++++++--------------
 1 files changed, 30 insertions(+), 14 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 34a1ed2..d6f5558 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -74,6 +74,8 @@
     private ForkLiftAction forkLiftAction;
     @Autowired
     private NotifyUtils notifyUtils;
+    @Autowired
+    private BasShuttleChargeService basShuttleChargeService;
 
     /**
      * 鍒濆鍖栧疄鏃跺湴鍥�
@@ -1082,6 +1084,12 @@
      */
     public synchronized void loopShuttleCharge() {
         try {
+
+            List<BasShuttleCharge> charges = basShuttleChargeService.selectList(new EntityWrapper<BasShuttleCharge>().orderBy("charge_id", true));
+            if (charges.isEmpty()) {
+                return;//鏃犲厖鐢垫々
+            }
+
             for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
                 //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
                 ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId());
@@ -1102,17 +1110,21 @@
 
                 //灏忚溅鎵�鍦ㄦゼ灞�
                 int lev = Utils.getLev(shuttleProtocol.getCurrentLocNo());
-                ShuttleChargeType shuttleCharge = null;
+                BasShuttleCharge shuttleCharge = null;
 
                 //鎼滅储灏忚溅鎵�鍦ㄦゼ灞傛湁娌℃湁鍏呯數妗�
-                for (ShuttleChargeType chargeType : ShuttleChargeType.values()) {
-                    if (lev != Utils.getLev(chargeType.locNo)) {
+                for (BasShuttleCharge charge : charges) {
+                    if (lev != Utils.getLev(charge.getLocNo())) {
                         continue;//灏忚溅鍜屽厖鐢垫々涓嶅湪鍚屼竴灞�
                     }
 
+                    if (charge.getStatus() == 0) {
+                        continue;//鍏呯數妗╄绂佺敤
+                    }
+
                     //灏忚溅鍜屽厖鐢垫々鍦ㄥ悓涓�灞�
-                    if (wrkMastService.selectChargeWorkingByChargeSta(chargeType.id) == null) {
-                        shuttleCharge = chargeType;
+                    if (wrkMastService.selectChargeWorkingByChargeSta(charge.getChargeId()) == null) {
+                        shuttleCharge = charge;
                         break;
                     }
                 }
@@ -1120,17 +1132,21 @@
                 if (shuttleCharge == null) {
                     //鍚屾ゼ灞傛病鏈夋壘鍒板厖鐢垫々锛屾壘鍙敤鍏呯數妗�
                     //灏忚溅鍚屾ゼ灞傛病鏈夊厖鐢垫々锛屽彧瑕佸厖鐢垫々鍙敤灏辩敓鎴愬厖鐢典换鍔�
-                    for (ShuttleChargeType chargeType : ShuttleChargeType.values()) {
-                        if (wrkMastService.selectChargeWorkingByChargeSta(chargeType.id) == null) {
+                    for (BasShuttleCharge charge : charges) {
+                        if (wrkMastService.selectChargeWorkingByChargeSta(charge.getChargeId()) == null) {
                             //鍒ゆ柇褰撳墠鍏呯數妗╂ゼ灞傛槸鍚︽湁灏忚溅锛屽鏈夊皬杞︼紝涓嶅垎閰嶈鍏呯數妗�
-                            int chargeLev = Utils.getLev(chargeType.locNo);//鍏呯數妗╂ゼ灞�
+                            int chargeLev = Utils.getLev(charge.getLocNo());//鍏呯數妗╂ゼ灞�
                             boolean checkLevHasShuttle = Utils.checkLevHasShuttle(chargeLev);//妫�娴嬫ゼ灞傛槸鍚︽湁绌挎杞�
                             if (checkLevHasShuttle) {
                                 //褰撳墠鍏呯數妗╂ゼ灞傛湁绌挎杞︼紝涓嶅垎閰嶈鍏呯數妗�
                                 continue;
                             }
 
-                            shuttleCharge = chargeType;
+                            if (charge.getStatus() == 0) {
+                                continue;//鍏呯數妗╄绂佺敤
+                            }
+
+                            shuttleCharge = charge;
                             break;
                         }
                     }
@@ -1140,9 +1156,9 @@
                     continue;
                 }
 
-                String chargeLocNo = shuttleCharge.locNo;
+                String chargeLocNo = shuttleCharge.getLocNo();
                 wrkMast = new WrkMast();
-                wrkMast.setMk(String.valueOf(shuttleCharge.id));
+                wrkMast.setMk(String.valueOf(shuttleCharge.getChargeId()));
                 wrkMast.setWrkNo(commonService.getWorkNo(WrkIoType.SHUTTLE_CHARGE.id));
                 wrkMast.setWrkSts(WrkStsType.NEW_CHARGE.sts);
                 wrkMast.setIoType(WrkIoType.SHUTTLE_CHARGE.id);//300.鍏呯數
@@ -1357,13 +1373,13 @@
                 return false;
             }
 
-            ShuttleChargeType chargeType = ShuttleChargeType.get(Integer.parseInt(wrkMast.getMk()));
-            if(chargeType == null) {
+            BasShuttleCharge basShuttleCharge = basShuttleChargeService.selectOne(new EntityWrapper<BasShuttleCharge>().eq("charge_id", wrkMast.getMk()));
+            if(basShuttleCharge == null) {
                 return false;
             }
 
             //璋冨害灏忚溅鍘诲緟鏈轰綅
-            boolean dispatched = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), chargeType.waitLocNo, wrkMast.getShuttleNo());
+            boolean dispatched = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), basShuttleCharge.getWaitLocNo(), wrkMast.getShuttleNo());
             if (!dispatched) {
                 return false;
             }

--
Gitblit v1.9.1