|
@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.spire.pdf.packages.sprcxq;
|
|
import com.spire.pdf.packages.sprcxq;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.apache.poi.ss.formula.functions.T;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.context.annotation.Lazy;
|
|
import org.springframework.context.annotation.Lazy;
|
|
@@ -444,7 +445,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
if (type == 1) {//查询协同前后对比结果
|
|
if (type == 1) {//查询协同前后对比结果
|
|
tortRightVOS = this.loadBeforeAndAfter(taskId, patentNo, patentRightVos);
|
|
tortRightVOS = this.loadBeforeAndAfter(taskId, patentNo, patentRightVos);
|
|
} else if (type == 2) {//发起人的查询
|
|
} else if (type == 2) {//发起人的查询
|
|
- tortRightVOS = this.loadTortRightVOS2(taskId, projectId, patentRightVos);
|
|
|
|
|
|
+ tortRightVOS = this.loadTortRightVOS2(taskId, patentRightVos);
|
|
}
|
|
}
|
|
tortCompareRecordVO.setTortRightVOS(tortRightVOS);
|
|
tortCompareRecordVO.setTortRightVOS(tortRightVOS);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
@@ -532,11 +533,10 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
/**
|
|
/**
|
|
* 根据projectId和权要集合装载返回侵权分析对比结果页面VO
|
|
* 根据projectId和权要集合装载返回侵权分析对比结果页面VO
|
|
* @param taskId
|
|
* @param taskId
|
|
- * @param projectId
|
|
|
|
* @param patentRightVos
|
|
* @param patentRightVos
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public List<TortRightVO> loadTortRightVOS2(Integer taskId, Integer projectId, List<PatentRightVo> patentRightVos){
|
|
|
|
|
|
+ public List<TortRightVO> loadTortRightVOS2(Integer taskId, List<PatentRightVo> patentRightVos){
|
|
if (patentRightVos != null && !patentRightVos.isEmpty()) {
|
|
if (patentRightVos != null && !patentRightVos.isEmpty()) {
|
|
//新建权要层信息
|
|
//新建权要层信息
|
|
List<TortRightVO> tortRightVOS = new ArrayList<>();
|
|
List<TortRightVO> tortRightVOS = new ArrayList<>();
|
|
@@ -549,7 +549,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
LambdaQueryWrapper<FTOCompareRecord> queryWrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<FTOCompareRecord> queryWrapper = new LambdaQueryWrapper<>();
|
|
queryWrapper.eq(FTOCompareRecord::getProjectTaskId, taskId);
|
|
queryWrapper.eq(FTOCompareRecord::getProjectTaskId, taskId);
|
|
List<FTOCompareRecord> ftoCompareRecords = this.list(queryWrapper);
|
|
List<FTOCompareRecord> ftoCompareRecords = this.list(queryWrapper);
|
|
- List<TortVO> tortVOS = this.loadTortVO2(taskId, features, ftoCompareRecords);
|
|
|
|
|
|
+ List<TortVO> tortVOS = this.loadTortVO2(features, ftoCompareRecords);
|
|
tortRightVO.setTortVOS(tortVOS);
|
|
tortRightVO.setTortVOS(tortVOS);
|
|
tortRightVOS.add(tortRightVO);
|
|
tortRightVOS.add(tortRightVO);
|
|
});
|
|
});
|
|
@@ -562,12 +562,11 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
/**
|
|
/**
|
|
* 发起人查询
|
|
* 发起人查询
|
|
* 装载特征与对比结果
|
|
* 装载特征与对比结果
|
|
- * @param taskId
|
|
|
|
* @param features
|
|
* @param features
|
|
* @param ftoCompareRecords
|
|
* @param ftoCompareRecords
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public List<TortVO> loadTortVO2(Integer taskId, List<Feature> features, List<FTOCompareRecord> ftoCompareRecords){
|
|
|
|
|
|
+ public List<TortVO> loadTortVO2(List<Feature> features, List<FTOCompareRecord> ftoCompareRecords){
|
|
List<TortVO> tortVOS = new ArrayList<>();
|
|
List<TortVO> tortVOS = new ArrayList<>();
|
|
for (Feature feature : features) {
|
|
for (Feature feature : features) {
|
|
//新建特征与侵权分析对比结果VO
|
|
//新建特征与侵权分析对比结果VO
|
|
@@ -723,15 +722,103 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public void getLastRecord(Integer projectId, String patentNo){
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 根据报告id和专利号查询最新的对比结果
|
|
|
|
+ * @param projectId
|
|
|
|
+ * @param patentNo
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public TortCompareRecordVO getLastRecord(Integer projectId, String patentNo){
|
|
|
|
+ TortCompareRecordVO tortCompareRecordVO = new TortCompareRecordVO();
|
|
|
|
+ tortCompareRecordVO.setProjectId(projectId);
|
|
|
|
+ //根据报告id,专利号,ifFinal为true,createTime为最新的查询一条最新的结果
|
|
LambdaQueryWrapper<FTOCompareRecord> queryWrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<FTOCompareRecord> queryWrapper = new LambdaQueryWrapper<>();
|
|
- queryWrapper.eq(FTOCompareRecord::getCompareFileNumber, patentNo)
|
|
|
|
|
|
+ queryWrapper
|
|
|
|
+ .eq(FTOCompareRecord::getCompareFileNumber, patentNo)
|
|
.eq(FTOCompareRecord::getProjectId, projectId)
|
|
.eq(FTOCompareRecord::getProjectId, projectId)
|
|
.eq(FTOCompareRecord::getIfFinal, true)
|
|
.eq(FTOCompareRecord::getIfFinal, true)
|
|
.eq(FTOCompareRecord::getIfOriginal, false)
|
|
.eq(FTOCompareRecord::getIfOriginal, false)
|
|
.orderByDesc(FTOCompareRecord::getCreateTime);
|
|
.orderByDesc(FTOCompareRecord::getCreateTime);
|
|
- List<FTOCompareRecord> ftoCompareRecords = this.list(queryWrapper);
|
|
|
|
|
|
+ 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错误,多个或者没有");
|
|
|
|
+ }
|
|
|
|
+ //根据专利号查询权要
|
|
|
|
+ try {
|
|
|
|
+ List<PatentRightVo> patentRightVos = new ArrayList<>();
|
|
|
|
+ List<RePatentClaim> patentRights = featureService.getRightListByNo(patentNo);
|
|
|
|
+ LambdaQueryWrapper<Feature> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ wrapper.eq(Feature::getProjectTaskId, taskId)
|
|
|
|
+ .eq(Feature::getPatentNo, patentNo);
|
|
|
|
+ List<Feature> allFeatures = featureService.list(wrapper);
|
|
|
|
+ patentRightVos = featureService.loadPatentRightVO(patentRights, allFeatures, projectId, patentNo);
|
|
|
|
+ //装载权要层下的特征与对比结果
|
|
|
|
+ List<TortRightVO> tortRightVOS = new ArrayList<>();
|
|
|
|
+ tortRightVOS = this.loadLastRecord(lastFTORecords, patentRightVos);
|
|
|
|
+ tortCompareRecordVO.setTortRightVOS(tortRightVOS);
|
|
|
|
+ return tortCompareRecordVO;
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ throw new XiaoShiException("根据专利号查询权要失败");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 查询最新的对比结果
|
|
|
|
+ * @param lastFTORecords
|
|
|
|
+ * @param patentRightVos
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public List<TortRightVO> loadLastRecord(List<FTOCompareRecord> lastFTORecords, List<PatentRightVo> patentRightVos){
|
|
|
|
+ if (patentRightVos != null && !patentRightVos.isEmpty()) {
|
|
|
|
+ //新建权要层信息
|
|
|
|
+ List<TortRightVO> tortRightVOS = new ArrayList<>();
|
|
|
|
+ //遍历装载权要层信息
|
|
|
|
+ patentRightVos.forEach(item -> {
|
|
|
|
+ TortRightVO tortRightVO = new TortRightVO();
|
|
|
|
+ BeanUtils.copyProperties(item, tortRightVO);
|
|
|
|
+ //新建特征与侵权分析对比结果VOS
|
|
|
|
+ List<Feature> features = item.getFeatures();
|
|
|
|
+ List<TortVO> tortVOS = this.loadLastVO(features, lastFTORecords);
|
|
|
|
+ tortRightVO.setTortVOS(tortVOS);
|
|
|
|
+ tortRightVOS.add(tortRightVO);
|
|
|
|
+ });
|
|
|
|
+ return tortRightVOS;
|
|
|
|
+ } else {
|
|
|
|
+ throw new XiaoShiException("传入权要为空");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public List<TortVO> loadLastVO(List<Feature> features, List<FTOCompareRecord> ftoCompareRecords){
|
|
|
|
+ List<TortVO> tortVOS = new ArrayList<>();
|
|
|
|
+ for (Feature feature : features) {
|
|
|
|
+ //新建特征与侵权分析对比结果VO
|
|
|
|
+ //装载特征部分的信息
|
|
|
|
+ TortVO tortVO = tortCompareRecordService.loadFeature(feature);
|
|
|
|
+ //装载侵权分析对比结果的部分
|
|
|
|
+ FTOCompareRecordVO originalRecordVO = new FTOCompareRecordVO();
|
|
|
|
+ if (!ftoCompareRecords.isEmpty()) {
|
|
|
|
+ // 原始数据的装载
|
|
|
|
+ // 原始数据应该是ifOriginal为true的数据
|
|
|
|
+ FTOCompareRecord originalRecord = ftoCompareRecords
|
|
|
|
+ .stream()
|
|
|
|
+ .filter(item -> item.getFeatureId() != null && item.getFeatureId().equals(feature.getId()))
|
|
|
|
+ .findFirst()
|
|
|
|
+ .orElse(null);
|
|
|
|
+ if (originalRecord != null) {
|
|
|
|
+ originalRecordVO = tortCompareRecordService.loadVO(originalRecord);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ tortVO.setOriginalRecordVO(originalRecordVO);
|
|
|
|
+ tortVOS.add(tortVO);
|
|
|
|
+ }
|
|
|
|
+ return tortVOS;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|