From 3b8b9508a015daae960d0b4f4a25e62949f983c5 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 08 九月 2026 14:37:20 +0800
Subject: [PATCH] 修改充电枪状态更新时效问题
---
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java | 67 ++++++++++++++++++++++++++++++---
1 files changed, 61 insertions(+), 6 deletions(-)
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
index 57aeb64..32a1b09 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
@@ -275,15 +275,10 @@
String gun_code = vo.getGun_code();
//0:正常,1:故障,2=插枪
Integer status = vo.getStatus();
- Long time = (Long) redisTemplate.opsForHash().get("charging_gun_online", (pile_code + gun_code));
- //小于3秒才处理数据,防止频繁查询数据
-// if(null != time && (System.currentTimeMillis() - time) < 3000){
-// return;
-// }
TChargingGun tChargingGun = chargingGunService.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getFullNumber, (pile_code + gun_code)).eq(TChargingGun::getDelFlag, 0));
if(null != tChargingGun){
+ //写入缓存数据,用于充电桩对接服务中限制频率
redisTemplate.opsForHash().put("charging_gun_online", tChargingGun.getFullNumber(), System.currentTimeMillis());
-
TChargingPile chargingPile = chargingPileService.getById(tChargingGun.getChargingPileId());
//枪处于离线或者故障,返回状态为正常,则修改其状态
@@ -416,6 +411,66 @@
+ @ResponseBody
+ @PostMapping("/realTimeUpdateChargingPileStatus")
+ public void realTimeUpdateChargingPileStatus(@RequestBody UpdateChargingPileStatusVo vo){
+ String pile_code = vo.getPile_code();
+ String gun_code = vo.getGun_code();
+ //0:离线,1:故障,2:空闲,3:充电
+ Integer status = vo.getStatus();
+ TChargingGun tChargingGun = chargingGunService.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getFullNumber, (pile_code + gun_code)).eq(TChargingGun::getDelFlag, 0));
+ if(null != tChargingGun){
+ TChargingPile chargingPile = chargingPileService.getById(tChargingGun.getChargingPileId());
+ Site site = siteService.getById(tChargingGun.getSiteId());
+ TChargingGun tChargingGun1 = new TChargingGun();
+ tChargingGun1.setId(tChargingGun.getId());
+ tChargingGun1.setStatus(getStatus(status, vo.getInsertionStatus()));
+ chargingGunService.updateById(tChargingGun1);
+ tChargingGun.setStatus(tChargingGun1.getStatus());
+ threadPoolExecutor.execute(()->{
+ //上传成都监管
+ chengDuJianGuanClient.notificationStationStatus(tChargingGun.getId());
+ });
+ if(site.getIsOpenSynchronization() == 1){
+ threadPoolExecutor.execute(()->{
+ //推送状态给三方平台
+ tcecClient.pushChargingGunStatus(tChargingGun.getFullNumber(), tChargingGun1.getStatus());
+ pushConnectorStatus(tChargingGun);
+ });
+ }
+
+ if(tChargingGun1.getStatus() == 7){
+ TFaultMessage faultMessage = new TFaultMessage();
+ faultMessage.setSiteId(chargingPile.getSiteId());
+ faultMessage.setChargingPileId(chargingPile.getId());
+ faultMessage.setChargingGunId(tChargingGun.getId());
+ faultMessage.setStatus(2);
+ faultMessage.setDownTime(LocalDateTime.now());
+ faultMessage.setCreateTime(LocalDateTime.now());
+ faultMessage.setDelFlag(false);
+ faultMessage.setContent("设备故障");
+ faultMessageService.save(faultMessage);
+ }
+ }
+ }
+
+
+ private Integer getStatus(Integer status, Integer insertionStatus){
+ switch (status){
+ case 0:
+ return 1;
+ case 1:
+ return 7;
+ case 2:
+ return 0 == insertionStatus ? 2 : 3;
+ case 3:
+ return 0 == insertionStatus ? 2 : 4;
+ default:
+ return 7;
+ }
+ }
+
+
@ResponseBody
@PostMapping("/getAllPile")
--
Gitblit v1.7.1