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