Commit 53caee54 by wangweidong

土工试验

parent b8525eea
......@@ -205,4 +205,12 @@ public class SoilExpReportController extends ServiceController {
soilExpReportService.downloadFile(id, response);
}
@ApiOperation("项目报告合并")
@PostMapping("/item_report_merge")
public RestResult<SoilExpReport> itemReportMerge(@RequestParam("ids")Long[] ids) {
return success(soilExpReportService.itemReportMerge(ids));
}
}
......@@ -41,4 +41,6 @@ public interface ISoilExpReportService extends IBaseService<SoilExpReport> {
void downloadFile(Long id, HttpServletResponse response);
SoilExpReport generateAppendix(Long id, Account account);
SoilExpReport itemReportMerge(Long[] ids);
}
......@@ -666,6 +666,13 @@ public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMappe
logger.error("8-----------------");
}catch (Exception e){
logger.error(" workbook = new Workbook(exportToExcelInputStream(xssfWorkbook));"+e.getMessage());
}finally {
try {
io.close();
}catch (Exception e){
logger.error(" io.close() exception "+e.getMessage());
}
}
}
logger.error("9-----------------");
......@@ -707,6 +714,79 @@ public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMappe
return null;
}
@Override
public SoilExpReport itemReportMerge(Long[] ids) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"项目报告不能为空");
if (ids.length==1){
RestAssert.fail("请选择多个项目报告进行合并!");
}
List<SoilExpReport> expReportList = soilExpReportService.list(Condition.create().in("id",ids));
RestAssert.fail(CollectionUtils.isEmpty(expReportList),"项目报告不能为空");
List<Workbook> bookList = new ArrayList<>();
Workbook workbook =null;
SoilExpReport expReport = expReportList.get(0);
InputStream io = ossClient.download(expReport.getObjectKey());
if (null !=io){
try {
workbook = new Workbook(io);
}catch (Exception e){
logger.error(" itemReportMerge workbook = new Workbook(exportToExcelInputStream(xssfWorkbook));"+e.getMessage());
}finally {
try {
io.close();
}catch (Exception e){
logger.error(" io.close() exception "+e.getMessage());
}
}
}
try {
for (int i = 0; i < expReportList.size(); i++) {
if (i==0){
continue;
}
Workbook book = new Workbook(ossClient.download(expReportList.get(i).getObjectKey()));
bookList.add(book);
}
} catch (Exception e) {
logger.error(" 获取合并文档异常 "+e.getMessage());
e.printStackTrace();
}
if (CollectionUtils.isNotEmpty(bookList)) {
try {
logger.error("itemReportMerge-----------------");
File allFileName = AsposeUtil.mergeWork(expReport.getExpName(), workbook, bookList);
OssFileResult result = ossClient.upload(allFileName);
SoilExpReport returnReport = expReport.convert(SoilExpReport.class);
returnReport.setId(null);
returnReport.setCtime(new Date());
returnReport.setUid(LoginHelper.getAccount().getUserId());
returnReport.setLtime(null);
returnReport.setLid(null);
returnReport.setObjectKey(result.getObjectKey());
if (save(returnReport)) {
FileUtils.deleteFiles(allFileName);
return returnReport;
}
} catch (Exception e) {
logger.error("生成汇总项目报告失败" + e.getMessage());
return null;
}
}else{
RestAssert.fail("汇总项目合并失败!");
}
return null;
}
public InputStream exportToExcelInputStream(XSSFWorkbook workbook) {
......
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