From fd9f5cbc8774f121fc3145f44a8bebab432f39de Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 11 九月 2024 12:06:34 +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 |   39 +++++++++++++++++++++++++++++++--------
 1 files changed, 31 insertions(+), 8 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 511676a..bdc04ab 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
@@ -450,8 +450,14 @@
 		this.save(chargingOrder);
 
 		//添加订单的计费策略
-		TAccountingStrategy accountingStrategy = accountingStrategyClient.getAccountingStrategyById(tChargingGun.getAccountingStrategyId()).getData();
-		List<TAccountingStrategyDetail> strategyDetailList = accountingStrategyDetailClient.getListByAccountingStrategyId(tChargingGun.getAccountingStrategyId()).getData();
+		Integer accountingStrategyId = tChargingGun.getAccountingStrategyId();
+		if(null == accountingStrategyId){
+			//查询站点上面的计费策略
+			Site site = siteClient.getSiteByIds(Arrays.asList(tChargingGun.getSiteId())).getData().get(0);
+			accountingStrategyId = site.getAccountingStrategyId();
+		}
+		TAccountingStrategy accountingStrategy = accountingStrategyClient.getAccountingStrategyById(accountingStrategyId).getData();
+		List<TAccountingStrategyDetail> strategyDetailList = accountingStrategyDetailClient.getListByAccountingStrategyId(accountingStrategyId).getData();
 		AccountingStrategyOrder accountingStrategyOrder = new AccountingStrategyOrder();
 		BeanUtils.copyProperties(accountingStrategy, accountingStrategyOrder);
 		accountingStrategyOrder.setChargingOrderId(chargingOrder.getId());
@@ -1798,8 +1804,15 @@
 		String startTime = dto.getStartTime();
 		String endTime = dto.getEndTime();
 		// 将这两个时间转化为localDateTime
-		tSettlementConfirm.setStartTime(LocalDateTime.parse(startTime));
-		tSettlementConfirm.setEndTime(LocalDateTime.parse(endTime));
+		// 创建 DateTimeFormatter 对象,指定格式
+		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+		// 将字符串解析为 LocalDateTime 对象
+		LocalDateTime localDateTime = LocalDateTime.parse(startTime, formatter);
+		LocalDateTime localDateTime1 = LocalDateTime.parse(endTime, formatter);
+		tSettlementConfirm.setEndTime(localDateTime1);
+		tSettlementConfirm.setStartTime(localDateTime);
+
 		// 根据站点id和开始时间和结束时间和归属日期 查询充电订单列表
 		QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
 				.eq("site_id", dto.getSiteId())
@@ -2082,13 +2095,23 @@
 		tSettlementConfirm.setVipDiscount(vipDiscount);
 		tSettlementConfirm.setCouponDiscount(couponDiscount);
 		// 本月
-		BigDecimal subtract = income.subtract(beforeIncome).divide(beforeIncome).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"));
-		tSettlementConfirm.setIncomePercentage(subtract+"%");
+		if (beforeIncome.compareTo(new BigDecimal("0")) == 0){
+			tSettlementConfirm.setIncomePercentage(0+"%");
+			tSettlementConfirm.setIncomePercentage(0+"%");
+		}else{
+			BigDecimal subtract = income.subtract(beforeIncome).divide(beforeIncome).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"));
+			tSettlementConfirm.setIncomePercentage(subtract+"%");
+			tSettlementConfirm.setIncomePercentage(subtract+"%");
+
+		}
 		// 比较总利润 收入合计-成本合计
 		BigDecimal subtract1 = income.subtract(cost);
 		BigDecimal subtract2 = beforeIncome.subtract(beforeCost);
-		tSettlementConfirm.setTotalPercentage(subtract1.subtract(subtract2).divide(subtract2).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"))+"%");
-		tSettlementConfirm.setIncomePercentage(subtract+"%");
+		if (subtract2.compareTo(new BigDecimal("0")) == 0){
+			tSettlementConfirm.setTotalPercentage(0+"%");
+		}else{
+			tSettlementConfirm.setTotalPercentage(subtract1.subtract(subtract2).divide(subtract2).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"))+"%");
+		}
 		tSettlementConfirm.setElectronicRefund(0);
 		// 查询上次汇报数据 进行比对涨幅跌幅
 		total.add(tSettlementConfirm);

--
Gitblit v1.7.1