Prechádzať zdrojové kódy

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

- 移除策略费用计算中对乘积结果的提前四舍五入,避免累计误差
- 在设置订单实际服务成本时才进行保留两位小数并向下取整操作
- 确保平台实际收取金额计算准确,包含平台服务费和第三方费用总和
wzq 1 deň pred
rodič
commit
e799955ded

+ 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()));