public MarkService123 getThis() {
try {
return ApplicationContextUtil.getBean(MarkService123.class);
} catch (Exception e) {
throw new BizException("bean_not_injected", new Object[]{"MarkService123"});
}
}
@Override
public String queryList(MarkInfoQo qo, UserBo userBo) {
AsynDownLoadFile file = new AsynDownLoadFile();
file.setBusinessType("查询报表");
file.setStatus(0);
file.setIsDeleted(0);
file.setCreatorId(userBo.getJobNo());
file.setCreatorName(userBo.getUserName());
file.setCreateTime(LocalDateTime.now());
asynDownLoadFileMapper.insert(file);
getThis().syncCreatePlanExcel(qo, userBo, file);
return "success";
}
@Async
@Override
public void syncCreatePlanExcel(MarkInfoQo qo, UserBo userBo, AsynDownLoadFile file) {
List<MarkVo> list = this.queryList(qo);
if (CollectionUtils.isEmpty(list)) {
log.error("导出文件数据为空!");
file.setStatus(2);
file.setUpdateTime(LocalDateTime.now());
asynDownLoadFileMapper.updateByPrimaryKey(file);
}
if (CollectionUtils.isNotEmpty(list)) {
//处理list赋值
for123(list);
}
try {
//定义文件名
String fileName = "查询报表名字.xlsx";
//定义文件路径
String filePath = System.getProperty("user.dir") + "\\temp\\";
//创建Excel文件
File file = new File(filePath + fileName);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
file.createNewFile();
EasyExcel.write(file, MarkVo.class)
.sheet("sheet1")
// 设置字段宽度为自动调整,不太精确
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
.doWrite(list);
if (file.canRead()) {
InputStream inputStream = new FileInputStream(file);
String fileNameNew = userBo.getJobNo() + "/" + fileName;
String url = ossService.upload(inputStream, fileNameNew, userBo);
if (StrUtil.isNotEmpty(url)) {
file.setFileSize((int) Files.size(Path.of(file.getPath())));
file.setUpdateTime(LocalDateTime.now());
file.setStatus(1);
file.setFileUrl(url);
file.setFileName(fileName);
asynDownLoadFileMapper.updateByPrimaryKey(file);
}
} else {
file.setStatus(2);
file.setUpdateTime(LocalDateTime.now());
asynDownLoadFileMapper.updateByPrimaryKey(file);
}
file.delete();
} catch (Exception e) {
log.error("导出文件异常:{}", e);
}
}