From 14d920beb67e0f2d1d0e4a390e9834f4fcfd79dc Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 16 十月 2024 19:21:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 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 46e04b6..9e757f3 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
@@ -1692,6 +1692,7 @@
 	 * @param query
 	 */
 	@Override
+	@GlobalTransactional(rollbackFor = Exception.class)
 	public void chargeMonitoring(UploadRealTimeMonitoringDataQuery query) {
 		if(com.ruoyi.common.core.utils.StringUtils.isNotEmpty(query.getTransaction_serial_number())){
 			//获取当前的计费策略
@@ -1787,12 +1788,17 @@
 			BigDecimal residualAmount = chargingOrder.getRechargeAmount().subtract(t).setScale(4, RoundingMode.HALF_EVEN);
 			chargingOrder.setResidualAmount(residualAmount);
 			if(query.getOutput_current().compareTo(BigDecimal.ZERO) != 0){
-				BigDecimal divide = query.getOutput_current().multiply(query.getOutput_voltage()).divide(new BigDecimal(1000));
+				BigDecimal divide = (query.getOutput_current().multiply(query.getOutput_voltage())).divide(new BigDecimal(1000));
 				chargingOrder.setChargingPower(divide);
 				chargingOrder.setCurrent(query.getOutput_current());
 				chargingOrder.setVoltage(query.getOutput_voltage());
 				chargingOrder.setPower(query.getOutput_current().multiply(query.getOutput_voltage()));
 				chargingOrder.setNeedElec(query.getOutput_current());
+				
+				TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
+				chargingGun.setChargingPower(divide);
+				chargingGun.setSoc(query.getSoc());
+				chargingGunClient.updateChargingGunById(chargingGun);
 			}
 			chargingOrder.setElectricity(query.getCharging_degree());
 			chargingOrder.setTotalElectricity(new BigDecimal(100 - query.getSoc()));
@@ -1861,13 +1867,16 @@
 				if(StringUtils.hasLength(time)){
 					//充电度数
 					Object invoke = clazz.getMethod("getSharp_peak_charge" + (i + 1)).invoke(vo);
+					if(null == invoke || invoke.toString().equals("0")){
+						continue;
+					}
 					BigDecimal Sharp_peak_charge = new BigDecimal(invoke.toString());
 					//充电金额
 					Object invoke1 = clazz.getMethod("getSharp_peak_amount" + (i + 1)).invoke(vo);
 					BigDecimal sharp_peak_amount = new BigDecimal(invoke1.toString());
 					
-					String[] split = time.split("~");
-					AccountingStrategyDetailOrder strategyDetail = accountingStrategyDetailOrderList.stream().filter(s -> s.getStartTime().equals(split[1]) && s.getEndTime().equals(split[2])).findFirst().get();
+					String[] split = time.split("-");
+					AccountingStrategyDetailOrder strategyDetail = accountingStrategyDetailOrderList.stream().filter(s -> s.getStartTime().equals(split[0]) && s.getEndTime().equals(split[1])).findFirst().get();
 					
 					TChargingOrderAccountingStrategy chargingOrderAccountingStrategy = new TChargingOrderAccountingStrategy();
 					chargingOrderAccountingStrategy.setChargingOrderId(chargingOrder.getId());
@@ -1956,12 +1965,14 @@
 			order.setEndMode(1);
 		}
 		order.setResidualAmount(rechargeAmount.subtract(total));
-		order.setEndTime(LocalDateTime.now());
+		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.setServiceCharge(periodServicePrice_total);
 		order.setElectrovalence(periodElectricPrice_total);
+		order.setChargingCapacity(vo.getTotal_electricity());
 		
 		//计算优惠券
 		if(null != chargingOrder.getAppCouponId()){
@@ -2007,6 +2018,8 @@
 		// 将枪状态重置为空闲
 		TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
 		chargingGun.setStatus(2);
+		chargingGun.setChargingPower(BigDecimal.ZERO);
+		chargingGun.setSoc(0);
 		chargingGunClient.updateChargingGunById(chargingGun);
 		
 		//添加积分

--
Gitblit v1.7.1