BUGFIX:aida;
This commit is contained in:
@@ -2,12 +2,25 @@ package com.ai.da.common.config;
|
||||
|
||||
import com.ai.da.common.utils.SendEmailUtil;
|
||||
import com.ai.da.mapper.primary.AccountMapper;
|
||||
import com.ai.da.mapper.primary.TrialOrderMapper;
|
||||
import com.ai.da.mapper.primary.entity.Account;
|
||||
import com.ai.da.mapper.primary.entity.TrialOrder;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.Resource;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
@@ -16,6 +29,9 @@ public class MyTaskScheduler {
|
||||
@Resource
|
||||
private AccountMapper accountMapper;
|
||||
|
||||
@Resource
|
||||
private TrialOrderMapper trialOrderMapper;
|
||||
|
||||
// 定时任务,每十五天执行一次
|
||||
// @Scheduled(cron = "0 0 0 ? * MON")
|
||||
@Scheduled(cron = "0 0 0 */15 * ?")
|
||||
@@ -36,7 +52,7 @@ public class MyTaskScheduler {
|
||||
Long currentTimestamp = System.currentTimeMillis();
|
||||
|
||||
// 计算时间差(毫秒)
|
||||
long timeDifference = timestamp - currentTimestamp;
|
||||
long timeDifference = currentTimestamp - timestamp;
|
||||
|
||||
if (timeDifference < 0) {
|
||||
continue;
|
||||
@@ -52,4 +68,65 @@ public class MyTaskScheduler {
|
||||
}
|
||||
}
|
||||
}
|
||||
@Scheduled(cron = "0 0 8 * * ?")
|
||||
public void sendTrialOrderExcelToManagements() {
|
||||
// 获取前一天日期
|
||||
LocalDate yesterday = LocalDate.now().minusDays(1);
|
||||
|
||||
// 查询前一天的试用订单
|
||||
QueryWrapper<TrialOrder> qw = new QueryWrapper<>();
|
||||
qw.lambda().between(TrialOrder::getCreateTime, yesterday.atStartOfDay(), yesterday.atTime(23, 59, 59));
|
||||
List<TrialOrder> trialOrders = trialOrderMapper.selectList(qw);
|
||||
|
||||
if (!trialOrders.isEmpty()) {
|
||||
// 创建Excel工作簿
|
||||
try (Workbook workbook = new XSSFWorkbook()) {
|
||||
// 创建工作表
|
||||
Sheet sheet = workbook.createSheet("Trial Orders");
|
||||
// 创建标题行
|
||||
Row headerRow = sheet.createRow(0);
|
||||
headerRow.createCell(0).setCellValue("ID");
|
||||
headerRow.createCell(1).setCellValue("Title");
|
||||
headerRow.createCell(2).setCellValue("Surname");
|
||||
headerRow.createCell(3).setCellValue("Given Name");
|
||||
headerRow.createCell(4).setCellValue("Username");
|
||||
headerRow.createCell(5).setCellValue("Email");
|
||||
headerRow.createCell(6).setCellValue("Country");
|
||||
headerRow.createCell(7).setCellValue("Occupation");
|
||||
headerRow.createCell(8).setCellValue("Create Time");
|
||||
headerRow.createCell(9).setCellValue("Update Time");
|
||||
headerRow.createCell(10).setCellValue("Status");
|
||||
|
||||
// 填充数据
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
int rowNum = 1;
|
||||
for (TrialOrder trialOrder : trialOrders) {
|
||||
Row row = sheet.createRow(rowNum++);
|
||||
row.createCell(0).setCellValue(trialOrder.getId());
|
||||
row.createCell(1).setCellValue(trialOrder.getTitle());
|
||||
row.createCell(2).setCellValue(trialOrder.getSurname());
|
||||
row.createCell(3).setCellValue(trialOrder.getGivenName());
|
||||
row.createCell(4).setCellValue(trialOrder.getUserName());
|
||||
row.createCell(5).setCellValue(trialOrder.getEmail());
|
||||
row.createCell(6).setCellValue(trialOrder.getCountry());
|
||||
row.createCell(7).setCellValue(trialOrder.getOccupation());
|
||||
row.createCell(8).setCellValue(trialOrder.getCreateTime().format(formatter));
|
||||
row.createCell(9).setCellValue(trialOrder.getUpdateTime().format(formatter));
|
||||
row.createCell(10).setCellValue(trialOrder.getStatus());
|
||||
}
|
||||
|
||||
// 保存Excel文件
|
||||
String fileName = "trialOrder-" + yesterday.format(DateTimeFormatter.ofPattern("yyyyMMdd")) + ".xlsx";
|
||||
try (FileOutputStream fileOut = new FileOutputStream(fileName)) {
|
||||
workbook.write(fileOut);
|
||||
SendEmailUtil.sendExcelEmail("1023316923@qq.com", null, Files.readAllBytes(Paths.get(fileName)), fileName);
|
||||
SendEmailUtil.sendExcelEmail("calvinwong@aidlab.hk", null, Files.readAllBytes(Paths.get(fileName)), fileName);
|
||||
SendEmailUtil.sendExcelEmail("kaicpang.pang@connect.polyu.hk", null, Files.readAllBytes(Paths.get(fileName)), fileName);
|
||||
SendEmailUtil.sendExcelEmail("kimwong@code-create.com.hk", null, Files.readAllBytes(Paths.get(fileName)), fileName);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user