update 优化计算订单日报

This commit is contained in:
2023-07-14 14:33:48 +08:00
parent 5ed33739bd
commit bad9413526
3 changed files with 16 additions and 17 deletions

View File

@@ -271,7 +271,7 @@ public interface IOrderBasicInfoService {
/**
* 生成订单日报
*/
void generateDailyOrderReports(String stationId, String startTime, String endTime);
void generateDailyOrderReports(String stationId, String tradeDate);
/**
* 获取运营商订单列表

View File

@@ -63,6 +63,7 @@ import java.text.ParseException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
@@ -2052,7 +2053,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
}
@Override
public void generateDailyOrderReports(String stationId, String startTime, String endTime) {
public void generateDailyOrderReports(String stationId, String tradeDate) {
// logger.info("线程名===={}", Thread.currentThread().getName());
if (StringUtils.isBlank(stationId)) {
return;
@@ -2062,14 +2063,15 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
QueryOrderDTO dto = new QueryOrderDTO();
dto.setStationId(stationId);
LocalDate yesterday = LocalDate.now().plusDays(-1);
if (StringUtils.isBlank(startTime)) {
startTime = DateUtils.formatDateTime(LocalDateTime.of(yesterday, LocalTime.MIN));
}
if (StringUtils.isBlank(endTime)) {
endTime = DateUtils.formatDateTime(LocalDateTime.of(yesterday, LocalTime.MAX));
if (StringUtils.isBlank(tradeDate)) {
// 日期为空默认昨天
tradeDate = LocalDate.now().plusDays(-1).toString();
}
LocalDate parse = LocalDate.parse(tradeDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String startTime = DateUtils.formatDateTime(LocalDateTime.of(parse, LocalTime.MIN));
String endTime = DateUtils.formatDateTime(LocalDateTime.of(parse, LocalTime.MAX));
dto.setStartTime(startTime);
dto.setEndTime(endTime);
List<OrderListVO> orderListVOS = orderBasicInfoMapper.selectOrderBasicInfoList(dto);
@@ -2135,13 +2137,13 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
settleOrderReport.setServiceAmount(totalServiceAmount);
settleOrderReport.setTotalAmount(totalOrderAmount);
settleOrderReport.setVirtualAmount(totalVirtualAmount);
settleOrderReport.setTradeDate(yesterday.toString());
settleOrderReport.setTradeDate(tradeDate);
// 计算手续费 = 结算金额 * 0.55%
BigDecimal tradeFee = totalSettleAmount.multiply(new BigDecimal("0.0055"));
settleOrderReport.setTradeFee(tradeFee);
settleOrderReport.setTradeAmount(totalSettleAmount.subtract(tradeFee));
SettleOrderReport selectResult = settleOrderReportService.selectByStationIdAndDate(stationId, yesterday.toString());
SettleOrderReport selectResult = settleOrderReportService.selectByStationIdAndDate(stationId, tradeDate);
if (selectResult == null) {
settleOrderReportService.insertSettleOrderReport(settleOrderReport);
} else {

View File

@@ -3,14 +3,14 @@ package com.jsowell.quartz.task;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.OrderBasicInfo;
import com.jsowell.pile.domain.PileStationInfo;
import com.jsowell.pile.domain.ykcCommond.PublishPileBillingTemplateCommand;
import com.jsowell.pile.domain.ykcCommond.StartChargingCommand;
import com.jsowell.pile.service.IPileStationInfoService;
import com.jsowell.pile.service.YKCPushCommandService;
import com.jsowell.pile.domain.OrderBasicInfo;
import com.jsowell.pile.service.IOrderBasicInfoService;
import com.jsowell.pile.service.IPileBillingTemplateService;
import com.jsowell.pile.service.IPileStationInfoService;
import com.jsowell.pile.service.YKCPushCommandService;
import com.jsowell.pile.vo.web.BillingTemplateVO;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
@@ -21,7 +21,6 @@ import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Date;
import java.util.List;
@@ -118,12 +117,10 @@ public class JsowellTask {
return;
}
LocalDate yesterday = LocalDate.now().plusDays(-1);
String startTime = DateUtils.formatDateTime(LocalDateTime.of(yesterday, LocalTime.MIN));
String endTime = DateUtils.formatDateTime(LocalDateTime.of(yesterday, LocalTime.MAX));
// 计算每个站点前一天的报表
for (PileStationInfo stationInfo : list) {
try {
orderBasicInfoService.generateDailyOrderReports(stationInfo.getId() + "", startTime, endTime);
orderBasicInfoService.generateDailyOrderReports(stationInfo.getId() + "", yesterday.toString());
} catch (Exception e) {
log.error("计算站点订单报表 发生异常 stationId:{}", stationInfo.getId(), e);
}