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

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

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

+ 1 - 1
pom.xml

@@ -254,7 +254,7 @@
     </dependencies>
 
     <build>
-        <finalName>PAS_PROD2.0</finalName>
+        <finalName>PAS_PROD_TEST</finalName>
         <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>

+ 9 - 0
src/main/java/cn/cslg/pas/common/config/ElasticSearchClientConfig.java

@@ -40,6 +40,15 @@ public class ElasticSearchClientConfig {
             ElasticsearchTransport transport = new RestClientTransport(client,new JacksonJsonpMapper());
             return new ElasticsearchClient(transport);
         }
+//                @Bean
+//        public ElasticsearchClient elasticsearchClient() throws Exception {
+//            RestClientBuilder builder = RestClient.builder(new HttpHost("47.101.137.223", 9200, "http"));
+//            RestClient client =builder.build();
+//            ElasticsearchTransport transport = new RestClientTransport(client,new JacksonJsonpMapper());
+//
+//                    return new ElasticsearchClient(transport);
+//        }
+
 
     }
 }

+ 4 - 4
src/main/java/cn/cslg/pas/common/config/WebSocketConfig.java

@@ -6,8 +6,8 @@ import org.springframework.web.socket.server.standard.ServerEndpointExporter;
 
 @Configuration
 public class WebSocketConfig {
-    @Bean
-    public ServerEndpointExporter serverEndpointExporter() {
-        return new ServerEndpointExporter();
-    }
+//    @Bean
+//    public ServerEndpointExporter serverEndpointExporter() {
+//        return new ServerEndpointExporter();
+//    }
 }

+ 11 - 3
src/main/java/cn/cslg/pas/common/dto/stabilityReport/AddCompareRecordGroupDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.dto.stabilityReport;
 
+import cn.cslg.pas.domain.business.AssoGroupFeature;
 import lombok.Data;
 
 import java.util.List;
@@ -8,7 +9,14 @@ import java.util.List;
 public class AddCompareRecordGroupDTO {
 
     private String common;
-    private  Integer claimSort;
-    private  Integer projectId;
-    private  List<Integer> groupReasonIds;
+    private Integer claimSort;
+    private Integer projectId;
+    private List<AssoReasonFeature> assoReasonFeatures;
+
+    @Data
+    public static class AssoReasonFeature {
+        private Integer featureId;
+        private Integer reasonId;
+
+    }
 }

+ 2 - 1
src/main/java/cn/cslg/pas/common/vo/stabilityReport/AllCompareGroupVO.java

@@ -36,12 +36,13 @@ public class AllCompareGroupVO {
         private String evidenceText;
 
         private String fieldName;
-
+        private Integer evidenceId;
         private String common;
 
         private String literatureNo;
         private String literatureName;
         private Integer literatureType;
         private Integer literatureSysOrder;
+        private String conclusion;
     }
 }

+ 2 - 1
src/main/java/cn/cslg/pas/common/vo/stabilityReport/AllCompareRecordVO.java

