From e125d529c1c3748bcf15c619576b2c9e1cc69d54 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 18 十月 2024 18:21:08 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |  136 ++++++++++++++++++++++-----------------------
 1 files changed, 67 insertions(+), 69 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 a17d686..12118eb 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
@@ -205,6 +205,7 @@
 		Map<String, Object> map = new HashMap<>();
 		int size = this.baseMapper.getMyChargingOrderList(appUserId, 1, null, null).size();
 		map.put("number", size);
+		query.setPageCurr((query.getPageCurr() - 1) * query.getPageSize());
 		List<TChargingOrder> list = this.baseMapper.getMyChargingOrderList(appUserId, query.getType(), query.getPageCurr(), query.getPageSize());
 		List<MyChargingOrderList> orderLists = new ArrayList<>();
 		for (TChargingOrder tChargingOrder : list) {
@@ -317,6 +318,8 @@
 	@Override
 	public List<MyChargingOrderList> getNoInvoicedOrder(GetNoInvoicedOrder query) {
 		Long appUserId = tokenService.getLoginUserApplet().getUserId();
+		
+		query.setPageCurr((query.getPageCurr() - 1) * query.getPageSize());
 		List<TChargingOrder> orderList = this.baseMapper.getNoInvoicedOrder(appUserId, query.getMonth(), query.getPageCurr(), query.getPageSize());
 		List<MyChargingOrderList> list = new ArrayList<>();
 		for (TChargingOrder tChargingOrder : orderList) {
@@ -930,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()){
@@ -1775,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) {
@@ -1901,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()){
@@ -1942,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