Sfoglia il codice sorgente

项目文件导出调整

徐滕 4 ore fa
parent
commit
0f6f8b26af

+ 8 - 0
src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectReportRecordService.java

@@ -1464,6 +1464,10 @@ public class ProjectReportRecordService extends CrudService<ProjectReportRecordD
 			e.printStackTrace();
 		}finally {
 			//删除本地文件
+			if (!docFile.isDirectory()) {
+				docFile.delete();
+			}
+			//删除本地文件
 			if (!file.isDirectory()) {
 				file.delete();
 			}
@@ -1558,6 +1562,10 @@ public class ProjectReportRecordService extends CrudService<ProjectReportRecordD
 			e.printStackTrace();
 		}finally {
 			//删除本地文件
+			if (!docFile.isDirectory()) {
+				docFile.delete();
+			}
+			//删除本地文件
 			if (!file.isDirectory()) {
 				file.delete();
 			}

+ 4 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageNewService.java

@@ -4383,6 +4383,10 @@ public class RuralProjectMessageNewService extends CrudService<RuralProjectMessa
             e.printStackTrace();
         }finally {
             //删除本地文件
+            if (!docFile.isDirectory()) {
+                docFile.delete();
+            }
+            //删除本地文件
             if (!file.isDirectory()) {
                 file.delete();
             }

+ 4 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordTwoService.java

@@ -452,6 +452,10 @@ public class RuralProjectRecordTwoService  extends CrudService<RuralProjectMessa
             e.printStackTrace();
         }finally {
             //删除本地文件
+            if (!docFile.isDirectory()) {
+                docFile.delete();
+            }
+            //删除本地文件
             if (!file.isDirectory()) {
                 file.delete();
             }

+ 10 - 2
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageElectronicSealController.java

@@ -1117,6 +1117,7 @@ public class RuralProjectMessageElectronicSealController extends BaseController
         //freemaker模板路径
         File path = new File(this.getClass().getResource("/").getPath()+"/freemarker");
         Configuration cfg = new Configuration();
+        File docFile = null;
         try {
             cfg.setDirectoryForTemplateLoading(path);
             //选择对应的ftl文件
@@ -1125,7 +1126,7 @@ public class RuralProjectMessageElectronicSealController extends BaseController
             }else if("2".equals(type)){
                 template = cfg.getTemplate("projectHSSignature.ftl","UTF-8");
             }
-            File docFile = new File("报告号【"+number + "】报告签章.doc");
+            docFile = new File("报告号【"+number + "】报告签章.doc");
             FreemarkerUtil.generateFile(data,template,docFile);
             ResponseUtil.docResponse("报告号【"+number + "】项目名称:" + projectName + " 报告签章.doc",docFile,response);
             //将生成的文件上传到阿里云中
@@ -1138,6 +1139,9 @@ public class RuralProjectMessageElectronicSealController extends BaseController
             String tomcatFilePath=System.getProperty("catalina.home");
             //删除tomcat目录下的处理后的文件信息
             File tomcatFile = new File(tomcatFilePath+"/bin/"+"报告号【"+number + "】报告签章.doc");
+            if (docFile.isFile()) {
+                docFile.delete();
+            }
             if (tomcatFile.isFile()) {
                 tomcatFile.delete();
             }
@@ -1166,6 +1170,7 @@ public class RuralProjectMessageElectronicSealController extends BaseController
         //freemaker模板路径
         File path = new File(this.getClass().getResource("/").getPath()+"/freemarker");
         Configuration cfg = new Configuration();
+        File docFile = null;
         try {
             cfg.setDirectoryForTemplateLoading(path);
             //选择对应的ftl文件
@@ -1177,7 +1182,7 @@ public class RuralProjectMessageElectronicSealController extends BaseController
                     template = cfg.getTemplate("projectInternalAuditSignatureNew.ftl","UTF-8");
                 }
             }
-            File docFile = new File("报告号【"+number + "】内审报告签章.doc");
+            docFile = new File("报告号【"+number + "】内审报告签章.doc");
             FreemarkerUtil.generateFile(data,template,docFile);
             ResponseUtil.docResponse("报告号【"+number + "】项目名称:" + projectName + " 内审报告签章.doc",docFile,response);
             //将生成的文件上传到阿里云中
