From 17c1bce278e9a727d30b00e02f021e83045c5501 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 25 三月 2025 20:57:53 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java |  253 +++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 229 insertions(+), 24 deletions(-)

diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
index 5f4ca19..9e28bdf 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
@@ -25,12 +25,14 @@
 import com.ruoyi.other.api.feignClient.SystemConfigurationClient;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -83,7 +85,7 @@
 	@Resource
 	private SystemConfigurationClient systemConfigurationClient;
 	
-	
+	private final static String operatorId = "906171535";
 	
 	/**
 	 * 请求校验
@@ -1796,46 +1798,93 @@
 		return baseResult;
 	}
 	/**
-	 * 查询充电站信息
+	 * 查询充换电站状态信息
 	 * @param baseRequest
 	 * @param request
 	 * @return
 	 */
-	@PostMapping("/supervise_notification_operation_stats_info")
-	public BaseResult superviseNotificationOperationStatsInfo(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
-		log.info("监管平台查询充电站信息请求参数:" + JacksonUtils.toJson(baseRequest));
+	@PostMapping("/supervise_query_station_status")
+	public BaseResult superviseQueryStationStatus(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+		log.info("监管平台查询充换电站状态信息请求参数:" + JacksonUtils.toJson(baseRequest));
 		//校验token和签名
 		BaseResult baseResult = requestCheck(true, baseRequest, request);
 		if(0 != baseResult.getRet()){
-			log.info("监管平台查询充电站信息响应Data:");
+			log.info("监管平台查询充换电站状态信息响应Data:");
 			baseResult.setData("");
 			baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
-			log.info("监管平台查询充电站信息响应参数:" + JacksonUtils.toJson(baseResult));
+			log.info("监管平台查询充换电站状态信息响应参数:" + JacksonUtils.toJson(baseResult));
 			return baseResult;
 		}
 		Operator operator = baseResult.getOperator();
 		//解密参数
 		String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
-		log.info("监管平台查询充电站信息请求Data:" + decrypt);
-		QueryStationsInfo queryStationsInfo = JSON.parseObject(decrypt, QueryStationsInfo.class);
-		Integer pageNo = queryStationsInfo.getPageNo();
-		Integer pageSize = queryStationsInfo.getPageSize();
-		List<String> stationIDs = queryStationsInfo.getStationIDs();
-		if(null == pageNo){
-			pageNo = 1;
+		log.info("监管平台查询充换电站状态信息请求Data:" + decrypt);
+		QueryStationStatus queryStationStatus = JSON.parseObject(decrypt, QueryStationStatus.class);
+		List<String> stationIDs = queryStationStatus.getStationIDs();
+		String operatorID = queryStationStatus.getOperatorID();
+
+		List<Integer> stationIDList = new ArrayList<>();
+		for (String stationID : stationIDs) {
+			stationIDList.add(Integer.valueOf(stationID));
 		}
-		if(null == pageSize){
-			pageSize = 50;
+
+		QueryStationStatusResult queryStationStatusResult = new QueryStationStatusResult();
+		List<StationStatusInfo> stationStatusInfos = new ArrayList<>();
+
+		// 查询站点下的桩信息状态
+		List<TChargingPile> chargingPiles = chargingPileClient.getChargingPileBySiteIds(stationIDList).getData();
+		if(!CollectionUtils.isEmpty(chargingPiles)){
+			List<Integer> pileIds = chargingPiles.stream().map(TChargingPile::getId).collect(Collectors.toList());
+			List<TChargingGun> chargingGuns = chargingGunClient.getChargingGunByChargingPileIds(pileIds).getData();
+			if(!CollectionUtils.isEmpty(chargingGuns)){
+				for (Integer stationID : stationIDList) {
+					StationStatusInfo stationStatusInfo = new StationStatusInfo();
+					stationStatusInfo.setOperatorID(operatorID);
+					stationStatusInfo.setEquipmentOwnerID("999999999");
+					stationStatusInfo.setStationID(String.valueOf(stationID));
+					List<ConnectorStatusInfo> connectorStatusInfos = new ArrayList<>();
+					for (TChargingGun chargingGun : chargingGuns) {
+						ConnectorStatusInfo connectorStatusInfo = new ConnectorStatusInfo();
+						connectorStatusInfo.setOperatorID(operatorId);
+						connectorStatusInfo.setEquipmentOwnerID("999999999");
+						connectorStatusInfo.setStationID(String.valueOf(chargingGun.getSiteId()));
+						connectorStatusInfo.setEquipmentID(String.valueOf(chargingGun.getChargingPileId()));
+						connectorStatusInfo.setConnectorID(chargingGun.getFullNumber());
+						connectorStatusInfo.setEquipmentClassification(1);
+						switch (chargingGun.getStatus()){
+							case 1:
+								connectorStatusInfo.setStatus(0);
+								break;
+							case 2:
+								connectorStatusInfo.setStatus(1);
+								break;
+							case 3:
+								connectorStatusInfo.setStatus(2);
+								break;
+							case 4:
+								connectorStatusInfo.setStatus(3);
+								break;
+							case 5:
+								connectorStatusInfo.setStatus(3);
+								break;
+							case 6:
+								connectorStatusInfo.setStatus(4);
+								break;
+							case 7:
+								connectorStatusInfo.setStatus(255);
+								break;
+						}
+						connectorStatusInfo.setUpdateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+						connectorStatusInfos.add(connectorStatusInfo);
+					}
+					stationStatusInfo.setConnectorStatusInfos(connectorStatusInfos);
+					stationStatusInfos.add(stationStatusInfo);
+				}
+			}
+			queryStationStatusResult.setStationStatusInfos(stationStatusInfos);
 		}
-		PageInfo<Site> siteListPaging = siteClient.getSiteListPaging(pageNo, pageSize, stationIDs);
-		List<TParkingLot> parkingLots = parkingLotClient.getAllParkingLot().getData();
-		QueryStationsInfoResult queryStationsInfoResult = new QueryStationsInfoResult();
-		queryStationsInfoResult.setPageNo(pageNo);
-		queryStationsInfoResult.setPageCount((0 == (siteListPaging.getTotal() % pageSize) ? 0 : 1) + Double.valueOf(siteListPaging.getTotal() / pageSize).intValue());
-		queryStationsInfoResult.setItemSize(Long.valueOf(siteListPaging.getTotal()).intValue());
-		queryStationsInfoResult.setStationInfos(buildSite(parkingLots, siteListPaging.getRecords()));
 		//参数加密
-		String jsonString = JacksonUtils.toJson(queryStationsInfoResult);
+		String jsonString = JacksonUtils.toJson(queryStationStatusResult);
 		log.info("监管平台查询充电站信息响应Data:" + jsonString);
 		String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
 		baseResult.setData(encrypt);
@@ -1844,6 +1893,162 @@
 		return baseResult;
 	}
 
+
+	/**
+	 * 推送充电设备接口状态信息
+	 * @param chargingGun
+	 * @return
+	 */
+	public R pushSuperviseNotificationStationStatus(TChargingGun chargingGun){
+		ConnectorStatusInfo connectorStatusInfo = new ConnectorStatusInfo();
+		connectorStatusInfo.setOperatorID(operatorId);
+		connectorStatusInfo.setEquipmentOwnerID("999999999");
+		connectorStatusInfo.setStationID(String.valueOf(chargingGun.getSiteId()));
+		connectorStatusInfo.setEquipmentID(String.valueOf(chargingGun.getChargingPileId()));
+		connectorStatusInfo.setConnectorID(chargingGun.getFullNumber());
+		connectorStatusInfo.setEquipmentClassification(1);
+		switch (chargingGun.getStatus()){
+			case 1:
+				connectorStatusInfo.setStatus(0);
+				break;
+			case 2:
+				connectorStatusInfo.setStatus(1);
+				break;
+			case 3:
+				connectorStatusInfo.setStatus(2);
+				break;
+			case 4:
+				connectorStatusInfo.setStatus(3);
+				break;
+			case 5:
+				connectorStatusInfo.setStatus(3);
+				break;
+			case 6:
+				connectorStatusInfo.setStatus(4);
+				break;
+			case 7:
+				connectorStatusInfo.setStatus(255);
+				break;
+		}
+		connectorStatusInfo.setUpdateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+		List<Operator> operators = operatorClient.getAllOperator().getData();
+		for (Operator operator : operators) {
+			TCECSuperviseUtil.notificationStationStatus(operator, connectorStatusInfo);
+		}
+		return R.ok();
+	}
+	/**
+	 * 推送充电状态信息
+	 * @param chargingOrder
+	 * @return
+	 */
+	public R pushSuperviseNotificationEquipChargeStatus(TChargingOrder chargingOrder){
+		SupEquipChargeStatus supEquipChargeStatus = new SupEquipChargeStatus();
+		supEquipChargeStatus.setOperatorID(operatorId);
+		supEquipChargeStatus.setEquipmentOwnerID("999999999");
+		supEquipChargeStatus.setStationID(String.valueOf(chargingOrder.getSiteId()));
+		supEquipChargeStatus.setEquipmentID(String.valueOf(chargingOrder.getChargingPileId()));
+		supEquipChargeStatus.setOrderNo(operatorId+chargingOrder.getCode());
+		switch (chargingOrder.getStatus()){
+			case 2:
+				supEquipChargeStatus.setConnectorStatus(1);
+				break;
+			case 3:
+				supEquipChargeStatus.setConnectorStatus(2);
+				break;
+			case 4:
+				supEquipChargeStatus.setConnectorStatus(3);
+				break;
+			case 5:
+				supEquipChargeStatus.setConnectorStatus(4);
+				break;
+		}
+		TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
+		supEquipChargeStatus.setConnectorID(chargingGun.getFullNumber());
+		supEquipChargeStatus.setEquipmentClassification(1);
+		supEquipChargeStatus.setPushTimeStamp(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+		switch (chargingGun.getStatus()){
+			case 1:
+				supEquipChargeStatus.setConnectorStatus(0);
+				break;
+			case 2:
+				supEquipChargeStatus.setConnectorStatus(1);
+				break;
+			case 3:
+				supEquipChargeStatus.setConnectorStatus(2);
+				break;
+			case 4:
+				supEquipChargeStatus.setConnectorStatus(3);
+				break;
+			case 5:
+				supEquipChargeStatus.setConnectorStatus(3);
+				break;
+			case 6:
+				supEquipChargeStatus.setConnectorStatus(4);
+				break;
+			case 7:
+				supEquipChargeStatus.setConnectorStatus(255);
+				break;
+		}
+		supEquipChargeStatus.setCurrentA(chargingOrder.getCurrent());
+		supEquipChargeStatus.setSOC(new BigDecimal(chargingOrder.getEndSoc()));
+		supEquipChargeStatus.setStartTime(chargingOrder.getStartTime() != null ? chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : "");
+		supEquipChargeStatus.setEndTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+		supEquipChargeStatus.setTotalPower(chargingOrder.getElectrovalence());
+		List<Operator> operators = operatorClient.getAllOperator().getData();
+		for (Operator operator : operators) {
+			TCECSuperviseUtil.notificationSupEquipChargeStatus(operator, supEquipChargeStatus);
+		}
+		return R.ok();
+	}
+	/**
+	 * 推送充电订单信息
+	 * @param chargingOrder
+	 * @return
+	 */
+	public R pushSuperviseNotificationChargeOrderInfo(TChargingOrder chargingOrder){
+		SupChargeOrderInfo supChargeOrderInfo = new SupChargeOrderInfo();
+		supChargeOrderInfo.setOperatorID(operatorId);
+		supChargeOrderInfo.setEquipmentOwnerID("999999999");
+		supChargeOrderInfo.setStationID(String.valueOf(chargingOrder.getSiteId()));
+		supChargeOrderInfo.setEquipmentID(String.valueOf(chargingOrder.getChargingPileId()));
+		supChargeOrderInfo.setOrderNo(operatorId+chargingOrder.getCode());
+		TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
+		supChargeOrderInfo.setConnectorID(chargingGun.getFullNumber());
+		supChargeOrderInfo.setEquipmentClassification(1);
+		supChargeOrderInfo.setPushTimeStamp(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+		supChargeOrderInfo.setStartTime(chargingOrder.getStartTime() != null ? chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : "");
+		supChargeOrderInfo.setEndTime(chargingOrder.getEndTime() != null ? chargingOrder.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : "");
+		supChargeOrderInfo.setTotalPower(chargingOrder.getElectrovalence());
+		supChargeOrderInfo.setTotalElecMoney(chargingOrder.getElectrovalence());
+		supChargeOrderInfo.setTotalServiceMoney(chargingOrder.getServiceCharge());
+		supChargeOrderInfo.setTotalMoney(chargingOrder.getOrderAmount());
+		switch (chargingOrder.getEndMode()){
+			case 0:
+				supChargeOrderInfo.setStopReason(5);
+				supChargeOrderInfo.setStopDesc("异常终止");
+				break;
+			case 1:
+				supChargeOrderInfo.setStopReason(0);
+				supChargeOrderInfo.setStopDesc("用户手动停止充电");
+				break;
+			case 2:
+				supChargeOrderInfo.setStopReason(1);
+				supChargeOrderInfo.setStopDesc("客户归属地运营商平台停止充电");
+				break;
+			case 3:
+				supChargeOrderInfo.setStopReason(1);
+				supChargeOrderInfo.setStopDesc("费用不足中止");
+				break;
+		}
+
+		List<Operator> operators = operatorClient.getAllOperator().getData();
+		for (Operator operator : operators) {
+			TCECSuperviseUtil.notificationChargeOrderInfo(operator, supChargeOrderInfo);
+		}
+		return R.ok();
+	}
+
 	/**
 	 * 推送充换电站信息
 	 * @param site

--
Gitblit v1.7.1