From a8996df2df6a108be7db1cdb42cee31e12d59245 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 01 十一月 2024 17:23:54 +0800
Subject: [PATCH] 合并代码

---
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/BmsDemandAndChargerExportationClient.java           |   27 ++++++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java                                                       |   14 +++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java                                     |   39 +++++----
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/BmsDemandAndChargerExportationServiceImpl.java |   17 ++++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java                         |   16 +++-
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/BmsDemandAndChargerExportationService.java          |   12 +++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/BmsDemandAndChargerExportationController.java            |   46 +++++++++++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java                                             |    2 
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/BmsDemandAndChargerExportationFallbackFactory.java      |   37 +++++++++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java                        |    2 
 10 files changed, 190 insertions(+), 22 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/BmsDemandAndChargerExportationFallbackFactory.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/BmsDemandAndChargerExportationFallbackFactory.java
new file mode 100644
index 0000000..e723828
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/BmsDemandAndChargerExportationFallbackFactory.java
@@ -0,0 +1,37 @@
+package com.ruoyi.integration.api.factory;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
+import com.ruoyi.integration.api.feignClient.BmsDemandAndChargerExportationClient;
+import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
+import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation;
+import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
+import com.ruoyi.integration.api.model.UploadRealTimeMonitoringPageData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 充电桩服务降级处理
+ * 
+ * @author ruoyi
+ */
+@Component
+public class BmsDemandAndChargerExportationFallbackFactory implements org.springframework.cloud.openfeign.FallbackFactory<BmsDemandAndChargerExportationClient>
+{
+    private static final Logger log = LoggerFactory.getLogger(BmsDemandAndChargerExportationFallbackFactory.class);
+
+    @Override
+    public BmsDemandAndChargerExportationClient create(Throwable throwable) {
+        log.error("调用充电桩实时监测数据失败:{}", throwable.getMessage());
+        return new BmsDemandAndChargerExportationClient() {
+    
+            @Override
+            public R<BmsDemandAndChargerExportation> getBmsDemandAndChargerExportation(String orderCode) {
+                return R.fail("获取充电中bms数据失败:" + throwable.getMessage());
+            }
+        };
+    }
+}
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/BmsDemandAndChargerExportationClient.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/BmsDemandAndChargerExportationClient.java
new file mode 100644
index 0000000..9130248
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/BmsDemandAndChargerExportationClient.java
@@ -0,0 +1,27 @@
+package com.ruoyi.integration.api.feignClient;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.integration.api.factory.BmsDemandAndChargerExportationFallbackFactory;
+import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/11/1 16:06
+ */
+@FeignClient(contextId = "BmsDemandAndChargerExportationClient", value = ServiceNameConstants.INTEGRATION_SERVICE, fallbackFactory = BmsDemandAndChargerExportationFallbackFactory.class)
+public interface BmsDemandAndChargerExportationClient {
+	
+	
+	/**
+	 * 获取充电中bms数据
+	 * @param orderCode
+	 * @return
+	 */
+	@PostMapping("/bmsDemandAndChargerExportation/getBmsDemandAndChargerExportation")
+	R<BmsDemandAndChargerExportation> getBmsDemandAndChargerExportation(@RequestParam("orderCode") String orderCode);
+
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java
index f270637..a1ef53b 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java
@@ -70,7 +70,11 @@
     @ApiModelProperty(value = "站点名称")
     @TableField(exist = false)
     private List<String> siteNames;
-
+    
+    @TableField(exist = false)
+    private Long number;
+    
+    
     public SysRole()
     {
 
@@ -203,6 +207,14 @@
         this.siteNames = siteNames;
     }
     
+    public Long getNumber() {
+        return number;
+    }
+    
+    public void setNumber(Long number) {
+        this.number = number;
+    }
+    
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
index 4c2f434..ebe7214 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
@@ -112,6 +112,8 @@
 				List<String> collect = sites.stream().map(Site::getName).collect(Collectors.toList());
 				record.setSiteNames(collect);
 			}
