package com.moral.api.task;
|
|
import com.moral.api.service.DeviceService;
|
import com.moral.api.util.DeviceExcelDTO;
|
import com.moral.api.util.EmailSpringUtil;
|
import com.moral.api.util.ExcelUtil;
|
import com.moral.util.DateUtils;
|
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.context.XxlJobHelper;
|
import com.xxl.job.core.handler.annotation.XxlJob;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.core.io.ByteArrayResource;
|
import org.springframework.stereotype.Component;
|
|
import javax.mail.MessagingException;
|
import java.io.ByteArrayOutputStream;
|
import java.io.IOException;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* @ClassName EmaleTask
|
* @Description TODO
|
* @Author @cjl
|
* @Date 2024-01-24 15:33
|
* @Version 1.0
|
*/
|
@Component
|
@Slf4j
|
public class EmilTask {
|
@Autowired
|
private DeviceService deviceService;
|
@Autowired
|
private EmailSpringUtil emailSpringUtil;
|
@XxlJob("emilTask")
|
public void emilTask()throws IOException {
|
String startTime = DateUtils.dateToDateString(DateUtils.addDays(new Date(),-1),DateUtils.yyyy_MM_dd_EN);
|
List<DeviceExcelDTO> list = deviceService.ListDeviceExcel(startTime,null,72);
|
String path = Objects.requireNonNull(this.getClass().getClassLoader().getResource("")).getPath();
|
String fileName = String.format("%s疾控中心数据-%s.xlsx",path,startTime);
|
ByteArrayOutputStream out = null;
|
try {
|
// 生成excel文件
|
out = ExcelUtil.generateExcel(list, DeviceExcelDTO.class);
|
// 发送邮件
|
String content = startTime+"疾控中心设备统计数据";
|
String toMail = "ad@7drlb.com";
|
emailSpringUtil.sendEmail("设备分钟数据",content,false,"909710561@qq.com",
|
toMail,"909710561@qq.com",null, fileName, new ByteArrayResource(out.toByteArray()));
|
} catch (IOException e) {
|
log.error(String.format("生成excel失败,原因:%s",e));
|
e.printStackTrace();
|
} catch (MessagingException e) {
|
log.error(String.format("邮件发送失败,原因:%s",e));
|
e.printStackTrace();
|
}finally {
|
if(out != null){
|
out.close();
|
}
|
}
|
log.info("邮件发送成功");
|
}
|
}
|