From ce3b68cce4b030e222448044adf7325d0c897376 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 13 二月 2025 14:02:00 +0800
Subject: [PATCH] 优化功能

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java |   47 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 34 insertions(+), 13 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 f3f6243..f931203 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
@@ -32,9 +32,7 @@
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.*;
 import java.util.stream.Collectors;
 
 /**
@@ -273,7 +271,7 @@
 			stationInfo.setOperatorID("906171535");
 			stationInfo.setEquipmentOwnerID("906171535");
 			stationInfo.setStationName(datum.getName());
-			stationInfo.setCountryCode(datum.getCountryCode());
+			stationInfo.setCountryCode(StringUtils.isNotEmpty(datum.getCountryCode()) ? datum.getCountryCode() : "CN");
 			stationInfo.setAreaCode(datum.getDistrictsCode());
 			stationInfo.setAddress(datum.getAddress());
 			stationInfo.setStationTel(datum.getPhone());
@@ -395,6 +393,7 @@
 			
 			//构建设备接口信息
 			equipmentInfo.setConnectorInfos(buildConnectorInfos(tChargingPile.getId(), tChargingPile.getCode(), chargingGunList));
+			equipmentInfo.setPower(tChargingPile.getRatedPower());
 			equipmentInfos.add(equipmentInfo);
 		}
 		return equipmentInfos;
@@ -477,6 +476,9 @@
 				connectorStatusInfo.setStatus(255);
 				break;
 		}
+		ConnectorStatusInfo connectorStatusInfo1 = new ConnectorStatusInfo();
+		BeanUtils.copyProperties(connectorStatusInfo, connectorStatusInfo1);
+		connectorStatusInfo.setConnectorStatusInfo(connectorStatusInfo1);
 		List<Operator> operators = operatorClient.getAllOperator().getData();
 		for (Operator operator : operators) {
 			TCECUtil.notificationStationStatus(operator, connectorStatusInfo);
@@ -904,7 +906,7 @@
 		addTripartitePlatformOrder.setStartChargeSeq(queryStartCharge.getStartChargeSeq());
 		addTripartitePlatformOrder.setChargingGunId(tChargingGun.getId());
 		addTripartitePlatformOrder.setOperatorId(operator.getOperatorId());
-		addTripartitePlatformOrder.setPaymentAmount(queryStartCharge.getChargingAmt());
+		addTripartitePlatformOrder.setPaymentAmount(null == queryStartCharge.getChargingAmt() ? new BigDecimal(9999) : queryStartCharge.getChargingAmt());
 		addTripartitePlatformOrder.setRechargePaymentType(0);
 		addTripartitePlatformOrder.setPlateNum(queryStartCharge.getPlateNum());
 		R order = chargingOrderClient.addTripartitePlatformOrder(addTripartitePlatformOrder);
@@ -976,6 +978,22 @@
 				}
 			});
 		}
+
+		//定义定时任务推送订单状态
+		ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
+		Runnable task = new Runnable() {
+			@Override
+			public void run() {
+				TChargingOrder chargingOrder = chargingOrderClient.getChargingOrderByStartChargeSeq(result.getStartChargeSeq()).getData();
+				if(null == chargingOrder || chargingOrder.getStatus() != 3){
+					scheduler.shutdown();
+					return;
+				}
+				notificationEquipChargeStatus(result.getStartChargeSeq(), operator.getId());
+			}
+		};
+		//一分钟执行一次
+		scheduler.scheduleAtFixedRate(task, 1, 1, TimeUnit.MINUTES);
 		return R.ok();
 	}
 	
@@ -1079,7 +1097,7 @@
 		queryEquipChargeStatusResult.setVoltageA(chargingOrder.getVoltage());
 		queryEquipChargeStatusResult.setSoc(chargingOrder.getTotalElectricity());
 		queryEquipChargeStatusResult.setStartTime((null == chargingOrder.getStartTime() ? chargingOrder.getCreateTime() : chargingOrder.getStartTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
-		queryEquipChargeStatusResult.setEndTime((null == chargingOrder.getStartTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+		queryEquipChargeStatusResult.setEndTime((null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
 		queryEquipChargeStatusResult.setTotalPower(chargingOrder.getElectricity());
 		queryEquipChargeStatusResult.setElecMoney(chargingOrder.getTotalElectricity());
 		queryEquipChargeStatusResult.setSeviceMoney(chargingOrder.getServiceCharge());
@@ -1090,7 +1108,7 @@
 		List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
 		
 		LocalDateTime startTime = chargingOrder.getStartTime();
-		LocalDateTime endTime = chargingOrder.getEndTime();
+		LocalDateTime endTime = null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime();
 		String s_format = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
 		String e_format = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
 		for (TChargingOrderAccountingStrategy datum : data) {
@@ -1126,7 +1144,7 @@
 	 * @return
 	 */
 	@PostMapping("/notificationEquipChargeStatus")
