From dfd423f90894d24081e7d7da08d09498898ee9c2 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 17 二月 2025 14:16:31 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java                                  |    7 +
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Pong.java                                              |    2 
 ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports        |    3 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java                                     |  119 +++++++++++++++--------
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java |    2 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/SystemConfigurationClientFallbackFactory.java                    |   21 ++++
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/TCECClientFallbackFactory.java                       |    2 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java                     |    2 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/util/TaskUtil.java                                               |    6 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/SystemConfigurationClient.java                               |   23 ++++
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Ping.java                                              |    2 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/PingServiceImpl.java                        |    2 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java                         |    1 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java                      |    3 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java                                           |    9 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java                        |    8 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java                               |   16 +++
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/TCECClient.java                                  |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java                                     |   12 ++
 19 files changed, 184 insertions(+), 58 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java
index 2ded94a..79ee4b4 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java
@@ -50,6 +50,7 @@
 	 */
 	@PostMapping("/t-charging-gun/getChargingGunById/{id}")
 	R<TChargingGun> getChargingGunById(@PathVariable("id") Integer id);
+	
 
 	/**
 	 * 通过枪id获取站点、桩、枪的名称VO
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/TCECClientFallbackFactory.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/TCECClientFallbackFactory.java
index 977ca77..91cd74b 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/TCECClientFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/TCECClientFallbackFactory.java
@@ -18,7 +18,7 @@
 		
 		return new TCECClient() {
 			@Override
-			public R pushChargingGunStatus(Integer id, Integer status) {
+			public R pushChargingGunStatus(String getFullNumber, Integer status) {
 				return R.fail("接口状态变化后推送给第三方失败:" + cause.getMessage());
 			}
 			
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/TCECClient.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/TCECClient.java
index 9c3535b..3e3becc 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/TCECClient.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/TCECClient.java
@@ -24,7 +24,7 @@
 	 * @return
 	 */
 	@PostMapping("/evcs/v1.0/pushChargingGunStatus")
