Commit eaeef943 by wangweidong

土工平台修改

parent 4be9bf0d
...@@ -191,6 +191,13 @@ public class SoilExpReportController extends ServiceController { ...@@ -191,6 +191,13 @@ public class SoilExpReportController extends ServiceController {
} }
@ApiOperation("生成附件汇总")
@PostMapping("/generate_appendix")
public RestResult<SoilExpReport> generateAppendix(@RequestParam("id")Long id) {
return success(soilExpReportService.generateAppendix(id,getAccount()));
}
@ApiOperation(value = "下载项目报告", notes = "下载项目报告") @ApiOperation(value = "下载项目报告", notes = "下载项目报告")
@GetMapping("/download/{id}") @GetMapping("/download/{id}")
......
...@@ -39,4 +39,6 @@ public interface ISoilExpReportService extends IBaseService<SoilExpReport> { ...@@ -39,4 +39,6 @@ public interface ISoilExpReportService extends IBaseService<SoilExpReport> {
boolean expReportIssueBack(Long[] ids, String remark, Account account); boolean expReportIssueBack(Long[] ids, String remark, Account account);
void downloadFile(Long id, HttpServletResponse response); void downloadFile(Long id, HttpServletResponse response);
SoilExpReport generateAppendix(Long id, Account account);
} }
...@@ -627,6 +627,65 @@ public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMappe ...@@ -627,6 +627,65 @@ public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMappe
ossClient.download(attachment.getObjectKey(), attachment.getExpName() + ".xlsx", response); ossClient.download(attachment.getObjectKey(), attachment.getExpName() + ".xlsx", response);
} }
@Override
public SoilExpReport generateAppendix(Long id, Account account) {
RestAssert.fail(null == id ,"请选择要生成的报告");
List<SoilExpReportRelExp> reportRelExpList = soilExpReportRelExpService.list(Condition.create().eq("exp_report_id",id));
if (CollectionUtils.isEmpty(reportRelExpList)){
RestAssert.fail("该项目报告不含有项目!!");
}
List<Long> expIdsList = reportRelExpList.stream().map(r->{
return r.getExpId();
}).collect(Collectors.toList());
SoilExpReport soilExpReport = getById(id);
List<SoilAppendix> appendixList = soilAppendixService.list(Condition.create().in("exp_id",expIdsList));
List<Workbook> bookList = new ArrayList<>();
Workbook workbook =null;
XSSFWorkbook xssfWorkbook = HSSFWorkbookUtil.getWorkbookByIO(ossClient.download(soilExpReport.getObjectKey()));
if (null !=xssfWorkbook){
try {
workbook = new Workbook(exportToExcelInputStream(xssfWorkbook));
}catch (Exception e){
logger.error(" workbook = new Workbook(exportToExcelInputStream(xssfWorkbook));"+e.getMessage());
}
}
for (SoilAppendix appendix:appendixList) {
try {
Workbook book = new Workbook(ossClient.download(appendix.getObjectKey()));
if (null!=book){
bookList.add(book);
}
}catch (Exception e){
logger.error(" Workbook book = new Workbook(ossClient.download(appendix.getObjectKey()));;"+e.getMessage());
}
}
if (CollectionUtils.isNotEmpty(bookList)) {
try {
File allFileName = AsposeUtil.mergeWork(soilExpReport.getExpName(), workbook, bookList);
OssFileResult result = ossClient.upload(allFileName);
soilExpReport.setAppendixKey(result.getObjectKey());
if (updateById(soilExpReport)) {
FileUtils.deleteFiles(allFileName);
return soilExpReport;
}
} catch (Exception e) {
logger.error("生成汇总附录失败" + e.getMessage());
return null;
}
}
return null;
}
public InputStream exportToExcelInputStream(XSSFWorkbook workbook) { public InputStream exportToExcelInputStream(XSSFWorkbook workbook) {
......
...@@ -84,6 +84,7 @@ ...@@ -84,6 +84,7 @@
WHERE WHERE
p.deleted = 0 p.deleted = 0
AND s.deleted = 0 AND s.deleted = 0
AND e.deleted = 0
<if test="vo.type!=null"> <if test="vo.type!=null">
AND p.type = #{vo.type} AND p.type = #{vo.type}
</if> </if>
...@@ -143,6 +144,7 @@ ...@@ -143,6 +144,7 @@
WHERE WHERE
p.deleted = 0 p.deleted = 0
AND s.deleted = 0 AND s.deleted = 0
AND e.deleted = 0
<if test="vo.type!=null"> <if test="vo.type!=null">
AND p.type = #{vo.type} AND p.type = #{vo.type}
</if> </if>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment