Procházet zdrojové kódy

跟新数据当提交附件

chenendian před 2 měsíci
rodič
revize
3ea6e553e4

+ 9 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/mapper/ProjectAttachmentInfoMapper.java

@@ -36,6 +36,9 @@ public interface ProjectAttachmentInfoMapper {
      */
     List<ProjectAttachmentInfo> selectByProjectId(String projectId);
 
+
+    List<ProjectAttachmentInfo> selectByProjectIdNodeId(String projectId,String nodeId);
+
     /**
      * 根据节点ID列表查询附件信息
      *
@@ -86,5 +89,11 @@ public interface ProjectAttachmentInfoMapper {
      * @param projectId 项目ID
      */
     void deleteByProjectId(String projectId);
+
+
+    void deleteByNodeIds(List<String> ids);
+
+
+
 }
 

+ 49 - 4
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/impl/NodeAttachmentImpl.java

@@ -3,11 +3,12 @@ package com.siwei.apply.service.impl;
 import com.siwei.apply.common.UnifyAttachmentEnum;
 import com.siwei.apply.domain.NodeAttachment;
 import com.siwei.apply.domain.Project;
+import com.siwei.apply.domain.ProjectAttachmentInfo;
 import com.siwei.apply.domain.ProjectWorkflow;
-import com.siwei.apply.domain.Workflow;
 import com.siwei.apply.domain.res.TdgyRes;
 import com.siwei.apply.enums.*;
 import com.siwei.apply.mapper.NodeAttachmentMapper;
+import com.siwei.apply.mapper.ProjectAttachmentInfoMapper;
 import com.siwei.apply.mapper.ProjectMapper;
 import com.siwei.apply.mapper.ProjectWorkflowMapper;
 import com.siwei.apply.service.NodeAttachmentService;
@@ -16,11 +17,9 @@ import com.siwei.apply.utils.FileExtractUtil;
 import com.siwei.apply.utils.ServiceFileUtil;
 import com.siwei.apply.utils.ServiceUtil;
 import com.siwei.common.core.exception.ServiceException;
-import org.apache.catalina.core.ApplicationContext;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.ibatis.annotations.Param;
-import org.apache.poi.sl.usermodel.ObjectMetaData;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,6 +52,11 @@ public class NodeAttachmentImpl implements NodeAttachmentService {
     @Autowired
     private TdgyService tdgyService;
 
+    @Autowired
+    private ProjectAttachmentInfoMapper projectAttachmentInfoMapper;
+
+
+
     /**
      * 根据ID查询附件信息
      * @param id 附件ID
@@ -585,6 +589,47 @@ public class NodeAttachmentImpl implements NodeAttachmentService {
     }
 
 
+    /**
+     * 1.查询出当前存在的
+     * 2.找出新增的
+     * 3.找出要删除的
+     * 3.再次更新
+     *
+     *
+     *
+     * 更新附件信息关联全文检索
+     * @param projectId
+     * @param nodeId
+     * @param rootPath
+     * @return
+     */
+
+    public  Boolean  modifyAttachmentInfo(String projectId,String nodeId,String rootPath){
+        try {
+            List<Path> fileList = ServiceFileUtil.getDirectoryFileList(rootPath);
+
+
+            if(CollectionUtils.isEmpty(fileList)){
+                for(Path path : fileList){
+                    ProjectAttachmentInfo projectAttachmentInfo = new ProjectAttachmentInfo();
+                    projectAttachmentInfo.generateId();
+                    projectAttachmentInfo.setProjectId(projectId);
+                    projectAttachmentInfo.setNodeId(nodeId);
+                    projectAttachmentInfo.setFilePath(path.toString());
+                    String  baseName = FilenameUtils.getBaseName(path.getFileName().toString());
+                    projectAttachmentInfo.setFileName(baseName);
+                    projectAttachmentInfoMapper.insert(projectAttachmentInfo);
+                }
+            }
+        } catch (IOException e) {
+            throw new ServiceException("全文检索附件材料--保存失败");
+        }
+        return true;
+    }
+
+
+
+
 
 
 

+ 42 - 4
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/utils/ServiceFileUtil.java

@@ -10,12 +10,11 @@ import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
+import java.nio.file.*;
 import java.util.Arrays;
 import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 文件工具类
@@ -130,6 +129,45 @@ public class ServiceFileUtil {
                 .forEach(File::delete);
     }
 
+    /**
+     *
+     * 获取目录下的所有文件列表
+     * @param directoryPath
+     * @throws IOException
+     */
+    public static List<Path> getDirectoryFileList(String directoryPath) throws IOException {
+        Path dirPath = Paths.get(directoryPath);
+        if (!Files.exists(dirPath)) {
+            logger.warn("目录不存在: {}", directoryPath);
+            return null;
+        }
+        List<Path> list = Files.walk(dirPath, Integer.MAX_VALUE)
+        .filter(Files::isRegularFile).map(o->o.getFileName()).collect(Collectors.toList());
+        return  list;
+    }
+
+
+
+    public static void test() throws Exception {
+        Path dirPath = Paths.get("C:\\Users\\Administrator\\Desktop\\01\\一码管地相关\\数据库.docx");
+        String extension = FilenameUtils.getExtension(dirPath.toString());
+        String sss = FilenameUtils.getBaseName(dirPath.getFileName().toString());
+        System.out.println(extension);
+        System.out.println(sss);
+    }
+
+
+    public static void main(String[] args) {
+        System.out.println("==========start=============");
+        try {
+            test();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+
+
 
 
 

+ 37 - 0
siwei-modules/siwei-apply/src/main/resources/mapper/ProjectAttachmentInfoMapper.xml

@@ -44,6 +44,30 @@
         WHERE project_id = #{projectId}
     </select>
 
+
+    <!-- 根据项目ID,节点id查询附件信息(多条) -->
+    <select id="selectByProjectIdNodeId" resultMap="BaseResultMap" parameterType="String">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_project_attachment_info
+        <where>
+            <if test="project_id != null">
+                project_id = #{projectId}
+            </if>
+            <if test="node_id != null">
+                node_id = #{nodeId}
+            </if>
+        </where>
+
+    </select>
+
+
+
+
+
+
+
+
     <!-- 根据节点ID查询附件信息(多条) -->
     <select id="selectByNodeIdList" resultMap="BaseResultMap" parameterType="List">
         SELECT
@@ -113,5 +137,18 @@
         DELETE FROM t_project_attachment_info WHERE project_id = #{projectId}
     </delete>
 
+    <delete id="deleteByNodeIds" parameterType="List">
+        DELETE FROM t_project_attachment_info
+        <where>
+            <if test="ids != null and ids.size() > 0">
+                AND id IN
+                <foreach collection="ids" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+        </where>
+    </delete>
+
+
 </mapper>