From 0cffe10d0563f7e2c98b4eca1467699244051b07 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期一, 21 十月 2024 13:43:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |  135 +++++++++++++++++++++-----------------------
 1 files changed, 65 insertions(+), 70 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 41a6ca7..1b756d5 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
@@ -933,7 +933,9 @@
 			chargingDetails.setCompletionRatio(data.getSoc());
 			chargingDetails.setRemainingChargeTime(data.getTime_remaining());
 			chargingDetails.setChargedDegrees(data.getCharging_degree());
-			chargingDetails.setChargedTime(data.getCumulative_charging_time());
+			Integer h = Integer.valueOf(data.getCumulative_charging_time() / 60);
+			Integer m = Integer.valueOf(data.getCumulative_charging_time() % 60);
+			chargingDetails.setChargedTime(String.format("%02d", h) + ":" + String.format("%02d", m));
 		}
 		ChargingHandshake chargingHandshake = chargingHandshakeClient.getDataByOrderCode(one.getCode()).getData();
 		if(null != chargingHandshake && null != data && null != one.getAppUserCarId()){
@@ -1281,7 +1283,7 @@
 			BigDecimal serviceMoney1 = new BigDecimal("0");
 			UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData();
 			if (data5!=null){
-				chargingOrderVO.setChargingSecond(data5.getTime_remaining()*60L);
+				chargingOrderVO.setChargingSecond(data5.getCumulative_charging_time()*60L);
 			}
 			// 总收入
 			if (chargingOrderVO.getRefundStatus() !=null && chargingOrderVO.getRefundStatus() == 2){
@@ -1778,72 +1780,64 @@
 		
 		//获取订单的计费策略
 		List<AccountingStrategyDetailOrder> accountingStrategyDetailOrderList = accountingStrategyDetailOrderClient.getAllAccountingStrategyDetailOrder(chargingOrder.getId()).getData();
-		AccountingStrategyDetailOrder accountingStrategyDetailOrder = accountingStrategyDetailOrderList.get(accountingStrategyDetailOrderList.size() - 1);
-		if(accountingStrategyDetailOrder.getEndTime().equals("00:00")){
-			accountingStrategyDetailOrder.setEndTime("24:00");
-		}
 		chargingOrderAccountingStrategyService.remove(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()));
-		for (int i = 0; i < 12; i++) {
+		for (int i = 0; i < accountingStrategyDetailOrderList.size(); i++) {
 			Class<? extends TransactionRecordMessageVO> clazz = vo.getClass();
 			try {
-				Object invoke1 = clazz.getMethod("getTime" + (i + 1)).invoke(vo);
-				if(null != invoke1){
-					String[] split = invoke1.toString().split("-");
-					AccountingStrategyDetailOrder strategyDetail = accountingStrategyDetailOrderList.stream().filter(s -> s.getStartTime().equals(split[0]) && s.getEndTime().equals(split[1])).findFirst().get();
-					//阶段(1=尖阶段,2=峰阶段,3=平阶段,4=谷阶段)
-					Object invoke = null;
-					switch (strategyDetail.getType()){
-						case 1:
-							//充电度数
-							invoke = clazz.getMethod("getSharp_peak_charge" + (i + 1)).invoke(vo);
-							break;
-						case 2:
-							//充电度数
-							invoke = clazz.getMethod("getPeak_charge" + (i + 1)).invoke(vo);
-							break;
-						case 3:
-							//充电度数
-							invoke = clazz.getMethod("getFlat_peak_charge" + (i + 1)).invoke(vo);
-							break;
-						case 4:
-							//充电度数
-							invoke = clazz.getMethod("getLow_peak_charge" + (i + 1)).invoke(vo);
-							break;
-					}
-					if(null == invoke || invoke.toString().equals("0")){
-						continue;
-					}
-					BigDecimal Sharp_peak_charge = new BigDecimal(invoke.toString());
-					TChargingOrderAccountingStrategy chargingOrderAccountingStrategy = new TChargingOrderAccountingStrategy();
-					chargingOrderAccountingStrategy.setChargingOrderId(chargingOrder.getId());
-					chargingOrderAccountingStrategy.setAccountingStrategyDetailId(strategyDetail.getId());
-					chargingOrderAccountingStrategy.setType(strategyDetail.getType());
-					chargingOrderAccountingStrategy.setStartTime(chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("HH:mm")));
-					chargingOrderAccountingStrategy.setEndTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("HH:mm")));
-					chargingOrderAccountingStrategy.setElectrovalence(strategyDetail.getElectrovalence());
-					chargingOrderAccountingStrategy.setServiceCharge(strategyDetail.getServiceCharge());
-					chargingOrderAccountingStrategy.setCostServiceCharge(strategyDetail.getCostServiceCharge());
-					//已充电总度数
-					BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(Sharp_peak_charge);
-					BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(Sharp_peak_charge);
-					BigDecimal serviceCharge = originalServicePrice;
-					//计算优惠金额
-					if(null != chargingOrder.getVipDiscount()){
-						serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount().divide(new BigDecimal(10)));
-					}
-					chargingOrderAccountingStrategy.setChargingCapacity(Sharp_peak_charge);
-					chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
-					chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
-					chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice);
-					chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now());
-					chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy);
-					
-					BigDecimal periodElectricPrice = chargingOrderAccountingStrategy.getPeriodElectricPrice();
-					BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodOriginalServicePrice();
-					periodElectricPrice_total = periodElectricPrice_total.add(periodElectricPrice);
-					periodServicePrice_total = periodServicePrice_total.add(periodServicePrice);
-					total = total.add(periodElectricPrice).add(periodServicePrice);
+				AccountingStrategyDetailOrder strategyDetail = accountingStrategyDetailOrderList.get(i);
+				//阶段(1=尖阶段,2=峰阶段,3=平阶段,4=谷阶段)
+				Object invoke = null;
+				switch (strategyDetail.getType()){
+					case 1:
+						//充电度数
+						invoke = clazz.getMethod("getSpike_charge" + (i + 1)).invoke(vo);
+						break;
+					case 2:
+						//充电度数
+						invoke = clazz.getMethod("getPeak_charge" + (i + 1)).invoke(vo);
+						break;
+					case 3:
+						//充电度数
+						invoke = clazz.getMethod("getFlat_charge" + (i + 1)).invoke(vo);
+						break;
+					case 4:
+						//充电度数
+						invoke = clazz.getMethod("getValley_charge" + (i + 1)).invoke(vo);
+						break;
 				}
