From 54543398c69e29bded2083f5b85141cb4c57a4b5 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期二, 27 八月 2024 10:13:37 +0800
Subject: [PATCH] 完善硬件相关功能

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   48 +++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 43 insertions(+), 5 deletions(-)

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 31ebc79..94f73de 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
@@ -21,6 +21,8 @@
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
+import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
 import com.ruoyi.order.api.model.TChargingOrder;
 import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy;
 import com.ruoyi.order.api.query.ChargingOrderQuery;
@@ -47,6 +49,7 @@
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.ChronoUnit;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -91,6 +94,13 @@
 	
 	@Resource
 	private RedisService redisService;
+	
+	@Resource
+	private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient;
+	
+	
+	
+	
 
 	/**
 	 * 获取小程序充电记录列表数据
@@ -164,11 +174,39 @@
 						.orderByAsc(TChargingOrderAccountingStrategy::getStartTime)
 		);
 		myChargingOrderInfo.setStageCost(stageCost);
-		// todo 待完善
-		//再MongoDB中获取数据
-		myChargingOrderInfo.setCurrentAndVoltage(null);
-		//再MongoDB中获取数据
-		myChargingOrderInfo.setPower(null);
+		List<UploadRealTimeMonitoringData> dataList = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData();
+		if(null != dataList){
+			//在MongoDB中获取数据
+			SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
+			List<String> time = dataList.stream().map(s -> sdf.format(s.getCreate_time())).collect(Collectors.toList());
+			List<BigDecimal> outputVoltage = dataList.stream().map(UploadRealTimeMonitoringData::getOutput_voltage).collect(Collectors.toList());
+			List<BigDecimal> outputCurrent = dataList.stream().map(UploadRealTimeMonitoringData::getOutput_current).collect(Collectors.toList());
+			List<Map<String, Object>> currentAndVoltage = new ArrayList<>();
+			for (int i = 0; i < time.size(); i++) {
+				Map<String, Object> map = new HashMap<>();
+				map.put("time", time.get(i));
+				//电流
+				map.put("electricity", outputCurrent.get(i));
+				//电压
+				map.put("voltage", outputVoltage.get(i));
+				currentAndVoltage.add(map);
+			}
+			myChargingOrderInfo.setCurrentAndVoltage(currentAndVoltage);
+			//在MongoDB中获取数据
+			List<Integer> soc = dataList.stream().map(UploadRealTimeMonitoringData::getSoc).collect(Collectors.toList());
+			List<BigDecimal> po = dataList.stream().map(s -> s.getOutput_current().multiply(s.getOutput_voltage()).divide(new BigDecimal(1000))).collect(Collectors.toList());
+			List<Map<String, Object>> power = new ArrayList<>();
+			for (int i = 0; i < time.size(); i++) {
+				Map<String, Object> map = new HashMap<>();
+				map.put("time", time.get(i));
+				//soc
+				map.put("soc", soc.get(i));
+				//电压
+				map.put("power", po.get(i));
+				power.add(map);
+			}
+			myChargingOrderInfo.setPower(power);
+		}
 		myChargingOrderInfo.setActionable(myChargingOrderInfo.getEndTime() + 604800000L > System.currentTimeMillis() ? 0 : 1);
 		return myChargingOrderInfo;
 	}

--
Gitblit v1.7.1