+			long count = sysUserRoleService.count(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getRoleId, record.getRoleId()));
+			record.setNumber(count);
 		}
 		return AjaxResult.success(page);
 	}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
index f7019e4..6095b18 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -517,7 +517,7 @@
 			if(status == 5 || status == 6){
 				gunMonitoring.setStatus(3);
 			}
-			if(status == 4){
+			if(status == 4 || status == 7){
 				Integer id = gunMonitoring.getId();
 				TChargingOrder chargingOrder = chargingOrderClient.getOrderDetailByGunId(id).getData();
 				if(null != chargingOrder){
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
index 1a3c63c..42bb861 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
@@ -53,7 +53,9 @@
 		TParkingLot data = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData();
 		parkingRecord.setName(data.getName());
 		parkingRecord.setParkingLotId(data.getId());
-		parkingRecord.setInParkingTime(LocalDateTime.parse(order.getEnterDateTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+		LocalDateTime parse = LocalDateTime.parse(order.getEnterDateTime(), DateTimeFormatter.ofPattern("yyyy-MM-ddTHH:mm:ss.SSSZ"));
+		parse.plusDays(8);
+		parkingRecord.setInParkingTime(parse);
 		parkingRecord.setStatus(1);
 		parkingRecord.setCreateTime(LocalDateTime.now());
 		parkingRecord.setSerialnumber(order.getId());
@@ -70,7 +72,9 @@
 		query.setLicensePlate(order.getPlate());
 		query.setStatus(1);
 		TParkingRecord parkingRecord = parkingRecordClient.getParkingRecord(query).getData();
-		parkingRecord.setOutParkingTime(LocalDateTime.parse(order.getLeaveDateTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+		LocalDateTime parse = LocalDateTime.parse(order.getLeaveDateTime(), DateTimeFormatter.ofPattern("yyyy-MM-ddTHH:mm:ss.SSSZ"));
+		parse.plusDays(8);
+		parkingRecord.setOutParkingTime(parse);
 		parkingRecord.setParkingDuration(Integer.valueOf(order.getLongTime()));
 		parkingRecord.setOrderAmount(new BigDecimal(order.getReceivable()));
 		parkingRecord.setPayment(new BigDecimal(order.getPayment()));
@@ -104,7 +108,9 @@
 		TParkingLot data = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData();
 		parkingRecord.setName(data.getName());
 		parkingRecord.setParkingLotId(data.getId());
-		parkingRecord.setInParkingTime(LocalDateTime.parse(order.getEntertime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+		LocalDateTime parse = LocalDateTime.parse(order.getEntertime(), DateTimeFormatter.ofPattern("yyyy-MM-ddTHH:mm:ss.SSSZ"));
+		parse.plusDays(8);
+		parkingRecord.setInParkingTime(parse);
 		parkingRecord.setStatus(1);
 		parkingRecord.setCreateTime(LocalDateTime.now());
 		parkingRecord.setSerialnumber(order.getId());
@@ -121,7 +127,9 @@
 		query.setLicensePlate(order.getPlatenumber());
 		query.setStatus(1);
 		TParkingRecord parkingRecord = parkingRecordClient.getParkingRecord(query).getData();
-		parkingRecord.setOutParkingTime(LocalDateTime.parse(order.getLeavetime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+		LocalDateTime parse = LocalDateTime.parse(order.getLeavetime(), DateTimeFormatter.ofPattern("yyyy-MM-ddTHH:mm:ss.SSSZ"));
+		parse.plusDays(8);
+		parkingRecord.setOutParkingTime(parse);
 		parkingRecord.setParkingDuration(Integer.valueOf(order.getLongTime()));
 		parkingRecord.setOrderAmount(new BigDecimal(order.getMoney()));
 		parkingRecord.setPayment(new BigDecimal(order.getMoney()));
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/BmsDemandAndChargerExportationController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/BmsDemandAndChargerExportationController.java
new file mode 100644
index 0000000..2018927
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/BmsDemandAndChargerExportationController.java
@@ -0,0 +1,46 @@
+package com.ruoyi.integration.controller;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation;
+import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
+import com.ruoyi.integration.mongodb.service.BmsDemandAndChargerExportationService;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/11/1 15:52
+ */
+@RestController
+@RequestMapping("/bmsDemandAndChargerExportation")
+public class BmsDemandAndChargerExportationController {
+	
+	@Resource
+	private BmsDemandAndChargerExportationService bmsDemandAndChargerExportationService;
+	
+	/**
+	 * 获取充电中bms数据
+	 * @param orderCode
+	 * @return
+	 */
+	@PostMapping("/getBmsDemandAndChargerExportation")
+	public R<BmsDemandAndChargerExportation> getBmsDemandAndChargerExportation(@RequestParam("orderCode") String orderCode){
+		List<BmsDemandAndChargerExportation> bmsDemandAndChargerExportation = bmsDemandAndChargerExportationService.getBmsDemandAndChargerExportation(orderCode);
+		if(bmsDemandAndChargerExportation.size() > 0){
+			BmsDemandAndChargerExportation uploadRealTimeMonitoringData = bmsDemandAndChargerExportation.get(0);
+			return R.ok(uploadRealTimeMonitoringData);
+		}
+		return R.ok();
+	}
+	
+	
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/BmsDemandAndChargerExportationService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/BmsDemandAndChargerExportationService.java
index 34e3749..96d429e 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/BmsDemandAndChargerExportationService.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/BmsDemandAndChargerExportationService.java
@@ -2,6 +2,18 @@
 
 import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation;
 import com.ruoyi.integration.mongodb.base.BaseService;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
 
 public interface BmsDemandAndChargerExportationService extends BaseService<BmsDemandAndChargerExportation> {
+	
+	
+	/**
+	 * 获取bms数据
+	 * @param orderCode
+	 * @return
+	 */
+	List<BmsDemandAndChargerExportation> getBmsDemandAndChargerExportation(String orderCode);
+	
 }
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/BmsDemandAndChargerExportationServiceImpl.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/BmsDemandAndChargerExportationServiceImpl.java
index c8a9b50..fb6f731 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/BmsDemandAndChargerExportationServiceImpl.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/BmsDemandAndChargerExportationServiceImpl.java
@@ -1,10 +1,14 @@
 package com.ruoyi.integration.mongodb.service.impl;
 
+import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.integration.iotda.constant.IotConstant;
 import com.ruoyi.integration.api.model.BmsDemandAndChargerExportation;
 import com.ruoyi.integration.mongodb.service.BmsDemandAndChargerExportationService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -28,4 +32,17 @@
     public List<BmsDemandAndChargerExportation> findAll() {
         return mongoTemplate.findAll(BmsDemandAndChargerExportation.class);
     }
+    
+    
+    @Override
+    public List<BmsDemandAndChargerExportation> getBmsDemandAndChargerExportation(String orderCode) {
+        Query query = new Query();
+        if(StringUtils.isNotEmpty(orderCode)){
+            query.addCriteria(Criteria.where("transaction_serial_number").is(orderCode));
+        }
+        List<BmsDemandAndChargerExportation> uploadRealTimeMonitoringData = mongoTemplate.find(
+                query.with(Sort.by(Sort.Order.desc("create_time")))
+                , BmsDemandAndChargerExportation.class);
+        return uploadRealTimeMonitoringData;
+    }
 }
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 33bd961..e1ec2a8 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
@@ -187,6 +187,9 @@
 	
 	@Resource
 	private SecurityDetectionClient securityDetectionClient;
+	
+	@Resource
+	private BmsDemandAndChargerExportationClient bmsDemandAndChargerExportationClient;
 
 	//计数器
 	private Map<String, Integer> counter_map = new HashMap<>();
@@ -1108,7 +1111,7 @@
 				appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1);
 				appUserIntegralChange.setCreateTime(LocalDateTime.now());
 				appUserIntegralChange.setOrderCode(chargingOrder.getCode());
-				appUserIntegralChange.setExtension(chargingOrder.getId().toString());
+				appUserIntegralChange.setExtension(appUser.getId().toString());
 				appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
 				
 				appUser1.setPoints(appUser1.getPoints() + num1);
@@ -1734,6 +1737,10 @@
 			chargingOrder.setChargingCapacity(query.getCharging_degree());
 			chargingOrder.setElectricity(query.getCharging_degree());
 			chargingOrder.setTotalElectricity(new BigDecimal(100 - query.getSoc()));
+			BmsDemandAndChargerExportation data = bmsDemandAndChargerExportationClient.getBmsDemandAndChargerExportation(chargingOrder.getCode()).getData();
+			if(null != data){
+				chargingOrder.setNeedElec(data.getBms_current_requirements());
+			}
 			this.updateById(chargingOrder);
 		}
 	}
@@ -1899,16 +1906,16 @@
 				serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount()).setScale(2, RoundingMode.DOWN);
 			}
 			chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge);
-			chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
-			chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
-			chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice);
-			chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount);
+			chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc.setScale(2, RoundingMode.DOWN));
+			chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge.setScale(2, RoundingMode.DOWN));
+			chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice.setScale(2, RoundingMode.DOWN));
+			chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount.setScale(2, RoundingMode.DOWN));
 			chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now());
 			chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy);
 			
