From 12c3f4de5ce151b50e187066a3c105260523abb8 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期四, 30 四月 2026 10:04:56 +0800
Subject: [PATCH] 充电机代码提交

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java |   63 ++++++++++++++++++++++++-------
 1 files changed, 48 insertions(+), 15 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
index c6da001..2b6de2f 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
@@ -133,7 +133,7 @@
 //                continue;
 //            }
             // 鍒よ鏄惁鍙互鑷姩鏂紑鍏呯數锛堝嵆鍏呯數杩囩▼涓笉鑳芥帴鍙椾换鍔★級锛岃烦杩�
-            if (!agvService.judgeAutoStopCharge(agvModel,agvDetail, agv)) {
+            if (!agvService.judgeAutoStopCharge(agvModel, agvDetail, agv)) {
                 continue;
             }
             // is charging ?
@@ -252,6 +252,7 @@
      * 璋冨害瀵规帴鍏呯數妗�
      * 鐘舵��1锛氬紑濮嬪厖鐢�
      * 鐘舵��2锛氬厖鐢典腑
+     * 鐘舵��3锛氫汉涓烘搷浣滀笅鍙戞柇寮�鍏呯數鎿嶄綔
      */
     @Scheduled(cron = "0/5 * * * * ? ")
     private synchronized void startCharge() {
@@ -262,7 +263,7 @@
                 continue;
             }
             AgvDetail agvDetail = agvDetailService.selectByAgvNo(key);
-            if (agvDetail == null){
+            if (agvDetail == null) {
                 log.error("{} 鍙峰緟鍏呯數灏忚溅涓嶅瓨鍦�", key);
                 continue;
             }
@@ -275,39 +276,71 @@
             if (null == agvDetail || null == agvDetail.getSoc() || null == agvDetail.getAgvStatus() || funcSta == null || null == modbusTCPMaster) {
                 continue;
             }
-            if (chargeCoreService.getChargeMode(modbusTCPMaster) != 0) {
-                log.info("{} 璇ュ厖鐢垫満涓嶆槸鑷姩鍏呯數妯″紡", funcSta.getName());
-               continue;
+            int chargeMode = chargeCoreService.getChargeMode(modbusTCPMaster);
+            if (chargeMode != 0) {
+                log.info("{} 璇ュ厖鐢垫満涓嶆槸鑷姩鍏呯數妯″紡", chargeMode);
+                continue;
             }
             switch (status) {
                 case 1:
                     // 鍚庨��淇″彿娑堝け锛岃鏄庨┈杈炬鍦ㄥ墠杩�
                     if (chargeCoreService.checkBackwardRelayOffline(modbusTCPMaster)) {
+                        log.info("鍙戦�佸厖鐢垫満鍏呯數鎸囦护锛氳溅鍙凤細{}", agvDetail.getAgvId$());
                         chargeCoreService.startCharging(modbusTCPMaster);
+                        continue;
                     }
                     if (chargeCoreService.checkForwardRelayOnline(modbusTCPMaster)) {
                         double current = chargeCoreService.getCurrent(modbusTCPMaster);
                         double voltage = chargeCoreService.getVoltage(modbusTCPMaster);
                         if (current > 0 && voltage > 0) {
                             redis.setMap(RedisConstant.AGV_CHARGE_FLAG, key, 2);
-                            log.info("charge complete");
+                            log.info("charge start:{}", agvDetail.getAgvId$());
                         } else {
                             log.info("read charge current and voltage: {},{}", current, voltage);
                         }
+                    } else {
+                        log.info("鍓嶈繘鍒颁綅淇″彿澶辫触锛氳溅鍙凤細{}", agvDetail.getAgvId$());
                     }
                     break;
 
                 case 2:
-                    AgvModel agvModel = agvModelService.getByAgvId(agvDetail.getAgvId());
-                    if (agvDetail.getSoc() >= agvModel.getQuaBattery()) {
-                        // 鍓嶈繘淇″彿瀛樺湪锛岃鏄庢満姊拌噦鏈几鍥�
-                        if (chargeCoreService.checkForwardRelayOnline(modbusTCPMaster)) {
-                            chargeCoreService.stopCharging(modbusTCPMaster);
+                    // 濡傛灉鍏呯數鏈哄畬鎴愬厖鐢典細鑷姩鏂紑
+                    // 浣嗗厖鐢垫爣璇嗗搱鍦ㄧ紦瀛樹腑锛岄偅涔堥渶瑕佹竻闄ょ紦瀛樻爣璁�
+                    // 鑾峰彇鍏呯數鏈虹紪鍙蜂笖鍚庨��鍒颁綅淇″彿瀛樺湪锛岄偅涔堣鏄庢満姊拌噦宸茬粡浼稿洖锛岄偅涔堝氨闇�瑕佹竻闄ょ紦瀛�
+                    if (chargeCoreService.getChargeId(modbusTCPMaster) > 0 && chargeCoreService.checkBackwardRelayOffline(modbusTCPMaster)) {
+                        redis.deleteMap(RedisConstant.AGV_CHARGE_FLAG, key);
+                        log.info("charge over By Auto:{}", agvDetail.getAgvId$());
+                    }else {
+                        AgvModel agvModel = agvModelService.getByAgvId(agvDetail.getAgvId());
+                        if (agvDetail.getSoc() >= agvModel.getQuaBattery()) {
+                            // 鍓嶈繘淇″彿瀛樺湪锛岃鏄庢満姊拌噦鏈几鍥�
+                            if (chargeCoreService.checkForwardRelayOnline(modbusTCPMaster)) {
+                                log.info("鍙戦�佸厖鐢垫満鏂厖鎸囦护锛氳溅鍙凤細{}", agvDetail.getAgvId$());
+                                chargeCoreService.stopCharging(modbusTCPMaster);
+                                continue;
+                            }
+                            if (chargeCoreService.checkBackwardRelayOffline(modbusTCPMaster)) {
+                                redis.deleteMap(RedisConstant.AGV_CHARGE_FLAG, key);
+                                log.info("charge over:{}", agvDetail.getAgvId$());
+                            } else {
+                                log.info("鍚庨��鍒颁綅淇″彿澶辫触锛氳溅鍙凤細{}", agvDetail.getAgvId$());
+                            }
                         }
-                        if (chargeCoreService.checkBackwardRelayOffline(modbusTCPMaster)) {
-                            redis.deleteMap(RedisConstant.AGV_CHARGE_FLAG, key);
-                            log.info("charge over");
-                        }
+                    }
+                    break;
+                case 3:
+                    // 鎵嬪姩鏂紑鍏呯數
+                    // 鍓嶈繘淇″彿瀛樺湪锛岃鏄庢満姊拌噦鏈几鍥�
+                    if (chargeCoreService.checkForwardRelayOnline(modbusTCPMaster)) {
+                        log.info("鍙戦�佸厖鐢垫満鎵嬪姩鏂厖鎸囦护锛氳溅鍙凤細{}", agvDetail.getAgvId$());
+                        chargeCoreService.stopCharging(modbusTCPMaster);
+                        continue;
+                    }
+                    if (chargeCoreService.checkBackwardRelayOffline(modbusTCPMaster)) {
+                        redis.deleteMap(RedisConstant.AGV_CHARGE_FLAG, key);
+                        log.info("charge over by handle:{}", agvDetail.getAgvId$());
+                    } else {
+                        log.info("鎵嬪姩鍚庨��鍒颁綅淇″彿澶辫触锛氳溅鍙凤細{}", agvDetail.getAgvId$());
                     }
                     break;
                 default:

--
Gitblit v1.9.1