Переглянути джерело

3/26 权利要求编辑保存

lwhhszx 1 рік тому
батько
коміт
a59e36d5c4

+ 11 - 0
src/main/java/cn/cslg/pas/common/dto/ClaimMessageDTO.java

@@ -0,0 +1,11 @@
+package cn.cslg.pas.common.dto;
+
+import lombok.Data;
+
+@Data
+public class ClaimMessageDTO {
+    private Integer id;
+    private String patentNo;
+    private Integer projectId;
+    private Integer taskId;
+}

+ 13 - 0
src/main/java/cn/cslg/pas/common/dto/PatentClaimDTO.java

@@ -0,0 +1,13 @@
+package cn.cslg.pas.common.dto;
+
+import lombok.Data;
+
+@Data
+public class PatentClaimDTO {
+   private Integer id;
+    private String content;
+    private Integer type;
+    private Integer sort;
+    private String parentSort;
+    private Integer ifUpdate;
+}

+ 11 - 0
src/main/java/cn/cslg/pas/common/dto/QueryPatentClaimDTO.java

@@ -0,0 +1,11 @@
+package cn.cslg.pas.common.dto;
+
+import lombok.Data;
+
+@Data
+public class QueryPatentClaimDTO {
+    private Integer literatureId;
+    private String patentNo;
+    private Integer projectId;
+    private Integer taskId;
+}

+ 15 - 0
src/main/java/cn/cslg/pas/common/dto/business/ClaimManageDTO.java

@@ -0,0 +1,15 @@
+package cn.cslg.pas.common.dto.business;
+
+import cn.cslg.pas.common.dto.PatentClaimDTO;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ClaimManageDTO {
+   private Integer taskId;
+   private Integer literatureId;
+   private String literatureNo;
+   private Integer projectId;
+   private List<PatentClaimDTO> claims;
+}

+ 31 - 33
src/main/java/cn/cslg/pas/common/vo/RePatentClaim.java

@@ -2,45 +2,43 @@ package cn.cslg.pas.common.vo;
 
 import lombok.Data;
 import lombok.experimental.Accessors;
+
 /**
  * 专利权利要求
+ *
  * @TableName os_patent_right
  */
 @Accessors(chain = true)
 @Data
-
 public class RePatentClaim {
-
-
-
-        private Integer id;
-
-        /**
-         * 专利ID
-         */
-        private String patentNo;
-
-        /**
-         * 内容
-         */
-        private String contentOut;
-
-        /**
-         * 内容
-         */
-        private String content;
-
-        /**
-         * 类型
-         */
-        private Integer type;
-
-        private Integer sort;
-
-        private String rightName;
-        /**
-         * 父权要的排序号
-         */
-        private String parentSort;
+    private Integer id;
+
+    /**
+     * 专利ID
+     */
+    private String patentNo;
+
+    /**
+     * 内容
+     */
+    private String contentOut;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 类型
+     */
+    private Integer type;
+
+    private Integer sort;
+
+    private String rightName;
+    /**
+     * 父权要的排序号
+     */
+    private String parentSort;
 
 }

+ 133 - 0
src/main/java/cn/cslg/pas/controller/ClaimsManageController.java