@@ -1190,6 +1195,9 @@ public class RuralProjectMessageElectronicSealController extends BaseController
             String tomcatFilePath=System.getProperty("catalina.home");
             //删除tomcat目录下的处理后的文件信息
             File tomcatFile = new File(tomcatFilePath+"/bin/"+"报告号【"+number + "】内审报告签章.doc");
+            if (docFile.isFile()) {
+                docFile.delete();
+            }
             if (tomcatFile.isFile()) {
                 tomcatFile.delete();
             }

+ 4 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectSignatureOldMessageDisposeController.java

@@ -523,6 +523,10 @@ public class RuralProjectSignatureOldMessageDisposeController extends BaseContro
             e.printStackTrace();
         }finally {
             //删除本地文件
+            if (!docFile.isDirectory()) {
+                docFile.delete();
+            }
+            //删除本地文件
             if (!file.isDirectory()) {
                 file.delete();
             }

+ 5 - 1
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/yanChengSignature/RuralProjectMessageElectronicSealYCController.java

@@ -772,11 +772,12 @@ public class RuralProjectMessageElectronicSealYCController extends BaseControlle
         //freemaker模板路径
         File path = new File(this.getClass().getResource("/").getPath()+"/freemarker");
         Configuration cfg = new Configuration();
+        File docFile = null;
         try {
             cfg.setDirectoryForTemplateLoading(path);
             //选择对应的ftl文件
             template = cfg.getTemplate("projectSignature.ftl","UTF-8");
-            File docFile = new File("报告号【"+number + "】报告签章.doc");
+            docFile = new File("报告号【"+number + "】报告签章.doc");
             FreemarkerUtil.generateFile(data,template,docFile);
             ResponseUtil.docResponse("报告号【"+number + "】项目名称:" + projectName + " 报告签章.doc",docFile,response);
             //将生成的文件上传到阿里云中
@@ -789,6 +790,9 @@ public class RuralProjectMessageElectronicSealYCController extends BaseControlle
             String tomcatFilePath=System.getProperty("catalina.home");
             //删除tomcat目录下的处理后的文件信息
             File tomcatFile = new File(tomcatFilePath+"/bin/"+"报告号【"+number + "】报告签章.doc");
+            if (docFile.isFile()) {
+                docFile.delete();
+            }
             if (tomcatFile.isFile()) {
                 tomcatFile.delete();
             }

+ 67 - 0
src/main/java/com/jeeplus/modules/workcalendar/service/WorkCalendarTaskService.java

@@ -531,4 +531,71 @@ public class WorkCalendarTaskService  {
         redInvoiceRetryScheduledService.handleInvoice9998RetryTask();
     }
 
+
+    /**
+     * 定时清理invoiceBatch文件夹下所有文件
+     * 执行时间:每天凌晨1点50分(cron表达式:0 50 1 * * ?)
+     */
+    // 核心:每天1点50分执行的cron表达式 → 0 50 1 * * ?
+    @Scheduled(cron = "0 50 1 * * ?")
+    // 保持和你原有样式一致的事务注解(虽删除文件无事务意义,仅统一风格)
+    @Transactional(readOnly = false)
+    public void deleteInvoiceBatchFiles() {
+        logger.info("-----------发票批量导入临时文件清理开始------------------");
+
+        // 1. 判定系统环境,获取文件存储路径
+        String path = null;
+        if (System.getProperty("os.name").toLowerCase().contains("win")) {
+            path = "D:/attachment-file/invoiceBatch/";
+        } else {
+            path = "/attachment-file/invoiceBatch/";
+        }
+        logger.info("-----------清理文件路径:{}------------------", path);
+
+        // 2. 初始化文件夹对象,执行删除逻辑
+        File dir = new File(path);
+        // 检查文件夹是否存在
+        if (!dir.exists()) {
+            logger.warn("-----------清理文件夹不存在:{},无需清理------------------", path);
+            logger.info("-----------发票批量导入临时文件清理结束------------------");
+            return;
+        }
+        // 检查是否是文件夹(避免路径是文件的情况)
+        if (!dir.isDirectory()) {
+            logger.error("-----------路径{}不是文件夹,清理失败------------------", path);
+            logger.info("-----------发票批量导入临时文件清理结束------------------");
+            return;
+        }
+
+        // 3. 遍历文件夹下所有文件并删除
+        File[] files = dir.listFiles();
+        if (files == null || files.length == 0) {
+            logger.info("-----------清理文件夹{}下无文件,无需清理------------------", path);
+            logger.info("-----------发票批量导入临时文件清理结束------------------");
+            return;
+        }
+
+        int successCount = 0; // 成功删除数量
+        int failCount = 0;    // 删除失败数量
+        for (File file : files) {
+            // 只删除文件(保留文件夹本身,避免误删文件夹)
+            if (file.isFile()) {
+                boolean isDeleted = file.delete();
+                if (isDeleted) {
+                    successCount++;
+                    logger.info("-----------成功删除文件:{}------------------", file.getAbsolutePath());
+                } else {
+                    failCount++;
+                    logger.error("-----------删除文件失败:{}------------------", file.getAbsolutePath());
+                }
+            } else {
+                logger.warn("-----------跳过非文件类型:{}------------------", file.getAbsolutePath());
+            }
+        }
+
+        // 4. 打印清理结果日志
+        logger.info("-----------发票批量导入临时文件清理完成:成功删除{}个,失败{}个------------------", successCount, failCount);
+        logger.info("-----------发票批量导入临时文件清理结束------------------");
+    }
+
 }

+ 14 - 2
src/main/java/com/jeeplus/modules/workfullmanage/web/WorkFullManageController.java

@@ -1259,6 +1259,9 @@ public class WorkFullManageController extends BaseController {
 			String tomcatFilePath=System.getProperty("catalina.home");
 			//删除tomcat目录下的处理后的文件信息
 			File tomcatFile = new File(tomcatFilePath+"/bin/"+"工程造价咨询质量控制流程单.doc");
+			if (docFile.isFile()) {
+				docFile.delete();
+			}
 			if (tomcatFile.isFile()) {
 				tomcatFile.delete();
 			}
@@ -1282,12 +1285,13 @@ public class WorkFullManageController extends BaseController {
 		//freemaker模板路径
 		File path = new File(this.getClass().getResource("/").getPath()+"/freemarker");
 		Configuration cfg = new Configuration();
+		File docFile = null;
 		try {
 			cfg.setDirectoryForTemplateLoading(path);
 			//选择对应的ftl文件
 			template = cfg.getTemplate("massControl.ftl","UTF-8");
 
-			File docFile = new File("工程造价咨询质量控制流程单.doc");
+			docFile = new File("工程造价咨询质量控制流程单.doc");
 			FreemarkerUtil.generateFile(data,template,docFile);
 			ResponseUtil.docResponse("工程造价咨询质量控制流程单.doc",docFile,response);
 		} catch (IOException e) {
@@ -1298,6 +1302,9 @@ public class WorkFullManageController extends BaseController {
 			String tomcatFilePath=System.getProperty("catalina.home");
 			//删除tomcat目录下的处理后的文件信息
 			File tomcatFile = new File(tomcatFilePath+"/bin/"+"工程造价咨询质量控制流程单.doc");
+			if (docFile.isFile()) {
+				docFile.delete();
+			}
 			if (tomcatFile.isFile()) {
 				tomcatFile.delete();
 			}
@@ -1320,16 +1327,21 @@ public class WorkFullManageController extends BaseController {
 		//freemaker模板路径
 		File path = new File(this.getClass().getResource("/").getPath()+"/freemarker");
 		Configuration cfg = new Configuration();
+		File docFile = null;
 		try {
 			cfg.setDirectoryForTemplateLoading(path);
 			//选择对应的ftl文件
 			template = cfg.getTemplate("issueProcess.ftl","UTF-8");
-			File docFile = new File("咨询报告书(底稿)签发流程表.doc");
+			docFile = new File("咨询报告书(底稿)签发流程表.doc");
 			FreemarkerUtil.generateFile(data,template,docFile);
 			ResponseUtil.docResponse("咨询报告书(底稿)签发流程表.doc",docFile,response);
 		} catch (IOException e) {
 			e.printStackTrace();
 		}finally {
+			//删除本地文件
+			if (!docFile.isDirectory()) {
+				docFile.delete();
+			}
 			//获取tomcat的路径
 			String tomcatFilePath=System.getProperty("catalina.home");
 			//删除tomcat目录下的处理后的文件信息