-			periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc);
-			periodServicePrice_total = periodServicePrice_total.add(originalServicePrice);
-			total = total.add(electrovalenc.add(originalServicePrice));
+			periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc.setScale(2, RoundingMode.DOWN));
+			periodServicePrice_total = periodServicePrice_total.add(originalServicePrice.setScale(2, RoundingMode.DOWN));
+			total = total.add(electrovalenc.add(originalServicePrice.setScale(2, RoundingMode.DOWN)));
 		}
 		
 		
@@ -1958,13 +1965,13 @@
 		if(null == chargingOrder.getEndMode()){
 			order.setEndMode(1);
 		}
-		order.setResidualAmount(rechargeAmount.subtract(total));
+		order.setResidualAmount(rechargeAmount.subtract(total).setScale(2, RoundingMode.DOWN));
 		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.setElectrovalence(periodElectricPrice_total);
+		order.setOrderAmount(orderAmount.setScale(2, RoundingMode.DOWN));
+		order.setVipDiscountAmount(discountAmount.setScale(2, RoundingMode.DOWN));
+		order.setElectrovalence(periodElectricPrice_total.setScale(2, RoundingMode.DOWN));
 		order.setChargingCapacity(vo.getTotal_electricity());
 		order.setElectricity(vo.getTotal_electricity());
 		
