From e0763a06c410c2dcd47c206c29288edd1ef41e26 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 01 十一月 2024 17:25:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   83 +++++++++++++++++++++++------------------
 1 files changed, 46 insertions(+), 37 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 33bd961..d9b2c3e 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
@@ -187,6 +187,9 @@
 	
 	@Resource
 	private SecurityDetectionClient securityDetectionClient;
+	
+	@Resource
+	private BmsDemandAndChargerExportationClient bmsDemandAndChargerExportationClient;
 
 	//计数器
 	private Map<String, Integer> counter_map = new HashMap<>();
@@ -1108,7 +1111,7 @@
 				appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1);
 				appUserIntegralChange.setCreateTime(LocalDateTime.now());
 				appUserIntegralChange.setOrderCode(chargingOrder.getCode());
-				appUserIntegralChange.setExtension(chargingOrder.getId().toString());
+				appUserIntegralChange.setExtension(appUser.getId().toString());
 				appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
 				
 				appUser1.setPoints(appUser1.getPoints() + num1);
@@ -1206,8 +1209,8 @@
 		 BigDecimal electronicMoney = new BigDecimal("0");
 		 BigDecimal serviceMoney = new BigDecimal("0");
 		for (ChargingOrderVO chargingOrderVO : list) {
-			chargingOrderVO.setCommissionAmount(chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.006")));
-			chargingOrderVO.setPlatFormMoney(chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.006")));
+			chargingOrderVO.setCommissionAmount(chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")));
+			chargingOrderVO.setPlatFormMoney(chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")));
 			chargingOrderVO.setUid(chargingOrderVO.getId()+"");
 			TChargingGun data3 = chargingGunClient.getChargingGunById(chargingOrderVO.getChargingGunId()).getData();
 			TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderVO.getChargingPileId()).getData();
@@ -1399,12 +1402,11 @@
 		List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
 		for (ChargingOrderListVO chargingOrderListVO : list) {
 			chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity());
-			chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount());
 			BigDecimal bigDecimal = new BigDecimal("0.006");
 			if (chargingOrderListVO.getOrderAmount()!=null){
 				chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getOrderAmount().multiply(bigDecimal));
 			}
-			chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getResidualAmount()==null?chargingOrderListVO.getPaymentAmount():chargingOrderListVO.getPaymentAmount());
+			chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount());
 			chargingOrderListVO.setUid(chargingOrderListVO.getId()+"");
 			List<Integer> integers = new ArrayList<>();
 			integers.add(chargingOrderListVO.getSiteId());
@@ -1423,7 +1425,7 @@
 			UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderListVO.getCode()).getData();
 			if (data5!=null){
 				if (data5.getTime_remaining()!=null){
-					chargingOrderListVO.setChargingSecond(data5.getTime_remaining()*60L);
+					chargingOrderListVO.setChargingSecond(data5.getCumulative_charging_time()*60L);
 
 				}
 			}
@@ -1432,8 +1434,8 @@
 				List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData();
 			if (data6!=null && !data6.isEmpty()){
 					// 第一条数据soc为开始 最后一条数据soc为结束soc
-					chargingOrderListVO.setStartSoc(data6.get(0).getSoc().toString());
-					chargingOrderListVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString());
+					chargingOrderListVO.setEndSoc(data6.get(0).getSoc().toString());
+					chargingOrderListVO.setStartSoc(data6.get(data6.size()-1).getSoc().toString());
 				}
 			}
 
