From 2b543ca35ad4697e31225829be13e375cd2b0259 Mon Sep 17 00:00:00 2001
From: zs <zhoushuai@zbooksoft.com>
Date: 星期三, 04 二月 2026 16:46:00 +0800
Subject: [PATCH] 成果资料退回后需要删除对应附件
---
src/main/java/com/zbooksoft/gdmis/operate/CatAjjxxOperate.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 111 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zbooksoft/gdmis/operate/CatAjjxxOperate.java b/src/main/java/com/zbooksoft/gdmis/operate/CatAjjxxOperate.java
index 9bf2167..873d161 100644
--- a/src/main/java/com/zbooksoft/gdmis/operate/CatAjjxxOperate.java
+++ b/src/main/java/com/zbooksoft/gdmis/operate/CatAjjxxOperate.java
@@ -1,7 +1,9 @@
package com.zbooksoft.gdmis.operate;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruili.wcp.common.CustomConfigUtil;
import com.ruili.wcp.common.SpringContextUtil;
+import com.ruili.wcp.configsettting.SystemConfig;
import com.ruili.wcp.data.entity.config.Module;
import com.ruili.wcp.data.entity.config.View;
import com.ruili.wcp.data.entity.management.User;
@@ -10,8 +12,10 @@
import com.ruili.wcp.service.config.ViewService;
import com.ruili.wcp.web.model.AjaxResponse;
import com.ruili.wcp.web.model.ErrorInfo;
+import com.zbooksoft.gdmis.config.ArchivesCustomConfig;
import com.zbooksoft.gdmis.data.entity.BorrowDetail;
import com.zbooksoft.gdmis.data.entity.CatAjjxx;
+import com.zbooksoft.gdmis.data.entity.CatYswjxx;
import com.zbooksoft.gdmis.data.entity.PhysicalDetail;
import com.zbooksoft.gdmis.service.*;
import org.apache.shiro.SecurityUtils;
@@ -22,6 +26,8 @@
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.JdbcTemplate;
+import java.io.File;
+import java.io.IOException;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.time.LocalDateTime;
@@ -43,6 +49,8 @@
ModuleService moduleService = (ModuleService) SpringContextUtil.getBean("moduleServiceImpl");
JdbcTemplate jdbcTemplate = (JdbcTemplate) SpringContextUtil.getBean("jdbcTemplate");
IFormData iform = (IFormData) SpringContextUtil.getBean("iFormData");
+ CatYswjxxService catYswjxxService = (CatYswjxxService) SpringContextUtil.getBean("catYswjxxServiceImpl");
+ CustomConfigUtil customConfigUtil = (CustomConfigUtil) SpringContextUtil.getBean("customConfigUtil");
/**
@@ -73,11 +81,91 @@
return idList.size();
}
});
+ QueryWrapper<CatYswjxx> queryWrapper=new QueryWrapper<>();
+ queryWrapper.in("aj_id",idList).eq("yszt",3);
+// queryWrapper.in("aj_id",idList);
+ List<CatYswjxx> catYswjxxList=catYswjxxService.list(queryWrapper);
+ ArchivesCustomConfig archivesCustomConfig = customConfigUtil.getConfigObj(ArchivesCustomConfig.class);
+ for (CatYswjxx catYswjxx : catYswjxxList) {
+ String destDir = archivesCustomConfig.getOriginalPath() + "宸插叆搴�" + File.separator + catYswjxx.getWjlj().substring(archivesCustomConfig.getOriginalPath().length());
+ // 婧愭枃浠惰矾寰�
+ File sourceFile = new File(catYswjxx.getWjlj());
+ // 鐩爣鏂囦欢璺緞
+ File destFile = new File(destDir);
+
+ // 纭繚鐩爣鐩綍瀛樺湪
+ File destParentDir = destFile.getParentFile();
+ if (destParentDir != null && !destParentDir.exists()) {
+ destParentDir.mkdirs();
+ }
+
+ // 鍒ゆ柇婧愭枃浠舵槸鏂囦欢杩樻槸鏂囦欢澶�
+ if (sourceFile.isDirectory()) {
+ // 濡傛灉鏄枃浠跺す锛屽鍒舵暣涓枃浠跺す鍙婂叾鍐呭
+ copyDirectory(sourceFile, destFile);
+ } else {
+ // 濡傛灉鏄枃浠讹紝鐩存帴澶嶅埗
+ java.nio.file.Files.copy(sourceFile.toPath(), destFile.toPath(),
+ java.nio.file.StandardCopyOption.REPLACE_EXISTING);
+ }
+
+ // 鍒犻櫎婧愭枃浠舵垨婧愭枃浠跺す
+ deleteDirectory(sourceFile);
+
+ catYswjxx.setWjlj(destDir);
+ catYswjxxService.saveOrUpdate(catYswjxx);
+ }
return new AjaxResponse(true);
} catch (Exception e) {
logger.error(e.getMessage(), e);
return new AjaxResponse(new ErrorInfo(e.getMessage()), false);
}
+ }
+
+ /**
+ * 澶嶅埗鐩綍鍙婂叾瀛愮洰褰曞拰鏂囦欢
+ * @param source 婧愮洰褰�
+ * @param target 鐩爣鐩綍
+ * @throws IOException
+ */
+ private void copyDirectory(File source, File target) throws IOException {
+ if (source.isDirectory()) {
+ // 濡傛灉鐩爣鐩綍涓嶅瓨鍦紝鍒欏垱寤�
+ if (!target.exists()) {
+ target.mkdirs();
+ }
+
+ // 鑾峰彇婧愮洰褰曚笅鐨勬墍鏈夋枃浠跺拰瀛愮洰褰�
+ String[] files = source.list();
+ if (files != null) {
+ for (String file : files) {
+ File srcFile = new File(source, file);
+ File destFile = new File(target, file);
+ // 閫掑綊澶嶅埗
+ copyDirectory(srcFile, destFile);
+ }
+ }
+ } else {
+ // 濡傛灉鏄枃浠讹紝鐩存帴澶嶅埗
+ java.nio.file.Files.copy(source.toPath(), target.toPath(),
+ java.nio.file.StandardCopyOption.REPLACE_EXISTING);
+ }
+ }
+
+ /**
+ * 鍒犻櫎鐩綍鍙婂叾瀛愮洰褰曞拰鏂囦欢
+ * @param directory 瑕佸垹闄ょ殑鐩綍
+ */
+ private void deleteDirectory(File directory) {
+ if (directory.isDirectory()) {
+ File[] files = directory.listFiles();
+ if (files != null) {
+ for (File file : files) {
+ deleteDirectory(file);
+ }
+ }
+ }
+ directory.delete();
}
/**
@@ -92,6 +180,15 @@
int state = 0;
String columnName = "fbzt";
updateState(viewId, idList, state, columnName);
+ QueryWrapper<CatAjjxx> fileQueryWrapper = new QueryWrapper<>();
+ fileQueryWrapper.in("id",idList);
+ List<CatAjjxx> catAjjxxList=catAjjxxService.list(fileQueryWrapper);
+ ArchivesCustomConfig archivesCustomConfig = customConfigUtil.getConfigObj(ArchivesCustomConfig.class);
+ for (CatAjjxx catAjjxx:catAjjxxList){
+ String wjlj = archivesCustomConfig.getOriginalPath() + "宸插叆搴�" + File.separator + catAjjxx.getXmkyqbh() + "["+catAjjxx.getXmkyqmc()+"]";
+ File file=new File(wjlj);
+ deleteDirectory(file);
+ }
return new AjaxResponse(true);
} catch (Exception e) {
logger.error(e.getMessage(), e);
@@ -133,6 +230,20 @@
return idList.size();
}
});
+ strSql = "update cat_item_yswjxx set yszt = 0";
+ jdbcTemplate.batchUpdate(strSql + " where aj_id=?", new BatchPreparedStatementSetter() {
+ @Override
+ public void setValues(PreparedStatement ps, int i) throws SQLException {
+ ps.setLong(1, idList.get(i));// 涓嬫爣浠�1寮�濮�
+ }
+
+ @Override
+ public int getBatchSize() {
+ return idList.size();
+ }
+ });
+
+
}
--
Gitblit v1.9.1