Forráskód Böngészése

修复分组查询/稳定性分析

lwhhszx 1 éve
szülő
commit
e76256e462
39 módosított fájl, 1187 hozzáadás és 104 törlés
  1. 29 0
      src/main/java/cn/cslg/pas/common/dto/stabilityReport/AddCompareRecordDTO.java
  2. 14 0
      src/main/java/cn/cslg/pas/common/dto/stabilityReport/AddCompareRecordGroupDTO.java
  3. 8 0
      src/main/java/cn/cslg/pas/common/dto/stabilityReport/QueryAllCompareGroupDTO.java
  4. 8 0
      src/main/java/cn/cslg/pas/common/dto/stabilityReport/QueryAllCompareRecordDTO.java
  5. 12 0
      src/main/java/cn/cslg/pas/common/dto/stabilityReport/QueryCompareRecordDTO.java
  6. 1 2
      src/main/java/cn/cslg/pas/common/utils/parseQueryToTree/expressManager.java
  7. 3 2
      src/main/java/cn/cslg/pas/common/vo/CompareLiteratureVO.java
  8. 47 0
      src/main/java/cn/cslg/pas/common/vo/stabilityReport/AllCompareGroupVO.java
  9. 43 0
      src/main/java/cn/cslg/pas/common/vo/stabilityReport/AllCompareRecordVO.java
  10. 28 0
      src/main/java/cn/cslg/pas/common/vo/stabilityReport/CompareRecordVO.java
  11. 1 0
      src/main/java/cn/cslg/pas/controller/FeatureController.java
  12. 139 0
      src/main/java/cn/cslg/pas/controller/StabilityReportController.java
  13. 24 0
      src/main/java/cn/cslg/pas/domain/business/AssoGroupReason.java
  14. 9 1
      src/main/java/cn/cslg/pas/domain/business/AssoReasonLiterature.java
  15. 6 2
      src/main/java/cn/cslg/pas/domain/business/EvidenceReason.java
  16. 5 0
      src/main/java/cn/cslg/pas/domain/business/ProofGroup.java
  17. 1 1
      src/main/java/cn/cslg/pas/factorys/getOrderFactory/GetComOrder.java
  18. 1 1
      src/main/java/cn/cslg/pas/factorys/getOrderFactory/GetProjectScenarioOrder.java
  19. 16 0
      src/main/java/cn/cslg/pas/mapper/stabilityReport/AssoGroupReasonMapper.java
  20. 138 45
      src/main/java/cn/cslg/pas/service/business/CompareLiteratureService.java
  21. 49 5
      src/main/java/cn/cslg/pas/service/business/FeatureService.java
  22. 5 0
      src/main/java/cn/cslg/pas/service/business/ProjectTaskService.java
  23. 26 0
      src/main/java/cn/cslg/pas/service/business/ProofGroupService.java
  24. 1 1
      src/main/java/cn/cslg/pas/service/business/SystemDictService.java
  25. 3 1
      src/main/java/cn/cslg/pas/service/business/TreeNodeService.java
  26. 3 0
      src/main/java/cn/cslg/pas/service/business/es/EsPatentService.java
  27. 2 0
      src/main/java/cn/cslg/pas/service/business/invalidReport/AssoGroupFeatureService.java
  28. 14 0
      src/main/java/cn/cslg/pas/service/business/stabilityReport/AssoGroupReasonService.java
  29. 469 0
      src/main/java/cn/cslg/pas/service/business/stabilityReport/CompareRecordService.java
  30. 3 0
      src/main/java/cn/cslg/pas/service/common/MessageService.java
  31. 1 2
      src/main/java/cn/cslg/pas/service/importPatent/SavePatentToEsThread.java
  32. 2 2
      src/main/java/cn/cslg/pas/service/importPatent/TaskThread.java
  33. 16 8
      src/main/resources/jsons/event.json
  34. 18 9
      src/main/resources/jsons/patentProject.json
  35. 18 9
      src/main/resources/jsons/productCategory.json
  36. 10 5
      src/main/resources/jsons/productMarketData.json
  37. 4 2
      src/main/resources/jsons/rdProject.json
  38. 6 3
      src/main/resources/jsons/reportProject.json
  39. 4 3
      src/test/java/cn/cslg/pas/service/EsPatentServiceTests.java

+ 29 - 0
src/main/java/cn/cslg/pas/common/dto/stabilityReport/AddCompareRecordDTO.java

@@ -0,0 +1,29 @@
+package cn.cslg.pas.common.dto.stabilityReport;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AddCompareRecordDTO {
+    private Integer literatureId;
+    private String evidenceText;
+    private String fieldName;
+    private String common;
+    private Integer id;
+    private List<AssoFeature> assoFeatureList;
+
+    private Integer position;
+
+    private String markType;
+
+    private String markColor;
+    private String fileGuid;
+    @Data
+    public static  class  AssoFeature{
+        private Integer featureId;
+        private String conclusion;
+
+    }
+}

+ 14 - 0
src/main/java/cn/cslg/pas/common/dto/stabilityReport/AddCompareRecordGroupDTO.java

@@ -0,0 +1,14 @@
+package cn.cslg.pas.common.dto.stabilityReport;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AddCompareRecordGroupDTO {
+
+    private String common;
+    private  Integer claimSort;
+    private  Integer projectId;
+    private  List<Integer> groupReasonIds;
+}

+ 8 - 0
src/main/java/cn/cslg/pas/common/dto/stabilityReport/QueryAllCompareGroupDTO.java

@@ -0,0 +1,8 @@
+package cn.cslg.pas.common.dto.stabilityReport;
+
+import lombok.Data;
+
+@Data
+public class QueryAllCompareGroupDTO {
+    private Integer projectId;
+}

+ 8 - 0
src/main/java/cn/cslg/pas/common/dto/stabilityReport/QueryAllCompareRecordDTO.java

@@ -0,0 +1,8 @@
+package cn.cslg.pas.common.dto.stabilityReport;
+
+import lombok.Data;
+
+@Data
+public class QueryAllCompareRecordDTO {
+    private Integer projectId;
+}

+ 12 - 0
src/main/java/cn/cslg/pas/common/dto/stabilityReport/QueryCompareRecordDTO.java

@@ -0,0 +1,12 @@
+package cn.cslg.pas.common.dto.stabilityReport;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class QueryCompareRecordDTO {
+    private Integer literatureId;
+    private String common;
+
+}

+ 1 - 2
src/main/java/cn/cslg/pas/common/utils/parseQueryToTree/expressManager.java