-	R pushChargingGunStatus(@RequestParam("id") Integer id, @RequestParam("status") Integer status);
+	R pushChargingGunStatus(@RequestParam("fullNumber") String fullNumber, @RequestParam("status") Integer status);
 	
 	
 	
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Ping.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Ping.java
index d2b4e9e..584d5a4 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Ping.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Ping.java
@@ -13,6 +13,8 @@
 @Document(collection = "ping") //指定要对应的文档名(表名)
 @Accessors(chain = true)
 public class Ping extends BaseModel {
+    @Id
+    private String id;
     private String charging_pile_code;// 桩编码
     private String charging_gun_code;// 抢号
     private Integer charging_gun_status;// 抢状态(0:正常,1:故障)
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Pong.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Pong.java
index 2978938..9282616 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Pong.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/Pong.java
@@ -13,6 +13,8 @@
 @Document(collection = "pong") //指定要对应的文档名(表名)
 @Accessors(chain = true)
 public class Pong extends BaseModel {
+    @Id
+    private String id;
     private String charging_pile_code;// 桩编码
     private String charging_gun_code;// 抢号
     private Integer charging_gun_status;// 心跳应答(0)
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/SystemConfigurationClientFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/SystemConfigurationClientFallbackFactory.java
new file mode 100644
index 0000000..2c2af15
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/SystemConfigurationClientFallbackFactory.java
@@ -0,0 +1,21 @@
+package com.ruoyi.other.api.factory;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.feignClient.SystemConfigurationClient;
+import org.springframework.cloud.openfeign.FallbackFactory;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/17 9:46
+ */
+public class SystemConfigurationClientFallbackFactory  implements FallbackFactory<SystemConfigurationClient> {
+	@Override
+	public SystemConfigurationClient create(Throwable cause) {
+		return new SystemConfigurationClient() {
+			@Override
+			public R<String> getServerPhone() {
+				return R.fail("获取客服电话失败:" + cause.getMessage());
+			}
+		};
+	}
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/SystemConfigurationClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/SystemConfigurationClient.java
new file mode 100644
index 0000000..c5ecec2
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/SystemConfigurationClient.java
@@ -0,0 +1,23 @@
+package com.ruoyi.other.api.feignClient;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.factory.SystemConfigurationClientFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/17 9:45
+ */
+@FeignClient(contextId = "SystemConfigurationClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = SystemConfigurationClientFallbackFactory.class)
+public interface SystemConfigurationClient {
+	
+	
+	/**
+	 * 获取客服电话
+	 * @return
+	 */
+	@PostMapping(value = "/t-system-configuration/getServerPhone")
+	R<String> getServerPhone();
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index 9d2a866..2f67b78 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -9,4 +9,5 @@
 com.ruoyi.other.api.factory.InvoiceTypeFallbackFactory
 com.ruoyi.other.api.factory.WebSocketFallbackFactory
 com.ruoyi.other.api.factory.UserTagFallbackFactory
-com.ruoyi.other.api.factory.OperatorFallbackFactory
\ No newline at end of file
+com.ruoyi.other.api.factory.OperatorFallbackFactory
+com.ruoyi.other.api.factory.SystemConfigurationClientFallbackFactory
\ No newline at end of file
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 6fa0fb2..9fc876b 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
@@ -264,7 +264,7 @@
 				tChargingGun1.setStatus(2);
 				chargingGunService.updateById(tChargingGun1);
 				//推送状态给三方平台
-				tcecClient.pushChargingGunStatus(tChargingGun.getId(), tChargingGun1.getStatus());
+				tcecClient.pushChargingGunStatus(tChargingGun.getFullNumber(), tChargingGun1.getStatus());
 				
 				if(chargingPile.getStatus() != 1){
 					TChargingPile chargingPile1 = new TChargingPile();
@@ -287,7 +287,7 @@
 				tChargingGun1.setStatus(7);
 				chargingGunService.updateById(tChargingGun1);
 				//推送状态给三方平台
-				tcecClient.pushChargingGunStatus(tChargingGun.getId(), tChargingGun1.getStatus());
+				tcecClient.pushChargingGunStatus(tChargingGun.getFullNumber(), tChargingGun1.getStatus());
 				
 				//桩处于正常,桩所属的枪都处于非正常,修改桩状态为异常
 				List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPile.getId()).eq(TChargingGun::getDelFlag, 0));
@@ -332,14 +332,14 @@
 					chargingGunService.updateById(tChargingGun1);
 					
 					//推送状态给三方平台
-					tcecClient.pushChargingGunStatus(tChargingGun.getId(), tChargingGun1.getStatus());
+					tcecClient.pushChargingGunStatus(tChargingGun.getFullNumber(), tChargingGun1.getStatus());
 				}else{
 					TChargingGun tChargingGun1 = new TChargingGun();
 					tChargingGun1.setId(tChargingGun.getId());
 					tChargingGun1.setStatus(3);
 					chargingGunService.updateById(tChargingGun1);
 					//推送状态给三方平台
-					tcecClient.pushChargingGunStatus(tChargingGun.getId(), tChargingGun1.getStatus());
+					tcecClient.pushChargingGunStatus(tChargingGun.getFullNumber(), tChargingGun1.getStatus());
 				}
 				
 				List<TFaultMessage> list = faultMessageService.list(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingGunId, tChargingGun.getId())
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
index c6efb12..8cf1e79 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -699,7 +699,7 @@
 				chargingGun1.setStatus(1);
 				chargingGunService.updateById(chargingGun1);
 				//推送状态给三方平台
-				tcecClient.pushChargingGunStatus(chargingGun1.getId(), chargingGun1.getStatus());
+				tcecClient.pushChargingGunStatus(chargingGun1.getFullNumber(), chargingGun1.getStatus());
 				
 				//桩处于正常,桩所属的枪都处于非正常,修改桩状态为异常
 				TChargingPile chargingPile = this.getById(chargingGun.getChargingPileId());
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
index f5278a4..070eb77 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
@@ -86,6 +86,9 @@
 		query.setLicensePlate(order.getPlate());
 		query.setStatus(1);
 		TParkingRecord parkingRecord = parkingRecordClient.getParkingRecord(query).getData();
+		if(null == parkingRecord){
+			return;
+		}
 		TParkingLot parkingLot = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData();
 		LocalDateTime parse = LocalDateTime.parse(order.getLeaveDateTime(), DateTimeFormatter.ISO_DATE_TIME);
 		parse = parse.plusHours(8);
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 f931203..d93bf73 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
@@ -8,10 +8,12 @@
 import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
 import com.ruoyi.integration.drainage.kuaidian.TCECKDUtil;
 import com.ruoyi.integration.drainage.kuaidian.model.*;
 import com.ruoyi.integration.drainage.model.*;
 import com.ruoyi.integration.drainage.model.enu.*;
+import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService;
 import com.ruoyi.order.api.feignClient.ChargingOrderAccountingStrategyClient;
 import com.ruoyi.order.api.feignClient.ChargingOrderClient;
 import com.ruoyi.order.api.model.AddTripartitePlatformOrder;
@@ -20,6 +22,7 @@
 import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy;
 import com.ruoyi.other.api.domain.Operator;
 import com.ruoyi.other.api.feignClient.OperatorClient;
+import com.ruoyi.other.api.feignClient.SystemConfigurationClient;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
@@ -66,6 +69,9 @@
 	private ChargingOrderAccountingStrategyClient chargingOrderAccountingStrategyClient;
 	
 	@Resource
+	private UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService;
+	
+	@Resource
 	private TokenUtil tokenUtil;
 
 	@Resource
@@ -73,6 +79,9 @@
 	
 	@Resource
 	private ParkingRecordClient parkingRecordClient;
+	
+	@Resource
+	private SystemConfigurationClient systemConfigurationClient;
 	
 	
 	
@@ -263,7 +272,7 @@
 		List<TChargingPile> tChargingPiles = chargingPileClient.getChargingPileBySiteIds(siteIds).getData();
 		List<Integer> collect1 = tChargingPiles.stream().map(TChargingPile::getId).collect(Collectors.toList());
 		List<TChargingGun> chargingGunList = chargingGunClient.getChargingGunByChargingPileIds(collect1).getData();
-		
+		String serviceTel = systemConfigurationClient.getServerPhone().getData();
 		List<StationInfo> StationInfos = new ArrayList<>();
 		for (Site datum : sites) {
 			StationInfo stationInfo = new StationInfo();
@@ -275,7 +284,7 @@
 			stationInfo.setAreaCode(datum.getDistrictsCode());
 			stationInfo.setAddress(datum.getAddress());
 			stationInfo.setStationTel(datum.getPhone());
-			stationInfo.setServiceTel(datum.getServicePhone());
+			stationInfo.setServiceTel(serviceTel);
 			switch (datum.getSiteType()){
 				case 0:
 					stationInfo.setStationType(StationTypeEnum.OTHER.getType());
@@ -410,7 +419,7 @@
 		List<TChargingGun> collect = chargingGunList.stream().filter(s -> s.getChargingPileId().equals(chargingPileId)).collect(Collectors.toList());
 		for (TChargingGun chargingGun : collect) {
 			ConnectorInfo connectorInfo = new ConnectorInfo();
-			connectorInfo.setConnectorID(chargingGun.getId().toString());
+			connectorInfo.setConnectorID(chargingGun.getFullNumber());
 			connectorInfo.setConnectorName(chargingGun.getName());
 			switch (chargingGun.getType()){
 				case 0:
@@ -450,9 +459,9 @@
 	 * @return
 	 */
 	@PostMapping("/pushChargingGunStatus")
-	public R pushChargingGunStatus(@RequestParam("id") Integer id, @RequestParam("status") Integer status){
+	public R pushChargingGunStatus(@RequestParam("fullNumber") String fullNumber, @RequestParam("status") Integer status){
 		ConnectorStatusInfo connectorStatusInfo = new ConnectorStatusInfo();
-		connectorStatusInfo.setConnectorID(id.toString());
+		connectorStatusInfo.setConnectorID(fullNumber);
 		switch (status){
 			case 1:
 				connectorStatusInfo.setStatus(0);
@@ -526,7 +535,7 @@
 			List<TChargingGun> collect2 = chargingGunList.stream().filter(s -> s.getSiteId().equals(datum.getId())).collect(Collectors.toList());
 			for (TChargingGun chargingGun : collect2) {
 				ConnectorStatusInfo info = new ConnectorStatusInfo();
-				info.setConnectorID(chargingGun.getId().toString());
+				info.setConnectorID(chargingGun.getFullNumber());
 				switch (chargingGun.getStatus()){
 					case 1:
 						info.setStatus(0);
@@ -622,8 +631,9 @@
 				List<TChargingOrder> tChargingOrders1 = collect2.get(integer1);
 				BigDecimal reduce2 = tChargingOrders1.stream().map(TChargingOrder::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add);
 				
+				TChargingGun chargingGun = chargingGunClient.getChargingGunById(integer1).getData();
 				ConnectorStatsInfo connectorStatsInfo = new ConnectorStatsInfo();
-				connectorStatsInfo.setConnectorID(integer1.toString());
+				connectorStatsInfo.setConnectorID(chargingGun.getFullNumber());
 				connectorStatsInfo.setConnectorElectricity(reduce2);
 				ConnectorStatsInfos.add(connectorStatsInfo);
 			}
@@ -665,7 +675,7 @@
 		log.info("三方平台设备认证请求Data:" + decrypt);
 		QueryEquipAuth queryEquipAuth = JSON.parseObject(decrypt, QueryEquipAuth.class);
 		String connectorID = queryEquipAuth.getConnectorID();
-		TChargingGun tChargingGun = chargingGunClient.getChargingGunById(Integer.valueOf(connectorID)).getData();
+		TChargingGun tChargingGun = chargingGunClient.getChargingGunByFullNumber(connectorID).getData();
 		if(null == tChargingGun){
 			baseResult.setRet(4004);
 			baseResult.setMsg("connectorID 参数无效");
@@ -747,7 +757,7 @@
 		queryEquipBusinessPolicyResult.setSuccStat(0);
 		queryEquipBusinessPolicyResult.setFailReason(0);
 		String connectorID = queryEquipBusinessPolicy.getConnectorID();
-		TChargingGun tChargingGun = chargingGunClient.getChargingGunById(Integer.valueOf(connectorID)).getData();
+		TChargingGun tChargingGun = chargingGunClient.getChargingGunByFullNumber(connectorID).getData();
 		if(null == tChargingGun){
 			baseResult.setRet(4004);
 			baseResult.setMsg("connectorID 参数无效");
@@ -870,7 +880,7 @@
 		result.setStartChargeSeq(queryStartCharge.getStartChargeSeq());
 		result.setConnectorID(queryStartCharge.getConnectorID());
 		String connectorID = queryStartCharge.getConnectorID();
-		TChargingGun tChargingGun = chargingGunClient.getChargingGunById(Integer.valueOf(connectorID)).getData();
+		TChargingGun tChargingGun = chargingGunClient.getChargingGunByFullNumber(connectorID).getData();
 		//设备不存在
 		if(null == tChargingGun){
 			baseResult.setRet(4004);
@@ -934,6 +944,27 @@
 		baseResult.setData(encrypt);
 		baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
 		log.info("三方平台请求开始充电响应参数:" + JacksonUtils.toJson(baseResult));
+		
+		//定义定时任务推送订单状态
+		ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
+		Runnable task = new Runnable() {
+			@Override
+			public void run() {
+				try {
+					TChargingOrder chargingOrder = chargingOrderClient.getChargingOrderByStartChargeSeq(result.getStartChargeSeq()).getData();
+					if(chargingOrder.getStatus() != 3){
+						scheduler.shutdown();
+						return;
+					}
+					log.info("开始执行三方平台定时推送");
+					notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId());
+				}catch (Exception e){
+					e.printStackTrace();
+				}
+			}
+		};
+		//一分钟执行一次
+		scheduler.scheduleAtFixedRate(task, 10, 10, TimeUnit.SECONDS);
 		return baseResult;
 	}
 	
@@ -978,22 +1009,6 @@
 				}
 			});
 		}
-
-		//定义定时任务推送订单状态
-		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();
 	}
 	
@@ -1067,8 +1082,8 @@
 				queryEquipChargeStatusResult.setStartChargeSeqStat(4);
 				break;
 		}
-		queryEquipChargeStatusResult.setConnectorID(chargingOrder.getChargingGunId().toString());
 		TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
+		queryEquipChargeStatusResult.setConnectorID(chargingGun.getFullNumber());
 		//1=离线,2=空闲,3=占用(未充电),4=占用(充电中),5=占用(已充满),6=占用(预约锁定),7=故障
 		switch (chargingGun.getStatus()){
 			case 1:
@@ -1095,19 +1110,29 @@
 		}
 		queryEquipChargeStatusResult.setCurrentA(chargingOrder.getCurrent());
 		queryEquipChargeStatusResult.setVoltageA(chargingOrder.getVoltage());
-		queryEquipChargeStatusResult.setSoc(chargingOrder.getTotalElectricity());
+		UploadRealTimeMonitoringData timeMonitoringData = uploadRealTimeMonitoringDataService.getLastDataById(chargingOrder.getCode());
+		queryEquipChargeStatusResult.setSoc(null == timeMonitoringData ? BigDecimal.ZERO : new BigDecimal(timeMonitoringData.getSoc()));
 		queryEquipChargeStatusResult.setStartTime((null == chargingOrder.getStartTime() ? chargingOrder.getCreateTime() : chargingOrder.getStartTime()).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());
-		queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getTotalElectricity().add(chargingOrder.getServiceCharge()));
+		
+		List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
+		if(data.size() > 0){
+			BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+			BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+			queryEquipChargeStatusResult.setElecMoney(totalElectricity);
+			queryEquipChargeStatusResult.setSeviceMoney(serviceCharge);
+			queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getPaymentAmount());
+		}else{
+			queryEquipChargeStatusResult.setElecMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
+			queryEquipChargeStatusResult.setSeviceMoney(BigDecimal.ZERO);
+			queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
+		}
 		
 		//构建充电明细
 		List<ChargeDetail> chargeDetails = new ArrayList<>();
-		List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
 		
-		LocalDateTime startTime = chargingOrder.getStartTime();
+		LocalDateTime startTime = null == chargingOrder.getStartTime() ? LocalDateTime.now() : chargingOrder.getStartTime();
 		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"));
@@ -1337,14 +1362,26 @@
 		if(null == chargingOrder){
 			return null;
 		}
-		notificationChargeOrderInfo.setConnectorID(chargingOrder.getChargingGunId().toString());
+		TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
+		notificationChargeOrderInfo.setConnectorID(chargingGun.getFullNumber());
 		notificationChargeOrderInfo.setStartTime((null == chargingOrder.getStartTime() ? chargingOrder.getCreateTime() : chargingOrder.getStartTime()).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());
-		notificationChargeOrderInfo.setTotalMoney(chargingOrder.getTotalElectricity().add(chargingOrder.getServiceCharge()));
-		notificationChargeOrderInfo.setTotalDelayMoney(BigDecimal.ZERO);
+		
+		List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
+		if(data.size() > 0){
+			BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+			BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+			notificationChargeOrderInfo.setTotalElecMoney(totalElectricity.setScale(2, RoundingMode.HALF_EVEN));
+			notificationChargeOrderInfo.setTotalSeviceMoney(serviceCharge.setScale(2, RoundingMode.HALF_EVEN));
+			notificationChargeOrderInfo.setTotalMoney(chargingOrder.getPaymentAmount());
+		}else{
+			notificationChargeOrderInfo.setTotalElecMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
+			notificationChargeOrderInfo.setTotalSeviceMoney(BigDecimal.ZERO);
+			notificationChargeOrderInfo.setTotalMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount()));
+		}
+		
+		
 		TParkingRecord parkingRecord = parkingRecordClient.getParkingRecordByChargingOrderId(chargingOrder.getId()).getData();
 		if(null != parkingRecord && parkingRecord.getStatus() == 3){
 			notificationChargeOrderInfo.setTotalDelayMoney(parkingRecord.getPayment());
@@ -1368,9 +1405,8 @@
 		
 		//构建充电明细
 		List<ChargeDetail> chargeDetails = new ArrayList<>();
-		List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
 		
-		LocalDateTime startTime = chargingOrder.getStartTime();
+		LocalDateTime startTime = null == chargingOrder.getStartTime() ? LocalDateTime.now() : chargingOrder.getStartTime();
 		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"));
@@ -1536,9 +1572,10 @@
 			if(null == chargingOrder){
 				return null;
 			}
+			TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
 			OrderInfo orderInfo = new OrderInfo();
 			orderInfo.setStartChargeSeq(chargingOrder.getStartChargeSeq());
-			orderInfo.setConnectorID(chargingOrder.getChargingGunId().toString());
+			orderInfo.setConnectorID(chargingGun.getFullNumber());
 			orderInfo.setStartTime((null == chargingOrder.getStartTime() ? chargingOrder.getCreateTime() : chargingOrder.getStartTime()).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());
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/PingServiceImpl.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/PingServiceImpl.java
index baa6451..9489e96 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/PingServiceImpl.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/PingServiceImpl.java
@@ -37,6 +37,6 @@
     
     @Override
     public void delPing() {
-        mongoTemplate.remove(new Query().addCriteria(Criteria.where("create_time").lt(LocalDateTime.now().minusDays(1))));
+        mongoTemplate.remove(new Query().addCriteria(Criteria.where("create_time").lt(LocalDateTime.now().minusDays(1))), Ping.class);
     }
 }
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java
index 834bc06..f3eb7bf 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/UploadRealTimeMonitoringDataMessageListener.java
@@ -129,7 +129,7 @@
             }
             chargingGunClient.updateChargingGunById(chargingGun);
             //推送状态给三方平台
-            tcecClient.pushChargingGunStatus(chargingGun.getId(), chargingGun.getStatus());
+            tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus());
         }
     }
 
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/util/TaskUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/util/TaskUtil.java
index de47e18..09ac391 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/util/TaskUtil.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/util/TaskUtil.java
@@ -36,9 +36,9 @@
     
     
     