@@ -1613,9 +1615,7 @@
 	@Override
 	public ChargingOrderListInfoVO chargingInfo(String uid) {
 		TChargingOrder chargingOrder= this.getById(uid);
-
 		ChargingOrderListInfoVO chargingOrderListInfoVO = new ChargingOrderListInfoVO();
-
 		chargingOrderListInfoVO.setStatus(chargingOrder.getStatus());
 		BigDecimal bigDecimal = new BigDecimal("0.006");
 		if (chargingOrder.getOrderAmount()!=null){
@@ -1664,24 +1664,32 @@
 					if (uploadRealTimeMonitoringData.getOutput_current()!=null&&
 							uploadRealTimeMonitoringData.getOutput_voltage()!=null){
 						uploadRealTimeMonitoringData.setPower(uploadRealTimeMonitoringData.getOutput_voltage()
-								.multiply(uploadRealTimeMonitoringData.getOutput_current()));
+								.multiply(uploadRealTimeMonitoringData.getOutput_current()).divide(new BigDecimal(1000),2, BigDecimal.ROUND_HALF_UP));
 					}
 				}
 				if (!data6.isEmpty()){
 					// 第一条数据soc为开始 最后一条数据soc为结束soc
-					chargingOrderListInfoVO.setStartSoc(data6.get(0).getSoc().toString());
-					chargingOrderListInfoVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString());
+					chargingOrderListInfoVO.setStartSoc(data6.get(data6.size()-1).getSoc().toString());
+					chargingOrderListInfoVO.setEndSoc(data6.get(0).getSoc().toString());
 					chargingOrderListInfoVO.setChargingCapacity(data6.get(data6.size()-1).getCharging_degree());
-					chargingOrderListInfoVO.setChargingSecond(data6.get(data6.size()-1).getCumulative_charging_time()*60+"");
+
 					SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 					for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) {
 						uploadRealTimeMonitoringData.setCreateTime(simpleDateFormat.format(uploadRealTimeMonitoringData.getCreate_time()));
 					}
 				}
 			}
+
 			chargingOrderListInfoVO.setList(data6);
 		}
+		// 获取充电时间
+		UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData();
+		if (data5!=null){
+			if (data5.getTime_remaining()!=null){
+				chargingOrderListInfoVO.setChargingSecond(data5.getCumulative_charging_time()*60L+"");
 
+			}
+		}
 
 		if (chargingOrder.getAppUserCarId()!=null){
 			List<TAppUserCar> data3 = appUserCarClient.getCarByIds(Collections.singletonList(chargingOrder.getAppUserCarId())).getData();
@@ -1734,6 +1742,10 @@
 			chargingOrder.setChargingCapacity(query.getCharging_degree());
 			chargingOrder.setElectricity(query.getCharging_degree());
 			chargingOrder.setTotalElectricity(new BigDecimal(100 - query.getSoc()));
+			BmsDemandAndChargerExportation data = bmsDemandAndChargerExportationClient.getBmsDemandAndChargerExportation(chargingOrder.getCode()).getData();
+			if(null != data){
+				chargingOrder.setNeedElec(data.getBms_current_requirements());
+			}
 			this.updateById(chargingOrder);
 		}
 	}
@@ -1899,16 +1911,16 @@
 				serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount()).setScale(2, RoundingMode.DOWN);
 			}
 			chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge);
-			chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
-			chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
-			chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice);
-			chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount);
+			chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc.setScale(2, RoundingMode.DOWN));
+			chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge.setScale(2, RoundingMode.DOWN));
+			chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice.setScale(2, RoundingMode.DOWN));
+			chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount.setScale(2, RoundingMode.DOWN));
 			chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now());
 			chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy);
 			
-			periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc);
-			periodServicePrice_total = periodServicePrice_total.add(originalServicePrice);
-			total = total.add(electrovalenc.add(originalServicePrice));
+			periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc.setScale(2, RoundingMode.DOWN));
+			periodServicePrice_total = periodServicePrice_total.add(originalServicePrice.setScale(2, RoundingMode.DOWN));
+			total = total.add(electrovalenc.add(originalServicePrice.setScale(2, RoundingMode.DOWN)));
 		}
 		
 		
@@ -1958,13 +1970,13 @@
 		if(null == chargingOrder.getEndMode()){
 			order.setEndMode(1);
 		}
