From ffde30c0425e95bd25a026374598aa02ef41c7a0 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 02 十一月 2024 20:58:16 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile
---
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java | 144 ++++++++++++++++++++++++++++++-----------------
1 files changed, 92 insertions(+), 52 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 23bcde7..6326c71 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
@@ -27,6 +27,9 @@
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import com.ruoyi.common.redis.service.RedisService;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
+import com.ruoyi.order.api.model.TChargingOrder;
+import com.ruoyi.order.api.vo.TChargingOrderVo;
import com.ruoyi.other.api.domain.TVip;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -41,9 +44,8 @@
import java.math.BigDecimal;
import java.time.LocalDateTime;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* <p>
@@ -66,6 +68,9 @@
@Resource
private TFaultMessageService faultMessageService;
+
+ @Resource
+ private ChargingOrderClient chargingOrderClient;
@Autowired
@@ -214,69 +219,104 @@
/**
* 更新充电桩状态
- * @param code
* @param status
*/
@ResponseBody
@PostMapping("/updateChargingPileStatus")
- public void updateChargingPileStatus(@RequestParam("code") String code, @RequestParam("status") Integer status){
- TChargingPile chargingPile = chargingPileService.getOne(new LambdaQueryWrapper<TChargingPile>()
- .eq(TChargingPile::getCode, code).eq(TChargingPile::getDelFlag, 0));
- if(null != chargingPile){
- //充电桩正常,返回异常,处理充电桩状态和添加故障记录
- if(chargingPile.getStatus() == 1 && 1 == status){
- List<TFaultMessage> faultMessages = faultMessageService.list(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, chargingPile.getId())
- .eq(TFaultMessage::getStatus, 2).eq(TFaultMessage::getDelFlag, 0).isNull(TFaultMessage::getEndTime));
- if(faultMessages.isEmpty()){
- TFaultMessage faultMessage = new TFaultMessage();
- faultMessage.setSiteId(chargingPile.getSiteId());
- faultMessage.setChargingPileId(chargingPile.getId());
- faultMessage.setStatus(2);
- faultMessage.setDownTime(LocalDateTime.now());
- faultMessage.setCreateTime(LocalDateTime.now());
- faultMessage.setDelFlag(false);
- faultMessage.setContent("设备故障");
- faultMessageService.save(faultMessage);
-
+ public void updateChargingPileStatus(@RequestParam("pile_code") String pile_code, @RequestParam("gun_code") String gun_code, @RequestParam("status") Integer status){
+ Map<String, Object> charging_pile_online = redisService.getCacheMap("charging_gun_online");
+ Long time = (Long) charging_pile_online.get(pile_code + gun_code);
+ //小于30秒才处理数据,防止频繁查询数据
+ if(null != time && (System.currentTimeMillis() - time) < 30000){
+ return;
+ }
+ TChargingGun tChargingGun = chargingGunService.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getFullNumber, (pile_code + gun_code)).eq(TChargingGun::getDelFlag, 0));
+ if(null != tChargingGun){
+ charging_pile_online.put(tChargingGun.getFullNumber(), System.currentTimeMillis());
+ redisService.setCacheMap("charging_gun_online", charging_pile_online);
+
+ TChargingPile chargingPile = chargingPileService.getById(tChargingGun.getChargingPileId());
+ //枪处于离线或者故障,返回状态为正常,则修改其状态
+ if(0 == status && tChargingGun.getStatus() != 2){
+ TChargingGun tChargingGun1 = new TChargingGun();
+ tChargingGun1.setId(tChargingGun.getId());
+ tChargingGun1.setStatus(2);
+ chargingGunService.updateById(tChargingGun1);
+ if(chargingPile.getStatus() != 1){
TChargingPile chargingPile1 = new TChargingPile();
chargingPile1.setId(chargingPile.getId());
- chargingPile1.setStatus(3);
+ chargingPile1.setStatus(1);
chargingPileService.updateById(chargingPile1);
-
- List<TChargingGun> list1 = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPile.getId()));
- for (TChargingGun chargingGun : list1) {
- TChargingGun chargingGun1 = new TChargingGun();
- chargingGun1.setId(chargingGun.getId());
- chargingGun1.setStatus(7);
- chargingGunService.updateById(chargingGun1);
- }
}
- }
- if(chargingPile.getStatus() != 1 && 0 == status){
- List<TFaultMessage> list = faultMessageService.list(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, chargingPile.getId())
+
+ List<TFaultMessage> list = faultMessageService.list(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingGunId, tChargingGun.getId())
.isNull(TFaultMessage::getEndTime));
if(!list.isEmpty()){
list.forEach(s->s.setEndTime(LocalDateTime.now()));
faultMessageService.updateBatchById(list);
}
-
- TChargingPile chargingPile1 = new TChargingPile();
- chargingPile1.setId(chargingPile.getId());
- chargingPile1.setStatus(1);
- chargingPileService.updateById(chargingPile1);
-
- List<TChargingGun> list1 = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPile.getId()));
- for (TChargingGun chargingGun : list1) {
- TChargingGun chargingGun1 = new TChargingGun();
- chargingGun1.setId(chargingGun.getId());
- chargingGun1.setStatus(2);
- chargingGunService.updateById(chargingGun1);
- }
}
- if(0 == status){
- Map<String, Object> charging_pile_online = redisService.getCacheMap("charging_pile_online");
- charging_pile_online.put(code, System.currentTimeMillis());
- redisService.setCacheMap("charging_pile_online", charging_pile_online);
+ //枪处于正常,返回状态为故障,则修改其状态
+ if(1 == status && tChargingGun.getStatus() != 1 && tChargingGun.getStatus() != 7){
+ TChargingGun tChargingGun1 = new TChargingGun();
+ tChargingGun1.setId(tChargingGun.getId());
+ tChargingGun1.setStatus(7);
+ chargingGunService.updateById(tChargingGun1);
+
+ //桩处于正常,桩所属的枪都处于非正常,修改桩状态为异常
+ List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPile.getId()).eq(TChargingGun::getDelFlag, 0));
+ int size = list.stream().filter(s -> s.getStatus() == 1 || s.getStatus() == 7).collect(Collectors.toList()).size();
+ if(chargingPile.getStatus() == 1 && list.size() == size){
+ TChargingPile chargingPile1 = new TChargingPile();
+ chargingPile1.setId(chargingPile.getId());
+ chargingPile1.setStatus(3);
+ chargingPileService.updateById(chargingPile1);
+ }
+
+ 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);
+ }
+ if(2 == status){
+ TChargingOrderVo order = new TChargingOrderVo();
+ order.setChargingPileId(tChargingGun.getChargingPileId());
+ order.setChargingGunId(tChargingGun.getId());
+ order.setStatusList(Arrays.asList(1, 2, 3, 4, 5));
+ List<TChargingOrder> orders = chargingOrderClient.getChargingOrder(order).getData();
+ if(orders.size() > 0){
+ TChargingOrder chargingOrder = orders.get(0);
+ TChargingGun tChargingGun1 = new TChargingGun();
+ if(Arrays.asList(1, 2, 5).contains(chargingOrder.getStatus())){
+ tChargingGun1.setStatus(3);
+ }
+ if(Arrays.asList(3).contains(chargingOrder.getStatus())){
+ tChargingGun1.setStatus(4);
+ }
+ if(Arrays.asList(4).contains(chargingOrder.getStatus()) && chargingOrder.getEndMode() == 2){
+ tChargingGun1.setStatus(5);
+ }
+ tChargingGun1.setId(tChargingGun.getId());
+ chargingGunService.updateById(tChargingGun1);
+ }else{
+ TChargingGun tChargingGun1 = new TChargingGun();
+ tChargingGun1.setId(tChargingGun.getId());
+ tChargingGun1.setStatus(3);
+ chargingGunService.updateById(tChargingGun1);
+ }
+
+ List<TFaultMessage> list = faultMessageService.list(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingGunId, tChargingGun.getId())
+ .isNull(TFaultMessage::getEndTime));
+ if(!list.isEmpty()){
+ list.forEach(s->s.setEndTime(LocalDateTime.now()));
+ faultMessageService.updateBatchById(list);
+ }
}
}
}
--
Gitblit v1.7.1