From dbe33bd0774f171b083f1dc5b68f5fecd3a5ee3a Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期二, 27 八月 2024 10:44:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   73 +++++++++++++++++++++++++++++++++---
 1 files changed, 66 insertions(+), 7 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 016a888..99efbec 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
@@ -16,13 +16,17 @@
 import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.chargingPile.api.model.TChargingGun;
 import com.ruoyi.chargingPile.api.model.TChargingPile;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.BasePage;
 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.model.TChargingOrderRefund;
 import com.ruoyi.order.api.query.ChargingOrderQuery;
 import com.ruoyi.order.api.vo.ChargingOrderVO;
 import com.ruoyi.order.api.vo.TCharingOrderVO;
@@ -47,6 +51,7 @@
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.ChronoUnit;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -91,6 +96,13 @@
 	
 	@Resource
 	private RedisService redisService;
+	
+	@Resource
+	private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient;
+	
+	
+	
+	
 
 	/**
 	 * 获取小程序充电记录列表数据
@@ -164,11 +176,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;
 	}
@@ -445,14 +485,16 @@
 			endTime1 = split[0];
 			endTime2 = split[1];
 		}
+		PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
+
 		if (StringUtils.hasLength(dto.getPhone())){
 			List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData();
 			if (data.isEmpty()){
-				data.add(0L);
+				tCharingOrderVO.setList(pageInfo);
+				return tCharingOrderVO;
 			}
 			dto.setUserIds(data);
 		}
-		PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
 		List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
 		 BigDecimal total = new BigDecimal("0");
 		 long time = 0L;
@@ -516,4 +558,21 @@
 		tCharingOrderVO.setList(pageInfo);
         return tCharingOrderVO;
     }
+
+	@Override
+	public R<PageInfo<PayOrderDto>> payOrderQuery(PayOrderQueryDto payOrderQueryDto) {
+		PageInfo<PayOrderDto> pageInfo = new PageInfo<>(payOrderQueryDto.getPageCurr(),payOrderQueryDto.getPageSize());
+		List<PayOrderDto> list = this.baseMapper.payOrderQuery(pageInfo,payOrderQueryDto);
+		pageInfo.setRecords(list);
+		return R.ok(pageInfo);
+	}
+
+	@Override
+	public R<PageInfo<TChargingOrderRefund>> getRefundList(ChargingRefundDto chargingRefundDto) {
+		PageInfo<TChargingOrderRefund> pageInfo = new PageInfo<>(chargingRefundDto.getPageCurr(),chargingRefundDto.getPageSize());
+		List<TChargingOrderRefund> list = this.baseMapper.getRefundList(pageInfo,chargingRefundDto);
+		pageInfo.setRecords(list);
+
+		return R.ok(pageInfo);
+	}
 }

--
Gitblit v1.7.1