修正并充订单数据工具

This commit is contained in:
Guoqs
2024-11-15 10:34:23 +08:00
parent a59dc883c1
commit a345976137

View File

@@ -34,6 +34,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
@@ -84,6 +85,9 @@ public class TempService {
@Autowired @Autowired
private PileMsgRecordMapper pileMsgRecordMapper; private PileMsgRecordMapper pileMsgRecordMapper;
@Autowired
private OrderDetailService orderDetailService;
@Autowired @Autowired
private OrderMonitorDataService orderMonitorDataService; private OrderMonitorDataService orderMonitorDataService;
@@ -624,28 +628,66 @@ public class TempService {
* 修正并充订单数据 * 修正并充订单数据
* @param dto * @param dto
*/ */
@Transactional(rollbackFor = Exception.class)
public void correctCombinedChargingOrder(QueryOrderDTO dto) { public void correctCombinedChargingOrder(QueryOrderDTO dto) {
List<String> orderCodeList = dto.getOrderCodeList(); List<String> orderCodeList = dto.getOrderCodeList();
logger.info("修正并充订单数据,订单号:{}", JSON.toJSONString(orderCodeList)); logger.info("修正并充订单数据工具,订单号:{}", JSON.toJSONString(orderCodeList));
// 查询临时表,不要重复修正 // 查询临时表,不要重复修正
String redisKey = "correct_combined_charging_order"; String redisKey = "correct_combined_charging_order";
List<String> redisResult = redisCache.getCacheList(redisKey); List<String> redisResult = redisCache.getCacheList(redisKey);
if (CollectionUtils.isNotEmpty(redisResult)) { if (CollectionUtils.isNotEmpty(redisResult)) {
logger.info("已修正订单:{}", JSON.toJSONString(redisResult)); logger.info("修正并充订单数据工具, 已修正订单:{}", JSON.toJSONString(redisResult));
// 过滤掉已修正的订单 // 过滤掉已修正的订单
orderCodeList.removeAll(redisResult); orderCodeList.removeAll(redisResult);
logger.info("过滤掉已修正的订单剩余:{}", JSON.toJSONString(orderCodeList)); logger.info("修正并充订单数据工具. 过滤掉已修正的订单剩余:{}", JSON.toJSONString(orderCodeList));
} }
if (CollectionUtils.isEmpty(orderCodeList)) { if (CollectionUtils.isEmpty(orderCodeList)) {
logger.info("无需要修正的订单"); logger.info("修正并充订单数据工具, 无需要修正的订单");
return; return;
} }
BigDecimal multiple = new BigDecimal("2");
// 查询订单主表数据 // 查询订单主表数据
List<OrderBasicInfo> orderBasicInfos = orderBasicInfoService.queryOrderList(orderCodeList); List<OrderBasicInfo> orderBasicInfos = orderBasicInfoService.queryOrderList(orderCodeList);
for (OrderBasicInfo orderBasicInfo : orderBasicInfos) {
orderBasicInfo.setOrderAmount(orderBasicInfo.getOrderAmount().multiply(multiple));
}
// 查询订单详情数据 // 查询订单详情数据
List<OrderDetail> orderDetailList = orderBasicInfoService.getOrderDetailList(orderCodeList); List<OrderDetail> 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<String, List<String>> redisMap = Maps.newHashMap(); Map<String, List<String>> redisMap = Maps.newHashMap();
redisMap.put(redisKey, orderCodeList); redisMap.put(redisKey, orderCodeList);
redisCache.batchSetCacheList(redisMap, 300, TimeUnit.DAYS); redisCache.batchSetCacheList(redisMap, 300, TimeUnit.DAYS);