diff --git a/src/main/java/com/mixi/common/tasks/MiTuExportScheduledTask.java b/src/main/java/com/mixi/common/tasks/MiTuExportScheduledTask.java index 2dbc282..d76796c 100644 --- a/src/main/java/com/mixi/common/tasks/MiTuExportScheduledTask.java +++ b/src/main/java/com/mixi/common/tasks/MiTuExportScheduledTask.java @@ -11,6 +11,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; +import org.springframework.context.annotation.Bean; import org.springframework.retry.annotation.Backoff; import org.springframework.retry.annotation.Retryable; import org.springframework.scheduling.annotation.Scheduled; @@ -316,24 +317,28 @@ public class MiTuExportScheduledTask { * Customer purchase report */ @Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 1000)) - @Scheduled(cron = "0 0 23 L * ? *") + @Scheduled(cron = "0 0 23 28-31 * ?") public void customerPurchaseReport() { - MiTuExport miTuExport = createMiTuExport("Customer purchase report", "month"); - try { - List transactionData = retrieveTransactionData(); - List userMembers = transactionData.stream().map(TransactionData::getUserMember).collect(Collectors.toList()); - List customerData = retrieveCustomerData(userMembers); - updateCustomerDataWithTransactionData(customerData, transactionData); - String filePath = miTuExport.getExportName()+".xlsx"; - exportToExcelCustomerPurchaseReport(customerData, filePath); - miTuExport.setUrl("mi-tu/export/" + filePath); - miTuExport.setStatus(1); - } catch (Exception e) { - miTuExport.setStatus(0); - e.printStackTrace(); - } finally { - miTuExportMapper.insert(miTuExport); - System.out.println("接口执行完成!"); + final Calendar c = Calendar.getInstance(); + //如果是最后一天 则执行定时任务 + if (c.get(Calendar.DATE) == c.getActualMaximum(Calendar.DATE)) { + MiTuExport miTuExport = createMiTuExport("Customer purchase report", "month"); + try { + List transactionData = retrieveTransactionData(); + List userMembers = transactionData.stream().map(TransactionData::getUserMember).collect(Collectors.toList()); + List customerData = retrieveCustomerData(userMembers); + updateCustomerDataWithTransactionData(customerData, transactionData); + String filePath = miTuExport.getExportName()+".xlsx"; + exportToExcelCustomerPurchaseReport(customerData, filePath); + miTuExport.setUrl("mi-tu/export/" + filePath); + miTuExport.setStatus(1); + } catch (Exception e) { + miTuExport.setStatus(0); + e.printStackTrace(); + } finally { + miTuExportMapper.insert(miTuExport); + System.out.println("接口执行完成!"); + } } } @@ -703,7 +708,7 @@ public class MiTuExportScheduledTask { System.out.println("接口执行完成!"); } } - + @Bean public String calculateLastDayOfQuarterCron() { // 获取当前日期 LocalDate currentDate = LocalDate.now();