From 3967f987fa0020b031b088466bf7e597071b5916 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Mon, 31 Mar 2025 15:05:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A6=82=E6=9E=9C=E7=AE=97=E5=87=BA=E6=9D=A5?= =?UTF-8?q?=E7=9A=84=20=E7=94=B5=E8=B4=B9=E9=87=91=E9=A2=9D=20+=20?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E8=B4=B9=E9=87=91=E9=A2=9D=20!=3D=20?= =?UTF-8?q?=E6=80=BB=E6=B6=88=E8=B4=B9=E9=87=91=E9=A2=9D=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E4=B8=94=E5=B0=96=E5=B3=B0=E5=B9=B3=E8=B0=B7=E6=80=BB=E7=94=A8?= =?UTF-8?q?=E7=94=B5=E9=87=8F=E5=A4=A7=E4=BA=8E0,=20=E5=88=99=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=B9=B3=E5=8F=B0=E8=AE=A1=E7=AE=97=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../programlogic/AbstractProgramLogic.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java index 7b4cd965d..f3dbc2691 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java @@ -430,11 +430,17 @@ public abstract class AbstractProgramLogic implements InitializingBean { orderCode, price, electricityPrice, servicePrice, valleyUsedElectricity, amount, electricityAmount, serviceAmount, data.getValleyPrice(), data.getValleyAmount()); } + // 尖峰平谷用电量汇总 + BigDecimal sumUsedElectricity = sharpUsedElectricity.add(peakUsedElectricity).add(flatUsedElectricity).add(valleyUsedElectricity); + + // data中的总用电量 + BigDecimal totalElectricity = new BigDecimal(StringUtils.isBlank(data.getTotalElectricity()) ? Constants.ZERO : data.getTotalElectricity()); + // 平台计算的总消费金额 平台计算总电费金额 + 平台计算总服务费金额 BigDecimal computeTotalAmount = totalElectricityAmount.add(totalServiceAmount); - // 如果算出来的 电费金额 + 服务费金额 != 总消费金额,则电费金额等于总消费金额 - 服务费金额 - if (computeTotalAmount.compareTo(orderAmount) != 0) { + // 如果算出来的 电费金额 + 服务费金额 != 总消费金额,并且尖峰平谷总用电量大于0, 则使用平台计算金额 + if (computeTotalAmount.compareTo(orderAmount) != 0 && (sumUsedElectricity.compareTo(BigDecimal.ZERO) > 0)) { // 2025年3月26日15点50分, 订单金额以平台计算为主,所以注释掉, 并打印日志说明 // totalElectricityAmount = orderAmount.subtract(totalServiceAmount); logger.info("平台计算出电费金额:{}, 服务费金额:{}, 汇总:{}, 交易记录传来的金额:{}", totalElectricityAmount, totalServiceAmount, computeTotalAmount, orderAmount); @@ -445,10 +451,7 @@ public abstract class AbstractProgramLogic implements InitializingBean { orderDetail.setTotalElectricityAmount(totalElectricityAmount); // 服务费总金额 orderDetail.setTotalServiceAmount(totalServiceAmount); - // 尖峰平谷用电量汇总 - BigDecimal sumUsedElectricity = sharpUsedElectricity.add(peakUsedElectricity).add(flatUsedElectricity).add(valleyUsedElectricity); - // data中的总用电量 - BigDecimal totalElectricity = new BigDecimal(StringUtils.isBlank(data.getTotalElectricity()) ? Constants.ZERO : data.getTotalElectricity()); + // sumUsedElectricity与totalElectricity对比, 取最大的值 orderDetail.setTotalUsedElectricity(totalElectricity.max(sumUsedElectricity)); // 订单总金额