From ac2ce578ab4f44b8022bf3eedfd4fd0ba5ff1c06 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期日, 30 三月 2025 19:11:38 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java |   46 +++++++++++++++++++++++++++++-----------------
 1 files changed, 29 insertions(+), 17 deletions(-)

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 2dca847..3632b19 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
@@ -182,22 +182,29 @@
 			return AjaxResult.error("设备编号已存在");
 		}
 		//调用华为Iot创建设备
-		AddDevice addDevice = new AddDevice();
-		addDevice.setProductId("66da68d21837002b28b34ec0");
-		addDevice.setNodeId(chargingPile.getCode());
-		addDevice.setDeviceName(chargingPile.getName());
-		addDevice.setDescription(chargingPile.getNumber().toString());
-		AddDeviceResp deviceResp = iotInterfaceClient.addDevice(addDevice).getData();
-		if(null != deviceResp){
-			int httpStatusCode = deviceResp.getHttpStatusCode();
-			if(httpStatusCode == 201){
-				chargingPile.setIotdDeviceId(deviceResp.getDeviceId());
+		ShowDeviceResp showDeviceResp = iotInterfaceClient.showDeviceRequest(chargingPile.getCode()).getData();
+		if(null == showDeviceResp){
+			//调用华为Iot创建设备
+			AddDevice addDevice = new AddDevice();
+			addDevice.setProductId("66da68d21837002b28b34ec0");
+			addDevice.setNodeId(chargingPile.getCode());
+			addDevice.setDeviceName(chargingPile.getName());
+			addDevice.setDescription(chargingPile.getNumber().toString());
+			AddDeviceResp deviceResp = iotInterfaceClient.addDevice(addDevice).getData();
+			if(null != deviceResp){
+				int httpStatusCode = deviceResp.getHttpStatusCode();
+				if(httpStatusCode == 201){
+					chargingPile.setIotdDeviceId(deviceResp.getDeviceId());
+				}else{
+					log.error("华为创建设备失败" + JSON.toJSONString(deviceResp));
+					return AjaxResult.error("华为创建设备失败");
+				}
 			}else{
 				log.error("华为创建设备失败" + JSON.toJSONString(deviceResp));
 				return AjaxResult.error("华为创建设备失败");
 			}
 		}else{
-			return AjaxResult.error("华为创建设备失败");
+			chargingPile.setIotdDeviceId(showDeviceResp.getDeviceId());
 		}
 		this.save(chargingPile);
 		return AjaxResult.success();
@@ -302,6 +309,7 @@
 			TChargingGun chargingGun1 = new TChargingGun();
 			chargingGun1.setId(chargingGun.getId());
 			chargingGun1.setFullNumber(chargingPile.getCode() + chargingGun.getCode());
+			chargingGun1.setSiteId(chargingPile.getSiteId());
 			chargingGunService.updateById(chargingGun1);
 			
 			//下发硬件充电二维码
@@ -394,7 +402,11 @@
 					TChargingOrder chargingOrder = chargingOrderClient.getOrderDetailByGunId(chargingGun.getId()).getData();
 					if(Objects.nonNull(chargingOrder)){
 						UploadRealTimeMonitoringData uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData();
-						chargingGun.setSoc(uploadRealTimeMonitoringData.getSoc());
+						if(null != uploadRealTimeMonitoringData){
+							chargingGun.setSoc(uploadRealTimeMonitoringData.getSoc());
+						}else{
+							chargingGun.setSoc(0);
+						}
 					}else {
 						chargingGun.setSoc(100);
 					}
@@ -479,12 +491,12 @@
 		chargeTrend.put("value", value1);
 		chargeMonitoring.setChargeTrend(chargeTrend);
 		
-		//每日利用率=当日充电度数/(总桩数量*桩总功率*24小时)
+		//每日利用率=当日充电度数/(桩总功率*24小时)
 		List<TChargingPile> list = this.list(new LambdaQueryWrapper<TChargingPile>().in(TChargingPile::getSiteId, siteIds).eq(TChargingPile::getDelFlag, 0));
 		BigDecimal v = list.stream().map(TChargingPile::getRatedPower).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(4, RoundingMode.HALF_EVEN);
 		List<Double> data = chargingOrderAccountingStrategyClient.getDailyChargingDegree(6, siteIds).getData();
 		List<Double> value2 = new ArrayList<>();
-		BigDecimal multiply = new BigDecimal(list.size()).multiply(v).multiply(new BigDecimal(24));
+		BigDecimal multiply = v.multiply(new BigDecimal(24));
 		for (Double datum : data) {
 			if(list.size() == 0){
 				value2.add(0D);
@@ -686,13 +698,14 @@
 		}
 		for (TChargingGun chargingGun : list) {
 			Long time = (Long) charging_gun_online.get(chargingGun.getFullNumber());
-			if(null != time && System.currentTimeMillis() - time > 60000){
+			//判断设备是否真的脸1分钟(1分钟+代码中的30秒间隔处理存储)
+			if(null != time && System.currentTimeMillis() - time > 90000){
 				TChargingGun chargingGun1 = new TChargingGun();
 				chargingGun1.setId(chargingGun.getId());
 				chargingGun1.setStatus(1);
 				chargingGunService.updateById(chargingGun1);
 				//推送状态给三方平台
-				tcecClient.pushChargingGunStatus(chargingGun1.getId(), chargingGun1.getStatus());
+				tcecClient.pushChargingGunStatus(chargingGun1.getFullNumber(), chargingGun1.getStatus());
 				
 				//桩处于正常,桩所属的枪都处于非正常,修改桩状态为异常
 				TChargingPile chargingPile = this.getById(chargingGun.getChargingPileId());
@@ -733,7 +746,6 @@
 						siteName = siteName.substring(0,10);
 					}
 					chargingPileNotificationService.saveData(4,faultMessage.getSiteId(),faultMessage.getChargingPileId(),site.getPhone(),"检测到"+siteName+"..."+chargingPile.getNumber()+"号桩设备离线,请及时查看处理!");
-
 				}
 			}
 		}

--
Gitblit v1.7.1