From 9fde1b2e2218955c6aa73dff85d7dd175f0d467a Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 06 十一月 2024 16:24:45 +0800
Subject: [PATCH] 合并代码

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   56 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 33 insertions(+), 23 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 14bf85d..579229c 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
@@ -963,9 +963,8 @@
 		if(null != chargingHandshake && null != data && null != one.getAppUserCarId()){
 			BigDecimal bms_battery_capacity = chargingHandshake.getBms_battery_capacity();
 			TAppUserCar appUserCar = appUserCarClient.getCarByIds(Arrays.asList(one.getAppUserCarId())).getData().get(0);
-			//   续航 = 电池容量 / 续航里程 * soc
-			BigDecimal divide = bms_battery_capacity.divide(new BigDecimal(appUserCar.getEndurance()));
-			BigDecimal multiply = new BigDecimal(data.getSoc() / 100).multiply(divide);
+			//   续航 = 续航里程 * soc
+			BigDecimal multiply = new BigDecimal(data.getSoc() / 100).multiply(new BigDecimal(appUserCar.getEndurance()));
 			chargingDetails.setEndurance(multiply);
 		}
 		return chargingDetails;
@@ -1092,6 +1091,7 @@
 				if(1 == doubleIntegration){
 					num1 *= 2;
 				}
+				
 			}
 			
 			GetInviteUser query = new GetInviteUser();
@@ -1637,7 +1637,8 @@
 		chargingOrderListInfoVO.setStatus(chargingOrder.getStatus());
 		BigDecimal bigDecimal = new BigDecimal("0.006");
 		if (chargingOrder.getOrderAmount()!=null){
-			chargingOrderListInfoVO.setCommissionAmount(chargingOrder.getOrderAmount().multiply(bigDecimal));
+			BigDecimal multiply = chargingOrder.getPaymentAmount().multiply(bigDecimal);
+			chargingOrderListInfoVO.setCommissionAmount(multiply.setScale(2, BigDecimal.ROUND_HALF_UP));
 		}
 		chargingOrderListInfoVO.setElectrovalence(chargingOrder.getElectrovalence());
 		chargingOrderListInfoVO.setServiceCharge(chargingOrder.getServiceCharge());
@@ -1671,6 +1672,7 @@
 				}
 			}
 		}
+		chargingOrderListInfoVO.setChargingCapacity(chargingOrder.getChargingCapacity());
 
 		chargingOrderListInfoVO.setEndMode(chargingOrder.getEndMode());
 
@@ -1686,10 +1688,18 @@
 					}
 				}
 				if (!data6.isEmpty()){
-					// 第一条数据soc为开始 最后一条数据soc为结束soc
-					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());
+						int min = 100;
+						int max = 0;
+						for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) {
+							if (uploadRealTimeMonitoringData.getSoc()>max){
+								max = uploadRealTimeMonitoringData.getSoc();
+							}
+							if (uploadRealTimeMonitoringData.getSoc()!=0 &&uploadRealTimeMonitoringData.getSoc()<min){
+								min = uploadRealTimeMonitoringData.getSoc();
+							}
+						}
+					chargingOrderListInfoVO.setEndSoc(max+"");
+					chargingOrderListInfoVO.setStartSoc(min+"");
 
 					SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 					for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) {
@@ -1919,20 +1929,20 @@
 			}
 			
 			//已充电总度数
-			BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(sharp_peak_charge).setScale(2, RoundingMode.HALF_EVEN);
-			BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(sharp_peak_charge).setScale(2, RoundingMode.HALF_EVEN);
+			BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(sharp_peak_charge);
+			BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(sharp_peak_charge);
 			BigDecimal serviceCharge = originalServicePrice;
 			BigDecimal vipDiscountAmount = BigDecimal.ZERO;
 			//计算优惠金额
 			if(null != chargingOrder.getVipDiscount()){
-				vipDiscountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount())).setScale(2, RoundingMode.HALF_EVEN);
-				serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount()).setScale(2, RoundingMode.HALF_EVEN);
+				vipDiscountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount()));
+				serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount());
 			}
 			chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge);
