From a345976137bd16a3f98261f7dbe8e3765cdcbdf6 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Fri, 15 Nov 2024 10:34:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=B9=B6=E5=85=85=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=95=B0=E6=8D=AE=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/jsowell/service/TempService.java | 52 +++++++++++++++++-- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java index e4358c94b..e3b6fbfb7 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java @@ -34,6 +34,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.List; @@ -84,6 +85,9 @@ public class TempService { @Autowired private PileMsgRecordMapper pileMsgRecordMapper; + @Autowired + private OrderDetailService orderDetailService; + @Autowired private OrderMonitorDataService orderMonitorDataService; @@ -624,28 +628,66 @@ public class TempService { * 修正并充订单数据 * @param dto */ + @Transactional(rollbackFor = Exception.class) public void correctCombinedChargingOrder(QueryOrderDTO dto) { List orderCodeList = dto.getOrderCodeList(); - logger.info("修正并充订单数据,订单号:{}", JSON.toJSONString(orderCodeList)); + logger.info("修正并充订单数据工具,订单号:{}", JSON.toJSONString(orderCodeList)); // 查询临时表,不要重复修正 String redisKey = "correct_combined_charging_order"; List redisResult = redisCache.getCacheList(redisKey); if (CollectionUtils.isNotEmpty(redisResult)) { - logger.info("已修正订单:{}", JSON.toJSONString(redisResult)); + logger.info("修正并充订单数据工具, 已修正订单:{}", JSON.toJSONString(redisResult)); // 过滤掉已修正的订单 orderCodeList.removeAll(redisResult); - logger.info("过滤掉已修正的订单剩余:{}", JSON.toJSONString(orderCodeList)); + logger.info("修正并充订单数据工具. 过滤掉已修正的订单剩余:{}", JSON.toJSONString(orderCodeList)); } - if (CollectionUtils.isEmpty(orderCodeList)) { - logger.info("无需要修正的订单"); + logger.info("修正并充订单数据工具, 无需要修正的订单"); return; } + BigDecimal multiple = new BigDecimal("2"); // 查询订单主表数据 List orderBasicInfos = orderBasicInfoService.queryOrderList(orderCodeList); + for (OrderBasicInfo orderBasicInfo : orderBasicInfos) { + orderBasicInfo.setOrderAmount(orderBasicInfo.getOrderAmount().multiply(multiple)); + } // 查询订单详情数据 List orderDetailList = orderBasicInfoService.getOrderDetailList(orderCodeList); + for (OrderDetail orderDetail : orderDetailList) { + // 订单总用电量 + orderDetail.setTotalUsedElectricity(orderDetail.getTotalUsedElectricity().multiply(multiple)); + // 订单总电费金额 + orderDetail.setTotalElectricityAmount(orderDetail.getTotalElectricityAmount().multiply(multiple)); + // 订单总服务费金额 + orderDetail.setTotalServiceAmount(orderDetail.getTotalServiceAmount().multiply(multiple)); + // 订单总金额 + orderDetail.setTotalOrderAmount(orderDetail.getTotalOrderAmount().multiply(multiple)); + // 尖时段 + if (orderDetail.getSharpUsedElectricity() != null && orderDetail.getSharpUsedElectricity().compareTo(BigDecimal.ZERO) > 0) { + orderDetail.setSharpUsedElectricity(orderDetail.getSharpUsedElectricity().multiply(multiple)); + orderDetail.setSharpAmount(orderDetail.getSharpAmount().multiply(multiple)); + } + // 峰时段 + if (orderDetail.getPeakUsedElectricity() != null && orderDetail.getPeakUsedElectricity().compareTo(BigDecimal.ZERO) > 0) { + orderDetail.setPeakUsedElectricity(orderDetail.getPeakUsedElectricity().multiply(multiple)); + orderDetail.setPeakAmount(orderDetail.getPeakAmount().multiply(multiple)); + } + // 平时段 + if (orderDetail.getFlatUsedElectricity() != null && orderDetail.getFlatUsedElectricity().compareTo(BigDecimal.ZERO) > 0) { + orderDetail.setFlatUsedElectricity(orderDetail.getFlatUsedElectricity().multiply(multiple)); + orderDetail.setFlatAmount(orderDetail.getFlatAmount().multiply(multiple)); + } + // 谷时段 + if (orderDetail.getValleyUsedElectricity() != null && orderDetail.getValleyUsedElectricity().compareTo(BigDecimal.ZERO) > 0) { + orderDetail.setValleyUsedElectricity(orderDetail.getValleyUsedElectricity().multiply(multiple)); + orderDetail.setValleyAmount(orderDetail.getValleyAmount().multiply(multiple)); + } + } + // 更新数据库 + orderBasicInfoService.updateBatch(orderBasicInfos); + orderDetailService.updateBatch(orderDetailList); + Map> redisMap = Maps.newHashMap(); redisMap.put(redisKey, orderCodeList); redisCache.batchSetCacheList(redisMap, 300, TimeUnit.DAYS);