소스 검색

fix(charging): 修正平台服务费计算的精度处理

- 移除策略费用计算中对乘积结果的提前四舍五入,避免累计误差
- 在设置订单实际服务成本时才进行保留两位小数并向下取整操作
- 确保平台实际收取金额计算准确,包含平台服务费和第三方费用总和
wzq 1 일 전
부모
커밋
e799955ded
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      src/main/java/com/zsElectric/boot/charging/service/impl/ChargingReceptionServiceImpl.java

+ 2 - 2
src/main/java/com/zsElectric/boot/charging/service/impl/ChargingReceptionServiceImpl.java

@@ -222,13 +222,13 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
                     if (ObjectUtil.isNotEmpty(policyFee)) {
                         BigDecimal opFee = policyFee.getOpFee();
                         log.info("策略费用:{}",opFee);
-                        serviceFee = serviceFee.add(opFee.multiply(new BigDecimal(detailPower))).setScale(2, RoundingMode.DOWN);
+                        serviceFee = serviceFee.add(opFee.multiply(new BigDecimal(detailPower)));
                     }
                 }
             }
 
             log.info("计算后的平台服务费:{}", serviceFee);
-            chargeOrderInfo.setRealServiceCost(serviceFee);
+            chargeOrderInfo.setRealServiceCost(serviceFee.setScale(2, RoundingMode.DOWN));
             //订单结算:平台实际收取金额 = 互联互通金额 + 中数电动金额(平台总服务费)
             chargeOrderInfo.setRealCost(chargeOrderInfo.getRealServiceCost().add(chargeOrderInfo.getThirdPartyTotalCost()));