Jelajahi Sumber

Merge remote-tracking branch 'origin/master_novelty' into master_novelty

# Conflicts:
#	src/main/java/cn/cslg/pas/service/novelty/NoveltyCompareLiteratureService.java
xiexiang 1 tahun lalu
induk
melakukan
10cfefc207

+ 1 - 0
src/main/java/cn/cslg/pas/common/dto/RetrieveRecordDTO.java

@@ -28,4 +28,5 @@ public class RetrieveRecordDTO {
     private Date updateTime;
 
     private Integer totalNum;
+    private String searchSetting;
 }

+ 13 - 0
src/main/java/cn/cslg/pas/controller/NoveltyProjectController.java

@@ -5,6 +5,7 @@ import cn.cslg.pas.common.dto.*;
 import cn.cslg.pas.common.dto.NoveltyProjectDTO.NoveltyProjectCopyDTO;
 import cn.cslg.pas.common.dto.NoveltyProjectDTO.NoveltyRetrieveRecordDTO;
 import cn.cslg.pas.common.dto.NoveltyProjectDTO.QueryTemplateDTO;
+import cn.cslg.pas.common.dto.business.LiteratureQueryDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.vo.NoveltyProjectVO.QueryTemplateVO;
@@ -166,6 +167,18 @@ public class NoveltyProjectController {
         return Response.success(compareFileId);
     }
 
+    @Operation(summary = "查询查新对比列表")
+    @PostMapping("/queryNoveltyCompareLiterature")
+    public Response queryNoveltyCompareLiterature(@RequestBody LiteratureQueryDTO literatureQueryDTO) {
+        Records records = null;
+        try {
+            records = noveltyCompareLiteratureService.queryNoveltyCompareLiterature(literatureQueryDTO);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+        return Response.success(records);
+    }
+
     @Operation(summary = "查询查新报告对比专利详情")
     @PostMapping("/queryCompareFile")
     public Response queryCompareFile(@RequestBody QueryCompareFileDTO fileDTO) throws Exception {

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

@@ -207,46 +207,40 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
         ReportProject reportProject = reportProjectService.getOne(wrapper);
 
         compareLiteratureVOS = this.loadCompareLiterature(compareLiteratures, reportProject);
-        //装载查新对比文件和标注
-        this.loadCompareLiteratureVOS(compareLiteratureVOS, projectId);
 
         records.setData(compareLiteratureVOS);
 
         return records;
     }
 
-    public void loadCompareLiteratureVOS(List<CompareLiteratureVO> compareLiteratureVOS, Integer projectId) throws Exception {
-        if (!CollectionUtils.isEmpty(compareLiteratureVOS)) {
-            List<Integer> literatureIds = new ArrayList<>();
-            compareLiteratureVOS.forEach(item -> {
-                literatureIds.add(item.getId());
-            });
-            List<NoveltyCompareRecordVO> recordVOS = esScratchWordsService.queryNoveltyRecord(projectId, 1);
-            List<NoveltyCompareLiterature> noveltyCompareLiteratureList = noveltyCompareLiteratureMapper.selectList(new LambdaQueryWrapper<NoveltyCompareLiterature>()
-                    .in(NoveltyCompareLiterature::getCompareLitertureId, literatureIds));
-            for (CompareLiteratureVO literatureVO : compareLiteratureVOS) {
-                NoveltyCompareLiterature noveltyCompareLiterature = noveltyCompareLiteratureList.stream().filter(i -> literatureVO.getId().equals(i.getCompareLitertureId())).findFirst().orElse(new NoveltyCompareLiterature());
-                if (!ObjectUtils.isEmpty(noveltyCompareLiterature)) {
-                    literatureVO.setCompareFileId(noveltyCompareLiterature.getId());
-                    literatureVO.setRetrieveRecordId(noveltyCompareLiterature.getRetrieveRecordId());
-                    literatureVO.setRelevance(noveltyCompareLiterature.getRelevance());
-                    literatureVO.setIfEffectinv(noveltyCompareLiterature.getIfEffectinv());
-                    literatureVO.setFileRemark(noveltyCompareLiterature.getRemark());
-                    literatureVO.setGeneralRemark(noveltyCompareLiterature.getGeneralRemark());
-                    literatureVO.setTechnicalPoints(noveltyCompareLiterature.getTechnicalPoints());
-                    literatureVO.setExcuteCase(noveltyCompareLiterature.getExcuteCase());
-                    literatureVO.setBeneficialEffect(noveltyCompareLiterature.getBeneficialEffect());
-                }
-                if (!CollectionUtils.isEmpty(recordVOS)) {
-                    List<NoveltyCompareRecordVO> collect = recordVOS.stream().filter(i -> i.getPatentNo().equals(literatureVO.getLiteratureNo())).collect(Collectors.toList());
-                    literatureVO.setNoveltyCompareRecordVOS(collect);
-                }
-            }
-        }
-    }
 
     public List<CompareLiteratureVO> loadCompareLiterature(List<CompareLiterature> compareLiteratures, ReportProject reportProject) throws Exception {
         List<CompareLiteratureVO> compareLiteratureVOS = new ArrayList<>();
+        //查询标的专利号
+        String signPatentNo = reportProject.getSignPatentNo();
+
+        //专利文献列表
+        List<String> patentNos = compareLiteratures.stream().filter(item -> item.getType().equals(0)).map(CompareLiterature::getLiteratureNo).collect(Collectors.toList());
+        List<Patent> patentList = new ArrayList<>();
+
+        if (reportProject.getSignPatentNo() != null) {
+            patentNos.add(reportProject.getSignPatentNo());
+        }
+
+        if (patentNos.size() > 0) {
+            try {
+                patentList = esPatentService.getPatentsByNo(patentNos, false, null, null);
+            } catch (Exception e) {
+                throw new XiaoShiException("装载文献信息失败");
+            }
+        }
+
+        //获得标的专利信息
+        Patent signPatent = patentList.stream()
+                .filter(item -> signPatentNo.equals(item.getAppNo())
+                        || signPatentNo.equals(item.getPublicNo()) ||
+                        signPatentNo.equals(item.getGrantNo())).findFirst().orElse(null);
+
         //查询文件
         List<SystemFile> systemFiles = new ArrayList<>();
         //非专利文献列表
@@ -262,151 +256,81 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
                 throw new XiaoShiException("装载错误");
             }
         }
