Переглянути джерело

派单 -任务 监理审核 下载资料调整

zhuang 1 рік тому
батько
коміт
a7433dae72

+ 76 - 96
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxOutsideInspectionItpServiceImpl.java

@@ -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;
     }