@@ -20,6 +20,7 @@ public class AllCompareRecordVO {
    private List<AllCompareRecordVO.EvidenceReason> evidenceReasons;
     @Data
     public static class EvidenceReason {
+        private String conclusion;
         private Integer position;
 
         private String markType;
@@ -30,7 +31,7 @@ public class AllCompareRecordVO {
         private Integer literatureId;
 
         private String evidenceText;
-
+        private Integer evidenceId;
         private String fieldName;
 
         private String common;

+ 5 - 7
src/main/java/cn/cslg/pas/controller/StabilityReportController.java

@@ -16,10 +16,7 @@ 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 org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -86,12 +83,13 @@ public class StabilityReportController {
     @Operation(summary = "添加对比方案")
     @PostMapping("/addCompareRecordGroup")
     public Response addCompareRecordGroup(@RequestBody AddCompareRecordGroupDTO addCompareRecordDTO) {
+        Integer id=null;
         try {
-            Boolean flag = proofGroupService.addCompareRecordGroup(addCompareRecordDTO);
+             id = proofGroupService.addCompareRecordGroup(addCompareRecordDTO);
         } catch (Exception e) {
             return Response.error(e.getMessage());
         }
-        return Response.success("添加成功");
+        return Response.success(id);
     }
 
     @Operation(summary = "删除对比方案")
@@ -122,7 +120,7 @@ public class StabilityReportController {
     }
 
     @Operation(summary = " 查询已经对比过的文献信息")
-    @PostMapping("/getComparedLiteratures")
+    @GetMapping("/getComparedLiteratures")
     public Response getComparedLiteratures(Integer projectId) {
         Records records = new Records();
         try {

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

@@ -72,7 +72,6 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
     private MessageService messageService;
 
     //添加专利对比文献
-
     public Integer addPatentCompareLiterature(Patent patent, Integer projectId, String createId) {
         synchronized ("导入任务是否完成") {
             Integer id = null;
@@ -101,7 +100,7 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
                 }
                 if (patent != null) {
                     if (patent.getTitle() != null && patent.getTitle().size() != 0) {
-                        name += "(" + patent.getTitle().get(0).getTextContent();
+                        name += "(" + patent.getTitle().get(0).getTextContent()+")";
                     }
                     compareLiterature.setAppDate(patent.getAppDate());
                     compareLiterature.setPublicDate(patent.getPublicDate());
@@ -529,7 +528,8 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
 
     public List<CompareLiteratureVO> getByIds(List<Integer> ids) {
         LambdaQueryWrapper<CompareLiterature> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.in(CompareLiterature::getId, ids);
+        queryWrapper.in(CompareLiterature::getId, ids)
+                   .orderByAsc(CompareLiterature::getSysOrder);
         List<CompareLiterature> compareLiteratures = this.list(queryWrapper);
         List<CompareLiteratureVO> compareLiteratureVOS = this.loadBaseMessage(compareLiteratures);
         return compareLiteratureVOS;

+ 32 - 16
src/main/java/cn/cslg/pas/service/business/ProofGroupService.java

@@ -6,7 +6,9 @@ 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.CacheUtils;
 import cn.cslg.pas.common.utils.GenerateObjectUtil;
+import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.vo.invalidVO.ProofGroupVO;
 import cn.cslg.pas.domain.business.AssoGroupFeature;
 import cn.cslg.pas.domain.business.AssoGroupReason;
@@ -21,6 +23,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.ArrayList;
@@ -41,6 +44,11 @@ public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup>
 
     @Autowired
     private AssoGroupReasonService assoGroupReasonService;
+    @Autowired
+    private CacheUtils cacheUtils;
+    @Autowired
+    private LoginUtils loginUtils;
+
     /**
      * 添加or修改证据组合
      *
@@ -151,7 +159,7 @@ public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup>
     public Boolean updateMessage(@RequestBody UpdateMessageDTO updateMessageDTO) {
         List<Integer> ids = updateMessageDTO.getIds();
         List<DomainFieldDTO> domainFieldDTOS = updateMessageDTO.getFieldList();
-        for(Integer id:ids) {
+        for (Integer id : ids) {
             ProofGroup proofGroup = this.getById(id);
             if (proofGroup == null) {
                 throw new XiaoShiException("证据不存在");
@@ -205,7 +213,7 @@ public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup>
      * @return
      */
     public Boolean removeProofGroup(List<Integer> ids) {
-        if(ids==null||ids.size()==0){
+        if (ids == null || ids.size() == 0) {
             throw new XiaoShiException("请至少选择一个组合");
         }
         this.removeBatchByIds(ids);
@@ -214,23 +222,31 @@ 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();
+    @Transactional(rollbackFor = Exception.class)
+    public Integer addCompareRecordGroup(AddCompareRecordGroupDTO addCompareRecordGroupDTO) {
+List<AddCompareRecordGroupDTO.AssoReasonFeature> assoReasonFeatures =addCompareRecordGroupDTO.getAssoReasonFeatures();
+       if(assoReasonFeatures==null||assoReasonFeatures.size()==0){
+           throw new XiaoShiException("请至少选择一个对比记录");
+       }
+        //添加对比方案
+        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;
+        Integer id = proofGroup.getId();
+
+        List<AssoGroupReason> assoGroupReasons =new ArrayList<>();
+        for(AddCompareRecordGroupDTO.AssoReasonFeature assoReasonFeature :assoReasonFeatures){
+            AssoGroupReason assoGroupReason =new AssoGroupReason();
+            assoGroupReason.setGroupId(proofGroup.getId());
+            assoGroupReason.setFeatureId(assoReasonFeature.getFeatureId());
+            assoGroupReason.setReasonId(assoReasonFeature.getReasonId());
+            assoGroupReasons.add(assoGroupReason);
+        }
+        if(assoGroupReasons!=null&&assoGroupReasons.size()!=0) {
+            assoGroupReasonService.saveBatch(assoGroupReasons);
+        }
+        return id;
     }
 }

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

@@ -497,7 +497,9 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         LambdaQueryWrapper<ReportProject> reportProjectWrapper = new LambdaQueryWrapper<>();
         reportProjectWrapper.eq(ReportProject::getProjectId, project.getId());
         ReportProject reportProject = this.getOne(reportProjectWrapper);
+        Integer reportId =reportProject.getId();
         BeanUtils.copyProperties(updateReportProjectDTO, reportProject);
+       reportProject.setId(reportId);
         reportProject.updateById();
 
         /**

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

@@ -145,24 +145,23 @@ public class AssoGroupFeatureService extends ServiceImpl<AssoGroupFeatureMapper,
      */
     public Boolean removeGroupFeature(RemoveGroupFeatureDTO removeGroupFeatureDTO) {
         Integer featureId = removeGroupFeatureDTO.getFeatureId();
+
+        //根据特征id 查询世代及排序
+        LambdaQueryWrapper<AssoGroupFeature> queryWrapper =new LambdaQueryWrapper<>();
+        queryWrapper.eq(AssoGroupFeature::getFeatureId,featureId);
+        AssoGroupFeature assoGroupFeature =this.getOne(queryWrapper,false);
+        Integer featureOrder = assoGroupFeature.getFeatureOrder();
+
         Boolean ifFirstEdit = removeGroupFeatureDTO.getIfFirstEdit();
         Integer featureGen = 1;
         if (ifFirstEdit != null && ifFirstEdit.equals(false)) {
             featureGen = 2;
         }
-        //获得上一个世代值
-        Integer lastGen = featureGen - 1;
+
 
         //根据特征id查询证据组合和特征关联
-        LambdaQueryWrapper<AssoGroupFeature> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(AssoGroupFeature::getFeatureId, featureId).eq(AssoGroupFeature::getFeatureGen, lastGen);
-        List<AssoGroupFeature> assoGroupFeatures = this.list(queryWrapper);
-        if (assoGroupFeatures.size() != 0) {
-            for (AssoGroupFeature assoGroupFeature : assoGroupFeatures) {
-                //查询是否存在世代
-                Integer genFeatureId = assoGroupFeature.getFeatureId();
+                Integer genFeatureId = removeGroupFeatureDTO.getFeatureId();
                 Integer genGroupId = assoGroupFeature.getGroupId();
-                Integer featureOrder = assoGroupFeature.getFeatureOrder();
                 AssoGroupFeature assoGroupFeature1 = this.getGenGroupFeature(genGroupId, genFeatureId, featureGen);
                 if (assoGroupFeature1 == null) {
                     assoGroupFeature1 = new AssoGroupFeature();
@@ -170,17 +169,18 @@ public class AssoGroupFeatureService extends ServiceImpl<AssoGroupFeatureMapper,
                     assoGroupFeature1.setFeatureGen(featureGen);
                     assoGroupFeature1.setOperateMode(1);
                     assoGroupFeature1.setFeaturePreId(genFeatureId);
+                    assoGroupFeature1.setFeatureOrder(featureOrder);
                     assoGroupFeature1.insert();
                 } else {
                     assoGroupFeature1.setGroupId(genGroupId);
                     assoGroupFeature1.setFeatureGen(featureGen);
                     assoGroupFeature1.setOperateMode(1);
                     assoGroupFeature1.setFeaturePreId(genFeatureId);
+                    featureOrder=assoGroupFeature1.getFeatureOrder();
                     assoGroupFeature1.updateById();
                 }
                 this.updateGroupFeatureOrder(genGroupId, featureOrder, featureGen);
-            }
-        }
+
         return true;
     }
 

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

@@ -235,7 +235,7 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
                         queryEvidenceReasonVO.setFeIfPresentOpinions1(item.getIfPresentOpinions1());
                         queryEvidenceReasonVO.setFeIfPresentOpinions2(item.getIfPresentOpinions2());
                         queryEvidenceReasonVO.setFePresentOpinions1(item.getPresentOpinions1());
-                        queryEvidenceReasonVO.setFeIfPresentOpinions2(item.getIfPresentOpinions2());
+                        queryEvidenceReasonVO.setFePresentOpinions2(item.getPresentOpinions2());
                         queryEvidenceReasonVO.setFeInvalidReasonDetail1(item.getInvalidReasonDetail1());
                         queryEvidenceReasonVO.setFeInvalidReasonDetail2(item.getInvalidReasonDetail2());
                         queryEvidenceReasonVO.setFeRbDecisionKey(item.getRbDecisionKey());

+ 95 - 54
src/main/java/cn/cslg/pas/service/business/stabilityReport/CompareRecordService.java

@@ -54,6 +54,7 @@ public class CompareRecordService {
     @Autowired
     private ProofGroupService proofGroupService;
 
+    @Transactional(rollbackFor = Exception.class)
     public Integer addCompareRecord(AddCompareRecordDTO addCompareRecordDTO) {
         List<AddCompareRecordDTO.AssoFeature> assoFeatureList = addCompareRecordDTO.getAssoFeatureList();
         Integer id = addCompareRecordDTO.getId();
@@ -76,6 +77,7 @@ public class CompareRecordService {
             evidenceReason.setDescription(addCompareRecordDTO.getCommon());
             evidenceReason.setFileGuid(addCompareRecordDTO.getFileGuid());
             evidenceReason.insert();
+            id = evidenceReason.getId();
         }
         AssoReasonLiterature assoReasonLiterature = new AssoReasonLiterature();
         assoReasonLiterature.setReasonId(evidenceReason.getId());
@@ -178,7 +180,7 @@ public class CompareRecordService {
                 assoFeatureList.add(assoFeature);
             });
             compareRecordVO.setAssoFeatureList(assoFeatureList);
-        recordVOS.add(compareRecordVO);
+            recordVOS.add(compareRecordVO);
         }
         return recordVOS;
     }
@@ -215,7 +217,7 @@ public class CompareRecordService {
 
         //根据特征id 查询对比记录
         LambdaQueryWrapper<AssoGroupReason> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(AssoGroupReason::getFeatureId, ids)
+        queryWrapper.in(AssoGroupReason::getFeatureId, ids)
                 .isNull(AssoGroupReason::getGroupId);
         List<AssoGroupReason> assoGroupReasons = assoGroupReasonService.list(queryWrapper);
 
@@ -244,25 +246,41 @@ public class CompareRecordService {
                     .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<EvidenceReason> evidenceReasons = new ArrayList<>();
 
+            List<AssoReasonLiterature> assoReasonLiteratures = new ArrayList<>();
+            if (reasonIds != null && reasonIds.size() != 0) {
+                LambdaQueryWrapper<EvidenceReason> queryWrapper1 = new LambdaQueryWrapper<>();
+                queryWrapper1.in(EvidenceReason::getId, reasonIds);
+                evidenceReasons = evidenceReasonService.list(queryWrapper1);
+
+                //根据无效理由id 查询无效理由和文献关联
+                LambdaQueryWrapper<AssoReasonLiterature> queryWrapper2 = new LambdaQueryWrapper<>();
+                queryWrapper2.in(AssoReasonLiterature::getReasonId, reasonIds);
+                assoReasonLiteratures = assoReasonLiteratureService.list(queryWrapper2);
+            }
+
+            //根据文献id查询文献列表
+            List<CompareLiteratureVO> compareLiteratureVOS = new ArrayList<>();
+            if (assoReasonLiteratures.size() != 0) {
+                List<Integer> literatureIds = assoReasonLiteratures.stream().map(AssoReasonLiterature::getLiteratureId).collect(Collectors.toList());
+                compareLiteratureVOS = compareLiteratureService.getByIds(literatureIds);
+            }
             List<AllCompareRecordVO.EvidenceReason> evidenceReasonList = new ArrayList<>();
 
             //装载无效理由
-            evidenceReasons.forEach(item -> {
+
+            for (EvidenceReason item : evidenceReasons) {
                 AllCompareRecordVO.EvidenceReason evidenceReason = new AllCompareRecordVO.EvidenceReason();
                 evidenceReason.setEvidenceText(item.getEvidenceText());
                 evidenceReason.setCommon(item.getDescription());
+                evidenceReason.setEvidenceId(item.getId());
+                evidenceReason.setFileGuid(item.getFileGuid());
+                AssoGroupReason assoGroupReason =assoGroupReasons1.stream().filter(i->i.getReasonId().equals(item.getId())).findFirst().orElse(null);
+                if(assoGroupReason!=null){
+                    evidenceReason.setConclusion(assoGroupReason.getConclusion());
+                }
+
                 //根据无效理由id 查询无效理由和文献关联
                 AssoReasonLiterature assoReasonLiteratureTmp = assoReasonLiteratures.stream()
                         .filter(t -> t.getReasonId().equals(item.getId())).findFirst().orElse(null);
@@ -284,7 +302,7 @@ public class CompareRecordService {
                 }
 
                 evidenceReasonList.add(evidenceReason);
-            });
+            }
             allCompareRecordVO.setEvidenceReasons(evidenceReasonList);
             vos.add(allCompareRecordVO);
         }
@@ -296,7 +314,8 @@ public class CompareRecordService {
         Integer projectId = queryCompareRecordDTO.getProjectId();
         //根据ProjectId查询对比组合
         LambdaQueryWrapper<ProofGroup> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(ProofGroup::getProjectId, projectId);
+        queryWrapper.eq(ProofGroup::getProjectId, projectId)
+                    .orderByAsc(ProofGroup::getClaimSort);
         List<ProofGroup> proofGroups = proofGroupService.list(queryWrapper);
 
         //查询标的专利号
@@ -357,49 +376,71 @@ public class CompareRecordService {
                 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());
+                    if (reasonIds.size() != 0) {
+
+                        LambdaQueryWrapper<EvidenceReason> queryWrapper2 = new LambdaQueryWrapper<>();
+                        queryWrapper2.in(EvidenceReason::getId, reasonIds);
+                        List<EvidenceReason> evidenceReasonList = evidenceReasonService.list(queryWrapper2);
+
                         //根据无效理由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());
-                            }
+                        LambdaQueryWrapper<AssoReasonLiterature> queryWrapper3 = new LambdaQueryWrapper<>();
+                        queryWrapper3.in(AssoReasonLiterature::getReasonId, reasonIds);
+                        List<AssoReasonLiterature> assoReasonLiteratures = assoReasonLiteratureService.list(queryWrapper3);
+                        //根据文献id查询文献列表
+                        List<CompareLiteratureVO> compareLiteratureVOS = new ArrayList<>();
+                        List<Integer> literatureIds = assoReasonLiteratures.stream().map(AssoReasonLiterature::getLiteratureId).collect(Collectors.toList());
+                        if (literatureIds.size() > 0) {
+                            compareLiteratureVOS = compareLiteratureService.getByIds(literatureIds);
                         }
+                        //装载无效理由
+                        for (EvidenceReason item : evidenceReasonList) {
+                            AllCompareGroupVO.EvidenceReason evidenceReason = new AllCompareGroupVO.EvidenceReason();
+                            evidenceReason.setEvidenceText(item.getEvidenceText());
+                            evidenceReason.setCommon(item.getDescription());
+                            evidenceReason.setEvidenceId(item.getId());
+                            LambdaQueryWrapper<AssoGroupReason> queryWrapper4 =new LambdaQueryWrapper<>();
+                            queryWrapper4.eq(AssoGroupReason::getReasonId,item.getId())
+                                         .eq(AssoGroupReason::getFeatureId,feature.getId())
+                                         .isNull(AssoGroupReason::getGroupId);
+                           AssoGroupReason assoGroupReason= assoGroupReasonService.getOne(queryWrapper4,false);
+                                evidenceReason.setConclusion(assoGroupReason.getConclusion());
+
+                            //根据无效理由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);
-                    });
+                            evidenceReasons.add(evidenceReason);
+                        }
+                        //装载公识
+                        if(reasonIds.contains(0)){
+                            AllCompareGroupVO.EvidenceReason evidenceReason = new AllCompareGroupVO.EvidenceReason();
+                            evidenceReason.setEvidenceId(0);
+                            evidenceReasons.add(evidenceReason);
+                        }
+                    }
 
                 }
+
+
                 featureMessage.setEvidenceReasons(evidenceReasons);
+
+                featureMessages.add(featureMessage);
                 allCompareGroupVO.setFeatureMessages(featureMessages);
             }
             allCompareGroupVOS.add(allCompareGroupVO);
@@ -451,7 +492,7 @@ public class CompareRecordService {
         LambdaQueryWrapper<AssoGroupReason> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.in(AssoGroupReason::getFeatureId, ids);
         List<AssoGroupReason> assoGroupReasons = assoGroupReasonService.list(queryWrapper);
-        if (assoGroupReasons != null) {
+        if (assoGroupReasons != null && assoGroupReasons.size() != 0) {
             List<Integer> reasonIds = assoGroupReasons.stream().map(AssoGroupReason::getReasonId).collect(Collectors.toList());
             //根据reasonIds查询对比文献id
             LambdaQueryWrapper<AssoReasonLiterature> queryWrapper1 = new LambdaQueryWrapper<>();

+ 70 - 0
src/main/resources/application-dev1.yml

@@ -0,0 +1,70 @@
+spring:
+  rabbitmq:
+    host: 172.27.247.174
+    port: 5672
+    username: admin
+    password: 123456
+  data:
+   redis:
+     host: 172.27.247.174
+     port: 6379
+     database: 3
+     password: Xx0GWxdWQJxx6Swe
+     lettuce:
+       pool:
+         max-active: 20
+         max-idle: 20
+         min-idle: 0
+         max-wait: -1ms
+     timeout: 2000ms
+  datasource:
+    url: jdbc:mysql://172.27.247.174:3306/pas_prod2?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
+    username: root
+    password: TU5x6IeBi7rl
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    type: com.alibaba.druid.pool.DruidDataSource
+    druid:
+      stat-view-servlet:
+        login-username: admin
+        login-password: Cslg2022+
+      web-stat-filter:
+        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
+  quartz:
+    #相关属性配置
+    properties:
+      org:
+        quartz:
+          scheduler:
+            instanceName: DefaultQuartzScheduler
+            instanceId: AUTO
+          jobStore:
+            class: org.springframework.scheduling.quartz.LocalDataSourceJobStore
+            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+            tablePrefix: QRTZ_
+            isClustered: false
+            clusterCheckinInterval: 10000
+            useProperties: false
+          threadPool:
+            class: org.quartz.simpl.SimpleThreadPool
+            threadCount: 10
+            threadPriority: 5
+            threadsInheritContextClassLoaderOfInitializingThread: true
+          dataSource:
+            default:
+              URL: jdbc:mysql://172.27.247.174:3306:3306/pas-prod2?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
+              user: root
+              password: TU5x6IeBi7rl
+              driver: com.mysql.jdbc.Driver
+
+    #数据库方式
+    job-store-type: jdbc
+    #初始化表结构
+    jdbc:
+      initialize-schema: always
+authorUrl: http://localhost:8871
+PCSUrl: http://localhost:8871
+#OPSUrl: http://192.168.1.24:5001
+OPSUrl: http://139.224.24.90:5001
+PASUrl: http://localhost:8877
+FMSUrl: http://localhost:8801
+FileSource: 3

+ 1 - 1
src/main/resources/application-prodNetIn.yml

@@ -31,4 +31,4 @@ OPSUrl: http://139.224.24.90:5001
 PASUrl: http://localhost:8877
 RMSUrl: http://localhost:8872
 FMSUrl: http://localhost:8801
-FileSource: 3
+FileSource: 3

+ 58 - 14
src/main/resources/application-testNetIn.yml

@@ -1,18 +1,24 @@
 spring:
-  redis:
+  rabbitmq:
     host: 172.27.247.174
-    port: 6379
-    database: 3
-    password: Xx0GWxdWQJxx6Swe
-    lettuce:
-      pool:
-        max-active: 20
-        max-idle: 20
-        min-idle: 0
-        max-wait: -1ms
-    timeout: 2000ms
+    port: 5672
+    username: admin
+    password: 123456
+  data:
+    redis:
+      host: 172.27.247.174
+      port: 6379
+      database: 3
+      password: Xx0GWxdWQJxx6Swe
+      lettuce:
+        pool:
+          max-active: 20
+          max-idle: 20
+          min-idle: 0
+          max-wait: -1ms
+      timeout: 2000ms
   datasource:
-    url: jdbc:mysql://172.27.247.174:3306/pas?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
+    url: jdbc:mysql://172.27.247.174:3306/pas_prod2?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
     username: root
     password: TU5x6IeBi7rl
     driver-class-name: com.mysql.cj.jdbc.Driver
@@ -20,7 +26,45 @@ spring:
     druid:
       stat-view-servlet:
         login-username: admin
-        login-password: 123456
+        login-password: Cslg2022+
       web-stat-filter:
         exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
-authorUrl: http://localhost:8880
+  quartz:
+    #相关属性配置
+    properties:
+      org:
+        quartz:
+          scheduler:
+            instanceName: DefaultQuartzScheduler
+            instanceId: AUTO
+          jobStore:
+            class: org.springframework.scheduling.quartz.LocalDataSourceJobStore
+            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+            tablePrefix: QRTZ_
+            isClustered: false
+            clusterCheckinInterval: 10000
+            useProperties: false
+          threadPool:
+            class: org.quartz.simpl.SimpleThreadPool
+            threadCount: 10
+            threadPriority: 5
+            threadsInheritContextClassLoaderOfInitializingThread: true
+          dataSource:
+            default:
+              URL: jdbc:mysql://172.27.247.174:3306/pas_prod2?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
+              user: root
+              password: TU5x6IeBi7rl
+              driver: com.mysql.jdbc.Driver
+
+    #数据库方式
+    job-store-type: jdbc
+    #初始化表结构
+    jdbc:
+      initialize-schema: always
+authorUrl: http://localhost:8880
+PCSUrl: http://localhost:8880
+#OPSUrl: http://192.168.1.24:5001
+OPSUrl: http://139.224.24.90:5001
+PASUrl: http://localhost:8880
+FMSUrl: http://localhost:8885
+FileSource: 3

+ 7 - 2
src/main/resources/mapper/ReportProjectMapper.xml

@@ -2,13 +2,18 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="cn.cslg.pas.mapper.ReportProjectMapper">
     <select id="getReportProject" resultType="cn.cslg.pas.common.vo.business.ReportProjectVO">
-        select distinct p.id as id,p.name as name ,rp.sign_patent_no as signPatentNo,p.contract_no as contract_no,p.volume_number
+        select distinct p.id as id,p.name as name ,rp.sign_patent_no as signPatentNo,p.contract_no as
+        contract_no,p.volume_number
         as
         volumeNumber,p.commission_case_day as commissionCaseDay,p.description as description,p.create_id as
         createId,p.create_time as createTime, rp.report_type as reportType ,p.head_id as headId,p.department_id as
         departmentId,
         p.entrust_type as entrustType,p.entrust_id as entrustId,rp.product_or_tech as productOrTech,rp.cron_description
-        as cronDescription ,rp.status as status,rp.if_second_invalid as ifSecondInvalid,rp.patent_type as patentType from report as rp left join project as p
+        as cronDescription ,rp.status as status,rp.if_second_invalid as ifSecondInvalid,rp.patent_type as
+        patentType,rp.case_number as
+        caseNumber ,rp.issue_number as issueNumber ,rp.invalid_application as invalidApplication ,rp.cron_description as
+        cronDescription,rp.act_type as actType ,rp.patent_type as patentType ,rp.current_application as
+        currentApplication, rp.invention_name as inventionName,p.contract_no as contractNo from report as rp left join project as p
         on rp.project_id =p.id left join asso_report_cron arc on p.id =arc.project_id
         left join asso_project_event as aspe on p.id =aspe.project_id
         <if test="sql1!=''">