xiexiang 1 年之前
父節點
當前提交
61224883d2

+ 7 - 5
src/main/java/cn/cslg/pas/common/dto/business/AssoTaskFileDTO.java

@@ -2,6 +2,8 @@ package cn.cslg.pas.common.dto.business;
 
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @Author xiexiang
  * @Date 2023/11/24
@@ -16,15 +18,15 @@ public class AssoTaskFileDTO {
     /**
      * 文件guid
      */
-    private String fileGuid;
+    private List<String> fileGuids;
 
     /**
      * 说明
      */
     private String description;
 
-    /**
-     * 文件类型
-     */
-    private Integer fileType;
+//    /**
+//     * 文件类型
+//     */
+//    private Integer fileType;
 }

+ 12 - 0
src/main/java/cn/cslg/pas/common/dto/business/GetAssoTaskFileDTO.java

@@ -0,0 +1,12 @@
+package cn.cslg.pas.common.dto.business;
+
+import lombok.Data;
+
+/**
+ * @Author xiexiang
+ * @Date 2023/11/25
+ */
+@Data
+public class GetAssoTaskFileDTO {
+    private Integer taskId;
+}

+ 47 - 0
src/main/java/cn/cslg/pas/common/vo/business/AssoTaskFileVO.java

@@ -0,0 +1,47 @@
+package cn.cslg.pas.common.vo.business;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 分配任务与文件关联VO类
+ * @Author xiexiang
+ * @Date 2023/11/25
+ */
+@Data
+public class AssoTaskFileVO {
+    /**
+     * ID
+     */
+    private Integer id;
+    /**
+     * 任务id
+     */
+    private Integer taskId;
+
+    /**
+     * 文件guid
+     */
+    private String fileGuid;
+
+    private String fileName;
+
+    private String fileType;
+
+    /**
+     * 说明
+     */
+    private String description;
+    
+
+    /**
+     * 创建人
+     */
+    private String createId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+}

+ 8 - 0
src/main/java/cn/cslg/pas/controller/PatentDigProjectFilesController.java

@@ -42,4 +42,12 @@ public class PatentDigProjectFilesController {
         Integer id = (Integer) business.addMessage(patentDigProjectFilesDTO);
         return Response.success(id);
     }
+
+    @Operation(summary = "更新专利挖掘项目文件")
+    @PostMapping("/updatePatentDigProjectFiles")
+    public Response updatePatentDigProjectFiles(@RequestBody PatentDigProjectFilesDTO patentDigProjectFilesDTO){
+        Business business = businessFactory.getClass("patentDigProjectFilesService");
+        Integer id = (Integer) business.addMessage(patentDigProjectFilesDTO);
+        return Response.success(id);
+    }
 }

+ 7 - 4
src/main/java/cn/cslg/pas/controller/ProjectTaskController.java

@@ -5,6 +5,8 @@ import cn.cslg.pas.common.dto.business.*;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.StringRequest;
 import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.common.vo.business.AssoTaskFileVO;
+import cn.cslg.pas.domain.business.AssoTaskFile;
 import cn.cslg.pas.exception.ConditionException;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
