update 计算总量

This commit is contained in:
2024-01-04 16:24:27 +08:00
parent 57cd3d2b72
commit 20644a52d9
3 changed files with 33 additions and 47 deletions

View File

@@ -228,7 +228,7 @@ public interface IOrderBasicInfoService {
*/
OrderTotalDataVO getOrderTotalData(QueryOrderDTO orderBasicInfo);
OrderTotalDataVO getOrderTotalDataV2(QueryOrderDTO dto);
List<OrderTotalDataVO> getOrderTotalDataV2(QueryOrderDTO dto);
/**
* 通过订单号查询订单信息(小程序发送消息用)

View File

@@ -413,7 +413,12 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
// 只计算订单完成状态的
dto.setOrderStatus(OrderStatusEnum.ORDER_COMPLETE.getValue());
OrderTotalDataVO resultVO = orderBasicInfoMapper.getOrderTotalData(dto);
resultVO.setDateDescription("创建时间 " + dto.getStartTime() + " - " + dto.getEndTime());
if (StringUtils.isNotBlank(dto.getStartTime()) && StringUtils.isNotBlank(dto.getEndTime())) {
resultVO.setDateDescription("创建时间 " + dto.getStartTime() + " - " + dto.getEndTime());
}
if (StringUtils.isNotBlank(dto.getStartSettleTime()) && StringUtils.isNotBlank(dto.getEndSettleTime())) {
resultVO.setDateDescription("结算时间 " + dto.getStartSettleTime() + " - " + dto.getEndSettleTime());
}
return resultVO;
}
@@ -424,52 +429,33 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
* @return
*/
@Override
public OrderTotalDataVO getOrderTotalDataV2(QueryOrderDTO dto) {
// 确定查询的站点
List<String> stationIdList = Lists.newArrayList();
if (CollectionUtils.isNotEmpty(dto.getStationIdList())) {
stationIdList.addAll(dto.getStationIdList());
public List<OrderTotalDataVO> getOrderTotalDataV2(QueryOrderDTO dto) {
List<OrderTotalDataVO> resultList = Lists.newArrayList();
// 只计算订单完成状态的
dto.setOrderStatus(OrderStatusEnum.ORDER_COMPLETE.getValue());
String startTime = dto.getStartTime();
String endTime = dto.getEndTime();
String startSettleTime = dto.getStartSettleTime();
String endSettleTime = dto.getEndSettleTime();
if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)) {
dto.setStartTime(startTime);
dto.setEndTime(endTime);
dto.setStartSettleTime(null);
dto.setEndSettleTime(null);
OrderTotalDataVO resultVO = orderBasicInfoMapper.getOrderTotalData(dto);
resultVO.setDateDescription("创建时间 " + startTime + " - " + endTime);
resultList.add(resultVO);
}
if (StringUtils.isNotBlank(dto.getMerchantId())) {
List<PileStationInfo> pileStationInfos = pileStationInfoService.selectStationListByMerchantId(Long.parseLong(dto.getMerchantId()));
if (CollectionUtils.isNotEmpty(pileStationInfos)) {
List<String> collect = pileStationInfos.stream()
.map(x -> String.valueOf(x.getId()))
.collect(Collectors.toList());
stationIdList.addAll(collect);
}
if (StringUtils.isNotBlank(startSettleTime) && StringUtils.isNotBlank(endSettleTime)) {
dto.setStartTime(null);
dto.setEndTime(null);
dto.setStartSettleTime(startSettleTime);
dto.setEndSettleTime(endSettleTime);
OrderTotalDataVO resultVO = orderBasicInfoMapper.getOrderTotalData(dto);
resultVO.setDateDescription("结算时间 " + startSettleTime + " - " + endSettleTime);
resultList.add(resultVO);
}
if (StringUtils.isNotBlank(dto.getStationId())) {
stationIdList.clear();
stationIdList.add(dto.getStationId());
}
OrderTotalDataVO vo = new OrderTotalDataVO();
String startTime = dto.getStartTime() == null ? DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.addDays(new Date(), -7)) : dto.getStartTime(); // 2023-08-16 00:00:00
String endTime = dto.getEndTime() == null ? DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, new Date()) : dto.getEndTime(); // 2023-08-16 23:59:59
// 格式化时间
startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.parseDate(startTime)); // 2023-08-16
endTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.parseDate(endTime)); // 2023-08-16
vo.setDateDescription("结算时间 " + startTime + "" + endTime);
// 查询数据库
List<SettleOrderReport> settleOrderReports = settleOrderReportService.queryOrderReport(stationIdList, startTime, endTime);
// 总消费金额
BigDecimal sumOrderAmount = BigDecimal.ZERO;
// 总用电量
BigDecimal sumUsedElectricity = BigDecimal.ZERO;
// 总结算金额
BigDecimal sumSettleAmount = BigDecimal.ZERO;
for (SettleOrderReport settleOrderReport : settleOrderReports) {
sumOrderAmount = sumOrderAmount.add(settleOrderReport.getTotalAmount());
sumUsedElectricity = sumUsedElectricity.add(settleOrderReport.getUseElectricity());
// 结算金额拆分为 交易金额 + 交易手续费
sumSettleAmount = sumSettleAmount.add(settleOrderReport.getTradeAmount()).add(settleOrderReport.getTradeFee());
}
vo.setSumSettleAmount(sumSettleAmount);
vo.setSumUsedElectricity(sumUsedElectricity);
vo.setSumOrderAmount(sumOrderAmount);
return vo;
return resultList;
}
/**