Selaa lähdekoodia

报告附图管理

lwhhszx 1 vuosi sitten
vanhempi
commit
8727325b26

+ 31 - 0
src/main/java/cn/cslg/pas/common/dto/invalidDTO/ProjectFigureDTO.java

@@ -0,0 +1,31 @@
+package cn.cslg.pas.common.dto.invalidDTO;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import org.joda.time.DateTime;
+
+/**
+ * <p>
+ * 报告附图表
+ * </p>
+ *
+ * @author 李仁杰
+ * @since 2022-10-20
+ */
+@Data
+/*数据库中的表对应的类
+ */
+public class ProjectFigureDTO  {
+    private Integer id;
+
+    private Integer projectId;
+
+    private String fileGuid;
+
+    private String description;
+
+    private String figureTitle;
+
+
+}

+ 29 - 0
src/main/java/cn/cslg/pas/common/vo/invalidVO/ProjectFigureVO.java

@@ -0,0 +1,29 @@
+package cn.cslg.pas.common.vo.invalidVO;
+
+import cn.cslg.pas.common.model.cronModel.SystemFile;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.joda.time.DateTime;
+
+import java.util.Date;
+
+@Data
+public class ProjectFigureVO {
+
+    private Integer projectId;
+
+    private String fileGuid;
+
+    private String description;
+
+    private String figureTitle;
+
+    private String createName;
+    @JsonFormat(
+            pattern = "yyyy-MM-dd",
+            timezone = "GMT+8"
+    )
+    private Date createTime;
+    private SystemFile systemFile;
+}

+ 80 - 0
src/main/java/cn/cslg/pas/controller/ProjectFigureController.java

@@ -0,0 +1,80 @@
+package cn.cslg.pas.controller;
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.dto.business.AvoidDesignInsertDTO;
+import cn.cslg.pas.common.dto.business.GetFeatureSplitDTO;
+import cn.cslg.pas.common.dto.invalidDTO.ProjectFigureDTO;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.common.vo.business.AvoidDesignWholeVO;
+import cn.cslg.pas.common.vo.invalidVO.ProjectFigureVO;
+import cn.cslg.pas.domain.business.ProjectFigure;
+import cn.cslg.pas.exception.ConditionException;
+import cn.cslg.pas.exception.UnLoginException;
+import cn.cslg.pas.exception.XiaoShiException;
+import cn.cslg.pas.service.business.AvoidDesignService;
+import cn.cslg.pas.service.business.AvoidDesignWholeService;
+import cn.cslg.pas.service.business.invalidReport.ProjectFigureService;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 报告附图
+ *
+ * @Author lrj
+ * @Date 2023/12/29
+ */
+@Slf4j
+@RequestMapping(Constants.API_XiaoSHI + "/projectFigure")
+@RestController
+public class ProjectFigureController {
+    @Autowired
+    private ProjectFigureService projectFigureService;
+
+
+    @Operation(summary = "保存或修改报告附图")
+    @PostMapping("/updateProjectFigure")
+    public Response updateProjectFigure(@RequestBody ProjectFigureDTO projectFigureDTO) throws Exception {
+
+        try {
+            projectFigureService.updateProjectFigure(projectFigureDTO);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+        return Response.success("保存成功");
+    }
+
+    @Operation(summary = "查询附图")
+    @PostMapping("/queryProjectFigures")
+    public Response queryProjectFigures(@RequestBody ProjectFigureDTO projectFigureDTO) throws Exception {
+        Records records = new Records();
+        try {
+            List<ProjectFigureVO> projectFigureVOS = projectFigureService.queryProjectFigureVOs(projectFigureDTO);
+            records.setData(projectFigureVOS);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+        return Response.success(records);
+    }
+
+
+    @Operation(summary = "删除附图")
+    @PostMapping("/removeProjectFigures")
+    public Response removeProjectFigures(@RequestBody List<Integer> ids) throws Exception {
+        try {
+            projectFigureService.removeProjectFigure(ids);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+        return Response.success("删除成功");
+    }
+
+}

+ 11 - 1
src/main/java/cn/cslg/pas/controller/ProofGroupController.java

@@ -80,6 +80,16 @@ public class ProofGroupController {
         }
         return Response.success("更新成功");
     }
-
+    @Operation(summary = "删除证据组合")
+    @PostMapping("/removeProofGroup")
+    public Response removeProofGroup(@RequestBody List<Integer> ids) {
+        try {
+            proofGroupService.removeProofGroup(ids);
+        }
+        catch (Exception e){
+            return  Response.error(e.getMessage());
+        }
+        return Response.success("删除成功");
+    }
 
 }

+ 34 - 0
src/main/java/cn/cslg/pas/domain/business/ProjectFigure.java

@@ -0,0 +1,34 @@
+package cn.cslg.pas.domain.business;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import org.joda.time.DateTime;
+
+/**
+ * <p>
+ * 报告附图表
+ * </p>
+ *
+ * @author 李仁杰
+ * @since 2022-10-20
+ */
+@Data
+@TableName("project_figure")
+/*数据库中的表对应的类
+ */
+public class ProjectFigure extends BaseEntity<ProjectFigure> {
+    @TableField(value = "project_id")
+    private Integer projectId;
+    @TableField(value = "file_guid")
+    private String fileGuid;
+    @TableField(value = "description")
+    private String description;
+    @TableField(value = "figure_title")
+    private String figureTitle;
+    @TableField(value = "create_id")
+    private String createId;
+    @TableField(value = "create_time")
+    private DateTime createTime;
+}

+ 15 - 0
src/main/java/cn/cslg/pas/mapper/InvalidReport/ProjectFigureMapper.java

@@ -0,0 +1,15 @@
+package cn.cslg.pas.mapper.InvalidReport;
+
+import cn.cslg.pas.domain.business.EvidenceReason;
+import cn.cslg.pas.domain.business.ProjectFigure;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ * @author lrj
+ * @date 2023/12/25
+ */
+@Repository
+public interface ProjectFigureMapper extends BaseMapper<ProjectFigure> {
+}

+ 17 - 0
src/main/java/cn/cslg/pas/service/business/ProofGroupService.java

@@ -192,4 +192,21 @@ public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup>
         return proofGroupVO;
 
     }
