|
@@ -91,7 +91,6 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
|
|
|
compareMessage.setCompareDescription(vos.get(i).getCompareDescription());
|
|
|
compareMessage.setReportId(feature.getReportId());
|
|
|
compareMessage.setTaskId(feature.getTaskId());
|
|
|
-// compareMessage.setTaskType(1);
|
|
|
compareMessages.add(compareMessage);
|
|
|
order += 1;
|
|
|
}
|
|
@@ -119,32 +118,42 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
|
|
|
LambdaQueryWrapper<Features> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
if (reportId != null && reportId != 0) {
|
|
|
queryWrapper.eq(Features::getReportId, reportId);
|
|
|
- } else if (taskId != null) {
|
|
|
+ }
|
|
|
+ if (taskId != null) {
|
|
|
queryWrapper.eq(Features::getTaskId, taskId);
|
|
|
}
|
|
|
queryWrapper.eq(Features::getSignPatentNo, patentNo);
|
|
|
List<Features> features = featureService.list(queryWrapper);
|
|
|
List<Integer> featureIds = features.stream().map(Features::getId).collect(Collectors.toList());
|
|
|
+ List<CompareMessage> compareMessages=new ArrayList<>();
|
|
|
+ if(featureIds.size()>0){
|
|
|
LambdaQueryWrapper<CompareMessage> queryWrapper1 = new LambdaQueryWrapper<>();
|
|
|
queryWrapper1.in(CompareMessage::getFeatureId, featureIds);
|
|
|
- List<CompareMessage> compareMessages = this.list(queryWrapper1);
|
|
|
+ if (taskId != null) {
|
|
|
+ queryWrapper1.eq(CompareMessage::getTaskId, taskId);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ queryWrapper1.isNull(CompareMessage::getTaskType);
|
|
|
+ }
|
|
|
+ compareMessages = this.list(queryWrapper1);}
|
|
|
+
|
|
|
List<CompareMessageVO> compareMessageVOS = new ArrayList<>();
|
|
|
- features.forEach(item -> {
|
|
|
+ for (Features item: features){
|
|
|
CompareMessageVO compareMessageVO = new CompareMessageVO();
|
|
|
BeanUtil.copyProperties(item, compareMessageVO);
|
|
|
CompareMessage compareMessage = new CompareMessage();
|
|
|
if (compareMessages.size() != 0) {
|
|
|
- List<CompareMessage> compareMessageList = compareMessages.stream().filter(tem -> tem.getFeatureId().equals(item.getId())).collect(Collectors.toList());
|
|
|
- if(compareMessageList.size()!=0){
|
|
|
- compareMessage=compareMessageList.get(0);
|
|
|
- }
|
|
|
+ List<CompareMessage> compareMessageList = compareMessages.stream().filter(tem -> tem.getFeatureId().equals(item.getId())).collect(Collectors.toList());
|
|
|
+ if (compareMessageList.size() != 0) {
|
|
|
+ compareMessage = compareMessageList.get(0);
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
compareMessageVO.setCompareResult(compareMessage.getCompareResult());
|
|
|
compareMessageVO.setCompareDescription(compareMessage.getCompareDescription());
|
|
|
compareMessageVO.setTargetDescription(compareMessage.getTargetDescription());
|
|
|
compareMessageVOS.add(compareMessageVO);
|
|
|
- });
|
|
|
+ }
|
|
|
//将拆解的权要和特征装载到对象PatentRightVo
|
|
|
for (int i = 0; i < patentRights.size(); i++) {
|
|
|
|
|
@@ -211,27 +220,115 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
|
|
|
* @Autor lrj
|
|
|
* @Deserption 查找协同任务对比记录
|
|
|
*/
|
|
|
- public Map<String, Object> querySynery(Integer taskId, String patentNo, Integer reportId) throws IOException {
|
|
|
- //根据taskId 和专利号查询该协同任务是否有对比历史
|
|
|
+ public Map<String, Object> querySynery(Integer taskId, String patentNo) throws IOException {
|
|
|
+ Task task =taskService.getById(taskId);
|
|
|
+ LambdaQueryWrapper<CompareMessage> queryWrapper =new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(CompareMessage::getTaskId,taskId);
|
|
|
+ List<CompareMessage> compareMessages =this.list(queryWrapper);
|
|
|
+ if(compareMessages.size()==0){
|
|
|
+ Map<String, Object> map = this.queryCompareMessage(null, patentNo, task.getReportId());
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return this.queryCompareMessage(taskId, patentNo, null);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public Map<String, Object> queryAllCompareMessage( String patentNo, Integer reportId) throws IOException {
|
|
|
+ List<PatentRightVo> patentRightVos = new ArrayList<>();
|
|
|
+ String resBody = outInterfaceService.getPatentRightFromPAS(patentNo);
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(resBody);
|
|
|
+ //解析jason获得标的专利的权要
|
|
|
+ List<PatentRight> patentRightsOrgin = JSON.parseArray(jsonObject.getString("data"), PatentRight.class);
|
|
|
+ //处理权要
|
|
|
+ List<PatentRight> patentRights = featureService.FormatPatentRights(patentRightsOrgin);
|
|
|
+ //查询特征
|
|
|
LambdaQueryWrapper<Features> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(Features::getReportId, reportId);
|
|
|
+ queryWrapper.eq(Features::getSignPatentNo, patentNo);
|
|
|
List<Features> features = featureService.list(queryWrapper);
|
|
|
- if (features.size() <= 0) {
|
|
|
- Map<String, Object> map = this.queryCompareMessage(null, patentNo, reportId);
|
|
|
- List<PatentRightVo> patentRightVos = (List<PatentRightVo>) map.get("patentRightVos");
|
|
|
- if (patentRightVos != null && patentRightVos.size() != 0) {
|
|
|
- for (PatentRightVo patentRightVo : patentRightVos) {
|
|
|
- List<CompareMessageVO> compareMessageVOS = patentRightVo.getCompareMessageVOS();
|
|
|
- if (compareMessageVOS.size() != 0) {
|
|
|
- for (CompareMessageVO compareMessageVO : compareMessageVOS) {
|
|
|
- compareMessageVO.setTaskId(taskId);
|
|
|
+ List<Integer> featureIds = features.stream().map(Features::getId).collect(Collectors.toList());
|
|
|
+ LambdaQueryWrapper<CompareMessage> queryWrapper1 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper1.in(CompareMessage::getFeatureId, featureIds);
|
|
|
+ List<CompareMessage> compareMessages = this.list(queryWrapper1);
|
|
|
+ List<CompareMessageVO> compareMessageVOS = new ArrayList<>();
|
|
|
+ features.forEach(item -> {
|
|
|
+ CompareMessageVO compareMessageVO = new CompareMessageVO();
|
|
|
+ BeanUtil.copyProperties(item, compareMessageVO);
|
|
|
+ CompareMessage compareMessage = new CompareMessage();
|
|
|
+ if (compareMessages.size() != 0) {
|
|
|
+ List<CompareMessage> compareMessageList = compareMessages.stream().filter(tem -> tem.getFeatureId().equals(item.getId())).collect(Collectors.toList());
|
|
|
+ compareMessageList.forEach(
|
|
|
+ tem->{
|
|
|
+ if(tem.getTaskType().equals(null)){
|
|
|
+ compareMessageVO.setCompareResult(tem.getCompareResult());
|
|
|
+ compareMessageVO.setCompareDescription(tem.getCompareDescription());
|
|
|
+ compareMessageVO.setTargetDescription(tem.getTargetDescription());
|
|
|
+ }
|
|
|
+ else if(tem.getTaskType().equals(1)){
|
|
|
+ compareMessageVO.setCompareResult2(tem.getCompareResult());
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
+ );
|
|
|
|
|
|
}
|
|
|
+ compareMessageVOS.add(compareMessageVO);
|
|
|
+ });
|
|
|
+ //将拆解的权要和特征装载到对象PatentRightVo
|
|
|
+ for (int i = 0; i < patentRights.size(); i++) {
|
|
|
|
|
|
+ List<CompareMessageVO> featuresList = new ArrayList<>();
|
|
|
+ //对需要拆解的权要进行拆解
|
|
|
+ if (compareMessageVOS != null && compareMessageVOS.size() != 0) {
|
|
|
+ int rightId = patentRights.get(i).getSort();
|
|
|
+ featuresList = compareMessageVOS.stream().filter(item -> item.getRightId().equals(rightId)).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ //装载到对象PatentRightVo
|
|
|
+ PatentRightVo patentRightVo = new PatentRightVo();
|
|
|
+ String name = "权要" + (i + 1);
|
|
|
+ patentRightVo.setPatentId(patentRights.get(i).getPatentId());
|
|
|
+ patentRightVo.setCompareMessageVOS(featuresList);
|
|
|
+ patentRightVo.setContent(patentRights.get(i).getContent());
|
|
|
+ patentRightVo.setSort(patentRights.get(i).getSort());
|
|
|
+ patentRightVo.setType(patentRights.get(i).getType());
|
|
|
+ patentRightVo.setContentOut(patentRights.get(i).getContentOut());
|
|
|
+ patentRightVo.setRightName(name);
|
|
|
+ patentRightVo.setSignPatentNo(patentNo);
|
|
|
+ patentRightVos.add(patentRightVo);
|
|
|
}
|
|
|
- return this.queryCompareMessage(taskId, patentNo, null);
|
|
|
+ Map<String, Object> map1 = assoTaskPatentSplitService.getSplitMessage(null, patentNo);
|
|
|
+ Map<String, Object> map = new HashMap<String, Object>();
|
|
|
+ map.put("patentRightVos", patentRightVos);
|
|
|
+ map.put("splitBy", map1.get("splitBy"));
|
|
|
+ map.put("splitType", map1.get("splitType"));
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @autor lrj
|
|
|
+ * @param addSyneryVo
|
|
|
+ * @return
|
|
|
+ * @Descprtion 添加协同记录
|
|
|
+ */
|
|
|
+
|
|
|
+ public Boolean addSynery(AddSyneryVo addSyneryVo){
|
|
|
+ // 根据任务Id获得任务信息
|
|
|
+ Task task = taskService.getById(addSyneryVo.getTaskId());
|
|
|
+ //装载对比结果信息
|
|
|
+ List<CompareMessage> compareMessages =addSyneryVo.getCompareMessageList();
|
|
|
+ compareMessages.forEach(
|
|
|
+ item->{
|
|
|
+ item.setTaskId(task.getId());
|
|
|
+ item.setTaskType(1);
|
|
|
+ item.setId(null);
|
|
|
+ }
|
|
|
+ );
|
|
|
+ //删除对比记录
|
|
|
+ LambdaQueryWrapper<CompareMessage> queryWrapper =new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(CompareMessage::getTaskId,task.getId());
|
|
|
+ this.remove(queryWrapper);
|
|
|
+ return this.saveBatch(compareMessages);
|
|
|
|
|
|
}
|
|
|
}
|