-			chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
-			chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
-			chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice);
-			chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount);
+			chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc.setScale(4, RoundingMode.HALF_EVEN));
+			chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge.setScale(4, RoundingMode.HALF_EVEN));
+			chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice.setScale(4, RoundingMode.HALF_EVEN));
+			chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount.setScale(4, RoundingMode.HALF_EVEN));
 			chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now());
 			chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy);
 			
@@ -1977,7 +1987,7 @@
 			}
 		}
 		//会员折扣金额
-		discountAmount = discountAmount.setScale(2, RoundingMode.HALF_EVEN);
+		discountAmount = discountAmount.setScale(4, RoundingMode.HALF_EVEN);
 		payAmount = payAmount.subtract(discountAmount);
 		periodServicePrice_total = periodServicePrice_total.subtract(discountAmount);
 		
@@ -1996,7 +2006,7 @@
 		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.HALF_EVEN));
-		order.setVipDiscountAmount(discountAmount);
+		order.setVipDiscountAmount(discountAmount.setScale(2, RoundingMode.HALF_EVEN));
 		order.setElectrovalence(periodElectricPrice_total.setScale(2, RoundingMode.HALF_EVEN));
 		order.setChargingCapacity(vo.getTotal_electricity());
 		order.setElectricity(vo.getTotal_electricity());
@@ -2052,13 +2062,13 @@
 			}
 		}
 		//优惠券优惠金额
-		couponDiscount = couponDiscount.setScale(2, RoundingMode.HALF_EVEN);
+		couponDiscount = couponDiscount.setScale(4, RoundingMode.HALF_EVEN);
 		refundAmount = refundAmount.add(couponDiscount);
 		payAmount = payAmount.subtract(couponDiscount);
 		if(periodServicePrice_total.compareTo(BigDecimal.ZERO) > 0){
 			periodServicePrice_total = periodServicePrice_total.subtract(couponDiscount);
 		}
-		order.setCouponDiscountAmount(couponDiscount);
+		order.setCouponDiscountAmount(couponDiscount.setScale(2, RoundingMode.HALF_EVEN));
 		order.setServiceCharge(periodServicePrice_total.setScale(2, RoundingMode.HALF_EVEN));
 		order.setPaymentAmount(payAmount.setScale(2, RoundingMode.HALF_EVEN));
 		order.setRefundAmount(refundAmount.setScale(2, RoundingMode.HALF_EVEN));
@@ -2583,19 +2593,19 @@
 			}
 			if (tChargingOrder.getPaymentAmount()!=null){
 				paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount());
+				orderCommission = orderCommission.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006"))
+						.setScale(2,BigDecimal.ROUND_DOWN));
 			}
 
 		}
 
 		// 三方交易手续费 三方收费*0.6%
 		commissionAmount = sharingAmount.multiply(new BigDecimal("0.006"));
-		// 订单手续费 订单支付金额 - 退款金额*0.6%
-		orderCommission = paymentAmount.multiply(new BigDecimal("0.006"));
 		tSettlementConfirm.setSharingAmount(sharingAmount.setScale(2, RoundingMode.HALF_DOWN));
 		tSettlementConfirm.setCommissionAmount(commissionAmount.setScale(2, RoundingMode.HALF_DOWN));
 		tSettlementConfirm.setElectrovalence(electrovalence.setScale(2, RoundingMode.HALF_DOWN));
 		tSettlementConfirm.setServiceCharge(serviceCharge.subtract(orderCommission).setScale(2, RoundingMode.HALF_DOWN));
-		tSettlementConfirm.setOrderCommission(orderCommission.setScale(2,BigDecimal.ROUND_DOWN));
+		tSettlementConfirm.setOrderCommission(orderCommission);
 		tSettlementConfirm.setVipDiscount(vipDiscount);
 		tSettlementConfirm.setCouponDiscount(couponDiscount);
 		tSettlementConfirm.setSiteId(dto.getSiteId());

--
Gitblit v1.7.1