|
@@ -454,21 +454,13 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
try {
|
|
try {
|
|
List<PatentRightVo> patentRightVos = new ArrayList<>();
|
|
List<PatentRightVo> patentRightVos = new ArrayList<>();
|
|
//根据专利号和报告id查询权要
|
|
//根据专利号和报告id查询权要
|
|
- Integer lastTaskId = this.getLastTaskId(projectId, patentNo);
|
|
|
|
|
|
+ Integer compareTaskId = this.getAssoTaskId(patentNo, taskId);
|
|
List<RePatentClaim> patentRights = featureService.getRightListByNo(patentNo);
|
|
List<RePatentClaim> patentRights = featureService.getRightListByNo(patentNo);
|
|
- LambdaQueryWrapper<PatentSplitMessage> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
- queryWrapper.eq(PatentSplitMessage::getPatentNo, patentNo)
|
|
|
|
- .eq(PatentSplitMessage::getProjectId, projectId)
|
|
|
|
- .eq(PatentSplitMessage::getTaskId, lastTaskId)
|
|
|
|
- .orderByDesc(PatentSplitMessage::getCreateTime);
|
|
|
|
- List<PatentSplitMessage> patentSplitMessages = patentSplitMessageService.list(queryWrapper);
|
|
|
|
- Integer splitMessageId = null;
|
|
|
|
- if (!patentSplitMessages.isEmpty()) {
|
|
|
|
- PatentSplitMessage patentSplitMessage = patentSplitMessages.get(0);
|
|
|
|
- splitMessageId = patentSplitMessage.getId();
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
|
+ Integer splitMessageId = this.getSplitId(projectId, patentNo, compareTaskId);
|
|
LambdaQueryWrapper<Feature> wrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<Feature> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper
|
|
wrapper
|
|
|
|
+ .eq(Feature::getProjectId, projectId)
|
|
.eq(Feature::getSplitMessageId, splitMessageId)
|
|
.eq(Feature::getSplitMessageId, splitMessageId)
|
|
.eq(Feature::getPatentNo, patentNo);
|
|
.eq(Feature::getPatentNo, patentNo);
|
|
List<Feature> allFeatures = featureService.list(wrapper);
|
|
List<Feature> allFeatures = featureService.list(wrapper);
|
|
@@ -776,8 +768,10 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
public TortCompareRecordVO getLastRecord(Integer projectId, String patentNo) {
|
|
public TortCompareRecordVO getLastRecord(Integer projectId, String patentNo) {
|
|
TortCompareRecordVO tortCompareRecordVO = new TortCompareRecordVO();
|
|
TortCompareRecordVO tortCompareRecordVO = new TortCompareRecordVO();
|
|
tortCompareRecordVO.setProjectId(projectId);
|
|
tortCompareRecordVO.setProjectId(projectId);
|
|
- //根据报告id,专利号,ifFinal为true,createTime为最新的查询一条最新的结果
|
|
|
|
- Integer taskId = this.getLastTaskId(projectId, patentNo);
|
|
|
|
|
|
+ //根据报告id,专利号,ifFinal为true,createTime为最新的去对比结果表中查询最新的一条对比结果
|
|
|
|
+ //根据这个对比结果的任务id以及别的条件去查询所有的对比结果
|
|
|
|
+ Integer taskId = this.getLastTaskIdFromRecords(projectId, patentNo);
|
|
|
|
+ Integer splitId = this.getSplitId(projectId, patentNo, taskId);
|
|
if (taskId != null) {
|
|
if (taskId != null) {
|
|
List<FTOCompareRecord> lastFTORecords = this.getLastFTORecord(projectId, patentNo, taskId);
|
|
List<FTOCompareRecord> lastFTORecords = this.getLastFTORecord(projectId, patentNo, taskId);
|
|
//根据专利号查询权要
|
|
//根据专利号查询权要
|
|
@@ -785,7 +779,8 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
List<PatentRightVo> patentRightVos = new ArrayList<>();
|
|
List<PatentRightVo> patentRightVos = new ArrayList<>();
|
|
List<RePatentClaim> patentRights = featureService.getRightListByNo(patentNo);
|
|
List<RePatentClaim> patentRights = featureService.getRightListByNo(patentNo);
|
|
LambdaQueryWrapper<Feature> wrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<Feature> wrapper = new LambdaQueryWrapper<>();
|
|
- wrapper.eq(Feature::getProjectTaskId, taskId)
|
|
|
|
|
|
+ wrapper.eq(Feature::getSplitMessageId, splitId)
|
|
|
|
+ .eq(Feature::getProjectId, projectId)
|
|
.eq(Feature::getPatentNo, patentNo);
|
|
.eq(Feature::getPatentNo, patentNo);
|
|
List<Feature> allFeatures = featureService.list(wrapper);
|
|
List<Feature> allFeatures = featureService.list(wrapper);
|
|
patentRightVos = featureService.loadPatentRightVO(patentRights, allFeatures, projectId, patentNo);
|
|
patentRightVos = featureService.loadPatentRightVO(patentRights, allFeatures, projectId, patentNo);
|
|
@@ -925,10 +920,11 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
map.put("mainRightNum", mainRightNum);
|
|
map.put("mainRightNum", mainRightNum);
|
|
return map;
|
|
return map;
|
|
}
|
|
}
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 从FTO中获得对比结果,并复制保存
|
|
* 从FTO中获得对比结果,并复制保存
|
|
* @param projectId
|
|
* @param projectId
|
|
- * @param taskId
|
|
|
|
|
|
+ * @param taskId 有可能是协同任务id
|
|
* @param createId
|
|
* @param createId
|
|
* @param patentNos
|
|
* @param patentNos
|
|
*/
|
|
*/
|
|
@@ -937,7 +933,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
if (projectId != null && taskId != null) {
|
|
if (projectId != null && taskId != null) {
|
|
patentNos.forEach(patentNo -> {
|
|
patentNos.forEach(patentNo -> {
|
|
//根据报告id和专利号查询最新的对比结果的任务id
|
|
//根据报告id和专利号查询最新的对比结果的任务id
|
|
- Integer lastTaskId = this.getLastTaskId(projectId, patentNo);
|
|
|
|
|
|
+ Integer lastTaskId = this.getLastTaskIdFromRecords(projectId, patentNo);
|
|
if (lastTaskId != null) {
|
|
if (lastTaskId != null) {
|
|
//根据projectId lastTaskId patentNo查询最新的对比结果集合并复制
|
|
//根据projectId lastTaskId patentNo查询最新的对比结果集合并复制
|
|
List<FTOCompareRecord> ftoCompareRecords1 = this.getLastFTORecord(projectId, patentNo, lastTaskId);
|
|
List<FTOCompareRecord> ftoCompareRecords1 = this.getLastFTORecord(projectId, patentNo, lastTaskId);
|
|
@@ -950,6 +946,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
newTort.setCompareFileNumber(patentNo);
|
|
newTort.setCompareFileNumber(patentNo);
|
|
newTort.setProjectId(projectId);
|
|
newTort.setProjectId(projectId);
|
|
newTort.setProjectTaskId(taskId);
|
|
newTort.setProjectTaskId(taskId);
|
|
|
|
+ newTort.setAssoTaskId(lastTaskId);
|
|
newTort.setFeatureId(item.getFeatureId());
|
|
newTort.setFeatureId(item.getFeatureId());
|
|
newTort.setTargetDescription(item.getTargetDescription());
|
|
newTort.setTargetDescription(item.getTargetDescription());
|
|
newTort.setIfOriginal(true);
|
|
newTort.setIfOriginal(true);
|
|
@@ -967,7 +964,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 根据两个参数查询taskId
|
|
|
|
|
|
+ * 根据两个参数从拆分信息表中查询taskId
|
|
* @param projectId
|
|
* @param projectId
|
|
* @param patentNo
|
|
* @param patentNo
|
|
* @return
|
|
* @return
|
|
@@ -988,7 +985,30 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 根据三个参数查询最新对比结果
|
|
|
|
|
|
+ * 根据projectId和patentNo从对比结果表中查询最终结果,肯定不为空!
|
|
|
|
+ * @param projectId
|
|
|
|
+ * @param patentNo
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Integer getLastTaskIdFromRecords(Integer projectId, String patentNo){
|
|
|
|
+ //根据报告id和专利号查询最新的对比结果的任务id
|
|
|
|
+ LambdaQueryWrapper<FTOCompareRecord> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ queryWrapper
|
|
|
|
+ .eq(FTOCompareRecord::getProjectId, projectId)
|
|
|
|
+ .eq(FTOCompareRecord::getCompareFileNumber, patentNo)
|
|
|
|
+ .eq(FTOCompareRecord::getIfFinal, true)
|
|
|
|
+ .eq(FTOCompareRecord::getIfOriginal, false)
|
|
|
|
+ .orderByDesc(FTOCompareRecord::getCreateTime);
|
|
|
|
+ List<FTOCompareRecord> ftoCompareRecords = this.list(queryWrapper);
|
|
|
|
+ Integer lastTaskId = null;
|
|
|
|
+ if (!ftoCompareRecords.isEmpty()) {
|
|
|
|
+ lastTaskId = ftoCompareRecords.get(0).getProjectTaskId();
|
|
|
|
+ }
|
|
|
|
+ return lastTaskId;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查询最新对比结果
|
|
* @param projectId
|
|
* @param projectId
|
|
* @param patentNo
|
|
* @param patentNo
|
|
* @param taskId
|
|
* @param taskId
|
|
@@ -1006,5 +1026,37 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
return ftoCompareRecords;
|
|
return ftoCompareRecords;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 根据两个参数查询splitId
|
|
|
|
+ * @param projectId
|
|
|
|
+ * @param patentNo
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Integer getSplitId(Integer projectId, String patentNo, Integer taskId){
|
|
|
|
+ //根据报告id和专利号查询最新的对比结果的任务id
|
|
|
|
+ LambdaQueryWrapper<PatentSplitMessage> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ queryWrapper
|
|
|
|
+ .eq(PatentSplitMessage::getProjectId, projectId)
|
|
|
|
+ .eq(PatentSplitMessage::getPatentNo, patentNo)
|
|
|
|
+ .orderByDesc(PatentSplitMessage::getCreateTime);
|
|
|
|
+ if (taskId != null) {
|
|
|
|
+ queryWrapper.eq(PatentSplitMessage::getTaskId, taskId);
|
|
|
|
+ }
|
|
|
|
+ List<PatentSplitMessage> patentSplitMessages = patentSplitMessageService.list(queryWrapper);
|
|
|
|
+ Integer splitId = null;
|
|
|
|
+ if (!patentSplitMessages.isEmpty()) {
|
|
|
|
+ splitId = patentSplitMessages.get(0).getId();
|
|
|
|
+ }
|
|
|
|
+ return splitId;
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ public Integer getAssoTaskId(String patentNo, Integer assitTaskId){
|
|
|
|
+ LambdaQueryWrapper<FTOCompareRecord> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ queryWrapper.eq(FTOCompareRecord::getCompareFileNumber, patentNo)
|
|
|
|
+ .eq(FTOCompareRecord::getProjectTaskId, assitTaskId)
|
|
|
|
+ .eq(FTOCompareRecord::getIfOriginal, true);
|
|
|
|
+ FTOCompareRecord ftoCompareRecord = this.getOne(queryWrapper ,false);
|
|
|
|
+ Integer assoTaskId = ftoCompareRecord.getAssoTaskId();
|
|
|
|
+ return assoTaskId;
|
|
|
|
+ }
|
|
}
|
|
}
|