|
@@ -72,6 +72,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
private EsPatentService esPatentService;
|
|
private EsPatentService esPatentService;
|
|
@Autowired
|
|
@Autowired
|
|
private EsFamilyService esFamilyService;
|
|
private EsFamilyService esFamilyService;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 查询FTO对比结果VO
|
|
* 查询FTO对比结果VO
|
|
* @param getFeatureSplitDTO
|
|
* @param getFeatureSplitDTO
|
|
@@ -742,24 +743,8 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
TortCompareRecordVO tortCompareRecordVO = new TortCompareRecordVO();
|
|
TortCompareRecordVO tortCompareRecordVO = new TortCompareRecordVO();
|
|
tortCompareRecordVO.setProjectId(projectId);
|
|
tortCompareRecordVO.setProjectId(projectId);
|
|
//根据报告id,专利号,ifFinal为true,createTime为最新的查询一条最新的结果
|
|
//根据报告id,专利号,ifFinal为true,createTime为最新的查询一条最新的结果
|
|
- LambdaQueryWrapper<FTOCompareRecord> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
- queryWrapper
|
|
|
|
- .eq(FTOCompareRecord::getCompareFileNumber, patentNo)
|
|
|
|
- .eq(FTOCompareRecord::getProjectId, projectId)
|
|
|
|
- .eq(FTOCompareRecord::getIfFinal, true)
|
|
|
|
- .eq(FTOCompareRecord::getIfOriginal, false)
|
|
|
|
- .orderByDesc(FTOCompareRecord::getCreateTime);
|
|
|
|
- List<FTOCompareRecord> lastFTORecords = this.list(queryWrapper);
|
|
|
|
- List<Integer> taskIds = lastFTORecords.stream()
|
|
|
|
- .map(FTOCompareRecord::getProjectTaskId)
|
|
|
|
- .distinct() // 去除重复的任务ID
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
- Integer taskId = null;
|
|
|
|
- if (taskIds.size() == 1) {
|
|
|
|
- taskId = taskIds.get(0); // 获取唯一的任务ID
|
|
|
|
- } else {
|
|
|
|
- throw new XiaoShiException("查询任务id错误,多个或者没有");
|
|
|
|
- }
|
|
|
|
|
|
+ Integer taskId = this.getLastTaskId(projectId, patentNo);
|
|
|
|
+ List<FTOCompareRecord> lastFTORecords = this.getLastFTORecord(projectId, patentNo, taskId);
|
|
//根据专利号查询权要
|
|
//根据专利号查询权要
|
|
try {
|
|
try {
|
|
List<PatentRightVo> patentRightVos = new ArrayList<>();
|
|
List<PatentRightVo> patentRightVos = new ArrayList<>();
|
|
@@ -856,4 +841,87 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
return comparedPatentVOS;
|
|
return comparedPatentVOS;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 从FTO中获得对比结果,并复制保存
|
|
|
|
+ * @param projectId
|
|
|
|
+ * @param taskId
|
|
|
|
+ * @param createId
|
|
|
|
+ * @param patentNos
|
|
|
|
+ */
|
|
|
|
+ public void copyFTOCompareRecords(Integer projectId, Integer taskId, String createId, List<String> patentNos){
|
|
|
|
+ //判断参数不为空
|
|
|
|
+ if (projectId != null && taskId != null) {
|
|
|
|
+ patentNos.forEach(patentNo -> {
|
|
|
|
+ //根据报告id和专利号查询最新的对比结果的任务id
|
|
|
|
+ Integer lastTaskId = this.getLastTaskId(projectId, patentNo);
|
|
|
|
+ //根据projectId lastTaskId patentNo查询最新的对比结果集合并复制
|
|
|
|
+ List<FTOCompareRecord> ftoCompareRecords1 = this.getLastFTORecord(projectId, patentNo, lastTaskId);
|
|
|
|
+ if (!ftoCompareRecords1.isEmpty()) {
|
|
|
|
+ List<FTOCompareRecord> newTorts = new ArrayList<>();
|
|
|
|
+ ftoCompareRecords1.forEach(item -> {
|
|
|
|
+ FTOCompareRecord newTort = new FTOCompareRecord();
|
|
|
|
+ newTort.setCompareResult(item.getCompareResult());
|
|
|
|
+ newTort.setCompareDescription(item.getCompareDescription());
|
|
|
|
+ newTort.setProjectId(projectId);
|
|
|
|
+ newTort.setProjectTaskId(taskId);
|
|
|
|
+ newTort.setFeatureId(item.getFeatureId());
|
|
|
|
+ newTort.setTargetDescription(item.getTargetDescription());
|
|
|
|
+ newTort.setIfOriginal(true);
|
|
|
|
+ newTort.setIfFinal(false);
|
|
|
|
+ newTort.setCreateId(createId);
|
|
|
|
+ newTorts.add(newTort);
|
|
|
|
+ });
|
|
|
|
+ this.saveBatch(newTorts);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ throw new XiaoShiException("projectId或者taskId不能为空");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据两个参数查询taskId
|
|
|
|
+ * @param projectId
|
|
|
|
+ * @param patentNo
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Integer getLastTaskId(Integer projectId, String patentNo){
|
|
|
|
+ //根据报告id和专利号查询最新的对比结果的任务id
|
|
|
|
+ LambdaQueryWrapper<FTOCompareRecord> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ queryWrapper
|
|
|
|
+ .eq(FTOCompareRecord::getProjectId, projectId)
|
|
|
|
+ .eq(FTOCompareRecord::getCompareFileNumber, patentNo)
|
|
|
|
+ .eq(FTOCompareRecord::getIfOriginal, false)
|
|
|
|
+ .eq(FTOCompareRecord::getIfFinal, true)
|
|
|
|
+ .orderByDesc(FTOCompareRecord::getCreateTime);
|
|
|
|
+ List<FTOCompareRecord> ftoCompareRecords = this.list(queryWrapper);
|
|
|
|
+ Integer lastTaskId = null;
|
|
|
|
+ if (!ftoCompareRecords.isEmpty()) {
|
|
|
|
+ lastTaskId = ftoCompareRecords.get(0).getProjectTaskId();
|
|
|
|
+ } else {
|
|
|
|
+ throw new XiaoShiException("查询错误");
|
|
|
|
+ }
|
|
|
|
+ return lastTaskId;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据三个参数查询最新对比结果
|
|
|
|
+ * @param projectId
|
|
|
|
+ * @param patentNo
|
|
|
|
+ * @param taskId
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public List<FTOCompareRecord> getLastFTORecord(Integer projectId, String patentNo, Integer taskId){
|
|
|
|
+ LambdaQueryWrapper<FTOCompareRecord> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ queryWrapper
|
|
|
|
+ .eq(FTOCompareRecord::getProjectId, projectId)
|
|
|
|
+ .eq(FTOCompareRecord::getCompareFileNumber, patentNo)
|
|
|
|
+ .eq(FTOCompareRecord::getProjectTaskId, taskId)
|
|
|
|
+ .eq(FTOCompareRecord::getIfOriginal, false)
|
|
|
|
+ .eq(FTOCompareRecord::getIfFinal, true);
|
|
|
|
+ List<FTOCompareRecord> ftoCompareRecords = this.list(queryWrapper);
|
|
|
|
+ return ftoCompareRecords;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|