|
@@ -73,6 +73,9 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
|
@Autowired
|
|
|
private SystemDictService systemDictService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PatentSplitMessageService patentSplitMessageService;
|
|
|
+
|
|
|
/**
|
|
|
* 查询FTO对比结果VO
|
|
|
* @param getFeatureSplitDTO
|
|
@@ -451,9 +454,10 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
|
try {
|
|
|
List<PatentRightVo> patentRightVos = new ArrayList<>();
|
|
|
//根据专利号和报告id查询权要
|
|
|
+ Integer lastTaskId = this.getLastTaskId(projectId, patentNo);
|
|
|
List<RePatentClaim> patentRights = featureService.getRightListByNo(patentNo);
|
|
|
LambdaQueryWrapper<Feature> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.eq(Feature::getProjectTaskId, taskId)
|
|
|
+ wrapper.eq(Feature::getProjectTaskId, lastTaskId)
|
|
|
.eq(Feature::getPatentNo, patentNo);
|
|
|
List<Feature> allFeatures = featureService.list(wrapper);
|
|
|
patentRightVos = featureService.loadPatentRightVO(patentRights, allFeatures, projectId, patentNo);
|
|
@@ -462,7 +466,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
|
if (type == 1) {//查询协同前后对比结果
|
|
|
tortRightVOS = this.loadBeforeAndAfter(taskId, patentNo, patentRightVos);
|
|
|
} else if (type == 2) {//发起人的查询
|
|
|
- tortRightVOS = this.loadTortRightVOS2(taskId, patentRightVos);
|
|
|
+ tortRightVOS = this.loadTortRightVOS2(taskId, patentNo, projectId, patentRightVos);
|
|
|
}
|
|
|
tortCompareRecordVO.setTortRightVOS(tortRightVOS);
|
|
|
} catch (Exception e) {
|
|
@@ -556,20 +560,23 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
|
* @param patentRightVos
|
|
|
* @return
|
|
|
*/
|
|
|
- public List<TortRightVO> loadTortRightVOS2(Integer taskId, List<PatentRightVo> patentRightVos) {
|
|
|
+ public List<TortRightVO> loadTortRightVOS2(Integer taskId, String patentNo, Integer projectId, List<PatentRightVo> patentRightVos) {
|
|
|
if (patentRightVos != null && !patentRightVos.isEmpty()) {
|
|
|
//新建权要层信息
|
|
|
List<TortRightVO> tortRightVOS = new ArrayList<>();
|
|
|
//遍历装载权要层信息
|
|
|
+ Integer lastTaskId = this.getLastTaskId(projectId, patentNo);
|
|
|
patentRightVos.forEach(item -> {
|
|
|
TortRightVO tortRightVO = new TortRightVO();
|
|
|
BeanUtils.copyProperties(item, tortRightVO);
|
|
|
//新建特征与侵权分析对比结果VOS
|
|
|
List<Feature> features = item.getFeatures();
|
|
|
LambdaQueryWrapper<FTOCompareRecord> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.eq(FTOCompareRecord::getProjectTaskId, taskId);
|
|
|
+ queryWrapper
|
|
|
+ .eq(FTOCompareRecord::getCompareFileNumber, patentNo)
|
|
|
+ .eq(FTOCompareRecord::getProjectId, projectId);
|
|
|
List<FTOCompareRecord> ftoCompareRecords = this.list(queryWrapper);
|
|
|
- List<TortVO> tortVOS = this.loadTortVO2(features, ftoCompareRecords);
|
|
|
+ List<TortVO> tortVOS = this.loadTortVO2(taskId, lastTaskId, features, ftoCompareRecords);
|
|
|
tortRightVO.setTortVOS(tortVOS);
|
|
|
tortRightVOS.add(tortRightVO);
|
|
|
});
|
|
@@ -587,7 +594,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
|
* @param ftoCompareRecords
|
|
|
* @return
|
|
|
*/
|
|
|
- public List<TortVO> loadTortVO2(List<Feature> features, List<FTOCompareRecord> ftoCompareRecords) {
|
|
|
+ public List<TortVO> loadTortVO2(Integer taskId, Integer lastTaskId, List<Feature> features, List<FTOCompareRecord> ftoCompareRecords) {
|
|
|
List<TortVO> tortVOS = new ArrayList<>();
|
|
|
for (Feature feature : features) {
|
|
|
//新建特征与侵权分析对比结果VO
|
|
@@ -602,7 +609,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
|
// 原始数据应该是ifOriginal为true的数据
|
|
|
FTOCompareRecord originalRecord = ftoCompareRecords
|
|
|
.stream()
|
|
|
- .filter(item -> item.getFeatureId() != null && item.getFeatureId().equals(feature.getId()) && item.getIfOriginal().equals(true))
|
|
|
+ .filter(item -> item.getFeatureId() != null && item.getProjectTaskId() != null && item.getProjectTaskId().equals(taskId) && item.getFeatureId().equals(feature.getId()) && item.getIfOriginal().equals(true))
|
|
|
.findFirst()
|
|
|
.orElse(null);
|
|
|
if (originalRecord != null) {
|
|
@@ -610,7 +617,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
|
} else {
|
|
|
FTOCompareRecord record = ftoCompareRecords
|
|
|
.stream()
|
|
|
- .filter(item -> item.getFeatureId() != null && item.getFeatureId().equals(feature.getId()) && item.getIfFinal().equals(true))
|
|
|
+ .filter(item -> item.getFeatureId() != null && item.getProjectTaskId() != null && item.getProjectTaskId().equals(taskId) && item.getFeatureId().equals(feature.getId()) && item.getIfFinal().equals(true))
|
|
|
.findFirst()
|
|
|
.orElse(null);
|
|
|
if (record != null) {
|
|
@@ -620,7 +627,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
|
//协同人处理的数据
|
|
|
FTOCompareRecord currentRecord = ftoCompareRecords
|
|
|
.stream()
|
|
|
- .filter(item -> item.getFeatureId() != null && item.getFeatureId().equals(feature.getId()) && item.getIfOriginal().equals(false) && item.getIfFinal().equals(false))
|
|
|
+ .filter(item -> item.getFeatureId() != null && item.getProjectTaskId() != null && item.getProjectTaskId().equals(taskId) && item.getFeatureId().equals(feature.getId()) && item.getIfOriginal().equals(false) && item.getIfFinal().equals(false))
|
|
|
.findFirst()
|
|
|
.orElse(null);
|
|
|
if (currentRecord != null) {
|
|
@@ -629,7 +636,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
|
//最终数据
|
|
|
FTOCompareRecord finalRecord = ftoCompareRecords
|
|
|
.stream()
|
|
|
- .filter(item -> item.getFeatureId() != null && item.getFeatureId().equals(feature.getId()) && item.getIfFinal().equals(true))
|
|
|
+ .filter(item -> item.getFeatureId() != null && item.getProjectTaskId() != null && item.getProjectTaskId().equals(lastTaskId) && item.getFeatureId().equals(feature.getId()) && item.getIfFinal().equals(true))
|
|
|
.findFirst()
|
|
|
.orElse(null);
|
|
|
if (finalRecord != null) {
|
|
@@ -672,9 +679,11 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
|
throw new UnLoginException("未登录");
|
|
|
}
|
|
|
try {
|
|
|
+ Integer lastTaskId = this.getLastTaskId(projectId, patentNo);
|
|
|
//首先是根据projectId,以及ifOriginal为false、ifFinal为true这几个条件删除表中的最终数据(最开始的数据)
|
|
|
LambdaQueryWrapper<FTOCompareRecord> removeWrapper = new LambdaQueryWrapper<>();
|
|
|
- removeWrapper.eq(FTOCompareRecord::getProjectTaskId, taskId)
|
|
|
+ removeWrapper.eq(FTOCompareRecord::getProjectId, projectId)
|
|
|
+ .eq(FTOCompareRecord::getProjectTaskId, lastTaskId)
|
|
|
.eq(FTOCompareRecord::getCompareFileNumber, patentNo)
|
|
|
.eq(FTOCompareRecord::getIfOriginal, false)
|
|
|
.eq(FTOCompareRecord::getIfFinal, true);
|
|
@@ -689,7 +698,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
|
tortFinal.setFeatureId(item.getFeatureId());
|
|
|
tortFinal.setProjectId(projectId);
|
|
|
tortFinal.setCompareFileNumber(patentNo);
|
|
|
- tortFinal.setProjectTaskId(taskId);
|
|
|
+ tortFinal.setProjectTaskId(lastTaskId);
|
|
|
tortFinal.setCompareResult(item.getCompareResult());
|
|
|
tortFinal.setCompareDescription(item.getCompareDescription());
|
|
|
tortFinal.setTargetDescription(item.getTargetDescription());
|
|
@@ -914,17 +923,15 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
|
*/
|
|
|
public Integer getLastTaskId(Integer projectId, String patentNo){
|
|
|
//根据报告id和专利号查询最新的对比结果的任务id
|
|
|
- LambdaQueryWrapper<FTOCompareRecord> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ LambdaQueryWrapper<PatentSplitMessage> 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);
|
|
|
+ .eq(PatentSplitMessage::getProjectId, projectId)
|
|
|
+ .eq(PatentSplitMessage::getPatentNo, patentNo)
|
|
|
+ .orderByDesc(PatentSplitMessage::getCreateTime);
|
|
|
+ List<PatentSplitMessage> patentSplitMessages = patentSplitMessageService.list(queryWrapper);
|
|
|
Integer lastTaskId = null;
|
|
|
- if (!ftoCompareRecords.isEmpty()) {
|
|
|
- lastTaskId = ftoCompareRecords.get(0).getProjectTaskId();
|
|
|
+ if (!patentSplitMessages.isEmpty()) {
|
|
|
+ lastTaskId = patentSplitMessages.get(0).getTaskId();
|
|
|
}
|
|
|
return lastTaskId;
|
|
|
}
|