From 94c3f33b5ed1e4d01ca2e45d8a0c918a7a7aee91 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Wed, 26 Mar 2025 15:30:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BB=93=E7=AE=97=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../programlogic/AbstractProgramLogic.java | 77 ++++++++++--------- 1 file changed, 41 insertions(+), 36 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 c4c2a11b0..da12b619f 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 @@ -277,7 +277,7 @@ public abstract class AbstractProgramLogic implements InitializingBean { * @return 查询并更新过数据的orderDetail */ public OrderDetail returnUpdateOrderDetail(OrderBasicInfo orderBasicInfo, TransactionRecordsData data) { - logger.info("获取更新数据后的orderDetail对象, orderBasicInfo:{}, TransactionRecordsData:{}", JSON.toJSONString(orderBasicInfo), JSON.toJSONString(data)); + logger.info("start更新订单详情:【{}】, orderBasicInfo:{}, TransactionRecordsData:{}", orderBasicInfo.getOrderCode(), JSON.toJSONString(orderBasicInfo), JSON.toJSONString(data)); String orderCode = orderBasicInfo.getOrderCode(); BigDecimal orderAmount = orderBasicInfo.getOrderAmount(); // 更新订单详情 查询订单详情 修改订单数据 @@ -472,6 +472,7 @@ public abstract class AbstractProgramLogic implements InitializingBean { orderDetail.setTotalUsedElectricity(totalElectricity.max(sumUsedElectricity)); // 订单总金额 orderDetail.setTotalOrderAmount(orderAmount); + logger.info("end更新订单详情:【{}】, 电费总金额:{}, 服务费总金额:{}, 总用电量:{}, 订单总金额:{}", orderCode, totalElectricityAmount, totalServiceAmount, orderDetail.getTotalUsedElectricity(), orderAmount); } catch (Exception e) { logger.error("orderCode:{}, 设置订单详情参数发生异常", orderCode, e); } @@ -724,10 +725,10 @@ public abstract class AbstractProgramLogic implements InitializingBean { String memberId = orderBasicInfo.getMemberId(); // 会员id String stationId = orderBasicInfo.getStationId(); // 站点id String merchantId = orderBasicInfo.getMerchantId(); // 运营商id + String orderCode = orderBasicInfo.getOrderCode(); // 订单号 if (orderDetail == null) { - logger.info("计算订单折扣V2, OrderDetail为空(orderCode:{}, transactionCode:{}), 直接返回!", - orderBasicInfo.getOrderCode(), orderBasicInfo.getTransactionCode()); + logger.info("计算订单折扣V2, OrderDetail为空(orderCode:{}, transactionCode:{}), 直接返回!", orderCode, orderBasicInfo.getTransactionCode()); return; } @@ -760,69 +761,70 @@ public abstract class AbstractProgramLogic implements InitializingBean { // 尖时段用电量 BigDecimal sharpUsedElectricity = orderDetail.getSharpUsedElectricity(); if (sharpUsedElectricity != null) { + // 计算该时段电费单价 + BigDecimal electricityPrice = billingTemplateVO.getSharpElectricityPrice(); // 计算该时段电费 = 电费单价 x 用电量 - BigDecimal sharpElectricityAmount = billingTemplateVO.getSharpElectricityPrice() - .multiply(sharpUsedElectricity) - .setScale(2, RoundingMode.DOWN); + BigDecimal electricityAmount = electricityPrice.multiply(sharpUsedElectricity).setScale(2, RoundingMode.DOWN); + // 计算该时段服务费单价 + BigDecimal servicePrice = billingTemplateVO.getSharpServicePrice(); // 计算该时段服务费 - BigDecimal sharpServiceAmount = billingTemplateVO.getSharpServicePrice() - .multiply(sharpUsedElectricity) - .setScale(2, RoundingMode.DOWN); + BigDecimal serviceAmount = servicePrice.multiply(sharpUsedElectricity).setScale(2, RoundingMode.DOWN); // 汇总 - afterDiscountElectricityAmount = afterDiscountElectricityAmount.add(sharpElectricityAmount); - afterDiscountServiceAmount = afterDiscountServiceAmount.add(sharpServiceAmount); + afterDiscountElectricityAmount = afterDiscountElectricityAmount.add(electricityAmount); + afterDiscountServiceAmount = afterDiscountServiceAmount.add(serviceAmount); + // logger.info("计算订单折扣V2:【{}】, 当前为尖时段, 电费单价:{}, 服务费单价:{}, 耗电量:{}, 平台计算该时段消费金额:{}, 桩传的单价:{}, 桩传的金额:{}"); } // 峰时段用电量 BigDecimal peakUsedElectricity = orderDetail.getPeakUsedElectricity(); if (peakUsedElectricity != null) { + // 计算该时段电费单价 + BigDecimal electricityPrice = billingTemplateVO.getPeakElectricityPrice(); // 计算该时段电费 = 电费单价 x 用电量 - BigDecimal peakElectricityAmount = billingTemplateVO.getPeakElectricityPrice() - .multiply(peakUsedElectricity) - .setScale(2, RoundingMode.DOWN); + BigDecimal electricityAmount = electricityPrice.multiply(peakUsedElectricity).setScale(2, RoundingMode.DOWN); // 计算该时段服务费 - BigDecimal peakServiceAmount = billingTemplateVO.getPeakServicePrice() - .multiply(peakUsedElectricity) - .setScale(2, RoundingMode.DOWN); + BigDecimal servicePrice = billingTemplateVO.getPeakServicePrice(); + // 计算该时段服务费 = 服务费单价 x 用电量 + BigDecimal serviceAmount = servicePrice.multiply(peakUsedElectricity).setScale(2, RoundingMode.DOWN); // 汇总 - afterDiscountElectricityAmount = afterDiscountElectricityAmount.add(peakElectricityAmount); - afterDiscountServiceAmount = afterDiscountServiceAmount.add(peakServiceAmount); + afterDiscountElectricityAmount = afterDiscountElectricityAmount.add(electricityAmount); + afterDiscountServiceAmount = afterDiscountServiceAmount.add(serviceAmount); } // 平时段用电量 BigDecimal flatUsedElectricity = orderDetail.getFlatUsedElectricity(); if (flatUsedElectricity != null) { + // 计算该时段电费单价 + BigDecimal electricityPrice = billingTemplateVO.getFlatElectricityPrice(); // 计算该时段电费 = 电费单价 x 用电量 - BigDecimal flatElectricityAmount = billingTemplateVO.getFlatElectricityPrice() - .multiply(flatUsedElectricity) - .setScale(2, RoundingMode.DOWN); + BigDecimal electricityAmount = electricityPrice.multiply(flatUsedElectricity).setScale(2, RoundingMode.DOWN); + // 计算该时段服务费单价 + BigDecimal servicePrice = billingTemplateVO.getFlatServicePrice(); // 计算该时段服务费 - BigDecimal flatServiceAmount = billingTemplateVO.getFlatServicePrice() - .multiply(flatUsedElectricity) - .setScale(2, RoundingMode.DOWN); + BigDecimal serviceAmount = servicePrice.multiply(flatUsedElectricity).setScale(2, RoundingMode.DOWN); // 汇总 - afterDiscountElectricityAmount = afterDiscountElectricityAmount.add(flatElectricityAmount); - afterDiscountServiceAmount = afterDiscountServiceAmount.add(flatServiceAmount); + afterDiscountElectricityAmount = afterDiscountElectricityAmount.add(electricityAmount); + afterDiscountServiceAmount = afterDiscountServiceAmount.add(serviceAmount); } // 谷时段用电量 BigDecimal valleyUsedElectricity = orderDetail.getValleyUsedElectricity(); if (valleyUsedElectricity != null) { + // 计算该时段电费单价 + BigDecimal electricityPrice = billingTemplateVO.getValleyElectricityPrice(); // 计算该时段电费 = 电费单价 x 用电量 - BigDecimal valleyElectricityAmount = billingTemplateVO.getValleyElectricityPrice() - .multiply(valleyUsedElectricity) - .setScale(2, RoundingMode.DOWN); + BigDecimal electricityAmount = electricityPrice.multiply(valleyUsedElectricity).setScale(2, RoundingMode.DOWN); + // 计算该时段服务费单价 + BigDecimal servicePrice = billingTemplateVO.getValleyServicePrice(); // 计算该时段服务费 - BigDecimal valleyServiceAmount = billingTemplateVO.getValleyServicePrice() - .multiply(valleyUsedElectricity) - .setScale(2, RoundingMode.DOWN); + BigDecimal serviceAmount = servicePrice.multiply(valleyUsedElectricity).setScale(2, RoundingMode.DOWN); // 汇总 - afterDiscountElectricityAmount = afterDiscountElectricityAmount.add(valleyElectricityAmount); - afterDiscountServiceAmount = afterDiscountServiceAmount.add(valleyServiceAmount); + afterDiscountElectricityAmount = afterDiscountElectricityAmount.add(electricityAmount); + afterDiscountServiceAmount = afterDiscountServiceAmount.add(serviceAmount); } // 计算优惠了多少钱 @@ -830,6 +832,9 @@ public abstract class AbstractProgramLogic implements InitializingBean { electricityAmountDiscount = originalTotalElectricityAmount.subtract(afterDiscountElectricityAmount); // 服务费折扣金额 = 优惠前服务费 - 优惠后服务费 serviceAmountDiscount = originalTotalServiceAmount.subtract(afterDiscountServiceAmount); + + logger.info("计算订单折扣, orderCode:{}, 原始电费金额:{}, 折扣后电费金额:{}, 电费折扣金额:{}, 原始服务费金额:{}, 折扣后服务费金额:{}, 服务费折扣金额:{}", + orderCode, originalTotalElectricityAmount, afterDiscountElectricityAmount, electricityAmountDiscount, originalTotalServiceAmount, afterDiscountServiceAmount, serviceAmountDiscount); } /* @@ -858,7 +863,7 @@ public abstract class AbstractProgramLogic implements InitializingBean { // 服务费折扣金额(服务费便宜了多少钱) orderDetail.setDiscountServiceAmount(serviceAmountDiscount); logger.info("计算订单折扣, orderCode:{}, memberId:{}, 订单折扣金额:{}, 电费折扣金额:{}, 服务费折扣金额:{}, 优惠后总消费金额:{}", - orderBasicInfo.getOrderCode(), memberId, discountAmount, electricityAmountDiscount, serviceAmountDiscount, totalConsumeAmount); + orderCode, memberId, discountAmount, electricityAmountDiscount, serviceAmountDiscount, totalConsumeAmount); } /**