+				if(null == invoke || Integer.valueOf(invoke.toString()) == 0){
+					continue;
+				}
+				BigDecimal sharp_peak_charge = new BigDecimal(invoke.toString());
+				TChargingOrderAccountingStrategy chargingOrderAccountingStrategy = new TChargingOrderAccountingStrategy();
+				chargingOrderAccountingStrategy.setChargingOrderId(chargingOrder.getId());
+				chargingOrderAccountingStrategy.setAccountingStrategyDetailId(strategyDetail.getId());
+				chargingOrderAccountingStrategy.setType(strategyDetail.getType());
+				chargingOrderAccountingStrategy.setStartTime(chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("HH:mm")));
+				chargingOrderAccountingStrategy.setEndTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("HH:mm")));
+				chargingOrderAccountingStrategy.setElectrovalence(strategyDetail.getElectrovalence());
+				chargingOrderAccountingStrategy.setServiceCharge(strategyDetail.getServiceCharge());
+				chargingOrderAccountingStrategy.setCostServiceCharge(strategyDetail.getCostServiceCharge());
+				//已充电总度数
+				BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN);
+				BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN);
+				BigDecimal serviceCharge = originalServicePrice;
+				//计算优惠金额
+				if(null != chargingOrder.getVipDiscount()){
+					serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount().divide(new BigDecimal(10))).setScale(2, RoundingMode.DOWN);
+				}
+				chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge);
+				chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
+				chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
+				chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice);
+				chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now());
+				chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy);
+				
+				BigDecimal periodElectricPrice = chargingOrderAccountingStrategy.getPeriodElectricPrice();
+				BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodOriginalServicePrice();
+				periodElectricPrice_total = periodElectricPrice_total.add(periodElectricPrice);
+				periodServicePrice_total = periodServicePrice_total.add(periodServicePrice);
+				total = total.add(periodElectricPrice.add(periodServicePrice));
 			} catch (IllegalAccessException e) {
 				throw new RuntimeException(e);
 			} catch (InvocationTargetException e) {
@@ -1904,11 +1898,12 @@
 		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.setScale(2, RoundingMode.DOWN));
-		order.setVipDiscountAmount(discountAmount.setScale(2, RoundingMode.DOWN));
-		order.setServiceCharge(periodServicePrice_total.setScale(2, RoundingMode.DOWN));
-		order.setElectrovalence(periodElectricPrice_total.setScale(2, RoundingMode.DOWN));
+		order.setOrderAmount(orderAmount);
+		order.setVipDiscountAmount(discountAmount);
+		order.setServiceCharge(periodServicePrice_total);
+		order.setElectrovalence(periodElectricPrice_total);
 		order.setChargingCapacity(vo.getTotal_electricity());
+		order.setElectricity(vo.getTotal_electricity());
 		
 		//计算优惠券
 		if(null != chargingOrder.getAppCouponId()){
@@ -1945,8 +1940,8 @@
 				}
 			}
 		}
-		order.setPaymentAmount(payAmount.setScale(2, RoundingMode.DOWN));
-		order.setRefundAmount(refundAmount.setScale(2, RoundingMode.DOWN));
+		order.setPaymentAmount(payAmount);
+		order.setRefundAmount(refundAmount);
 		order.setRefundStatus(1);
 		this.updateById(order);
 		chargingOrder = this.getById(order.getId());

--
Gitblit v1.7.1