|
@@ -673,10 +673,6 @@ public class ZhcxOutsideInspectionItpServiceImpl extends ServiceImpl<ZhcxOutside
|
|
|
List<String> fileIds = new ArrayList<>();
|
|
|
if(dispatchDo != null){
|
|
|
String sfiles = dispatchDo.getSfiles();
|
|
|
-// String signature = dispatchDo.getSignature();
|
|
|
-// if(StringUtils.isNotBlank(signature)){
|
|
|
-// getIds(signature, fileIds);
|
|
|
-// }
|
|
|
if(StringUtils.isNotBlank(sfiles)){
|
|
|
getIds(sfiles, fileIds);
|
|
|
}
|
|
@@ -686,32 +682,43 @@ public class ZhcxOutsideInspectionItpServiceImpl extends ServiceImpl<ZhcxOutside
|
|
|
getIds(files, fileIds);
|
|
|
}
|
|
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
- if(fileIds.size() > 0){
|
|
|
- QueryWrapper<SysFileItemDo> qw = new QueryWrapper();
|
|
|
- qw.in("ID", fileIds);
|
|
|
- List<SysFileItemDo> list = sysFileItemService.list(qw);
|
|
|
- log.info("下载数据数量:"+list.size());
|
|
|
- if(list.size() > 0){
|
|
|
- // 获取类路径
|
|
|
- //String classPath = "/Users/temp";
|
|
|
- String classPath = filepath;
|
|
|
- // 临时目录 以uuid+时间戳 为目录名称
|
|
|
- String temp = classPath +File.separator + IdUtil.simpleUUID() + System.currentTimeMillis();
|
|
|
- log.info("临时目录:"+temp);
|
|
|
- // 临时目录如果存在则删除
|
|
|
- File tempDir = new File(temp);
|
|
|
- File zipFile = null;
|
|
|
- try {
|
|
|
- log.info("临时目录是否存在:"+tempDir.exists());
|
|
|
- if (tempDir.exists()) {
|
|
|
- FileUtil.del(tempDir);
|
|
|
- }
|
|
|
- // 创建临时目录
|
|
|
- boolean mkdir = tempDir.mkdir();
|
|
|
- log.info("临时目录是否创建:"+mkdir);
|
|
|
- Map<String, Integer> fileNameCount = new HashMap<>();
|
|
|
+ String classPath = filepath;
|
|
|
+ // 临时目录 以uuid+时间戳 为目录名称
|
|
|
+ String temp = classPath +File.separator + IdUtil.simpleUUID() + System.currentTimeMillis();
|
|
|
+ log.info("临时目录:"+temp);
|
|
|
+ // 临时目录如果存在则删除
|
|
|
+ File tempDir = new File(temp);
|
|
|
+ File zipFile = null;
|
|
|
+ log.info("临时目录是否存在:"+tempDir.exists());
|
|
|
+ try {
|
|
|
+ if (tempDir.exists()) {
|
|
|
+ FileUtil.del(tempDir);
|
|
|
+ }
|
|
|
+ // 创建临时目录
|
|
|
+ boolean mkdir = tempDir.mkdir();
|
|
|
+ log.info("临时目录是否创建:"+mkdir);
|
|
|
+ Map<String, Integer> fileNameCount = new HashMap<>();
|
|
|
+ String format = formatter.format(inspectionItpDo.getReservationinspectiontime());
|
|
|
+ String fileFullName = inspectionItpDo.getProjectcode()+"-"+inspectionItpDo.getProjectname()+
|
|
|
+ "-"+inspectionItpDo.getStructurename()+"-"+inspectionItpDo.getInspectionpoint()+
|
|
|
+ "-"+format;
|
|
|
+ fileFullName = fileFullName.replaceAll("/","_");
|
|
|
+ ExcelFormData excelData = zhcxOutsideExportVo.getExcelData();
|
|
|
+ excelData.setExcelName(fileFullName+".pdf");
|
|
|
+ SysFileItemDo sysFileItemDo = sysFileItemService.getById(excelData.getTemplateId());
|
|
|
+ FormData formData = parseExcelPage2Data(excelData, sysFileItemDo);
|
|
|
+ parseTemplateByAspose(sysFileItemDo, excelData, temp, formData);
|
|
|
+ String encodedFileName = URLEncoder.encode(fileFullName+".zip", "UTF-8").replaceAll("\\+", "%20");
|
|
|
+ response.setContentType("application/octet-stream");
|
|
|
+ response.setHeader("content-type", "application/octet-stream");
|
|
|
+ response.setHeader("Content-Disposition", String.format("attachment; filename=\"%s\"", encodedFileName));
|
|
|
+ if(fileIds.size() > 0){
|
|
|
+ QueryWrapper<SysFileItemDo> qw = new QueryWrapper();
|
|
|
+ qw.in("ID", fileIds);
|
|
|
+ List<SysFileItemDo> list = sysFileItemService.list(qw);
|
|
|
+ log.info("下载数据数量:"+list.size());
|
|
|
+ if(list.size() > 0){
|
|
|
if (mkdir) {
|
|
|
-
|
|
|
list.forEach(item->{
|
|
|
String filename = item.getFilename();
|
|
|
boolean boo = fileNameCount.containsKey(filename);
|
|
@@ -726,79 +733,52 @@ public class ZhcxOutsideInspectionItpServiceImpl extends ServiceImpl<ZhcxOutside
|
|
|
filename = prefix+"("+i+")"+"."+extName;
|
|
|
}
|
|
|
FileUtil.copyFile(new File(item.getFullpath()),
|
|
|
- new File(temp+File.separator+filename));
|
|
|
- }
|
|
|
- );
|
|
|
- String format = formatter.format(inspectionItpDo.getReservationinspectiontime());
|
|
|
- String fileFullName = inspectionItpDo.getProjectcode()+"-"+inspectionItpDo.getProjectname()+
|
|
|
- "-"+inspectionItpDo.getStructurename()+"-"+inspectionItpDo.getInspectioncontent()+
|
|
|
- "-"+format;
|
|
|
- fileFullName = fileFullName.replaceAll("/","_");
|
|
|
- ExcelFormData excelData = zhcxOutsideExportVo.getExcelData();
|
|
|
- excelData.setExcelName(fileFullName+".pdf");
|
|
|
- SysFileItemDo sysFileItemDo = sysFileItemService.getById(excelData.getTemplateId());
|
|
|
- FormData formData = parseExcelPage2Data(excelData, sysFileItemDo);
|
|
|
- parseTemplateByAspose(sysFileItemDo, excelData, temp, formData);
|
|
|
- // 设置响应的一些格式
|
|
|
-
|
|
|
- String encodedFileName = URLEncoder.encode(fileFullName+".zip", "UTF-8").replaceAll("\\+", "%20");
|
|
|
- response.setContentType("application/octet-stream");
|
|
|
- response.setHeader("content-type", "application/octet-stream");
|
|
|
- //response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
|
|
|
- response.setHeader("Content-Disposition", String.format("attachment; filename=\"%s\"", encodedFileName));
|
|
|
- //response.setHeader("Pragma", "no-cache");
|
|
|
- //response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
|
|
|
- //response.setHeader("Expires", "0");
|
|
|
- // 将临时目录压缩成zip
|
|
|
- zipFile = ZipUtil.zip(temp);
|
|
|
- byte[] buffer = new byte[1024];
|
|
|
- FileInputStream fis = null;
|
|
|
- BufferedInputStream bis = null;
|
|
|
- try{
|
|
|
- fis = new FileInputStream(zipFile);
|
|
|
- bis = new BufferedInputStream(fis);
|
|
|
- OutputStream os = response.getOutputStream();
|
|
|
- int i = bis.read(buffer);
|
|
|
- while (i != -1) {
|
|
|
- os.write(buffer, 0, i);
|
|
|
- i = bis.read(buffer);
|
|
|
- }
|
|
|
- } catch (IOException e) {
|
|
|
- e.printStackTrace();
|
|
|
- log.info("下载压缩资料报错:"+e);
|
|
|
- }finally {
|
|
|
- if (bis != null) {
|
|
|
- try {
|
|
|
- bis.close();
|
|
|
- } catch (IOException e) {
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- if (fis != null) {
|
|
|
- try {
|
|
|
- fis.close();
|
|
|
- } catch (IOException e) {
|
|
|
+ new File(temp+File.separator+filename));
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 将临时目录压缩成zip
|
|
|
+ zipFile = ZipUtil.zip(temp);
|
|
|
+ byte[] buffer = new byte[1024];
|
|
|
+ FileInputStream fis = null;
|
|
|
+ BufferedInputStream bis = null;
|
|
|
+ try{
|
|
|
+ fis = new FileInputStream(zipFile);
|
|
|
+ bis = new BufferedInputStream(fis);
|
|
|
+ OutputStream os = response.getOutputStream();
|
|
|
+ int i = bis.read(buffer);
|
|
|
+ while (i != -1) {
|
|
|
+ os.write(buffer, 0, i);
|
|
|
+ i = bis.read(buffer);
|
|
|
+ }
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ log.info("下载压缩资料报错:"+e);
|
|
|
+ }finally {
|
|
|
+ if (bis != null) {
|
|
|
+ try {
|
|
|
+ bis.close();
|
|
|
+ } catch (IOException e) {
|
|
|
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (fis != null) {
|
|
|
+ try {
|
|
|
+ fis.close();
|
|
|
+ } catch (IOException e) {
|
|
|
|
|
|
}
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- log.info("下载资料报错:"+e);
|
|
|
- return 1;
|
|
|
- }finally {
|
|
|
- // 删除临时目录和压缩后的文件
|
|
|
- FileUtil.del(tempDir);
|
|
|
- FileUtil.del(zipFile);
|
|
|
}
|
|
|
- }else{
|
|
|
- return 0;
|
|
|
}
|
|
|
- }else{
|
|
|
- return 0;
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.info("下载资料报错:"+e);
|
|
|
+ return 1;
|
|
|
+ }finally {
|
|
|
+ FileUtil.del(tempDir);
|
|
|
+ FileUtil.del(zipFile);
|
|
|
}
|
|
|
+
|
|
|
return 2;
|
|
|
}
|
|
|
|