@@ -85,14 +87,15 @@ public class ProjectTaskController {
     @Operation(summary = "添加任务与文件关联")
     @PostMapping("/addAssoTaskFile")
     public Response addAssoTaskFile(@RequestBody AssoTaskFileDTO assoTaskFileDTO) throws Exception {
-        Integer id = assoTaskFileService.addTaskFile(assoTaskFileDTO);
-        return Response.success(id);
+        List<Integer> ids = assoTaskFileService.addTaskFile(assoTaskFileDTO);
+        return Response.success(ids);
     }
 
     @Operation(summary = "查询任务与文件关联")
     @PostMapping("/getAssoTaskFile")
-    public Response getAssoTaskFile(@RequestBody Integer taskId){
-        return Response.success(assoTaskFileService.getAssoTaskFile(taskId));
+    public Response getAssoTaskFile(@RequestBody GetAssoTaskFileDTO getAssoTaskFileDTO) throws IOException {
+        List<AssoTaskFileVO> assoTaskFileVOS = assoTaskFileService.getAssoTaskFile(getAssoTaskFileDTO.getTaskId());
+        return Response.success(assoTaskFileVOS);
     }
 
     @Operation(summary = "删除任务与文件关联")

+ 67 - 17
src/main/java/cn/cslg/pas/service/business/AssoTaskFileService.java

@@ -1,20 +1,28 @@
 package cn.cslg.pas.service.business;
 
 import cn.cslg.pas.common.dto.business.AssoTaskFileDTO;
+import cn.cslg.pas.common.model.cronModel.Personnel;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
+import cn.cslg.pas.common.model.cronModel.SystemFile;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.common.vo.business.AssoTaskFileVO;
 import cn.cslg.pas.domain.business.AssoTaskFile;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.AssoTaskFileMapper;
+import cn.cslg.pas.service.common.FileManagerService;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 任务与文件关联表的Service
@@ -29,15 +37,21 @@ public class AssoTaskFileService extends ServiceImpl<AssoTaskFileMapper, AssoTas
     @Autowired
     private LoginUtils loginUtils;
 
-    public Integer addTaskFile(AssoTaskFileDTO assoTaskFileDTO){
+    @Autowired
+    private FileManagerService fileManagerService;
+
+    /**
+     * 添加任务与文件关联
+     * @param assoTaskFileDTO
+     * @return
+     */
+    public List<Integer> addTaskFile(AssoTaskFileDTO assoTaskFileDTO){
         if (assoTaskFileDTO.getTaskId() == null) {
             throw new XiaoShiException("任务id不能为空");
         }
-        if (assoTaskFileDTO.getFileGuid() == null || assoTaskFileDTO.getFileGuid() == "") {
-            throw new XiaoShiException("文件id不能为空");
+        if (assoTaskFileDTO.getFileGuids() == null || assoTaskFileDTO.getFileGuids().size() == 0) {
+            throw new XiaoShiException("文件ids不能为空");
         }
-        AssoTaskFile assoTaskFile = new AssoTaskFile();
-        BeanUtils.copyProperties(assoTaskFileDTO, assoTaskFile);
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
         try {
@@ -45,22 +59,58 @@ public class AssoTaskFileService extends ServiceImpl<AssoTaskFileMapper, AssoTas
         } catch (Exception e) {
             throw new UnLoginException("未登录");
         }
-        assoTaskFile.setCreateId(personnelVO.getId());
-        assoTaskFile.insert();
-        return assoTaskFile.getId();
+        List<String> fileGuids = assoTaskFileDTO.getFileGuids();
+        List<AssoTaskFile> assoTaskFiles = new ArrayList<>();
+        for (String item : fileGuids) {
+            AssoTaskFile assoTaskFile = new AssoTaskFile();
+            BeanUtils.copyProperties(assoTaskFileDTO, assoTaskFile);
+            assoTaskFile.setFileGuid(item);
+            assoTaskFile.setCreateId(personnelVO.getId());
+            assoTaskFiles.add(assoTaskFile);
+        }
+        this.saveBatch(assoTaskFiles);
+        List<Integer> ids = assoTaskFiles.stream().map(AssoTaskFile::getId).collect(Collectors.toList());
+        return ids;
     }
 
-    public List<AssoTaskFile> getAssoTaskFile(Integer taskId) {
-        if (taskId != null) {
-            LambdaQueryWrapper<AssoTaskFile> queryWrapper = new LambdaQueryWrapper<>();
-            queryWrapper.eq(AssoTaskFile::getTaskId, taskId);
-            List<AssoTaskFile> assoTaskFiles = this.list(queryWrapper);
-            return assoTaskFiles;
-        } else {
-            throw new XiaoShiException("任务id不能为空");
+    /**
+     * 查询文件与任务关联
+     * @param taskId
+     * @return
+     */
+    public List<AssoTaskFileVO> getAssoTaskFile(Integer taskId) throws IOException {
+        LambdaQueryWrapper<AssoTaskFile> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AssoTaskFile::getTaskId, taskId);
+        List<AssoTaskFile> assoTaskFiles = this.list(queryWrapper);
+
+        List<String> fileGuids = assoTaskFiles.stream().map(AssoTaskFile::getFileGuid).collect(Collectors.toList());
+
+        List<SystemFile> systemFiles = new ArrayList<>();
+        //调用文件系统查询文件信息接口
+        if (fileGuids.size() != 0) {
+            String res = fileManagerService.getSystemFileFromFMS(fileGuids);
+            systemFiles = JSONObject.parseArray(res, SystemFile.class);
         }
+        List<AssoTaskFileVO> assoTaskFileVOS = new ArrayList<>();
+        if (systemFiles.size() != 0) {
+            for (AssoTaskFile assoTaskFile : assoTaskFiles) {
+                AssoTaskFileVO assoTaskFileVO = new AssoTaskFileVO();
+                //装载文件信息
+                SystemFile systemFile = systemFiles.stream().filter(item -> item.getGuid().equals(assoTaskFile.getFileGuid())).findFirst().orElse(null);
+                if (systemFile != null) {
+                    BeanUtils.copyProperties(assoTaskFile, assoTaskFileVO);
+                    assoTaskFileVO.setFileType(systemFile.getType());
+                    assoTaskFileVO.setFileName(systemFile.getOriginalName());
+                }
+                assoTaskFileVOS.add(assoTaskFileVO);
+            }
+        }
+        return assoTaskFileVOS;
     }
-
+    /**
+     * 删除任务与文件关联表
+     * @param ids
+     */
     public void deleteAssoTaskFile(List<Integer> ids){
         if (ids.size() != 0) {
             this.removeBatchByIds(ids);