-    @Scheduled(cron = "0 0 0 * * ?")
+    @Scheduled(cron = "0 0 3 * * ?")
     public void task2() {
-        pingService.delPing();
-        pongService.delPong();
+//        pingService.delPing();
+//        pongService.delPong();
     }
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index 3a874fe..2194538 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -764,6 +764,18 @@
     
     
     /**
+     *
+     * @param code
+     */
+    @ResponseBody
+    @PostMapping(value = "/refund")
+    public R refund(@RequestParam(value = "code") String code){
+        chargingOrderService.refund(code);
+        return R.ok();
+    }
+    
+    
+    /**
      * 远程启动失败后退款回调
      */
     @ResponseBody
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
index 9689489..6bce088 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -100,8 +100,13 @@
 	 * @return
 	 */
 	AjaxResult chargingOrderStartupFailureWxRefund(String out_refund_no, String refund_id, String tradeState, String success_time);
-
-
+	
+	
+	/**
+	 * 启动失败退款操作
+	 * @param code
+	 */
+	void refund(String code);
 
 	/**
 	 * 获取充电中的详情
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index bc67496..fe484d4 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -859,7 +859,7 @@
 			chargingGun.setStatus(4);
 			chargingGunClient.updateChargingGunById(chargingGun);
 			//推送状态给三方平台
-			tcecClient.pushChargingGunStatus(chargingGun.getId(), chargingGun.getStatus());
+			tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus());
 		}
 		redisService.setCacheObject("AQJC_" + order.getChargingGunId(), preChargeCheck1, 24L, TimeUnit.HOURS);
 		this.updateById(order);
@@ -2007,6 +2007,9 @@
 	@GlobalTransactional(rollbackFor = Exception.class)
 	public R endChargeBillingCharge(TransactionRecordMessageVO vo) {
 		TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number()));
+		if(null == chargingOrder){
+			return R.ok();
+		}
 		Integer status = chargingOrder.getStatus();
 		if(status == 5){
 			return R.ok();
@@ -2358,7 +2361,7 @@
 		chargingGunClient.updateChargingGunById(chargingGun);
 		//推送状态给三方平台
 		if(2 == chargingOrder.getOrderSource()){
-			tcecClient.pushChargingGunStatus(chargingGun.getId(), chargingGun.getStatus());
+			tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus());
 		}
 		
 		//添加积分
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java
index 8770c49..b40c79e 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java
@@ -1,7 +1,9 @@
 package com.ruoyi.other.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.log.annotation.Log;
 import com.ruoyi.common.log.enums.BusinessType;
@@ -65,6 +67,20 @@
         systemConfigurationService.saveOrUpdate(systemConfiguration);
         return AjaxResult.success();
     }
+    
+    
+    /**
+     * 获取客服电话
+     * @return
+     */
+    @PostMapping(value = "/getServerPhone")
+    public R<String> getServerPhone(){
+        TSystemConfiguration one = systemConfigurationService.getOne(new LambdaQueryWrapper<TSystemConfiguration>().eq(TSystemConfiguration::getType, 1));
+        if(null != one){
+            return R.ok(one.getContent());
+        }
+        return R.ok();
+    }
 
 }
 

--
Gitblit v1.7.1