@@ -2030,8 +2037,8 @@
 		}
 		
 		order.setServiceCharge(periodServicePrice_total.setScale(2, RoundingMode.DOWN));
-		order.setPaymentAmount(payAmount);
-		order.setRefundAmount(refundAmount);
+		order.setPaymentAmount(payAmount.setScale(2, RoundingMode.DOWN));
+		order.setRefundAmount(refundAmount.setScale(2, RoundingMode.DOWN));
 		order.setRefundStatus(1);
 		this.updateById(order);
 		chargingOrder = this.getById(order.getId());
@@ -2045,8 +2052,8 @@
 				BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodServicePrice();
 				BigDecimal multiply = couponDiscountAmount.multiply(periodServicePrice.divide(reduce, new MathContext(4, RoundingMode.HALF_EVEN)));
 				periodServicePrice = periodServicePrice.subtract(multiply);
-				chargingOrderAccountingStrategy.setPeriodServicePrice(periodServicePrice);
-				chargingOrderAccountingStrategy.setCouponDiscountAmount(multiply);
+				chargingOrderAccountingStrategy.setPeriodServicePrice(periodServicePrice.setScale(2, RoundingMode.DOWN));
+				chargingOrderAccountingStrategy.setCouponDiscountAmount(multiply.setScale(2, RoundingMode.DOWN));
 			}
 			chargingOrderAccountingStrategyService.updateBatchById(list);
 		}

--
Gitblit v1.7.1