+
+
+    /**
+     * 查询详情
+     *
+     * @param ids
+     * @return
+     */
+    public Boolean removeProofGroup(List<Integer> ids) {
+        if(ids==null||ids.size()==0){
+            throw new XiaoShiException("请至少选择一个组合");
+        }
+        this.removeBatchByIds(ids);
+        return true;
+
+
+    }
 }

+ 23 - 31
src/main/java/cn/cslg/pas/service/business/invalidReport/PatentClaimHistoryService.java

@@ -33,9 +33,10 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
 
     /**
      * 修改权利要求
+     *
      * @param alterPatentClaimDTO
      */
-    public Integer alterPatentClaim(AlterPatentClaimDTO alterPatentClaimDTO){
+    public Integer alterPatentClaim(AlterPatentClaimDTO alterPatentClaimDTO) {
         if (alterPatentClaimDTO == null) {
             throw new XiaoShiException("入参为空");
         }
@@ -53,10 +54,11 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
 
     /**
      * 编辑权利要求历史
+     *
      * @param editPatentClaimHistoryDTO
      * @return
      */
-    public Integer editPatentClaimHistory(EditPatentClaimHistoryDTO editPatentClaimHistoryDTO){
+    public Integer editPatentClaimHistory(EditPatentClaimHistoryDTO editPatentClaimHistoryDTO) {
         if (editPatentClaimHistoryDTO == null) {
             throw new XiaoShiException("入参为空");
         }
@@ -72,10 +74,11 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
 
     /**
      * 查询权利要求修改历史
+     *
      * @param patentClaimDTO
      * @return
      */
-    public PatentClaimHistoryVO queryPatentClaimHistory(PatentClaimDTO patentClaimDTO){
+    public PatentClaimHistoryVO queryPatentClaimHistory(PatentClaimDTO patentClaimDTO) {
         PatentClaimHistoryVO patentClaimHistoryVO = new PatentClaimHistoryVO();
 
         if (patentClaimDTO == null) {
@@ -99,10 +102,11 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
 
     /**
      * 装载原始权要
+     *
      * @param claimId
      * @return
      */
-    public QueryPatentClaimHistoryVO loadOriginalVO(Integer claimId){
+    public QueryPatentClaimHistoryVO loadOriginalVO(Integer claimId) {
         QueryPatentClaimHistoryVO originalClaimVO = new QueryPatentClaimHistoryVO();
         LambdaQueryWrapper<PatentClaim> getOriginalWrapper = new LambdaQueryWrapper<>();
         getOriginalWrapper.eq(PatentClaim::getId, claimId);
@@ -114,45 +118,33 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
         return originalClaimVO;
     }
 
-    public Map<Integer, QueryPatentClaimHistoryVO> loadHistoryVO(Integer claimId){
+    public Map<Integer, QueryPatentClaimHistoryVO> loadHistoryVO(Integer claimId) {
         Map<Integer, QueryPatentClaimHistoryVO> historyVOMap = new HashMap<>();
 
         LambdaQueryWrapper<PatentClaimHistory> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(PatentClaimHistory::getClaimId, claimId);
         List<PatentClaimHistory> patentClaimHistoryList = this.list(queryWrapper);
         if (!patentClaimHistoryList.isEmpty()) {
-            if (patentClaimHistoryList.size() == 1 || patentClaimHistoryList.size() == 2) {
-                //只有一次修改
+            PatentClaimHistory patentClaimHistory1 = patentClaimHistoryList.stream().filter(item -> item.getIfFirst().equals(true)).findFirst().orElse(null);
+            PatentClaimHistory patentClaimHistory2 = patentClaimHistoryList.stream().filter(item -> item.getIfFirst().equals(false)).findFirst().orElse(null);
+            if (patentClaimHistory1 != null) {
                 QueryPatentClaimHistoryVO firstClaimVO = new QueryPatentClaimHistoryVO();
-                PatentClaimHistory patentClaimHistory = patentClaimHistoryList.get(0);
-                if (patentClaimHistory.getIfFirst() == false) {
-                    throw new XiaoShiException("历史错误");
-                }
-                //历史id
-                firstClaimVO.setClaimHistoryId(patentClaimHistory.getId());
-                BeanUtils.copyProperties(patentClaimHistory, firstClaimVO);
+                firstClaimVO.setClaimHistoryId(patentClaimHistory1.getId());
+                BeanUtils.copyProperties(patentClaimHistory1, firstClaimVO);
                 historyVOMap.put(1, firstClaimVO);
             }
-            if (patentClaimHistoryList.size() == 2) {
-                //修改了两次
+            if (patentClaimHistory2 != null) {
                 QueryPatentClaimHistoryVO secondClaimVO = new QueryPatentClaimHistoryVO();
-                PatentClaimHistory patentClaimHistory = patentClaimHistoryList.get(1);
-                if (patentClaimHistory.getIfFirst() == true) {
-                    throw new XiaoShiException("历史错误");
-                }
-                //历史id
-                secondClaimVO.setClaimHistoryId(patentClaimHistory.getId());
-                BeanUtils.copyProperties(patentClaimHistory, secondClaimVO);
+                secondClaimVO.setClaimHistoryId(patentClaimHistory2.getId());
+                BeanUtils.copyProperties(patentClaimHistory2, secondClaimVO);
                 historyVOMap.put(2, secondClaimVO);
-            } else {
-                throw new XiaoShiException("查询错误");
             }
         }
         return historyVOMap;
     }
 
 
-    public void deletePatentClaim(PatentClaimDTO patentClaimDTO){
+    public void deletePatentClaim(PatentClaimDTO patentClaimDTO) {
         Integer claimId = patentClaimDTO.getClaimId();
         //判空
         Boolean ifFirst = patentClaimDTO.getIfFirst();
@@ -303,7 +295,7 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
                     List<PatentClaimHistory> ifExist = this.list(queryWrapper1);
                     if (!ifExist.isEmpty()) {
                         List<PatentClaimHistory> secondHistories = new ArrayList<>();
-                         sortLaterIds.forEach(item -> {
+                        sortLaterIds.forEach(item -> {
                             LambdaQueryWrapper<PatentClaimHistory> queryWrapper2 = new LambdaQueryWrapper<>();
                             queryWrapper2.eq(PatentClaimHistory::getIfFirst, ifFirst)
                                     .eq(PatentClaimHistory::getClaimId, item)
@@ -337,9 +329,9 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
                                     patentClaimHistories.add(patentClaimHistory1);
                                 }
                             }
-                         });
-                         this.saveBatch(patentClaimHistories);
-                         this.updateBatchById(secondHistories);
+                        });
+                        this.saveBatch(patentClaimHistories);
+                        this.updateBatchById(secondHistories);
                     } else {
                         // 待新增的权利要求
                         secondFilter.forEach(item -> {
@@ -359,7 +351,7 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
     }
 
 
-    public List<PatentClaim> getAllPatentClaims(Integer claimId){
+    public List<PatentClaim> getAllPatentClaims(Integer claimId) {
         LambdaQueryWrapper<PatentClaim> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(PatentClaim::getId, claimId);
         PatentClaim patentClaim = patentClaimService.getOne(queryWrapper, false);

+ 134 - 0
src/main/java/cn/cslg/pas/service/business/invalidReport/ProjectFigureService.java

@@ -0,0 +1,134 @@
+package cn.cslg.pas.service.business.invalidReport;
+
+import cn.cslg.pas.common.dto.invalidDTO.ProjectFigureDTO;
+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.vo.invalidVO.ProjectFigureVO;
+import cn.cslg.pas.domain.business.PatentClaim;
+import cn.cslg.pas.domain.business.ProjectFigure;
+import cn.cslg.pas.exception.XiaoShiException;
+import cn.cslg.pas.mapper.InvalidReport.PatentClaimMapper;
+import cn.cslg.pas.mapper.InvalidReport.ProjectFigureMapper;
+import cn.cslg.pas.service.common.FileManagerService;
+import cn.cslg.pas.service.permissions.PermissionService;
+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.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class ProjectFigureService extends ServiceImpl<ProjectFigureMapper, ProjectFigure> {
+    @Autowired
+    private PermissionService permissionService;
+
+    @Autowired
+    private FileManagerService fileManagerService;
+    public Boolean updateProjectFigure(ProjectFigureDTO projectFigureDTO) {
+
+        Integer id = projectFigureDTO.getId();
+
+        ProjectFigure projectFigure = new ProjectFigure();
+        BeanUtils.copyProperties(projectFigureDTO, projectFigure);
+
+        //编辑
+        if (id != null) {
+            ProjectFigure projectFigure1 = this.getById(id);
+            if (projectFigure1 == null) {
+                throw new XiaoShiException("更新失败");
+            }
+            projectFigure.setProjectId(projectFigure1.getProjectId());
+            projectFigure.setCreateId(projectFigure1.getCreateId());
+            projectFigure.setId(id);
+            projectFigure.setCreateTime(projectFigure1.getCreateTime());
+            projectFigure.updateById();
+        }
+        //新增
+        else {
+            PersonnelVO personnelVO = new PersonnelVO();
+            personnelVO.setId("1");
+            projectFigure.setCreateId(personnelVO.getId());
+            projectFigure.insert();
+
+        }
+        return true;
+    }
+
+    public List<ProjectFigureVO> queryProjectFigureVOs(ProjectFigureDTO projectFigureDTO) {
+        Integer projectId = projectFigureDTO.getProjectId();
+        //根据报告id 查询
+        LambdaQueryWrapper<ProjectFigure> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ProjectFigure::getProjectId, projectId);
+        List<ProjectFigure> projectFigures = this.list(queryWrapper);
+        List<ProjectFigureVO> projectFigureVOS = this.loadVos(projectFigures);
+        return projectFigureVOS;
+    }
+
+
+    private List<ProjectFigureVO> loadVos(List<ProjectFigure> projectFigures) {
+        List<ProjectFigureVO> projectFigureVOS = new ArrayList<>();
+        if (projectFigures == null || projectFigures.size() == 0) {
+            return projectFigureVOS;
+        }
+        List<String> createIds = projectFigures.stream().map(ProjectFigure::getCreateId).collect(Collectors.toList());
+        List<String> guids =projectFigures.stream().map(ProjectFigure::getFileGuid).collect(Collectors.toList());
+         List<SystemFile> systemFiles =new ArrayList<>();
+        //查询创建人名称
+        List<Personnel> personnels = new ArrayList<>();
+        if (createIds.size() != 0) {
+            try {
+                String res = permissionService.getPersonnelByIdsFromPCS(createIds);
+                JSONObject jsonObject = JSONObject.parseObject(res);
+                personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
+            } catch (Exception e) {
+
+                throw new XiaoShiException("获取人员信息错误");
+            }
+        }
+
+        //查询文件
+        if (guids.size() != 0) {
+            try {
+                String res = fileManagerService.getSystemFileFromFMS(guids);
+                if (res != null && !res.trim().equals("")) {
+                    systemFiles = JSONObject.parseArray(res, SystemFile.class);
+                }
+            } catch (Exception e) {
+                throw new XiaoShiException("装载错误");
+            }
+        }
+
+        for (ProjectFigure projectFigure : projectFigures) {
+            ProjectFigureVO projectFigureVO = new ProjectFigureVO();
+            BeanUtils.copyProperties(projectFigure, projectFigureVO);
+            Personnel personnel = personnels.stream().filter(item -> item.getId().equals(projectFigure.getCreateId())).findFirst().orElse(null);
+            SystemFile systemFile =systemFiles.stream().filter(item->item.getGuid().equals(projectFigure.getFileGuid())).findFirst().orElse(null);
+
+            if (personnel != null) {
+                projectFigureVO.setCreateName(personnel.getPersonnelName());
+            }
+
+            if(systemFile!=null){
+              projectFigureVO.setSystemFile(systemFile);
+            }
+            projectFigureVOS.add(projectFigureVO);
+        }
+
+        return projectFigureVOS;
+
+    }
+
+    public Boolean removeProjectFigure(List<Integer> ids) {
+        if(ids==null||ids.size()==0){
+            throw new XiaoShiException("请至少选择一个附图");
+        }
+        this.removeBatchByIds(ids);
+        return true;
+    }
+}

+ 55 - 0
src/test/java/cn/cslg/pas/service/ProjectFigureTest.java

@@ -0,0 +1,55 @@
+package cn.cslg.pas.service;
+
+import cn.cslg.pas.common.dto.DomainFieldDTO;
+import cn.cslg.pas.common.dto.invalidDTO.ProjectFigureDTO;
+import cn.cslg.pas.common.utils.GenerateObjectUtil;
+import cn.cslg.pas.common.vo.invalidVO.ProjectFigureVO;
+import cn.cslg.pas.controller.AvoidDesignController;
+import cn.cslg.pas.domain.business.FollowUp;
+import cn.cslg.pas.service.business.AvoidDesignService;
+import cn.cslg.pas.service.business.invalidReport.ProjectFigureService;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author xiexiang
+ * @Date 2023/12/5
+ */
+@SpringBootTest
+public class ProjectFigureTest {
+    @Autowired
+    private ProjectFigureService projectFigureService;
+
+
+
+    @Test
+    public void updateProjectFigure() throws Exception {
+        ProjectFigureDTO projectFigureDTO =new ProjectFigureDTO();
+        projectFigureDTO.setProjectId(1);
+        projectFigureDTO.setFigureTitle("附图1");
+        projectFigureDTO.setDescription("描述1");
+        projectFigureDTO.setFileGuid("9174f701fd59459fb155e10d31a3fe60");
+        projectFigureService.updateProjectFigure(projectFigureDTO);
+    }
+
+    @Test
+    public void aa() {
+        ProjectFigureDTO projectFigureDTO =new ProjectFigureDTO();
+        projectFigureDTO.setProjectId(1);
+  List<ProjectFigureVO>   projectFigureVOS=   projectFigureService.queryProjectFigureVOs(projectFigureDTO);
+System.out.println(projectFigureVOS);
+    }
+
+    @Test
+    public void testGet() throws Exception {
+        Integer gen = 2;
+        Integer size = 1;
+        Integer a = gen >= size ? size : gen;
+        System.out.println(a);
+
+    }
+}