-		order.setResidualAmount(rechargeAmount.subtract(total));
+		order.setResidualAmount(rechargeAmount.subtract(total).setScale(2, RoundingMode.DOWN));
 		order.setStartTime(LocalDateTime.parse(vo.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
 		order.setEndTime(LocalDateTime.parse(vo.getEnd_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
 		order.setStatus(5);
-		order.setOrderAmount(orderAmount);
-		order.setVipDiscountAmount(discountAmount);
-		order.setElectrovalence(periodElectricPrice_total);
+		order.setOrderAmount(orderAmount.setScale(2, RoundingMode.DOWN));
+		order.setVipDiscountAmount(discountAmount.setScale(2, RoundingMode.DOWN));
+		order.setElectrovalence(periodElectricPrice_total.setScale(2, RoundingMode.DOWN));
 		order.setChargingCapacity(vo.getTotal_electricity());
 		order.setElectricity(vo.getTotal_electricity());
 		
@@ -2030,8 +2042,8 @@
 		}
 		
 		order.setServiceCharge(periodServicePrice_total.setScale(2, RoundingMode.DOWN));
-		order.setPaymentAmount(payAmount);
-		order.setRefundAmount(refundAmount);
+		order.setPaymentAmount(payAmount.setScale(2, RoundingMode.DOWN));
+		order.setRefundAmount(refundAmount.setScale(2, RoundingMode.DOWN));
 		order.setRefundStatus(1);
 		this.updateById(order);
 		chargingOrder = this.getById(order.getId());
@@ -2045,8 +2057,8 @@
 				BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodServicePrice();
 				BigDecimal multiply = couponDiscountAmount.multiply(periodServicePrice.divide(reduce, new MathContext(4, RoundingMode.HALF_EVEN)));
 				periodServicePrice = periodServicePrice.subtract(multiply);
-				chargingOrderAccountingStrategy.setPeriodServicePrice(periodServicePrice);
-				chargingOrderAccountingStrategy.setCouponDiscountAmount(multiply);
+				chargingOrderAccountingStrategy.setPeriodServicePrice(periodServicePrice.setScale(2, RoundingMode.DOWN));
+				chargingOrderAccountingStrategy.setCouponDiscountAmount(multiply.setScale(2, RoundingMode.DOWN));
 			}
 			chargingOrderAccountingStrategyService.updateBatchById(list);
 		}
@@ -2242,7 +2254,7 @@
 				if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount())==-1){
 					return R.fail("退款金额需小于支付金额");
 				}
-				if ((tChargingOrder.getRechargeAmount().subtract(payOrderQueryDto.getRefundAmount()).compareTo(tChargingOrder.getPaymentAmount()))==0){
+				if ((tChargingOrder.getRechargeAmount().subtract(tChargingOrder.getRefundAmount()).compareTo(payOrderQueryDto.getRefundAmount()))==0){
 					tChargingOrder.setStatus(5);
 				}
 
@@ -2311,7 +2323,7 @@
 				if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount())==-1){
 					return R.fail("退款金额需小于支付金额");
 				}
-				if ((tChargingOrder.getPaymentAmount().subtract(payOrderQueryDto.getRefundAmount()).compareTo(tChargingOrder.getPaymentAmount()))==0){
+				if ((tChargingOrder.getPaymentAmount().subtract(tChargingOrder.getRefundAmount()).compareTo(payOrderQueryDto.getRefundAmount()))==0){
 					tChargingOrder.setStatus(5);
 				}
 
@@ -2881,8 +2893,8 @@
 	}
 
 	@Override
-	public List<Map<String, Object>> countBySource(List<Integer> siteIds) {
-		return this.baseMapper.countBySource(siteIds);
+	public List<Map<String, Object>> countBySource(List<Integer> siteIds, ChargingStatisticsQueryDto statisticsQueryDto) {
+		return this.baseMapper.countBySource(siteIds,statisticsQueryDto);
 	}
 
 	@Override
@@ -3001,11 +3013,8 @@
 		if(null != order.getAppUserId()){
 			queryWrapper.eq(TChargingOrder::getAppUserId, order.getAppUserId());
 		}
-		if(null != order.getAppUserId()){
-			queryWrapper.eq(TChargingOrder::getAppUserId, order.getAppUserId());
-		}
 		if(null != order.getStatusList()){
-			queryWrapper.in(TChargingOrder::getAppUserId, order.getStatusList());
+			queryWrapper.in(TChargingOrder::getStatus, order.getStatusList());
 		}
 		if(null != order.getEndMode()){
 			queryWrapper.eq(TChargingOrder::getEndMode, order.getEndMode());

--
Gitblit v1.7.1