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

View File

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