mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-21 03:25:12 +08:00
修正并充订单数据工具
This commit is contained in:
@@ -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<String> orderCodeList = dto.getOrderCodeList();
|
||||
logger.info("修正并充订单数据,订单号:{}", JSON.toJSONString(orderCodeList));
|
||||
logger.info("修正并充订单数据工具,订单号:{}", JSON.toJSONString(orderCodeList));
|
||||
// 查询临时表,不要重复修正
|
||||
String redisKey = "correct_combined_charging_order";
|
||||
List<String> 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<OrderBasicInfo> orderBasicInfos = orderBasicInfoService.queryOrderList(orderCodeList);
|
||||
for (OrderBasicInfo orderBasicInfo : orderBasicInfos) {
|
||||
orderBasicInfo.setOrderAmount(orderBasicInfo.getOrderAmount().multiply(multiple));
|
||||
}
|
||||
// 查询订单详情数据
|
||||
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();
|
||||
redisMap.put(redisKey, orderCodeList);
|
||||
redisCache.batchSetCacheList(redisMap, 300, TimeUnit.DAYS);
|
||||
|
||||
Reference in New Issue
Block a user