@@ -0,0 +1,133 @@
+package cn.cslg.pas.controller;
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.dto.business.GetFeatureSplitDTO;
+import cn.cslg.pas.common.dto.business.ProductMessageDTO;
+import cn.cslg.pas.common.dto.business.TortCompareRecordDTO;
+import cn.cslg.pas.common.dto.business.TortTaskDTO;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.common.vo.business.ProductMessageVO;
+import cn.cslg.pas.common.vo.business.TortCompareRecordVO;
+import cn.cslg.pas.exception.ConditionException;
+import cn.cslg.pas.exception.UnLoginException;
+import cn.cslg.pas.exception.XiaoShiException;
+import cn.cslg.pas.service.business.ProductMessageService;
+import cn.cslg.pas.service.business.ProjectTaskService;
+import cn.cslg.pas.service.business.TortCompareRecordService;
+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.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 权利要求管理
+ * @Author lrj
+ * @Date 2024/3/25
+ */
+@Slf4j
+@RequestMapping(Constants.API_XiaoSHI + "/claimManage")
+@RestController
+public class ClaimsManageController {
+    @Autowired
+    private ProductMessageService productMessageService;
+    @Autowired
+    private TortCompareRecordService tortCompareRecordService;
+    @Autowired
+    private ProjectTaskService projectTaskService;
+
+    @Operation(summary = "编辑/保存标的产品信息")
+    @PostMapping("/addProductMessage")
+    public Response addProductMessage(@RequestBody ProductMessageDTO productMessageDTO){
+        Integer id = productMessageService.addOrUpdateProductMessage(productMessageDTO);
+        Records records = new Records();
+        records.setData(id);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "查询标的产品信息")
+    @GetMapping("/getProductMessage")
+    public Response getProductMessage(Integer projectId){
+        Records records = new Records();
+        ProductMessageVO productMessageVO = productMessageService.getProductMessage(projectId);
+        records.setData(productMessageVO);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "保存侵权分析对比结果")
+    @PostMapping("/addTortCompareRecord")
+    public Response addTortCompareRecord(@RequestBody TortCompareRecordDTO tortCompareRecordDTO){
+        if (tortCompareRecordDTO != null) {
+            List<Integer> ids = new ArrayList<>();
+            try {
+                ids = tortCompareRecordService.addTortCompareRecord(tortCompareRecordDTO);
+            } catch (Exception e) {
+                if (e instanceof XiaoShiException) {
+                    return Response.error(e.getMessage());
+                } else if (e instanceof UnLoginException) {
+                    return Response.unLogin(e.getMessage());
+                } else if (e instanceof ConditionException) {
+                    return Response.conditionError(e.getMessage());
+                }
+            }
+            Records records = new Records();
+            records.setData(ids);
+            return Response.success(records);
+        } else {
+            return Response.error("入参为null");
+        }
+    }
+
+    @Operation(summary = "查询侵权分析对比结果(包含拆分特征)")
+    @PostMapping("/getTortCompareRecord")
+    public Response getTortCompareRecord(@RequestBody GetFeatureSplitDTO getFeatureSplitDTO) throws Exception {
+        TortCompareRecordVO tortCompareRecordVO = tortCompareRecordService.getTortCompareRecord(getFeatureSplitDTO);
+        return Response.success(tortCompareRecordVO);
+    }
+
+    @Operation(summary = "添加侵权分析协同任务")
+    @PostMapping("/addTortTask")
+    public Response addTortTask(@RequestBody TortTaskDTO tortTaskDTO) throws Exception {
+        Integer id = projectTaskService.addTortTask(tortTaskDTO);
+        Records records = new Records();
+        records.setData(id);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "保存协同任务对比结果")
+    @PostMapping("/addTortTaskResult")
+    public Response addTortTaskResult(@RequestBody TortCompareRecordDTO tortCompareRecordDTO){
+        List<Integer> ids = tortCompareRecordService.addTortTaskResult(tortCompareRecordDTO);
+        Records records = new Records();
+        records.setData(ids);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "查询侵权分析协同前后对比结果")
+    @GetMapping("/getAllTortTaskResult")
+    public Response getAllTortTaskResult(Integer taskId){
+        Integer type = 1;
+        TortCompareRecordVO tortCompareRecordVO = tortCompareRecordService.getAllTortTaskResult(null, taskId, type);
+        return Response.success(tortCompareRecordVO);
+    }
+
+    @Operation(summary = "保存最终对比结果")
+    @PostMapping("/addFinalTortResult")
+    public Response addFinalTortResult(@RequestBody TortCompareRecordDTO tortCompareRecordDTO){
+        List<Integer> ids = tortCompareRecordService.addFinalTortResult(tortCompareRecordDTO);
+        Records records = new Records();
+        records.setData(ids);
+        return Response.success(records);
+    }
+
+    @Operation(summary = "查询最终结果")
+    @GetMapping("/getTortFinalResult")
+    public Response getTortFinalResult(Integer projectId, Integer taskId){
+        Integer type = 2;
+        TortCompareRecordVO tortCompareRecordVO = tortCompareRecordService.getAllTortTaskResult(projectId, taskId, type);
+        return Response.success(tortCompareRecordVO);
+    }
+}

+ 16 - 4
src/main/java/cn/cslg/pas/controller/FeatureController.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.controller;
 
 import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.dto.QueryPatentClaimDTO;
 import cn.cslg.pas.common.dto.QuerySplitDTO;
 import cn.cslg.pas.common.dto.invalidDTO.QueryClaimSplitHistoryDTO;
 import cn.cslg.pas.common.dto.invalidDTO.UpdateFeatureDTO;