-	public R notificationEquipChargeStatus(@RequestParam("startChargeSeq") String startChargeSeq, @RequestParam("operatorId") Integer operatorId){
+	public R notificationEquipChargeStatus(@RequestParam(value = "startChargeSeq") String startChargeSeq, @RequestParam(value = "operatorId") Integer operatorId){
 		QueryEquipChargeStatusResult queryEquipChargeStatusResult = buildQueryEquipChargeStatusResult(startChargeSeq);
 		Operator operator = operatorClient.getOperatorById(operatorId).getData();
 		NotificationEquipChargeStatusResult notificationEquipChargeStatusResult = TCECUtil.notificationEquipChargeStatus(operator, queryEquipChargeStatusResult);
@@ -1321,7 +1339,7 @@
 		}
 		notificationChargeOrderInfo.setConnectorID(chargingOrder.getChargingGunId().toString());
 		notificationChargeOrderInfo.setStartTime((null == chargingOrder.getStartTime() ? chargingOrder.getCreateTime() : chargingOrder.getStartTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
-		notificationChargeOrderInfo.setEndTime((null == chargingOrder.getStartTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+		notificationChargeOrderInfo.setEndTime((null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
 		notificationChargeOrderInfo.setTotalPower(chargingOrder.getElectricity());
 		notificationChargeOrderInfo.setTotalElecMoney(chargingOrder.getTotalElectricity());
 		notificationChargeOrderInfo.setTotalSeviceMoney(chargingOrder.getServiceCharge());
@@ -1353,7 +1371,7 @@
 		List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
 		
 		LocalDateTime startTime = chargingOrder.getStartTime();
-		LocalDateTime endTime = chargingOrder.getEndTime();
+		LocalDateTime endTime = null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime();
 		String s_format = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
 		String e_format = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
 		for (TChargingOrderAccountingStrategy datum : data) {
@@ -1408,8 +1426,11 @@
 		QueryTerminalCode queryTerminalCode = JSON.parseObject(decrypt, QueryTerminalCode.class);
 		String qrCode = queryTerminalCode.getQRCode();
 		String substring = qrCode.substring(qrCode.indexOf("=") + 1);
+		TChargingGun chargingGun = chargingGunClient.getChargingGunByFullNumber(substring).getData();
 		QueryTerminalCodeResult queryTerminalCodeResult = new QueryTerminalCodeResult();
-		queryTerminalCodeResult.setTerminalCode(substring);
+		if(null != chargingGun){
+			queryTerminalCodeResult.setTerminalCode(chargingGun.getId().toString());
+		}
 		
 		//参数加密
 		String jsonString = JacksonUtils.toJson(queryTerminalCodeResult);
@@ -1519,7 +1540,7 @@
 			orderInfo.setStartChargeSeq(chargingOrder.getStartChargeSeq());
 			orderInfo.setConnectorID(chargingOrder.getChargingGunId().toString());
 			orderInfo.setStartTime((null == chargingOrder.getStartTime() ? chargingOrder.getCreateTime() : chargingOrder.getStartTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
-			orderInfo.setEndTime((null == chargingOrder.getStartTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+			orderInfo.setEndTime((null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
 			orderInfo.setTotalPower(chargingOrder.getTotalElectricity());
 			orderInfo.setTotalElecMoney(chargingOrder.getElectrovalence());
 			orderInfo.setTotalSeviceMoney(chargingOrder.getServiceCharge());
@@ -1544,7 +1565,7 @@
 			List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
 			
 			LocalDateTime startTime = chargingOrder.getStartTime();
-			LocalDateTime endTime = chargingOrder.getEndTime();
+			LocalDateTime endTime = null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime();
 			String s_format = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
 			String e_format = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
 			for (TChargingOrderAccountingStrategy datum : data) {

--
Gitblit v1.7.1