@@ -9,6 +9,7 @@ public class expressManager {
     HashMap<String, Symbol> hSymbols = new HashMap<String, Symbol>();
     private static expressManager instance = new expressManager();
 
+
     private expressManager() {
         //#region 添加逻辑符号
         operate oAnd = new operate();
@@ -91,7 +92,6 @@ public class expressManager {
         oOR.operateValue = 2;
         hSymbols.put(oOR.Code, oOR);
 
-
         oOR = new operate();
         oOR.Code = "CONTAIN";
         oOR.ShowName = " LIKE ";
@@ -106,7 +106,6 @@ public class expressManager {
         first.Code = "(";
         first.isEndSymbol = false;
 
-
         pairSymbol end = new pairSymbol();
         end.Code = ")";
         end.previewSymbol = first;

+ 3 - 2
src/main/java/cn/cslg/pas/common/vo/CompareLiteratureVO.java

@@ -21,10 +21,11 @@ import java.util.Date;
  * @since 2022-12-8
  */
 @Data
-@TableName("compare_literature")
+
 /*数据库中的表对应的类
  */
-public class CompareLiteratureVO extends BaseEntity<CompareLiteratureVO> {
+public class CompareLiteratureVO  {
+    private Integer id;
     private Integer projectId;
     private String literatureNo;
     private String name;

+ 47 - 0
src/main/java/cn/cslg/pas/common/vo/stabilityReport/AllCompareGroupVO.java

@@ -0,0 +1,47 @@
+package cn.cslg.pas.common.vo.stabilityReport;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AllCompareGroupVO {
+    private String rightName;
+    /**
+     * 内容
+     */
+    private String rightContent;
+    private Integer rightSort;
+    private Integer groupId;
+    private String common;
+    private List<AllCompareGroupVO.FeatureMessage> featureMessages;
+    @Data
+    public static class FeatureMessage{
+        private String content;
+        private Integer sysOrder;
+        private String featureName;
+        private List<AllCompareGroupVO.EvidenceReason> evidenceReasons;
+    }
+    @Data
+    public static class EvidenceReason {
+        private Integer position;
+
+        private String markType;
+
+        private String markColor;
+        private String fileGuid;
+
+        private Integer literatureId;
+
+        private String evidenceText;
+
+        private String fieldName;
+
+        private String common;
+
+        private String literatureNo;
+        private String literatureName;
+        private Integer literatureType;
+        private Integer literatureSysOrder;
+    }
+}

+ 43 - 0
src/main/java/cn/cslg/pas/common/vo/stabilityReport/AllCompareRecordVO.java

@@ -0,0 +1,43 @@
+package cn.cslg.pas.common.vo.stabilityReport;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AllCompareRecordVO {
+    private String rightName;
+    /**
+     * 内容
+     */
+    private String rightContent;
+    private Integer rightSort;
+    private Integer rightType;
+    private String featureContent;
+    private Integer featureSysOrder;
+    private String featureName;
+    private Integer featureId;
+   private List<AllCompareRecordVO.EvidenceReason> evidenceReasons;
+    @Data
+    public static class EvidenceReason {
+        private Integer position;
+
+        private String markType;
+
+        private String markColor;
+        private String fileGuid;
+
+        private Integer literatureId;
+
+        private String evidenceText;
+
+        private String fieldName;
+
+        private String common;
+
+        private String literatureNo;
+        private String literatureName;
+        private Integer literatureType;
+        private Integer literatureSysOrder;
+    }
+}

+ 28 - 0
src/main/java/cn/cslg/pas/common/vo/stabilityReport/CompareRecordVO.java

@@ -0,0 +1,28 @@
+package cn.cslg.pas.common.vo.stabilityReport;
+
+import cn.cslg.pas.common.dto.stabilityReport.AddCompareRecordDTO;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CompareRecordVO {
+    private Integer literatureId;
+    private String evidenceText;
+    private String fieldName;
+    private String common;
+    private List<AssoFeature> assoFeatureList;
+
+    private Integer position;
+
+    private String markType;
+
+    private String markColor;
+    private String fileGuid;
+    private  Integer id;
+    @Data
+    public static class AssoFeature{
+        private Integer featureId;
+        private String conclusion;
+    }
+}

+ 1 - 0
src/main/java/cn/cslg/pas/controller/FeatureController.java

@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import io.swagger.v3.oas.annotations.Operation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 

+ 139 - 0
src/main/java/cn/cslg/pas/controller/StabilityReportController.java

@@ -0,0 +1,139 @@
+package cn.cslg.pas.controller;
+
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.dto.business.ReportTempleDTO;
+import cn.cslg.pas.common.dto.stabilityReport.*;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.common.vo.CompareLiteratureVO;
+import cn.cslg.pas.common.vo.business.TempleByReportTypeVO;
+import cn.cslg.pas.common.vo.stabilityReport.AllCompareGroupVO;
+import cn.cslg.pas.common.vo.stabilityReport.AllCompareRecordVO;
+import cn.cslg.pas.common.vo.stabilityReport.CompareRecordVO;
+import cn.cslg.pas.service.business.ProofGroupService;
+import cn.cslg.pas.service.business.stabilityReport.CompareRecordService;
+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.List;
+
+@Slf4j
+@RequestMapping(Constants.API_XiaoSHI + "/stabilityReport")
+@RestController
+public class StabilityReportController {
+    @Autowired
+    private CompareRecordService compareRecordService;
+    @Autowired
+    private ProofGroupService proofGroupService;
+
+    @Operation(summary = "添加对比记录")
+    @PostMapping("/addCompareRecord")
+    public Response addCompareRecord(@RequestBody AddCompareRecordDTO addCompareRecordDTO) {
+        Integer id = null;
+        try {
+            id = compareRecordService.addCompareRecord(addCompareRecordDTO);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+        return Response.success(id);
+    }
+
+    @Operation(summary = "查询对比文献对比记录")
+    @PostMapping("/queryCompareRecord")
+    public Response queryCompareRecord(@RequestBody QueryCompareRecordDTO queryCompareRecordDTO) {
+        Records records = new Records();
+        try {
+            List<CompareRecordVO> compareRecordVOS = compareRecordService.queryCompareRecord(queryCompareRecordDTO);
+            records.setData(compareRecordVOS);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+        return Response.success(records);
+    }
+
+    @Operation(summary = "删除对比文献记录")
+    @PostMapping("/removeCompareRecord")
+    public Response removeCompareRecord(@RequestBody List<Integer> ids) {
+        try {
+            compareRecordService.removeCompareRecord(ids);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+        return Response.success("");
+    }
+
+    @Operation(summary = "查询对比结果")
+    @PostMapping("/queryAllCompareRecord")
+    public Response queryAllCompareRecord(@RequestBody QueryAllCompareRecordDTO queryAllCompareRecordDTO) {
+        Records records = new Records();
+        try {
+            List<AllCompareRecordVO> compareRecordVOS = compareRecordService.queryAllCompareRecord(queryAllCompareRecordDTO);
+            records.setData(compareRecordVOS);
+
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+        return Response.success(records);
+    }
+
+
+    @Operation(summary = "添加对比方案")
+    @PostMapping("/addCompareRecordGroup")
+    public Response addCompareRecordGroup(@RequestBody AddCompareRecordGroupDTO addCompareRecordDTO) {
+        try {
+            Boolean flag = proofGroupService.addCompareRecordGroup(addCompareRecordDTO);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+        return Response.success("添加成功");
+    }
+
+    @Operation(summary = "删除对比方案")
+    @PostMapping("/removeCompareGroups")
+    public Response removeCompareGroups(@RequestBody List<Integer> ids) {
+        try {
+            Boolean flag = compareRecordService.removeCompareGroups(ids);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+
+        return Response.success("删除成功");
+    }
+
+
+    @Operation(summary = "查询对比方案")
+    @PostMapping("/getCompareGroups")
+    public Response getCompareGroups(@RequestBody QueryAllCompareGroupDTO queryAllCompareGroupDTO) {
+        Records records = new Records();
+        try {
+            List<AllCompareGroupVO> vos = compareRecordService.getCompareGroups(queryAllCompareGroupDTO);
+            records.setData(vos);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+
+        return Response.success(records);
+    }
+
+    @Operation(summary = " 查询已经对比过的文献信息")
+    @PostMapping("/getComparedLiteratures")
+    public Response getComparedLiteratures(Integer projectId) {
+        Records records = new Records();
+        try {
+            List<CompareLiteratureVO> compareLiteratureVOS = compareRecordService.getComparedLiteratures(projectId);
+            records.setData(compareLiteratureVOS);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+
+        return Response.success(records);
+    }
+
+
+}

+ 24 - 0
src/main/java/cn/cslg/pas/domain/business/AssoGroupReason.java

@@ -0,0 +1,24 @@
+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;
+
+@Data
+@TableName("asso_group_reason")
+public class AssoGroupReason extends BaseEntity<AssoGroupReason> {
+
+    @TableField(value = "reason_id")
+    private Integer reasonId;
+
+    @TableField(value = "feature_id")
+    private Integer featureId;
+
+    //证据组合
+    @TableField(value = "group_id")
+    private Integer groupId;
+
+    @TableField(value = "conclusion")
+    private String conclusion;
+}

+ 9 - 1
src/main/java/cn/cslg/pas/domain/business/AssoReasonLiterature.java

@@ -7,10 +7,18 @@ import lombok.Data;
 
 @Data
 @TableName("asso_reason_literature")
-public class AssoReasonLiterature  extends BaseEntity<AssoReasonLiterature> {
+public class AssoReasonLiterature extends BaseEntity<AssoReasonLiterature> {
 
     @TableField(value = "reason_id")
     private Integer reasonId;
     @TableField(value = "literature_id")
     private Integer literatureId;
+    @TableField(value = "position")
+    private Integer position;
+    @TableField(value = "field_name")
+    private String fieldName;
+    @TableField(value = "mark_type")
+    private String markType;
+    @TableField(value = "mark_color")
+    private String markColor;
 }

+ 6 - 2
src/main/java/cn/cslg/pas/domain/business/EvidenceReason.java

@@ -3,6 +3,7 @@ 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 com.mchange.v1.cachedstore.Vacuumable;
 import lombok.Data;
 
 import java.util.Date;
@@ -23,7 +24,7 @@ public class EvidenceReason extends BaseEntity<EvidenceReason> {
     @TableField(value = "description")
     private String description;
     @TableField(value = "create_id")
-    private  String createId;
+    private String createId;
     @TableField(value = "create_time")
     private String createTime;
 
@@ -54,7 +55,7 @@ public class EvidenceReason extends BaseEntity<EvidenceReason> {
     private String rbDecisionKey;
 
     /**
-     *复审委概括
+     * 复审委概括
      */
     @TableField(value = "rb_summary")
     private String rbSummary;
@@ -106,4 +107,7 @@ public class EvidenceReason extends BaseEntity<EvidenceReason> {
      */
     @TableField(value = "court_opinions2")
     private String courtOpinions2;
+
+    @TableField(value = "file_guid")
+    private String fileGuid;
 }

+ 5 - 0
src/main/java/cn/cslg/pas/domain/business/ProofGroup.java

@@ -130,4 +130,9 @@ public class ProofGroup extends BaseEntity<ProofGroup> {
     @TableField(value = "court_opinions2")
     private String courtOpinions2;
 
+    @TableField(value = "claim_sort")
+    private Integer claimSort;
+
+    @TableField(value = "project_id")
+    private Integer projectId;
 }

+ 1 - 1
src/main/java/cn/cslg/pas/factorys/getOrderFactory/GetComOrder.java

@@ -12,7 +12,7 @@ public class GetComOrder implements GetOrderObject {
 
     @Override
     public String getOrderString(String orderBy,Integer orderType) {
-     if(orderType.equals(0)){
+     if(orderType!=null&&orderType.equals(0)){
       return orderBy+" asc";
 
      }

+ 1 - 1
src/main/java/cn/cslg/pas/factorys/getOrderFactory/GetProjectScenarioOrder.java

@@ -32,7 +32,7 @@ public class GetProjectScenarioOrder implements GetOrderObject {
         orderBy =" COALESCE("+orderBy+",'null')";
         String idStr = StringUtils.join(idsStr, ",");
         String orderStr = " field(" + orderBy + "," + idStr + ")";
-        if(orderType.equals(0)){
+        if(orderType!=null&&orderType.equals(0)){
 
             orderStr+=" asc";
         }

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

@@ -0,0 +1,16 @@
+package cn.cslg.pas.mapper.stabilityReport;
+
+import cn.cslg.pas.domain.business.AssoEventFile;
+import cn.cslg.pas.domain.business.AssoGroupReason;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 任务可见栏位表
+ *
+ * @author chenyu
+ * @date 2023/10/20
+ */
+@Repository
+public interface AssoGroupReasonMapper extends BaseMapper<AssoGroupReason> {
+}

+ 138 - 45
src/main/java/cn/cslg/pas/service/business/CompareLiteratureService.java

@@ -35,6 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -71,52 +72,56 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
     private MessageService messageService;
 
     //添加专利对比文献
+
     public Integer addPatentCompareLiterature(Patent patent, Integer projectId, String createId) {
-        Integer id = null;
-        id = this.getHaveAddIdByNos(projectId, patent.getPatentNo());
-
-        //根据专利号和报告id查询是否已经保存
-        if (id == null) {
-            CompareLiterature compareLiterature = new CompareLiterature();
-            compareLiterature.setCreateId(createId);
-            //报告id
-            compareLiterature.setProjectId(projectId);
-            //文档guid
-            compareLiterature.setLiteratureNo(patent.getPatentNo());
-            //文档名称
-            String name = patent.getPatentNo();
-
-            //作者
-            String authorName = "";
-            Integer order = 1;
-            //根据报告id获得最大序号
-            LambdaQueryWrapper<CompareLiterature> queryWrapper = new LambdaQueryWrapper<>();
-            queryWrapper.eq(CompareLiterature::getProjectId, projectId);
-            CompareLiterature compareLiteratureBig = this.getOne(queryWrapper, false);
-            if (compareLiteratureBig != null && compareLiteratureBig.getSysOrder() != null) {
-                order = compareLiteratureBig.getSysOrder() + 1;
-            }
-            if (patent != null) {
-                if (patent.getTitle() != null && patent.getTitle().size() != 0) {
-                    name += "(" + patent.getTitle().get(0).getTextContent();
+        synchronized ("导入任务是否完成") {
+            Integer id = null;
+            id = this.getHaveAddIdByNos(projectId, patent.getPatentNo());
+
+            //根据专利号和报告id查询是否已经保存
+            if (id == null) {
+                CompareLiterature compareLiterature = new CompareLiterature();
+                compareLiterature.setCreateId(createId);
+                //报告id
+                compareLiterature.setProjectId(projectId);
+                //文档guid
+                compareLiterature.setLiteratureNo(patent.getPatentNo());
+                //文档名称
+                String name = patent.getPatentNo();
+
+                //作者
+                String authorName = "";
+                Integer order = 1;
+                //根据报告id获得最大序号
+                LambdaQueryWrapper<CompareLiterature> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(CompareLiterature::getProjectId, projectId).orderByDesc(CompareLiterature::getSysOrder);
+                CompareLiterature compareLiteratureBig = this.getOne(queryWrapper, false);
+                if (compareLiteratureBig != null && compareLiteratureBig.getSysOrder() != null) {
+                    order = compareLiteratureBig.getSysOrder() + 1;
                 }
-                compareLiterature.setAppDate(patent.getAppDate());
-                compareLiterature.setPublicDate(patent.getPublicDate());
-                if (patent.getRightHolder() != null && patent.getRightHolder().size() != 0) {
-                    authorName = patent.getRightHolder().get(0).getName();
+                if (patent != null) {
+                    if (patent.getTitle() != null && patent.getTitle().size() != 0) {
+                        name += "(" + patent.getTitle().get(0).getTextContent();
+                    }
+                    compareLiterature.setAppDate(patent.getAppDate());
+                    compareLiterature.setPublicDate(patent.getPublicDate());
+                    if (patent.getRightHolder() != null && patent.getRightHolder().size() != 0) {
+                        authorName = patent.getRightHolder().get(0).getName();
+                    }
                 }
+                compareLiterature.setName(name);
+                //描述
+                //作者
+                compareLiterature.setAuthorName(authorName);
+                //类型
+                compareLiterature.setType(0);
+                //装载排序
+                compareLiterature.setSysOrder(order);
+                compareLiterature.insert();
+                return compareLiterature.getId();
             }
-            compareLiterature.setName(name);
-            //描述
-            //作者
-            compareLiterature.setAuthorName(authorName);
-            //类型
-            compareLiterature.setType(1);
-            //装载排序
-            compareLiterature.setSysOrder(order);
-            return compareLiterature.getId();
+            return id;
         }
-        return id;
     }
 
     //添加非对比文献
@@ -168,7 +173,7 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
         //根据对比projectId 查询对比文献
         LambdaQueryWrapper<CompareLiterature> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(CompareLiterature::getProjectId, projectId)
-                    .orderByAsc(CompareLiterature::getSysOrder);
+                .orderByAsc(CompareLiterature::getSysOrder);
         List<CompareLiterature> compareLiteratures = new ArrayList<>();
 
         if (literatureQueryDTO.getCurrent() != null && literatureQueryDTO.getSize() != null) {
@@ -513,11 +518,99 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
         return null;
     }
 
-    public Boolean deleteCompareLiterature(List<Integer> ids){
-        if(ids==null||ids.size()<=0){
+    public Boolean deleteCompareLiterature(List<Integer> ids) {
+        if (ids == null || ids.size() <= 0) {
             throw new XiaoShiException("请选择对比文献");
         }
-       return this.removeBatchByIds(ids);
+        return this.removeBatchByIds(ids);
+
+    }
+
+
+    public List<CompareLiteratureVO> getByIds(List<Integer> ids) {
+        LambdaQueryWrapper<CompareLiterature> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(CompareLiterature::getId, ids);
+        List<CompareLiterature> compareLiteratures = this.list(queryWrapper);
+        List<CompareLiteratureVO> compareLiteratureVOS = this.loadBaseMessage(compareLiteratures);
+        return compareLiteratureVOS;
+    }
+
+
+    public List<CompareLiteratureVO> loadBaseMessage(List<CompareLiterature> compareLiteratures) {
+
+        //查询标的专利号
+        List<CompareLiteratureVO> compareLiteratureVOS = new ArrayList<>();
+
+        //非专利文献列表
+        List<String> guids = compareLiteratures.stream().filter(item -> item.getType().equals(1)).map(CompareLiterature::getLiteratureNo).collect(Collectors.toList());
+
+        //专利文献列表
+        List<String> patentNos = compareLiteratures.stream().filter(item -> item.getType().equals(0)).map(CompareLiterature::getLiteratureNo).collect(Collectors.toList());
+        List<Patent> patentList = new ArrayList<>();
+
+
+        if (patentNos.size() > 0) {
+            try {
+                patentList = esPatentService.getPatentsByNo(patentNos, false, null, null);
+            } catch (Exception e) {
+                throw new XiaoShiException("装载文献信息失败");
+            }
+        }
+
+
+        //查询文件
+        List<SystemFile> systemFiles = new ArrayList<>();
+
+        //查询文件
+        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 (CompareLiterature compareLiterature : compareLiteratures) {
+            Integer id = compareLiterature.getId();
+            String literatureNo = compareLiterature.getLiteratureNo();
+            Date publicDate = compareLiterature.getPublicDate();
+            CompareLiteratureVO compareLiteratureVO = new CompareLiteratureVO();
+            BeanUtils.copyProperties(compareLiterature, compareLiteratureVO);
+            //当为专利文献时
+            if (compareLiterature.getType().equals(0)) {
+                compareLiteratureVO.setFitType(0);
+                if (patentList.size() > 0) {
+                    Patent patent = patentList.stream()
+                            .filter(item -> literatureNo.equals(item.getAppNo())
+                                    || literatureNo.equals(item.getPublicNo()) ||
+                                    literatureNo.equals(item.getGrantNo())).findFirst().orElse(null);
+                    if (patent != null) {
+                        compareLiteratureVO.setAppNo(patent.getAppNo());
+                        compareLiteratureVO.setAppDate(patent.getAppDate());
+                        compareLiteratureVO.setPublicDate(patent.getPublicDate());
+                        compareLiteratureVO.setPublicNo(patent.getPublicNo());
+                        compareLiteratureVO.setGrantDate(patent.getGrantDate());
+                        compareLiteratureVO.setGrantNo(patent.getGrantNo());
+
+                    }
+                }
+
+            }
+            //非专利文献
+            else {
+                //装载文件
+                if (literatureNo != null && systemFiles != null && systemFiles.size() != 0) {
+                    SystemFile systemFile = systemFiles.stream().filter(item -> item.getGuid().equals(literatureNo)).findFirst().orElse(null);
+                    if (systemFile != null) {
+                        compareLiteratureVO.setSystemFile(systemFile);
+                    }
+                }
+            }
+            compareLiteratureVOS.add(compareLiteratureVO);
+        }
 
+        return compareLiteratureVOS;
     }
 }

+ 49 - 5
src/main/java/cn/cslg/pas/service/business/FeatureService.java

@@ -7,6 +7,7 @@ import cn.cslg.pas.common.dto.invalidDTO.QueryClaimSplitHistoryDTO;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.utils.CacheUtils;
+import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.utils.PatentRightUtils;
 import cn.cslg.pas.common.vo.*;
 import cn.cslg.pas.common.vo.business.SplitVO;
@@ -37,6 +38,8 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
     @Autowired
     private CacheUtils cacheUtils;
     @Autowired
+    private LoginUtils loginUtils;
+    @Autowired
     private EsService esService;
     @Autowired
     private ReportProjectService reportProjectService;
@@ -53,7 +56,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
     private AssoGroupFeatureService assoGroupFeatureService;
 
     @Transactional(rollbackFor = Exception.class)
-    public List<PatentRightVo> splitPatentFeature(SplitVO splitVO) throws IOException {
+    public List<PatentRightVo>  splitPatentFeature(SplitVO splitVO) throws IOException {
         String patentNo = splitVO.getPatentNo();
         Integer projectId = splitVO.getProjectId();
         Integer splitType = splitVO.getSplitType();
@@ -61,10 +64,8 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
         Integer taskId = splitVO.getTaskId();
         Boolean ifReSplit = splitVO.getIfReSplit();
 
-//        PersonnelVO personnelVO = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
-        PersonnelVO personnelVO = new PersonnelVO();
-        personnelVO.setId("1");
-        personnelVO.setTenantId(1);
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+
         //根据报告ID查询报告
         LambdaQueryWrapper<ReportProject> queryWrapper = new LambdaQueryWrapper();
         queryWrapper.eq(ReportProject::getProjectId, projectId);
@@ -419,4 +420,47 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
         return records;
     }
 
+
+    /**
+     * 获得已经拆分过的特征
+     *
+     * @param splitVO
+     */
+    public List<Feature> getSplitedFeature(SplitVO splitVO) {
+        List<PatentRightVo> patentRightVos = new ArrayList<>();
+        Integer projectId = splitVO.getProjectId();
+        String patentNo = splitVO.getPatentNo();
+
+        //当未传入专利号时,从报告里拿标的专利
+        if (patentNo == null || patentNo.equals("")) {
+            LambdaQueryWrapper<ReportProject> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(ReportProject::getProjectId, projectId);
+            ReportProject reportProject = reportProjectService.getOne(queryWrapper, false);
+            if (reportProject == null) {
+                throw new XiaoShiException("未查到报告");
+            }
+            patentNo = reportProject.getSignPatentNo();
+        }
+
+
+        LambdaQueryWrapper<PatentSplitMessage> splitWrapper = new LambdaQueryWrapper<>();
+        splitWrapper.eq(PatentSplitMessage::getPatentNo, patentNo);
+        splitWrapper.eq(PatentSplitMessage::getProjectId, projectId);
+
+        PatentSplitMessage patentSplitMessage = patentSplitMessageService.getOne(splitWrapper, false);
+
+        LambdaQueryWrapper<Feature> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Feature::getProjectId, projectId)
+                .eq(Feature::getPatentNo, patentNo)
+                .eq(Feature::getSplitMessageId, patentSplitMessage.getId());
+        List<Feature> allFeatures = this.list(wrapper);
+        return allFeatures;
+    }
+
+    public void saveBatchFeature(){
+
+
+
+
+    }
 }

+ 5 - 0
src/main/java/cn/cslg/pas/service/business/ProjectTaskService.java

@@ -726,6 +726,11 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
                     projectTask.updateById();
                 }
 
+            } else {
+                if (type.equals(1)) {
+                    projectTask.setStatus(5);
+                    projectTask.updateById();
+                }
             }
         } else {
             throw new XiaoShiException("该任务不存在");

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

@@ -4,13 +4,17 @@ import cn.cslg.pas.common.dto.DomainFieldDTO;
 import cn.cslg.pas.common.dto.invalidDTO.AddProofGroupDTO;
 import cn.cslg.pas.common.dto.invalidDTO.GetProofGroupDTO;
 import cn.cslg.pas.common.dto.invalidDTO.UpdateMessageDTO;
+import cn.cslg.pas.common.dto.stabilityReport.AddCompareRecordGroupDTO;
+import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.utils.GenerateObjectUtil;
 import cn.cslg.pas.common.vo.invalidVO.ProofGroupVO;
 import cn.cslg.pas.domain.business.AssoGroupFeature;
+import cn.cslg.pas.domain.business.AssoGroupReason;
 import cn.cslg.pas.domain.business.InvalidStatutes;
 import cn.cslg.pas.domain.business.ProofGroup;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.ProofGroupMapper;
+import cn.cslg.pas.service.business.stabilityReport.AssoGroupReasonService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
@@ -35,6 +39,8 @@ public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup>
     @Autowired
     private InvalidStatutesService invalidStatutesService;
 
+    @Autowired
+    private AssoGroupReasonService assoGroupReasonService;
     /**
      * 添加or修改证据组合
      *
@@ -207,4 +213,24 @@ public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup>
 
 
     }
+
+    public Boolean addCompareRecordGroup(AddCompareRecordGroupDTO addCompareRecordGroupDTO){
+      List<Integer> groupReasonIds =addCompareRecordGroupDTO.getGroupReasonIds();
+            //添加对比方案
+        PersonnelVO personnelVO =new PersonnelVO();
+        personnelVO.setId("1");
+        ProofGroup proofGroup =new ProofGroup();
+        proofGroup.setCommon1(addCompareRecordGroupDTO.getCommon());
+        proofGroup.setProjectId(addCompareRecordGroupDTO.getProjectId());
+        proofGroup.setClaimSort(addCompareRecordGroupDTO.getClaimSort());
+        proofGroup.insert();
+
+        //遍历特征和无效理由关联
+        groupReasonIds.forEach(item->{
+          AssoGroupReason assoGroupReason= assoGroupReasonService.getById(item);
+             assoGroupReason.setGroupId(proofGroup.getId());
+            assoGroupReason.insert();
+        });
+        return  true;
+    }
 }

+ 1 - 1
src/main/java/cn/cslg/pas/service/business/SystemDictService.java

@@ -71,7 +71,7 @@ public class SystemDictService extends ServiceImpl<SystemDictMapper, SystemDict>
         LambdaQueryWrapper<SystemDict> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.select(SystemDict::getValue);
         queryWrapper.eq(SystemDict::getType, "ENTERPRISE_APPLICATION_SCENARIO");
-        if(orderType.equals(0)){
+        if(orderType!=null&&orderType.equals(0)){
             queryWrapper.orderByAsc(SystemDict::getLabel);
         }
         else{

+ 3 - 1
src/main/java/cn/cslg/pas/service/business/TreeNodeService.java

@@ -480,7 +480,9 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
         //查询文件
         if (guids.size() != 0) {
             String res = fileManagerService.getSystemFileFromFMS(guids);
-            systemFiles = JSONObject.parseArray(res, SystemFile.class);
+            if (res != null && !res.equals("")) {
+                systemFiles = JSONObject.parseArray(res, SystemFile.class);
+            }
         }
 
         //装载信息

+ 3 - 0
src/main/java/cn/cslg/pas/service/business/es/EsPatentService.java

@@ -242,6 +242,9 @@ public class EsPatentService {
         if (current!=null&&size!=null&&current > 0 && size > 0) {
             builder.from((current.intValue() - 1) * size.intValue()).size(size.intValue());
         }
+        else {
+            builder.from(0).size(10000);
+        }
         SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
         List<Hit<Patent>> hits = response.hits().hits();
         if (hits != null && hits.size() > 0) {

+ 2 - 0
src/main/java/cn/cslg/pas/service/business/invalidReport/AssoGroupFeatureService.java

@@ -7,6 +7,8 @@ import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.utils.GenerateObjectUtil;
 import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.common.vo.PatentRightVo;
+import cn.cslg.pas.common.vo.business.SplitVO;
 import cn.cslg.pas.common.vo.invalidVO.GroupFeatureHistoryVO;
 import cn.cslg.pas.domain.business.*;
 import cn.cslg.pas.exception.XiaoShiException;

+ 14 - 0
src/main/java/cn/cslg/pas/service/business/stabilityReport/AssoGroupReasonService.java

@@ -0,0 +1,14 @@
+package cn.cslg.pas.service.business.stabilityReport;
+
+
+import cn.cslg.pas.domain.business.AssoEventFile;
+import cn.cslg.pas.domain.business.AssoGroupReason;
+import cn.cslg.pas.mapper.AssoEventFileMapper;
+import cn.cslg.pas.mapper.stabilityReport.AssoGroupReasonMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class AssoGroupReasonService extends ServiceImpl<AssoGroupReasonMapper, AssoGroupReason> {
+
+}

+ 469 - 0
src/main/java/cn/cslg/pas/service/business/stabilityReport/CompareRecordService.java

@@ -0,0 +1,469 @@
+package cn.cslg.pas.service.business.stabilityReport;
+
+import cn.cslg.pas.common.dto.stabilityReport.AddCompareRecordDTO;
+import cn.cslg.pas.common.dto.stabilityReport.QueryAllCompareGroupDTO;
+import cn.cslg.pas.common.dto.stabilityReport.QueryAllCompareRecordDTO;
+import cn.cslg.pas.common.dto.stabilityReport.QueryCompareRecordDTO;
+import cn.cslg.pas.common.model.importTaskModel.PatentRight;
+import cn.cslg.pas.common.vo.CompareLiteratureVO;
+import cn.cslg.pas.common.vo.PatentRightVo;
+import cn.cslg.pas.common.vo.RePatentClaim;
+import cn.cslg.pas.common.vo.business.SplitVO;
+import cn.cslg.pas.common.vo.stabilityReport.AllCompareGroupVO;
+import cn.cslg.pas.common.vo.stabilityReport.AllCompareRecordVO;
+import cn.cslg.pas.common.vo.stabilityReport.CompareRecordVO;
+import cn.cslg.pas.domain.business.*;
+import cn.cslg.pas.exception.XiaoShiException;
+import cn.cslg.pas.service.business.CompareLiteratureService;
+import cn.cslg.pas.service.business.FeatureService;
+import cn.cslg.pas.service.business.ProofGroupService;
+import cn.cslg.pas.service.business.ReportProjectService;
+import cn.cslg.pas.service.business.invalidReport.AssoGroupFeatureService;
+import cn.cslg.pas.service.business.invalidReport.AssoReasonLiteratureService;
+import cn.cslg.pas.service.business.invalidReport.EvidenceReasonService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.apache.commons.math3.ml.neuralnet.FeatureInitializerFactory;
+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;
+import java.util.stream.Collectors;
+
+/**
+ *
+ */
+@Service
+public class CompareRecordService {
+    @Autowired
+    private AssoGroupReasonService assoGroupReasonService;
+    @Autowired
+    private AssoReasonLiteratureService assoReasonLiteratureService;
+    @Autowired
+    private EvidenceReasonService evidenceReasonService;
+
+    @Autowired
+    private FeatureService featureService;
+
+    @Autowired
+    private ReportProjectService reportProjectService;
+
+    @Autowired
+    private CompareLiteratureService compareLiteratureService;
+    @Autowired
+    private ProofGroupService proofGroupService;
+
+    public Integer addCompareRecord(AddCompareRecordDTO addCompareRecordDTO) {
+        List<AddCompareRecordDTO.AssoFeature> assoFeatureList = addCompareRecordDTO.getAssoFeatureList();
+        Integer id = addCompareRecordDTO.getId();
+        //添加对比记录
+        EvidenceReason evidenceReason = new EvidenceReason();
+        if (id != null) {
+            evidenceReason = evidenceReasonService.getById(id);
+            evidenceReason.setEvidenceText(addCompareRecordDTO.getEvidenceText());
+            evidenceReason.setDescription(addCompareRecordDTO.getCommon());
+            evidenceReason.setFileGuid(addCompareRecordDTO.getFileGuid());
+            evidenceReason.updateById();
+            LambdaQueryWrapper<AssoReasonLiterature> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(AssoReasonLiterature::getReasonId, id);
+            assoReasonLiteratureService.remove(queryWrapper);
+            LambdaQueryWrapper<AssoGroupReason> queryWrapper1 = new LambdaQueryWrapper<>();
+            queryWrapper1.eq(AssoGroupReason::getReasonId, id);
+            assoGroupReasonService.remove(queryWrapper1);
+        } else {
+            evidenceReason.setEvidenceText(addCompareRecordDTO.getEvidenceText());
+            evidenceReason.setDescription(addCompareRecordDTO.getCommon());
+            evidenceReason.setFileGuid(addCompareRecordDTO.getFileGuid());
+            evidenceReason.insert();
+        }
+        AssoReasonLiterature assoReasonLiterature = new AssoReasonLiterature();
+        assoReasonLiterature.setReasonId(evidenceReason.getId());
+        assoReasonLiterature.setLiteratureId(addCompareRecordDTO.getLiteratureId());
+        assoReasonLiterature.setMarkColor(addCompareRecordDTO.getMarkColor());
+        assoReasonLiterature.setMarkType(addCompareRecordDTO.getMarkType());
+        assoReasonLiterature.setPosition(addCompareRecordDTO.getPosition());
+        assoReasonLiterature.setFieldName(addCompareRecordDTO.getFieldName());
+        assoReasonLiterature.insert();
+
+        if (assoFeatureList != null && assoFeatureList.size() != 0) {
+            for (AddCompareRecordDTO.AssoFeature item : assoFeatureList) {
+                //根据特征id 查询证据组合和特征关联
+                AssoGroupReason assoGroupReason = new AssoGroupReason();
+                assoGroupReason.setFeatureId(item.getFeatureId());
+                assoGroupReason.setConclusion(item.getConclusion());
+                assoGroupReason.setReasonId(evidenceReason.getId());
+                assoGroupReason.insert();
+            }
+        }
+        return id;
+    }
+
+
+    /**
+     * 批量删除证据组合
+     *
+     * @param ids
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean removeCompareRecord(List<Integer> ids) {
+        if (ids == null || ids.size() == 0) {
+            throw new XiaoShiException("请至少选择一个记录");
+        }
+        //根据对比记录id
+        LambdaQueryWrapper<AssoGroupReason> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(AssoGroupReason::getReasonId, ids);
+        queryWrapper.isNotNull(AssoGroupReason::getGroupId);
+        List<AssoGroupReason> assoGroupReasons = assoGroupReasonService.list(queryWrapper);
+        if (assoGroupReasons.size() != 0) {
+            List<Integer> reasonIds = assoGroupReasons.stream().map(AssoGroupReason::getReasonId).collect(Collectors.toList());
+            throw new XiaoShiException("对比记录与方案有关联,请先删除方案");
+
+        }
+        //删除证据组合关联
+        LambdaQueryWrapper<AssoGroupReason> queryWrapper1 = new LambdaQueryWrapper<>();
+        queryWrapper.in(AssoGroupReason::getReasonId, ids);
+        assoGroupReasonService.remove(queryWrapper);
+
+        //删除和对比文献关联
+        LambdaQueryWrapper<AssoReasonLiterature> queryWrapper2 = new LambdaQueryWrapper<>();
+        queryWrapper2.in(AssoReasonLiterature::getReasonId, ids);
+        assoReasonLiteratureService.remove(queryWrapper2);
+        //删除无效理由
+        evidenceReasonService.removeBatchByIds(ids);
+        return true;
+
+    }
+
+    /**
+     * 查询对比记录
+     * lrj
+     *
+     * @param queryCompareRecordDTO
+     * @return
+     */
+    public List<CompareRecordVO> queryCompareRecord(QueryCompareRecordDTO queryCompareRecordDTO) {
+        List<CompareRecordVO> recordVOS = new ArrayList<>();
+        //根据对比文献id 查询无效理由和特征
+        Integer literatureId = queryCompareRecordDTO.getLiteratureId();
+        LambdaQueryWrapper<AssoReasonLiterature> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AssoReasonLiterature::getLiteratureId, literatureId);
+        List<AssoReasonLiterature> assoReasonLiteratures = assoReasonLiteratureService.list(queryWrapper);
+
+        for (AssoReasonLiterature assoReasonLiterature : assoReasonLiteratures) {
+            Integer reasonId = assoReasonLiterature.getReasonId();
+            CompareRecordVO compareRecordVO = new CompareRecordVO();
+            compareRecordVO.setFieldName(assoReasonLiterature.getFieldName());
+            compareRecordVO.setMarkColor(assoReasonLiterature.getMarkColor());
+            compareRecordVO.setMarkType(assoReasonLiterature.getMarkType());
+            compareRecordVO.setPosition(assoReasonLiterature.getPosition());
+            compareRecordVO.setLiteratureId(literatureId);
+            //根据对比记录id查询对比记录
+            EvidenceReason evidenceReason = evidenceReasonService.getById(reasonId);
+            compareRecordVO.setEvidenceText(evidenceReason.getEvidenceText());
+            compareRecordVO.setCommon(evidenceReason.getDescription());
+            compareRecordVO.setId(evidenceReason.getId());
+            compareRecordVO.setFileGuid(evidenceReason.getFileGuid());
+            //根据对比记录id查询特征
+            LambdaQueryWrapper<AssoGroupReason> queryWrapper1 = new LambdaQueryWrapper<>();
+            queryWrapper1.eq(AssoGroupReason::getReasonId, reasonId)
+                    .isNull(AssoGroupReason::getGroupId);
+            List<AssoGroupReason> assoGroupReasons = assoGroupReasonService.list(queryWrapper1);
+            List<CompareRecordVO.AssoFeature> assoFeatureList = new ArrayList<>();
+            assoGroupReasons.forEach(item -> {
+                CompareRecordVO.AssoFeature assoFeature = new CompareRecordVO.AssoFeature();
+                assoFeature.setFeatureId(item.getFeatureId());
+                assoFeature.setConclusion(item.getConclusion());
+                assoFeatureList.add(assoFeature);
+            });
+            compareRecordVO.setAssoFeatureList(assoFeatureList);
+        recordVOS.add(compareRecordVO);
+        }
+        return recordVOS;
+    }
+
+
+    public List<AllCompareRecordVO> queryAllCompareRecord(QueryAllCompareRecordDTO dto) {
+        List<AllCompareRecordVO> vos = new ArrayList<>();
+        Integer projectId = dto.getProjectId();
+
+        //查询标的专利号
+        LambdaQueryWrapper<ReportProject> reportWrapper = new LambdaQueryWrapper<>();
+        reportWrapper.eq(ReportProject::getProjectId, projectId);
+        ReportProject reportProject = reportProjectService.getOne(reportWrapper, false);
+        if (reportProject == null) {
+            throw new XiaoShiException("未查到报告");
+        }
+        String patentNo = reportProject.getSignPatentNo();
+
+
+        //获得特征
+        SplitVO splitVO = new SplitVO();
+        splitVO.setProjectId(dto.getProjectId());
+        splitVO.setPatentNo(patentNo);
+        List<Feature> features = featureService.getSplitedFeature(splitVO);
+        List<Integer> ids = features.stream().map(Feature::getId).collect(Collectors.toList());
+
+        //查询拆分下的权要
+        List<RePatentClaim> patentRights = new ArrayList<>();
+        try {
+            patentRights = featureService.getRightListByNo(patentNo);
+        } catch (Exception e) {
+            throw new XiaoShiException("获得权要失败");
+        }
+
+        //根据特征id 查询对比记录
+        LambdaQueryWrapper<AssoGroupReason> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AssoGroupReason::getFeatureId, ids)
+                .isNull(AssoGroupReason::getGroupId);
+        List<AssoGroupReason> assoGroupReasons = assoGroupReasonService.list(queryWrapper);
+
+        //遍历特征获得内容
+        for (Feature feature : features) {
+
+            // 装载特征信息
+            AllCompareRecordVO allCompareRecordVO = new AllCompareRecordVO();
+            allCompareRecordVO.setFeatureContent(feature.getContent());
+            allCompareRecordVO.setFeatureSysOrder(feature.getSysOrder());
+            allCompareRecordVO.setFeatureName("特征" + feature.getSysOrder());
+            allCompareRecordVO.setFeatureId(feature.getId());
+
+            //装载权要信息
+            RePatentClaim rePatentClaim = patentRights.stream().filter(item -> item.getSort().equals(feature.getRightSort())).findFirst().orElse(null);
+            if (rePatentClaim != null) {
+                allCompareRecordVO.setRightName(rePatentClaim.getRightName());
+                allCompareRecordVO.setRightContent(rePatentClaim.getContent());
+                allCompareRecordVO.setRightSort(rePatentClaim.getSort());
+                allCompareRecordVO.setRightType(rePatentClaim.getType());
+            }
+
+            //装载无效理由
+            List<AssoGroupReason> assoGroupReasons1 = assoGroupReasons.stream()
+                    .filter(item -> item.getFeatureId().equals(feature.getId()))
+                    .collect(Collectors.toList());
+            List<Integer> reasonIds = assoGroupReasons1.stream().map(AssoGroupReason::getReasonId).collect(Collectors.toList());
+            //根据无效理由id 查询无效理由
+            LambdaQueryWrapper<EvidenceReason> queryWrapper1 = new LambdaQueryWrapper<>();
+            queryWrapper1.in(EvidenceReason::getId, reasonIds);
+            List<EvidenceReason> evidenceReasons = evidenceReasonService.list(queryWrapper1);
+
+            //根据无效理由id 查询无效理由和文献关联
+            LambdaQueryWrapper<AssoReasonLiterature> queryWrapper2 = new LambdaQueryWrapper<>();
+            queryWrapper2.in(AssoReasonLiterature::getReasonId, reasonIds);
+            List<AssoReasonLiterature> assoReasonLiteratures = assoReasonLiteratureService.list(queryWrapper2);
+            //根据文献id查询文献列表
+            List<Integer> literatureIds = assoReasonLiteratures.stream().map(AssoReasonLiterature::getLiteratureId).collect(Collectors.toList());
+            List<CompareLiteratureVO> compareLiteratureVOS = compareLiteratureService.getByIds(literatureIds);
+
+            List<AllCompareRecordVO.EvidenceReason> evidenceReasonList = new ArrayList<>();
+
+            //装载无效理由
+            evidenceReasons.forEach(item -> {
+                AllCompareRecordVO.EvidenceReason evidenceReason = new AllCompareRecordVO.EvidenceReason();
+                evidenceReason.setEvidenceText(item.getEvidenceText());
+                evidenceReason.setCommon(item.getDescription());
+                //根据无效理由id 查询无效理由和文献关联
+                AssoReasonLiterature assoReasonLiteratureTmp = assoReasonLiteratures.stream()
+                        .filter(t -> t.getReasonId().equals(item.getId())).findFirst().orElse(null);
+                //装载划词信息
+                if (assoReasonLiteratureTmp != null) {
+                    evidenceReason.setLiteratureId(assoReasonLiteratureTmp.getLiteratureId());
+                    evidenceReason.setFieldName(assoReasonLiteratureTmp.getFieldName());
+                    evidenceReason.setPosition(assoReasonLiteratureTmp.getPosition());
+                    //装载文献信息
+                    CompareLiteratureVO compareLiteratureVO = compareLiteratureVOS.stream()
+                            .filter(t -> t.getId().equals(assoReasonLiteratureTmp.getLiteratureId()))
+                            .findFirst().orElse(null);
+                    if (compareLiteratureVO != null) {
+                        evidenceReason.setLiteratureNo(compareLiteratureVO.getLiteratureNo());
+                        evidenceReason.setLiteratureName(compareLiteratureVO.getName());
+                        evidenceReason.setLiteratureSysOrder(compareLiteratureVO.getSysOrder());
+                        evidenceReason.setLiteratureType(compareLiteratureVO.getType());
+                    }
+                }
+
+                evidenceReasonList.add(evidenceReason);
+            });
+            allCompareRecordVO.setEvidenceReasons(evidenceReasonList);
+            vos.add(allCompareRecordVO);
+        }
+        return vos;
+    }
+
+    public List<AllCompareGroupVO> getCompareGroups(QueryAllCompareGroupDTO queryCompareRecordDTO) {
+        List<AllCompareGroupVO> allCompareGroupVOS = new ArrayList<>();
+        Integer projectId = queryCompareRecordDTO.getProjectId();
+        //根据ProjectId查询对比组合
+        LambdaQueryWrapper<ProofGroup> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ProofGroup::getProjectId, projectId);
+        List<ProofGroup> proofGroups = proofGroupService.list(queryWrapper);
+
+        //查询标的专利号
+        LambdaQueryWrapper<ReportProject> reportWrapper = new LambdaQueryWrapper<>();
+        reportWrapper.eq(ReportProject::getProjectId, projectId);
+        ReportProject reportProject = reportProjectService.getOne(reportWrapper, false);
+        if (reportProject == null) {
+            throw new XiaoShiException("未查到报告");
+        }
+        String patentNo = reportProject.getSignPatentNo();
+
+        //查询拆分下的权要
+        List<RePatentClaim> patentRights = new ArrayList<>();
+        try {
+            patentRights = featureService.getRightListByNo(patentNo);
+        } catch (Exception e) {
+            throw new XiaoShiException("获得权要失败");
+        }
+
+        //获得特征
+        SplitVO splitVO = new SplitVO();
+        splitVO.setProjectId(projectId);
+        List<Feature> features = featureService.getSplitedFeature(splitVO);
+
+        //装载证据组合
+        for (ProofGroup proofGroup : proofGroups) {
+            AllCompareGroupVO allCompareGroupVO = new AllCompareGroupVO();
+            Integer id = proofGroup.getId();
+            Integer claimSort = proofGroup.getClaimSort();
+            allCompareGroupVO.setGroupId(id);
+            allCompareGroupVO.setCommon(proofGroup.getCommon1());
+            //获得权要并装载
+            RePatentClaim rePatentClaim = patentRights.stream().filter(item -> item.getSort().equals(claimSort)).findFirst().orElse(null);
+            if (rePatentClaim != null) {
+                allCompareGroupVO.setRightName(rePatentClaim.getRightName());
+                allCompareGroupVO.setRightSort(rePatentClaim.getSort());
+                allCompareGroupVO.setRightContent(rePatentClaim.getContent());
+            }
+            //根据组合id 查询对比记录
+            LambdaQueryWrapper<AssoGroupReason> queryWrapper1 = new LambdaQueryWrapper<>();
+            queryWrapper1.eq(AssoGroupReason::getGroupId, id);
+            List<AssoGroupReason> assoGroupReasons = assoGroupReasonService.list(queryWrapper1);
+            //获得特征
+            List<Feature> featuresList = features.stream()
+                    .filter(item -> item.getRightSort().equals(claimSort)).collect(Collectors.toList());
+            List<AllCompareGroupVO.FeatureMessage> featureMessages = new ArrayList<>();
+            for (Feature feature : featuresList) {
+                AllCompareGroupVO.FeatureMessage featureMessage = new AllCompareGroupVO.FeatureMessage();
+                featureMessage.setFeatureName("特征" + feature.getSysOrder());
+                featureMessage.setSysOrder(feature.getSysOrder());
+                featureMessage.setContent(feature.getContent());
+                List<AllCompareGroupVO.EvidenceReason> evidenceReasons = new ArrayList<>();
+                //根据特征id查询无效理由
+                List<AssoGroupReason> assoGroupReasonList = assoGroupReasons.stream()
+                        .filter(item -> item.getFeatureId().equals(feature.getId()))
+                        .collect(Collectors.toList());
+                //获得无效理由id
+                if (assoGroupReasonList.size() != 0) {
+                    List<Integer> reasonIds = assoGroupReasonList.stream().map(AssoGroupReason::getReasonId).collect(Collectors.toList());
+                    //根据无效理由id 查询无效理由
+                    LambdaQueryWrapper<EvidenceReason> queryWrapper2 = new LambdaQueryWrapper<>();
+                    queryWrapper2.in(EvidenceReason::getId, reasonIds);
+                    List<EvidenceReason> evidenceReasonList = evidenceReasonService.list(queryWrapper2);
+
+                    //根据无效理由id 查询无效理由和文献关联
+                    LambdaQueryWrapper<AssoReasonLiterature> queryWrapper3 = new LambdaQueryWrapper<>();
+                    queryWrapper3.in(AssoReasonLiterature::getReasonId, reasonIds);
+                    List<AssoReasonLiterature> assoReasonLiteratures = assoReasonLiteratureService.list(queryWrapper3);
+                    //根据文献id查询文献列表
+                    List<Integer> literatureIds = assoReasonLiteratures.stream().map(AssoReasonLiterature::getLiteratureId).collect(Collectors.toList());
+                    List<CompareLiteratureVO> compareLiteratureVOS = compareLiteratureService.getByIds(literatureIds);
+
+
+                    //装载无效理由
+                    evidenceReasonList.forEach(item -> {
+                        AllCompareGroupVO.EvidenceReason evidenceReason = new AllCompareGroupVO.EvidenceReason();
+                        evidenceReason.setEvidenceText(item.getEvidenceText());
+                        evidenceReason.setCommon(item.getDescription());
+                        //根据无效理由id 查询无效理由和文献关联
+                        AssoReasonLiterature assoReasonLiteratureTmp = assoReasonLiteratures.stream()
+                                .filter(t -> t.getReasonId().equals(item.getId())).findFirst().orElse(null);
+                        //装载划词信息
+                        if (assoReasonLiteratureTmp != null) {
+                            evidenceReason.setLiteratureId(assoReasonLiteratureTmp.getLiteratureId());
+                            evidenceReason.setFieldName(assoReasonLiteratureTmp.getFieldName());
+                            evidenceReason.setPosition(assoReasonLiteratureTmp.getPosition());
+                            //装载文献信息
+                            CompareLiteratureVO compareLiteratureVO = compareLiteratureVOS.stream()
+                                    .filter(t -> t.getId().equals(assoReasonLiteratureTmp.getLiteratureId()))
+                                    .findFirst().orElse(null);
+                            if (compareLiteratureVO != null) {
+                                evidenceReason.setLiteratureNo(compareLiteratureVO.getLiteratureNo());
+                                evidenceReason.setLiteratureName(compareLiteratureVO.getName());
+                                evidenceReason.setLiteratureSysOrder(compareLiteratureVO.getSysOrder());
+                                evidenceReason.setLiteratureType(compareLiteratureVO.getType());
+                            }
+                        }
+
+                        evidenceReasons.add(evidenceReason);
+                    });
+
+                }
+                featureMessage.setEvidenceReasons(evidenceReasons);
+                allCompareGroupVO.setFeatureMessages(featureMessages);
+            }
+            allCompareGroupVOS.add(allCompareGroupVO);
+        }
+        return allCompareGroupVOS;
+    }
+
+    /**
+     * 批量删除证据组合
+     *
+     * @param ids
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean removeCompareGroups(List<Integer> ids) {
+        if (ids == null || ids.size() == 0) {
+            throw new XiaoShiException("请至少选择一个方案");
+        }
+        //删除证据组合关联
+        LambdaQueryWrapper<AssoGroupReason> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(AssoGroupReason::getGroupId, ids);
+        assoGroupReasonService.remove(queryWrapper);
+        //删除证据组合
+        proofGroupService.removeBatchByIds(ids);
+        return true;
+
+    }
+
+
+    /**
+     * 获得已对比的文献
+     */
+    public List<CompareLiteratureVO> getComparedLiteratures(Integer projectId) {
+
+        List<CompareLiteratureVO> compareLiteratureVOS = new ArrayList<>();
+        //查询标的专利号
+        LambdaQueryWrapper<ReportProject> reportWrapper = new LambdaQueryWrapper<>();
+        reportWrapper.eq(ReportProject::getProjectId, projectId);
+        ReportProject reportProject = reportProjectService.getOne(reportWrapper, false);
+        if (reportProject == null) {
+            throw new XiaoShiException("未查到报告");
+        }
+
+        //获得特征
+        SplitVO splitVO = new SplitVO();
+        splitVO.setProjectId(projectId);
+        List<Feature> features = featureService.getSplitedFeature(splitVO);
+        List<Integer> ids = features.stream().map(Feature::getId).collect(Collectors.toList());
+        LambdaQueryWrapper<AssoGroupReason> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(AssoGroupReason::getFeatureId, ids);
+        List<AssoGroupReason> assoGroupReasons = assoGroupReasonService.list(queryWrapper);
+        if (assoGroupReasons != null) {
+            List<Integer> reasonIds = assoGroupReasons.stream().map(AssoGroupReason::getReasonId).collect(Collectors.toList());
+            //根据reasonIds查询对比文献id
+            LambdaQueryWrapper<AssoReasonLiterature> queryWrapper1 = new LambdaQueryWrapper<>();
+            queryWrapper1.in(AssoReasonLiterature::getReasonId, reasonIds);
+            List<AssoReasonLiterature> assoReasonLiteratures = assoReasonLiteratureService.list(queryWrapper1);
+            if (assoReasonLiteratures.size() != 0) {
+                List<Integer> literatureIds = assoReasonLiteratures.stream().map(AssoReasonLiterature::getLiteratureId).collect(Collectors.toList());
+                compareLiteratureVOS = compareLiteratureService.getByIds(literatureIds);
+            }
+        }
+        return compareLiteratureVOS;
+    }
+
+
+}

+ 3 - 0
src/main/java/cn/cslg/pas/service/common/MessageService.java

@@ -36,6 +36,9 @@ public class MessageService {
         } else if (type.equals(2)) {
             doneNum = patentProcess.getPictureDoneNum();
         }
+        else if(type.equals(-1)){
+             doneNum=patentProcess.getPatentDoneNum();
+        }
         long percentage = (long) Math.floor((doneNum + 0D) / importTaskAMVO.getAllNum() * 100D);
         //通过WebSocket 在每一次循环结束后 向前端发送完成进度
         //当任务状态为完成时,flag为true

+ 1 - 2
src/main/java/cn/cslg/pas/service/importPatent/SavePatentToEsThread.java

@@ -84,7 +84,7 @@ public class SavePatentToEsThread extends Thread {
 
                         //添加报告对比文件
                         if (importTaskAMVO.getProjectType() != null && importTaskAMVO.getProjectType().equals(1)) {
-                            if (importTaskAMVO.getType().equals(7)) {
+                            if (importTaskAMVO.getReportType().equals(7)||importTaskAMVO.getReportType().equals(1)||importTaskAMVO.getReportType().equals(2)) {
                                 CompareLiteratureService compareLiteratureService = applicationContext.getBean(CompareLiteratureService.class);
                                 compareLiteratureService.addPatentCompareLiterature(patent, importTaskAMVO.getProjectId(), importTaskAMVO.getCreateId());
                             }
@@ -118,7 +118,6 @@ public class SavePatentToEsThread extends Thread {
             }
         }
         taskThread.awakeTaskThread();
-        System.out.println("done");
     }
 
     public SavePatentToEsThread(TaskThread taskThread, ApplicationContext applicationContext) {

+ 2 - 2
src/main/java/cn/cslg/pas/service/importPatent/TaskThread.java

@@ -149,7 +149,7 @@ public class TaskThread extends Thread {
                     taskThreadLock.unlock();
                 }
                 MessageService messageService = applicationContext.getBean(MessageService.class);
-                messageService.sendWebsocketMessage(importTaskAMVO, 0, patentProcess);
+                messageService.sendWebsocketMessage(importTaskAMVO, -1, patentProcess);
             }
         }
     }
@@ -196,7 +196,7 @@ public class TaskThread extends Thread {
                 patentProcess.setPatentDoneNum(min);
                 importTaskAMVO.setDoneNum(min);
                 MessageService messageService = applicationContext.getBean(MessageService.class);
-                messageService.sendWebsocketMessage(importTaskAMVO, 1, this.patentProcess);
+                messageService.sendWebsocketMessage(importTaskAMVO, -1, this.patentProcess);
             }
         }
     }

+ 16 - 8
src/main/resources/jsons/event.json

@@ -10,7 +10,8 @@
     "groupClass": "",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "false"
+    "ifShow": "false",
+    "ifAsCondition": "true"
   },
   {
     "name": "事件名称",
@@ -23,7 +24,8 @@
     "groupClass": "getComGroup",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "报告数量",
@@ -56,7 +58,8 @@
     "orderClass": "getClientNameOrder",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "发生时间",
@@ -69,7 +72,8 @@
     "groupClass": "getTimeGroup",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "应用场景",
@@ -82,7 +86,8 @@
     "groupClass": "getScenarioGroup",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "创建人",
@@ -95,7 +100,8 @@
     "groupClass": "getComGroup",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "创建时间",
@@ -108,7 +114,8 @@
     "groupClass": "getTimeGroup",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "描述",
@@ -120,7 +127,8 @@
     "orderClass": "getComOrder",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "创建月份",

+ 18 - 9
src/main/resources/jsons/patentProject.json

@@ -52,7 +52,8 @@
     "groupClass": "getScenarioGroup",
     "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "相关事件",
@@ -65,7 +66,8 @@
     "groupClass": "getScenarioGroup",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "false"
+    "ifShow": "false",
+    "ifAsCondition": "true"
   },
   {
     "name": "负责人名称",
@@ -79,7 +81,8 @@
     "ifSearch": "true",
     "ifGroup": "false",
     "ifShow": "true",
-    "defaultHidden": "true"
+    "defaultHidden": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "负责部门",
@@ -93,7 +96,8 @@
     "ifSearch": "true",
     "ifGroup": "false",
     "ifShow": "true",
-    "defaultHidden": "true"
+    "defaultHidden": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "委托方",
@@ -107,7 +111,8 @@
     "ifSearch": "true",
     "ifGroup": "false",
     "ifShow": "true",
-    "defaultHidden": "true"
+    "defaultHidden": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "委托方",
@@ -134,7 +139,8 @@
     "groupClass": "getScenarioGroup",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "调查类型",
@@ -148,7 +154,8 @@
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",
-    "defaultHidden": "true"
+    "defaultHidden": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "产品或产品类别名称",
@@ -230,7 +237,8 @@
     "groupClass": "getComGroup",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "创建时间",
@@ -243,7 +251,8 @@
     "groupClass": "getTimeGroup",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "描述",

+ 18 - 9
src/main/resources/jsons/productCategory.json

@@ -9,7 +9,8 @@
     "groupClass":"",
     "ifSearch":"true",
     "ifGroup": "false",
-    "ifShow":"true"
+    "ifShow":"true",
+    "ifAsCondition": "true"
   },
   {"name":"产品类别名称",
     "type":"String",
@@ -21,7 +22,8 @@
     "groupClass":"",
     "ifSearch":"true",
     "ifGroup": "false",
-    "ifShow":"true"
+    "ifShow":"true",
+    "ifAsCondition": "true"
   },
   {"name":"产品类别参考许可费率",
     "type":"Double",
@@ -67,7 +69,8 @@
     "orderClass": "getCreateNameOrder",
     "ifSearch":"true",
     "ifGroup": "false",
-    "ifShow":"true"
+    "ifShow":"true",
+    "ifAsCondition": "true"
   },
   {
     "name":"产品类别创建时间",
@@ -79,7 +82,8 @@
     "sqlClass": "getDateTimeSql",
     "ifSearch":"true",
     "ifGroup": "false",
-    "ifShow":"true"
+    "ifShow":"true",
+    "ifAsCondition": "true"
   },
   {"name":"产品Id",
     "type":"Integer",
@@ -91,7 +95,8 @@
     "groupClass":"",
     "ifSearch":"true",
     "ifGroup": "false",
-    "ifShow":"false"
+    "ifShow":"false",
+    "ifAsCondition": "true"
   },
   {"name":"产品名称",
     "type":"String",
@@ -103,7 +108,8 @@
     "groupClass":"",
     "ifSearch":"true",
     "ifGroup": "false",
-    "ifShow":"false"
+    "ifShow":"false",
+    "ifAsCondition": "true"
   },
   {"name":"产品上市时间",
     "type":"DateTime",
@@ -114,7 +120,8 @@
     "orderClass": "",
     "ifSearch":"true",
     "ifGroup": "false",
-    "ifShow":"false"
+    "ifShow":"false",
+    "ifAsCondition": "true"
   },
   {"name":"产品创建人",
     "type":"String",
@@ -125,7 +132,8 @@
     "orderClass": "",
     "ifSearch":"true",
     "ifGroup": "false",
-    "ifShow":"false"
+    "ifShow":"false",
+    "ifAsCondition": "true"
   },
   {
     "name":"产品创建时间",
@@ -137,6 +145,7 @@
     "orderClass": "",
     "ifSearch":"true",
     "ifGroup": "false",
-    "ifShow":"false"
+    "ifShow":"false",
+    "ifAsCondition": "true"
   }
 ]

+ 10 - 5
src/main/resources/jsons/productMarketData.json

@@ -49,7 +49,8 @@
     "groupClass": "",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "销售量",
@@ -99,7 +100,8 @@
     "groupClass": "getComGroup",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "创建时间",
@@ -112,7 +114,8 @@
     "groupClass": "getTimeGroup",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "年",
@@ -164,7 +167,8 @@
     "groupClass": "",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "公司名称",
@@ -177,6 +181,7 @@
     "groupClass": "",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   }
 ]

+ 4 - 2
src/main/resources/jsons/rdProject.json

@@ -9,7 +9,8 @@
     "groupClass":"",
     "ifSearch":"true",
     "ifGroup": "true",
-    "ifShow":"true"
+    "ifShow":"true",
+    "ifAsCondition": "true"
   },
   {"name":"事件名称",
   "type":"String",
@@ -21,6 +22,7 @@
     "groupClass":"getComGroup",
   "ifSearch":"true",
   "ifGroup": "true",
-    "ifShow":"true"
+    "ifShow":"true",
+    "ifAsCondition": "true"
 }
 ]

+ 6 - 3
src/main/resources/jsons/reportProject.json

@@ -215,7 +215,8 @@
     "groupClass":"getScenarioGroup",
     "ifSearch":"true",
     "ifGroup": "false",
-    "ifShow":"false"
+    "ifShow":"false",
+    "ifAsCondition": "true"
   },
   {"name":"内部卷号",
     "type":"String",
@@ -266,7 +267,8 @@
     "ifSearch":"true",
     "ifGroup": "true",
     "ifShow":"false",
-    "defaultHidden": "true"
+    "defaultHidden": "true",
+    "ifAsCondition": "true"
   },
   {"name":"应用场景",
     "type":"Array",
@@ -278,6 +280,7 @@
     "groupClass":"getScenarioGroup",
     "ifSearch":"true",
     "ifGroup": "true",
-    "ifShow":"true"
+    "ifShow":"true",
+    "ifAsCondition": "true"
   }
 ]

+ 4 - 3
src/test/java/cn/cslg/pas/service/EsPatentServiceTests.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.service;
 
 import cn.cslg.pas.controller.AvoidDesignController;
+import cn.cslg.pas.domain.es.Patent;
 import cn.cslg.pas.service.business.AvoidDesignService;
 import cn.cslg.pas.service.business.es.EsFamilyService;
 import cn.cslg.pas.service.business.es.EsPatentService;
@@ -37,9 +38,9 @@ public class EsPatentServiceTests {
     @Test
     public void getPatentsByNo() throws Exception {
         List<String> patentNos =new ArrayList<>();
-        patentNos.add("CN201910069334.7");
-        patentNos.add("CN201110286649.0");
-        esPatentService.getPatentsByNo(patentNos,true,null,null);
+        patentNos.add("CN201721042063.9");
+        List<Patent> patentList= esPatentService.getPatentsByNo(patentNos,true,null,null);
+    System.out.println(patentList);
     }
     @Test
     public  void getFamilys() throws Exception{