@@ -31,6 +32,7 @@ import java.util.List;
 @RequestMapping(Constants.API_XiaoSHI + "/feature")
 @RestController
 public class FeatureController {
+
     @Autowired
     private FeatureService featureService;
 
@@ -63,10 +65,9 @@ public class FeatureController {
 
     }
 
-
     @Operation(summary = "查询权要")
     @GetMapping("/getPatentRight")
-    public Response queryCustomField(String patentNo) throws Exception {
+    public Response getPatentRight(String patentNo) throws Exception {
         try {
             Records records = new Records();
             records.setData(featureService.getPatentRight(patentNo));
@@ -77,6 +78,19 @@ public class FeatureController {
 
     }
 
+    @Operation(summary = "查询权要")
+    @PostMapping("/getPatentRight")
+    public Response getPatentRight(QueryPatentClaimDTO queryPatentClaimDTO) throws Exception {
+        try {
+            Records records = new Records();
+            records.setData(featureService.getPatentRight(queryPatentClaimDTO));
+            return Response.success(records);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+
+    }
+
     @Operation(summary = "查询权要树")
     @GetMapping("/getPatentRightTree")
     public Response getPatentRightTree(String patentNo,String appNo) throws Exception {
@@ -113,7 +127,6 @@ public class FeatureController {
         }
     }
 
-
     @Operation(summary = "查询权要拆分历史")
     @PostMapping("/queryClaimSplitHistory")
     public Response queryClaimSplitHistory(@RequestBody QueryClaimSplitHistoryDTO queryClaimSplitHistoryDTO) throws Exception {
@@ -126,7 +139,6 @@ public class FeatureController {
 
     }
 
-
     @Operation(summary = "批量添加特征")
     @PostMapping("/saveBatchFeature")
     public Response saveBatchFeature(@RequestBody UpdateFeatureDTO updateFeatureDTO) throws Exception {

+ 28 - 0
src/main/java/cn/cslg/pas/domain/business/AssoClaimCompareDescription.java

@@ -0,0 +1,28 @@
+package cn.cslg.pas.domain.business;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("asso_claim_compare_description")
+public class AssoClaimCompareDescription {
+    @TableField(value = "project_id")
+    private Integer projectId;
+
+    /**
+     * 0专题库/1报告类型
+     */
+    @TableField(value = "task_id")
+    private Integer taskId;
+
+    @TableField(value = "literature_id")
+    private Integer literatureId;
+    @TableField(value = "literature_no")
+    private Integer literatureNo;
+    /**
+     * 0专题库/1报告类型
+     */
+    @TableField(value = "compare_description")
+    private Integer compareDescription;
+}

+ 36 - 0
src/main/java/cn/cslg/pas/domain/business/AssoLiteratureCompareDescription.java

@@ -0,0 +1,36 @@
+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;
+
+/**
+ * <p>
+ * 专题库或报告关联表
+ * </p>
+ *
+ * @author xx
+ * @since 2024-03-25
+ */
+@Data
+@TableName("asso_literature_compare_description")
+public class AssoLiteratureCompareDescription extends BaseEntity<AssoLiteratureCompareDescription> {
+    @TableField(value = "project_id")
+    private Integer projectId;
+
+    /**
+     * 0专题库/1报告类型
+     */
+    @TableField(value = "task_id")
+    private Integer taskId;
+
+    @TableField(value = "literature_id")
+    private Integer literatureId;
+
+    /**
+     * 0专题库/1报告类型
+     */
+    @TableField(value = "compare_description")
+    private Integer compareDescription;
+}

+ 41 - 0
src/main/java/cn/cslg/pas/domain/business/ClaimMessage.java

@@ -0,0 +1,41 @@
+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 lrj
+ * @since 2024-03-26
+ */
+@Data
+@TableName("claim_message")
+/*数据库中的表对应的类
+ */
+public class ClaimMessage extends BaseEntity<ClaimMessage> {
+    @TableField(value = "project_id")
+    private Integer projectId;
+    /**
+     * 0专题库/1报告类型
+     */
+    @TableField(value = "patent_no")
+    private String patentNo;
+
+    @TableField(value = "task_id")
+    private Integer taskId;
+    /**
+     * 0专题库/1报告类型
+     */
+    @TableField(value = "literature_id")
+    private Integer literatureId;
+    @TableField(value = "create_id")
+    private String createId;
+    @TableField(value = "create_time")
+    private DateTime createTime;
+}

+ 2 - 1
src/main/java/cn/cslg/pas/domain/business/PatentClaim.java

@@ -29,5 +29,6 @@ public class PatentClaim extends BaseEntity<PatentClaim> {
     private String courtDecision1;
     @TableField(value = "court_decision2")
     private String courtDecision2;
-
+    @TableField(value = "claim_message_id")
+    private Integer claimMessageId;
 }

+ 16 - 0
src/main/java/cn/cslg/pas/mapper/AssoClaimCompareMapper.java

@@ -0,0 +1,16 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.domain.business.ClaimMessage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @Author lrj
+ * @Date 2024/03/25
+ */
+@Repository
+public interface AssoClaimCompareMapper extends BaseMapper<ClaimMessage> {
+
+
+
+}

+ 16 - 0
src/main/java/cn/cslg/pas/mapper/AssoLiteratureCompareDescriptionMapper.java

@@ -0,0 +1,16 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.domain.business.AssoLiteratureCompareDescription;
+import cn.cslg.pas.domain.business.ClaimMessage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @Author lrj
+ * @Date 2024/03/25
+ */
+@Repository
+public interface AssoLiteratureCompareDescriptionMapper extends BaseMapper<AssoLiteratureCompareDescription> {
+
+
+}

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

@@ -0,0 +1,15 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.domain.business.ClaimMessage;
+import cn.cslg.pas.domain.business.Scenario;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @Author lrj
+ * @Date 2024/03/25
+ */
+@Repository
+public interface ClaimMessageMapper extends BaseMapper<ClaimMessage> {
+
+}

+ 107 - 0
src/main/java/cn/cslg/pas/service/ClaimMessageService.java

@@ -0,0 +1,107 @@
+package cn.cslg.pas.service;
+
+import cn.cslg.pas.common.dto.ClaimMessageDTO;
+import cn.cslg.pas.common.dto.PatentClaimDTO;
+import cn.cslg.pas.common.dto.business.ClaimManageDTO;
+import cn.cslg.pas.common.model.cronModel.PersonnelVO;
+import cn.cslg.pas.common.utils.CacheUtils;
+import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.domain.business.ClaimMessage;
+import cn.cslg.pas.domain.business.CompareLiterature;
+import cn.cslg.pas.domain.business.Matter;
+import cn.cslg.pas.mapper.ClaimMessageMapper;
+import cn.cslg.pas.mapper.MatterMapper;
+import cn.cslg.pas.service.business.CompareLiteratureService;
+import cn.cslg.pas.service.business.invalidReport.PatentClaimService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author lrj
+ * @Date 2024/3/25
+ */
+@Slf4j
+@Service
+public class ClaimMessageService extends ServiceImpl<ClaimMessageMapper, ClaimMessage> {
+    @Autowired
+    private CompareLiteratureService compareLiteratureService;
+    @Autowired
+    private CacheUtils cacheUtils;
+    @Autowired
+    private LoginUtils loginUtils;
+
+    @Autowired
+    private PatentClaimService patentClaimService;
+
+    public void addClaimMessage(ClaimMessageDTO claimMessageDTO) {
+
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void addOrUpdateClaimMessage(ClaimManageDTO claimManageDTO) {
+        Integer projectId = claimManageDTO.getProjectId();
+        Integer taskId = claimManageDTO.getTaskId();
+        String patentNo = claimManageDTO.getLiteratureNo();
+        Integer literatureId = claimManageDTO.getLiteratureId();
+        List<PatentClaimDTO> claimDTOS = new ArrayList<>();
+        if (patentNo == null && literatureId == null) {
+            return;
+        }
+
+        if (projectId == null && taskId == null) {
+            return;
+        }
+
+        ClaimMessage claimMessage = this.getClaimMessage(taskId, projectId, patentNo, literatureId);
+
+        if (claimMessage == null) {
+            claimMessage = this.addClaimMessage(taskId, projectId, patentNo, literatureId);
+        }
+
+        if (claimDTOS != null && claimDTOS.size() > 0) {
+            patentClaimService.addOrUpdate(claimDTOS, claimMessage.getId());
+        }
+
+    }
+
+
+    public ClaimMessage getClaimMessage(Integer taskId, Integer projectId, String patentNo, Integer literatureId) {
+        LambdaQueryWrapper<ClaimMessage> queryWrapper = new LambdaQueryWrapper<>();
+        if (patentNo != null) {
+            queryWrapper.eq(ClaimMessage::getPatentNo, patentNo);
+        }
+        if (taskId != null) {
+            queryWrapper.eq(ClaimMessage::getTaskId, taskId);
+        }
+        if (projectId != null) {
+            queryWrapper.eq(ClaimMessage::getProjectId, projectId);
+        }
+        if (literatureId != null) {
+            queryWrapper.eq(ClaimMessage::getLiteratureId, literatureId);
+        }
+        ClaimMessage claimMessage = this.getOne(queryWrapper, false);
+        return claimMessage;
+    }
+
+    public ClaimMessage addClaimMessage(Integer taskId, Integer projectId, String patentNo, Integer literatureId) {
+        ClaimMessage claimMessage = new ClaimMessage();
+        claimMessage.setPatentNo(patentNo);
+        claimMessage.setTaskId(taskId);
+        claimMessage.setProjectId(projectId);
+        claimMessage.setLiteratureId(literatureId);
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        claimMessage.setCreateId(personnelVO.getId());
+        claimMessage.insert();
+        return claimMessage;
+    }
+
+
+
+}

+ 44 - 0
src/main/java/cn/cslg/pas/service/business/FeatureService.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.service.business;
 
 import cn.cslg.pas.common.TreeBuild;
+import cn.cslg.pas.common.dto.QueryPatentClaimDTO;
 import cn.cslg.pas.common.dto.QuerySplitDTO;
 import cn.cslg.pas.common.dto.business.SelectClaimDTO;
 import cn.cslg.pas.common.dto.invalidDTO.QueryClaimSplitHistoryDTO;
@@ -16,8 +17,10 @@ import cn.cslg.pas.common.vo.invalidVO.QueryClaimSplitHistoryVO;
 import cn.cslg.pas.domain.business.*;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.FeatureMapper;
+import cn.cslg.pas.service.ClaimMessageService;
 import cn.cslg.pas.service.business.es.EsService;
 import cn.cslg.pas.service.business.invalidReport.AssoGroupFeatureService;
+import cn.cslg.pas.service.business.invalidReport.PatentClaimService;
 import cn.cslg.pas.service.common.PatentStarApiService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -58,6 +61,10 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
 
     @Autowired
     private PatentStarApiService patentStarApiService;
+    @Autowired
+    private ClaimMessageService claimMessageService;
+    @Autowired
+    private PatentClaimService patentClaimService;
 
     @Transactional(rollbackFor = Exception.class)
     public List<PatentRightVo> splitPatentFeature(SplitVO splitVO) throws IOException {
@@ -599,4 +606,41 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
         }
         return addIds;
     }
+
+
+    public List<RePatentClaim> getPatentRight(QueryPatentClaimDTO queryPatentClaimDTO) {
+        try {
+            List<RePatentClaim> patentRights = new ArrayList<>();
+            Integer taskId = queryPatentClaimDTO.getTaskId();
+            Integer projectId = queryPatentClaimDTO.getProjectId();
+            String patentNo = queryPatentClaimDTO.getPatentNo();
+            Integer literatureId = queryPatentClaimDTO.getLiteratureId();
+            ClaimMessage claimMessage = claimMessageService.getClaimMessage(taskId, projectId, patentNo, literatureId);
+            if (claimMessage == null) {
+                patentRights = this.getRightListByNo(patentNo);
+            } else {
+                Integer claimMessageId = claimMessage.getId();
+                LambdaQueryWrapper<PatentClaim> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(PatentClaim::getClaimMessageId, claimMessageId);
+                List<PatentClaim> patentClaimList =patentClaimService.list(queryWrapper);
+                for (PatentClaim item: patentClaimList){
+                    RePatentClaim rePatentClaim =this.domainToRe(item);
+                    patentRights.add(rePatentClaim);
+                }
+            }
+            return patentRights;
+        } catch (Exception e) {
+            throw new XiaoShiException("系统错误");
+        }
+    }
+
+     private  RePatentClaim  domainToRe(PatentClaim patentClaim){
+         RePatentClaim rePatentClaim =new RePatentClaim();
+         rePatentClaim.setContent(patentClaim.getContent());
+         rePatentClaim.setId(patentClaim.getId());
+         rePatentClaim.setSort(patentClaim.getSysOrder());
+         rePatentClaim.setParentSort(patentClaim.getParentOrder());
+         rePatentClaim.setType(patentClaim.getClaimType());
+         return  rePatentClaim;
+     }
 }

+ 8 - 0
src/main/java/cn/cslg/pas/service/business/ftoReport/ClaimManageService.java

@@ -0,0 +1,8 @@
+package cn.cslg.pas.service.business.ftoReport;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class ClaimManageService {
+
+}

+ 38 - 2
src/main/java/cn/cslg/pas/service/business/invalidReport/PatentClaimService.java

@@ -2,6 +2,7 @@ package cn.cslg.pas.service.business.invalidReport;
 
 
 import cn.cslg.pas.common.dto.DomainFieldDTO;
+import cn.cslg.pas.common.dto.PatentClaimDTO;
 import cn.cslg.pas.common.dto.invalidDTO.*;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.utils.CacheUtils;
@@ -55,7 +56,9 @@ public class PatentClaimService extends ServiceImpl<PatentClaimMapper, PatentCla
         if (patentClaimVOS.size() != 0) {
             return patentClaimVOS;
         }
+
         patentClaimVOS = new ArrayList<>();
+
         //根据projectId 获得标的专利号
         LambdaQueryWrapper<ReportProject> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ReportProject::getProjectId, projectId);
@@ -111,7 +114,7 @@ public class PatentClaimService extends ServiceImpl<PatentClaimMapper, PatentCla
         //根据报告id 查询是否有拆分权要
         LambdaQueryWrapper<PatentClaim> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(PatentClaim::getProjectId, projectId).
-               eq(PatentClaim::getContentType, 0).orderByAsc(PatentClaim::getSysOrder);
+                eq(PatentClaim::getContentType, 0).orderByAsc(PatentClaim::getSysOrder);
         List<PatentClaim> patentClaims = this.list(queryWrapper);
         List<PatentClaimVO> patentClaimVOS = new ArrayList<>();
         patentClaims.forEach(item -> {
@@ -134,7 +137,7 @@ public class PatentClaimService extends ServiceImpl<PatentClaimMapper, PatentCla
             LambdaQueryWrapper<PatentClaimHistory> queryWrapper = new LambdaQueryWrapper<>();
             queryWrapper.eq(PatentClaimHistory::getClaimId, item.getId());
             List<PatentClaimHistory> histories = patentClaimHistoryService.list(queryWrapper);
-           item.setPatentClaimHistoryList(histories);
+            item.setPatentClaimHistoryList(histories);
         });
         return patentClaimVOS;
 
@@ -249,4 +252,37 @@ public class PatentClaimService extends ServiceImpl<PatentClaimMapper, PatentCla
         }
         return true;
     }
+
+
+    public void addOrUpdate(List<PatentClaimDTO> patentClaims, Integer claimMessageId) {
+        List<PatentClaim> patentClaimList = new ArrayList<>();
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        for (PatentClaimDTO patentClaimDTO : patentClaims) {
+            if (patentClaimDTO.getIfUpdate() != null && patentClaimDTO.getIfUpdate().equals(0)) {
+                continue;
+            }
+            else {
+                PatentClaim patentClaim = this.dtoToDomain(patentClaimDTO);
+                patentClaim.setCreateId(personnelVO.getId());
+                patentClaim.setClaimMessageId(claimMessageId);
+                patentClaimList.add(patentClaim);
+            }
+        }
+        if (patentClaimList.size() != 0) {
+            this.saveOrUpdateBatch(patentClaimList);
+        }
+    }
+
+
+    private PatentClaim dtoToDomain(PatentClaimDTO patentClaimDTO) {
+        PatentClaim patentClaim = new PatentClaim();
+        patentClaim.setContentType(0);
+        patentClaim.setClaimType(patentClaimDTO.getType());
+        patentClaim.setContent(patentClaimDTO.getContent());
+        patentClaim.setSysOrder(patentClaimDTO.getSort());
+        patentClaim.setParentOrder(patentClaimDTO.getParentSort());
+        patentClaim.setId(patentClaimDTO.getId());
+        return patentClaim;
+    }
+
 }