-        if (!ObjectUtils.isEmpty(reportProject)) {
-            //查询标的专利号
-            String signPatentNo = reportProject.getSignPatentNo();
-
-            //专利文献列表
-            List<String> patentNos = compareLiteratures.stream().filter(item -> item.getType().equals(0)).map(CompareLiterature::getLiteratureNo).collect(Collectors.toList());
-            List<Patent> patentList = new ArrayList<>();
-
-            if (reportProject.getSignPatentNo() != null) {
-                patentNos.add(reportProject.getSignPatentNo());
-            }
 
-            if (patentNos.size() > 0) {
-                try {
-                    patentList = esPatentService.getPatentsByNo(patentNos, false, null, null);
-                } catch (Exception e) {
-                    throw new XiaoShiException("装载文献信息失败");
-                }
-            }
-
-            //获得标的专利信息
-            Patent signPatent = patentList.stream()
-                    .filter(item -> signPatentNo.equals(item.getAppNo())
-                            || signPatentNo.equals(item.getPublicNo()) ||
-                            signPatentNo.equals(item.getGrantNo())).findFirst().orElse(null);
-
-            for (CompareLiterature compareLiterature : compareLiteratures) {
-                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());
-                            if (patent.getPublicNo() == null) {
-                                compareLiteratureVO.setPublicDate(patent.getGrantDate());
-                                compareLiteratureVO.setPublicNo(patent.getGrantNo());
-                            } else {
-                                compareLiteratureVO.setPublicDate(patent.getPublicDate());
-                                compareLiteratureVO.setPublicNo(patent.getPublicNo());
-                            }
-                            compareLiteratureVO.setGrantDate(patent.getGrantDate());
-                            compareLiteratureVO.setGrantNo(patent.getGrantNo());
-                            compareLiteratureVO.setApplicant(patent.getApplicant());
-                            //比较标的专利的申请日和对比专利的公开或者公告日
-                            if (signPatent.getAppDate() != null) {
-                                //当专利的申请日存在时
-                                if (patent.getAppDate() != null) {
-                                    if (signPatent.getAppDate().compareTo(patent.getAppDate()) <= 0) {
-                                        compareLiteratureVO.setFitType(0);
-                                    } else if (patent.getPublicDate() != null) {
-                                        if (signPatent.getAppDate().compareTo(patent.getPublicDate()) <= 0)
-                                            compareLiteratureVO.setFitType(1);
-                                        else if (signPatent.getAppDate().compareTo(patent.getPublicDate()) > 0) {
-                                            compareLiteratureVO.setFitType(2);
-                                        }
-                                    } else if (patent.getGrantDate() != null) {
-                                        if (signPatent.getAppDate().compareTo(patent.getGrantDate()) <= 0)
-                                            compareLiteratureVO.setFitType(1);
-                                        else if (signPatent.getAppDate().compareTo(patent.getGrantDate()) > 0) {
-                                            compareLiteratureVO.setFitType(2);
-                                        }
+        for (CompareLiterature compareLiterature : compareLiteratures) {
+            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());
+                        if (patent.getPublicNo() == null) {
+                            compareLiteratureVO.setPublicDate(patent.getGrantDate());
+                            compareLiteratureVO.setPublicNo(patent.getGrantNo());
+                        } else {
+                            compareLiteratureVO.setPublicDate(patent.getPublicDate());
+                            compareLiteratureVO.setPublicNo(patent.getPublicNo());
+                        }
+                        compareLiteratureVO.setGrantDate(patent.getGrantDate());
+                        compareLiteratureVO.setGrantNo(patent.getGrantNo());
+                        compareLiteratureVO.setApplicant(patent.getApplicant());
+                        //比较标的专利的申请日和对比专利的公开或者公告日
+                        if (signPatent.getAppDate() != null) {
+                            //当专利的申请日存在时
+                            if (patent.getAppDate() != null) {
+                                if (signPatent.getAppDate().compareTo(patent.getAppDate()) <= 0) {
+                                    compareLiteratureVO.setFitType(0);
+                                } else if (patent.getPublicDate() != null) {
+                                    if (signPatent.getAppDate().compareTo(patent.getPublicDate()) <= 0)
+                                        compareLiteratureVO.setFitType(1);
+                                    else if (signPatent.getAppDate().compareTo(patent.getPublicDate()) > 0) {
+                                        compareLiteratureVO.setFitType(2);
+                                    }
+                                } else if (patent.getGrantDate() != null) {
+                                    if (signPatent.getAppDate().compareTo(patent.getGrantDate()) <= 0)
+                                        compareLiteratureVO.setFitType(1);
+                                    else if (signPatent.getAppDate().compareTo(patent.getGrantDate()) > 0) {
+                                        compareLiteratureVO.setFitType(2);
                                     }
                                 }
-
                             }
-                        }
-                    }
-
-                }
-                //非专利文献
-                else {
-                    if (signPatent.getAppDate() != null) {
-                        if (publicDate != null) {
-                            if (signPatent.getAppDate().compareTo(publicDate) <= 0) {
-                                compareLiteratureVO.setFitType(0);
-                            } else {
-                                compareLiteratureVO.setFitType(2);
-                            }
-                        }
-                    }
 
-                    //装载文件
-                    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);
+
             }
-        } else {
-            List<String> patentNos = compareLiteratures.stream().map(CompareLiterature::getLiteratureNo).collect(Collectors.toList());
-            List<Patent> patentList = esPatentService.getPatentsByNo(patentNos, false, null, null);
-            for (CompareLiterature compareLiterature : compareLiteratures) {
-                String literatureNo = compareLiterature.getLiteratureNo();
-                Patent patent = patentList.stream()
-                        .filter(item -> literatureNo.equals(item.getAppNo())
-                                || literatureNo.equals(item.getPublicNo()) ||
-                                literatureNo.equals(item.getGrantNo())).findFirst().orElse(null);
-                CompareLiteratureVO compareLiteratureVO = new CompareLiteratureVO();
-                BeanUtils.copyProperties(compareLiterature, compareLiteratureVO);
-                if (patent != null) {
-                    compareLiteratureVO.setAppNo(patent.getAppNo());
-                    compareLiteratureVO.setAppDate(patent.getAppDate());
-                    if (patent.getPublicNo() == null) {
-                        compareLiteratureVO.setPublicDate(patent.getGrantDate());
-                        compareLiteratureVO.setPublicNo(patent.getGrantNo());
-                    } else {
-                        compareLiteratureVO.setPublicDate(patent.getPublicDate());
-                        compareLiteratureVO.setPublicNo(patent.getPublicNo());
+            //非专利文献
+            else {
+                if (signPatent.getAppDate() != null) {
+                    if (publicDate != null) {
+                        if (signPatent.getAppDate().compareTo(publicDate) <= 0) {
+                            compareLiteratureVO.setFitType(0);
+                        } else {
+                            compareLiteratureVO.setFitType(2);
+                        }
                     }
-                    compareLiteratureVO.setGrantDate(patent.getGrantDate());
-                    compareLiteratureVO.setGrantNo(patent.getGrantNo());
-                    compareLiteratureVO.setApplicant(patent.getApplicant());
                 }
-                //当为专利文献时
-                if (compareLiterature.getType().equals(0)) {
-                    compareLiteratureVO.setFitType(0);
-                }
-                //非专利文献
-                else {
-                    compareLiteratureVO.setFitType(2);
-                    //装载文件
-                    if (literatureNo != null && !CollectionUtils.isEmpty(systemFiles)) {
-                        SystemFile systemFile = systemFiles.stream().filter(item -> item.getGuid().equals(literatureNo)).findFirst().orElse(null);
-                        if (systemFile != null) {
-                            compareLiteratureVO.setSystemFile(systemFile);
-                        }
+
+                //装载文件
+                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);
             }
+            compareLiteratureVOS.add(compareLiteratureVO);
         }
-
-
         return compareLiteratureVOS;
     }
 

+ 2 - 0
src/main/java/cn/cslg/pas/service/common/PatentStarApiService.java

@@ -102,6 +102,8 @@ public class PatentStarApiService {
                 assoRetrieveRecordProjectService.add(retrieveRecord.getId(), projectId);
             }
         } else {
+            retrieveRecord =retrieveRecordService.getById(patentStarListDTO.getRetrieveRecordId());
+            retrieveRecord.setRetrieveTime(new Date());
             retrieveRecord.updateById();
         }
         List<StarPatentVO> starPatentVOS = (List<StarPatentVO>) map.get("records");

+ 2 - 1
src/main/java/cn/cslg/pas/service/common/RetrieveRecordService.java

@@ -133,7 +133,7 @@ public class RetrieveRecordService extends ServiceImpl<RetrieveRecordMapper, Ret
         RetrieveRecord retrieveRecord = new RetrieveRecord();
         retrieveRecord.setConditions(patentStarListDTO.getCurrentQuery());
         Integer id = patentStarListDTO.getRetrieveRecordId();
-
+        retrieveRecord.setSearchSetting(patentStarListDTO.getSearchSetting());
 
         if (id != null) {
             retrieveRecord = this.getById(id);
@@ -154,4 +154,5 @@ public class RetrieveRecordService extends ServiceImpl<RetrieveRecordMapper, Ret
 
         return retrieveRecord;
     }
+
 }

+ 16 - 18
src/main/java/cn/cslg/pas/service/importPatent/SavePatentToEsThread.java

@@ -53,8 +53,7 @@ public class SavePatentToEsThread extends Thread {
                     taskCondition.await();
                 }
 
-            }
-            catch (Exception e) {
+            } catch (Exception e) {
 
             }
             if (uploadPatentWebDTOS.size() == 0) {
@@ -77,24 +76,24 @@ public class SavePatentToEsThread extends Thread {
                     patent = this.formPatent(patent, orgPatent);
 
                     //更新翻译
-                    if(patent.getClaim()!=null&&patent.getClaim()!=orgPatent.getClaim()){
-                        TranslateService translateService =applicationContext.getBean(TranslateService.class);
-                        if(orgPatent.getPatentNo()!=null) {
-                            translateService.deleteTranslatePatentNo(orgPatent.getPatentNo(),"3");
+                    if (patent.getClaim() != null && patent.getClaim() != orgPatent.getClaim()) {
+                        TranslateService translateService = applicationContext.getBean(TranslateService.class);
+                        if (orgPatent.getPatentNo() != null) {
+                            translateService.deleteTranslatePatentNo(orgPatent.getPatentNo(), "3");
                         }
                     }
 
-                    if(patent.getPublicFullText()!=null&&patent.getPublicFullText()!=orgPatent.getPublicFullText()){
-                        TranslateService translateService =applicationContext.getBean(TranslateService.class);
-                        if(orgPatent.getPatentNo()!=null) {
-                            translateService.deleteTranslatePatentNo(orgPatent.getPatentNo(),"4");
+                    if (patent.getPublicFullText() != null && patent.getPublicFullText() != orgPatent.getPublicFullText()) {
+                        TranslateService translateService = applicationContext.getBean(TranslateService.class);
+                        if (orgPatent.getPatentNo() != null) {
+                            translateService.deleteTranslatePatentNo(orgPatent.getPatentNo(), "4");
                         }
                     }
 
-                    if(patent.getGrantFullText()!=null&&patent.getGrantFullText()!=orgPatent.getGrantFullText()){
-                        TranslateService translateService =applicationContext.getBean(TranslateService.class);
-                        if(orgPatent.getPatentNo()!=null) {
-                            translateService.deleteTranslatePatentNo(orgPatent.getPatentNo(),"4");
+                    if (patent.getGrantFullText() != null && patent.getGrantFullText() != orgPatent.getGrantFullText()) {
+                        TranslateService translateService = applicationContext.getBean(TranslateService.class);
+                        if (orgPatent.getPatentNo() != null) {
+                            translateService.deleteTranslatePatentNo(orgPatent.getPatentNo(), "4");
                         }
                     }
 
@@ -135,7 +134,7 @@ public class SavePatentToEsThread extends Thread {
 
                         //添加报告对比文件
                         if (importTaskAMVO.getProjectType() != null && importTaskAMVO.getProjectType().equals(1)) {
-                            if (importTaskAMVO.getReportType().equals(7) || importTaskAMVO.getReportType().equals(1) || importTaskAMVO.getReportType().equals(2)) {
+                            if (importTaskAMVO.getReportType()==null||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());
                             }
@@ -168,7 +167,6 @@ public class SavePatentToEsThread extends Thread {
                 }
 
 
-
                 //保存和自定义字段关联
                 if (importTaskAMVO.getFieldDTOS() != null && importTaskAMVO.getFieldDTOS().size() > 0) {
                     for (EsCustomFieldDTO esCustomFieldDTO : importTaskAMVO.getFieldDTOS()
@@ -256,12 +254,12 @@ public class SavePatentToEsThread extends Thread {
             if (orgPatent.getClaim() != null && orgPatent.getClaim().size() > 0 && orgPatent.getGrantNo() != null && patent.getGrantNo() == null) {
                 patent.setClaim(orgPatent.getClaim());
             }
-            if(orgPatent.getGrantNo()!=null){
+            if (orgPatent.getGrantNo() != null) {
                 patent.setGrantFullText(patent.getPublicFullText());
                 patent.setPublicFullText(null);
             }
         }
-return  patent;
+        return patent;
     }
 
 

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

@@ -133,9 +133,13 @@ public class TaskThread extends Thread {
         if (importTaskAMVO.getState().equals(1)) {
             task.setState(2);
             importTaskAMVO.setState(2);
+ try {
+     this.sendEmailDoneMail(task);
+ }
 
-            this.sendEmailDoneMail(task);
-
+catch (Exception e){
+     e.printStackTrace();
+}
 
         } else {
             task.setState(importTaskAMVO.getState());

+ 96 - 0
src/main/java/cn/cslg/pas/service/novelty/NoveltyCompareLiteratureService.java

@@ -4,25 +4,33 @@ import cn.cslg.pas.common.dto.AddCompareFileDTO;
 import cn.cslg.pas.common.dto.CompareFileIdDTO;
 import cn.cslg.pas.common.dto.EditCompareFileDTO;
 import cn.cslg.pas.common.dto.QueryCompareFileDTO;
+import cn.cslg.pas.common.dto.business.LiteratureQueryDTO;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.model.cronModel.SystemFile;
+import cn.cslg.pas.common.vo.CompareLiteratureVO;
 import cn.cslg.pas.common.utils.DBUtil;
 import cn.cslg.pas.common.vo.NoveltyProjectVO.NoveltyCompareLiteratureVO;
 import cn.cslg.pas.common.vo.NoveltyProjectVO.NoveltyCompareRecordVO;
 import cn.cslg.pas.common.vo.QueryCompareFileVO;
 import cn.cslg.pas.domain.business.CompareLiterature;
 import cn.cslg.pas.domain.es.Marking;
+import cn.cslg.pas.domain.es.Patent;
 import cn.cslg.pas.mapper.CompareLiteratureMapper;
 import cn.cslg.pas.mapper.RetrieveRecordMapper;
 import cn.cslg.pas.mapper.novelty.NoveltyCompareLiteratureMapper;
 import cn.cslg.pas.service.business.CompareLiteratureService;
+import cn.cslg.pas.service.business.es.EsPatentService;
 import cn.cslg.pas.service.business.es.EsScratchWordsService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import cn.cslg.pas.domain.business.novelty.NoveltyCompareLiterature;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
@@ -58,7 +66,94 @@ public class NoveltyCompareLiteratureService extends ServiceImpl<NoveltyCompareL
     @Autowired
     private CompareLiteratureMapper compareLiteratureMapper;
     @Autowired
+    private CompareLiteratureService compareLiteratureService;
+    @Autowired
     private EsScratchWordsService esScratchWordsService;
+    @Autowired
+    private EsPatentService esPatentService;
+
+    public Records queryNoveltyCompareLiterature(LiteratureQueryDTO vo) throws Exception {
+        Integer projectId = vo.getProjectId();
+        Records records = new Records();
+        //根据projectId查询对比文件
+        LambdaQueryWrapper<CompareLiterature> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(CompareLiterature::getProjectId, projectId)
+                .orderByAsc(CompareLiterature::getSysOrder);
+        List<CompareLiterature> compareLiteratures = new ArrayList<>();
+
+        if (vo.getCurrent() != null && vo.getSize() != null) {
+            Page<CompareLiterature> page = compareLiteratureService.page(new Page<>(vo.getCurrent(), vo.getSize()), queryWrapper);
+            compareLiteratures = page.getRecords();
+            records.setTotal(page.getTotal());
+            records.setSize(Long.parseLong(vo.getSize().toString()));
+            records.setCurrent(Long.parseLong(vo.getCurrent().toString()));
+        } else {
+            compareLiteratures = compareLiteratureService.list(queryWrapper);
+        }
+        List<CompareLiteratureVO> literatureVOS = this.loadCompareLiterature(compareLiteratures);
+        this.loadCompareLiteratureVOS(literatureVOS, projectId);
+        records.setData(literatureVOS);
+        return records;
+    }
+
+    public List<CompareLiteratureVO> loadCompareLiterature(List<CompareLiterature> compareLiteratures) throws Exception {
+        List<CompareLiteratureVO> compareLiteratureVOS = new ArrayList<>();
+        List<String> patentNos = compareLiteratures.stream().map(CompareLiterature::getLiteratureNo).collect(Collectors.toList());
+        List<Patent> patentList = esPatentService.getPatentsByNo(patentNos, false, null, null);
+        for (CompareLiterature compareLiterature : compareLiteratures) {
+            String literatureNo = compareLiterature.getLiteratureNo();
+            Patent patent = patentList.stream()
+                    .filter(item -> literatureNo.equals(item.getAppNo())
+                            || literatureNo.equals(item.getPublicNo()) ||
+                            literatureNo.equals(item.getGrantNo())).findFirst().orElse(null);
+            CompareLiteratureVO compareLiteratureVO = new CompareLiteratureVO();
+            BeanUtils.copyProperties(compareLiterature, compareLiteratureVO);
+            if (patent != null) {
+                compareLiteratureVO.setAppNo(patent.getAppNo());
+                compareLiteratureVO.setAppDate(patent.getAppDate());
+                if (patent.getPublicNo() == null) {
+                    compareLiteratureVO.setPublicDate(patent.getGrantDate());
+                    compareLiteratureVO.setPublicNo(patent.getGrantNo());
+                } else {
+                    compareLiteratureVO.setPublicDate(patent.getPublicDate());
+                    compareLiteratureVO.setPublicNo(patent.getPublicNo());
+                }
+                compareLiteratureVO.setGrantDate(patent.getGrantDate());
+                compareLiteratureVO.setGrantNo(patent.getGrantNo());
+                compareLiteratureVO.setApplicant(patent.getApplicant());
+            }
+            compareLiteratureVOS.add(compareLiteratureVO);
+        }
+        return compareLiteratureVOS;
+    }
+
+    public void loadCompareLiteratureVOS(List<CompareLiteratureVO> compareLiteratureVOS, Integer projectId) throws Exception {
+        if (!CollectionUtils.isEmpty(compareLiteratureVOS)) {
+            List<Integer> literatureIds = compareLiteratureVOS.stream().map(CompareLiteratureVO::getId).collect(Collectors.toList());
+            List<NoveltyCompareRecordVO> recordVOS = esScratchWordsService.queryNoveltyRecord(projectId, 1);
+            List<NoveltyCompareLiterature> noveltyCompareLiteratureList = noveltyCompareLiteratureMapper.selectList(new LambdaQueryWrapper<NoveltyCompareLiterature>()
+                    .in(NoveltyCompareLiterature::getCompareLitertureId, literatureIds));
+            for (CompareLiteratureVO literatureVO : compareLiteratureVOS) {
+                NoveltyCompareLiterature noveltyCompareLiterature = noveltyCompareLiteratureList.stream().filter(i -> literatureVO.getId().equals(i.getCompareLitertureId())).findFirst().orElse(new NoveltyCompareLiterature());
+                if (!org.springframework.util.ObjectUtils.isEmpty(noveltyCompareLiterature)) {
+                    literatureVO.setCompareFileId(noveltyCompareLiterature.getId());
+                    literatureVO.setRetrieveRecordId(noveltyCompareLiterature.getRetrieveRecordId());
+                    literatureVO.setRelevance(noveltyCompareLiterature.getRelevance());
+                    literatureVO.setIfEffectinv(noveltyCompareLiterature.getIfEffectinv());
+                    literatureVO.setFileRemark(noveltyCompareLiterature.getRemark());
+                    literatureVO.setGeneralRemark(noveltyCompareLiterature.getGeneralRemark());
+                    literatureVO.setTechnicalPoints(noveltyCompareLiterature.getTechnicalPoints());
+                    literatureVO.setExcuteCase(noveltyCompareLiterature.getExcuteCase());
+                    literatureVO.setBeneficialEffect(noveltyCompareLiterature.getBeneficialEffect());
+                }
+                if (!CollectionUtils.isEmpty(recordVOS)) {
+                    List<NoveltyCompareRecordVO> collect = recordVOS.stream().filter(i -> i.getPatentNo().equals(literatureVO.getLiteratureNo())).collect(Collectors.toList());
+                    literatureVO.setNoveltyCompareRecordVOS(collect);
+                }
+            }
+        }
+    }
+
 
     public List<QueryCompareFileVO> queryCompareFile(QueryCompareFileDTO vo) {
         return noveltyCompareLiteratureMapper.queryCompareFile(vo);
@@ -71,6 +166,7 @@ public class NoveltyCompareLiteratureService extends ServiceImpl<NoveltyCompareL
         if (ObjectUtils.isEmpty(literature)) {
             literature = new NoveltyCompareLiterature();
             BeanUtils.copyProperties(vo, literature);
+            literature.setCompareLitertureId(compareLitertureId);
             literature.insert();
         }
         return literature.getId();

+ 8 - 1
src/main/resources/application-dev.yml

@@ -71,4 +71,11 @@ FileSource: 1
 ES:
   patentVector: patent_vector
   patent: wxpatent
-  config: 192.168.2.24
+  config: 192.168.2.24
+IPEasySetting:
+  DownloadFileSavePath: F:\file
+  isHeadless: true
+  Account: zhuliu
+  Password: cCv51b
+  ChromeDriverPath: C:\Program Files\Google\Chrome\Application\chrome.exe
+  IPEasyWeb: http://47.106.94.35/index.aspx

+ 22 - 36
src/test/java/cn/cslg/pas/novelty/GetReportInfoFromWDTest.java

@@ -22,26 +22,12 @@ import java.util.concurrent.TimeUnit;
 
 @SpringBootTest
 public class GetReportInfoFromWDTest {
-//    IPEasySetting:
-//    DownloadFileSavePath: F:\file
-//    isHeadless: true
-//    Account: zhuliu
-//    Password: cCv51b
-//    ChromeDriverPath: C:\Program Files\Google\Chrome\Application\chrome.exe
-//    IPEasyWeb: http://47.106.94.35/index.aspx
-//
-//    @Value("${IPEasySetting.DownloadFileSavePath}")
-//    private String strFileSavePath;
-//    @Value("${IPEasySetting.isHeadless}")
-//    private boolean isHeadless;
-//    @Value("${IPEasySetting.Account}")
-//    private String account;
-//    @Value("${IPEasySetting.Password}")
-//    private String password;
-//    @Value("${IPEasySetting.ChromeDriverPath}")
-//    private String chromeDriverPath;
-//    @Value("${IPEasySetting.IPEasyWeb}")
-//    private String iPEasyWeb;
+    private static String strFileSavePath = "F:\\file";
+    private static boolean isHeadless = true;
+    private static String account = "zhuliu";
+    private static String password = "cCv51b";
+    private static String chromeDriverPath = "E:\\test\\chromedriver-win64\\chromedriver-win64\\chromedriver.exe";
+    private static String iPEasyWeb = "http://47.106.94.35/index.aspx";
 
     @Test
     public void test() {
@@ -50,29 +36,29 @@ public class GetReportInfoFromWDTest {
     }
 
     public Map<String, String> dynamicCaseInfo(String caseNo) {
-        Properties properties = new Properties();
-        try {
-            properties.load(new FileInputStream("path/to/your/config.properties"));
-        } catch (IOException e) {
-            e.printStackTrace();
-            throw new RuntimeException("Failed to load configuration properties");
-        }
-
-        String strFileSavePath = properties.getProperty("IPEasySetting.DownloadFileSavePath");
-        boolean isHeadless = Boolean.parseBoolean(properties.getProperty("IPEasySetting.isHeadless"));
-        String account = properties.getProperty("IPEasySetting.Account");
-        String password = properties.getProperty("IPEasySetting.Password");
-        String chromeDriverPath = properties.getProperty("IPEasySetting.ChromeDriverPath");
-        String iPEasyWeb = properties.getProperty("IPEasySetting.IPEasyWeb");
+//        Properties properties = new Properties();
+//        try {
+//            properties.load(new FileInputStream("path/to/your/config.properties"));
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//            throw new RuntimeException("Failed to load configuration properties");
+//        }
+//
+//        String strFileSavePath = properties.getProperty("IPEasySetting.DownloadFileSavePath");
+//        boolean isHeadless = Boolean.parseBoolean(properties.getProperty("IPEasySetting.isHeadless"));
+//        String account = properties.getProperty("IPEasySetting.Account");
+//        String password = properties.getProperty("IPEasySetting.Password");
+//        String chromeDriverPath = properties.getProperty("IPEasySetting.ChromeDriverPath");
+//        String iPEasyWeb = properties.getProperty("IPEasySetting.IPEasyWeb");
 
         ChromeOptions options = new ChromeOptions();
         options.addArguments("user-data-dir=" + strFileSavePath);
         options.addArguments("--lang=nl");
         options.addArguments("--disable-popup-blocking");
         options.addArguments("--disable-images");
-
+        options.addArguments("--remote-allow-origins=*");
         if (isHeadless) {
-            options.addArguments("headless");
+//            options.addArguments("headless");
         }
 
         WebDriver driver = null;

+ 2 - 2
src/test/java/cn/cslg/pas/service/NoveltyProjectTest.java

@@ -188,8 +188,8 @@ public class NoveltyProjectTest {
         LiteratureQueryDTO vo = new LiteratureQueryDTO();
         vo.setCurrent(1);
         vo.setSize(10);
-        vo.setProjectId(271);
-        Records records = compareLiteratureService.queryCompareLiterature(vo);
+        vo.setProjectId(488);
+        Records records = noveltyCompareLiteratureService.queryNoveltyCompareLiterature(vo);
         String s = records.getData().toString();
         System.out.println(s);
     }