فهرست منبع

2/4 保存FTO对比记录

lwhhszx 1 سال پیش
والد
کامیت
2a365c5f1f

+ 28 - 23
src/main/java/cn/cslg/pas/service/business/CustomFieldService.java

@@ -247,22 +247,26 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
 
 
     public List<AllCustomFieldVO> getAllProjectCustomField(Integer projectId) {
-        Integer order = 0;
+
         List<AllCustomFieldVO> allCustomFieldVOS = cacheUtils.getPatentCustomField(projectId);
         if (CollectionUtils.isEmpty(allCustomFieldVOS)) {
             allCustomFieldVOS = new ArrayList<>();
-            //根据 project获得栏位值
-            List<CustomField> customFields = new ArrayList<>();
-            LambdaQueryWrapper<CustomField> queryWrapper = new LambdaQueryWrapper<>();
-            queryWrapper.eq(CustomField::getProjectId, projectId);
-            customFields = this.list(queryWrapper);
-            //
-            LambdaQueryWrapper<AssoProjectTreeNode> assoQueryWrapper = new LambdaQueryWrapper<>();
-            assoQueryWrapper.eq(AssoProjectTreeNode::getProjectId, projectId);
-            List<AssoProjectTreeNode> projectTreeNodes = assoProjectTreeNodeService.list(assoQueryWrapper);
-
-            for (CustomField item : customFields) {
-                AllCustomFieldVO allCustomFieldVO = new AllCustomFieldVO();
+        }
+        Integer order = allCustomFieldVOS.size();
+        //根据 project获得栏位值
+        List<CustomField> customFields = new ArrayList<>();
+        LambdaQueryWrapper<CustomField> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(CustomField::getProjectId, projectId);
+        customFields = this.list(queryWrapper);
+        //
+        LambdaQueryWrapper<AssoProjectTreeNode> assoQueryWrapper = new LambdaQueryWrapper<>();
+        assoQueryWrapper.eq(AssoProjectTreeNode::getProjectId, projectId);
+        List<AssoProjectTreeNode> projectTreeNodes = assoProjectTreeNodeService.list(assoQueryWrapper);
+
+        for (CustomField item : customFields) {
+            AllCustomFieldVO allCustomFieldVO = allCustomFieldVOS.stream().filter(i -> i.getId().equals(item.getId()) && i.getType().equals(item.getType())).findFirst().orElse(null);
+            if (allCustomFieldVO == null) {
+                allCustomFieldVO = new AllCustomFieldVO();
                 allCustomFieldVO.setId(item.getId());
                 allCustomFieldVO.setName(item.getName());
                 allCustomFieldVO.setType(item.getType());
@@ -270,10 +274,13 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
                 allCustomFieldVOS.add(allCustomFieldVO);
                 order += 1;
             }
+        }
 
-            for (AssoProjectTreeNode item : projectTreeNodes) {
-                //根据类型和id
-                AllCustomFieldVO allCustomFieldVO = new AllCustomFieldVO();
+        for (AssoProjectTreeNode item : projectTreeNodes) {
+            //根据类型和id
+            AllCustomFieldVO allCustomFieldVO = allCustomFieldVOS.stream().filter(i -> i.getId().equals(item.getId()) && i.getType().equals(item.getTreeType())).findFirst().orElse(null);
+            if (allCustomFieldVO == null) {
+                allCustomFieldVO = new AllCustomFieldVO();
                 allCustomFieldVO.setId(item.getId());
                 allCustomFieldVO.setType(item.getTreeType());
                 allCustomFieldVO.setSysOrder(order);
@@ -293,8 +300,6 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
                 allCustomFieldVOS.add(allCustomFieldVO);
                 order += 1;
             }
-
-            cacheUtils.addPatentCustomField(projectId, allCustomFieldVOS);
         }
 
         return allCustomFieldVOS;
@@ -459,15 +464,15 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
                             fieldValueVO.setPath(item.getPath());
 
                             List<String> idStrs = new ArrayList<>();
-                            List<String> pathNames =new ArrayList<>();
+                            List<String> pathNames = new ArrayList<>();
                             if (item.getPath() != null && !item.getPath().equals("")) {
                                 idStrs = Arrays.asList(item.getPath().split("/"));
-                            pathNames=  treeNodeService.getBaseMapper().getTreeFieldPath(idStrs);
+                                pathNames = treeNodeService.getBaseMapper().getTreeFieldPath(idStrs);
 
                             }
                             pathNames.add(item.getName());
-                         String pathValue=   StringUtils.join(pathNames,"/");
-                         fieldValueVO.setPathValue(pathValue);
+                            String pathValue = StringUtils.join(pathNames, "/");
+                            fieldValueVO.setPathValue(pathValue);
                             fieldValueVO.setValue(pathValue);
                             fieldValueVOS.add(fieldValueVO);
                         });
@@ -526,7 +531,7 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
                                 .equals(item.getCustomFieldId()))
                         .findFirst().orElse(null);
                 if (esCustomFieldDTO == null) {
-                    esCustomFieldDTO =new EsCustomFieldValueDTO();
+                    esCustomFieldDTO = new EsCustomFieldValueDTO();
                     esCustomFieldDTO.setFieldId(item.getCustomFieldId().toString());
                     List<String> values = new ArrayList<>();
                     values.add(item.getId().toString());

+ 44 - 33
src/main/java/cn/cslg/pas/service/business/FTOCompareRecordService.java

@@ -29,6 +29,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 import java.util.function.Function;
@@ -237,6 +238,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
      * @param tortCompareRecordDTO
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     public List<Integer> addFTOCompareRecord(TortCompareRecordDTO tortCompareRecordDTO) {
         Integer taskId = tortCompareRecordDTO.getTaskId();
         if (taskId == null) {
@@ -254,7 +256,8 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
         //查询出原来的特征id集合
         LambdaQueryWrapper<Feature> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.select(Feature::getId)
-                .eq(Feature::getProjectTaskId, taskId);
+                .eq(Feature::getProjectTaskId, taskId)
+                .eq(Feature::getPatentNo, patentNo);
         Function<Object, Integer> f = (o -> Integer.parseInt(o.toString()));
         List<Integer> featureIds = featureService.listObjs(queryWrapper, f);
         // 删除特征
@@ -282,6 +285,14 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
      * @param tortDTOS
      */
     public List<Integer> updateFeatures(String patentNo, Integer taskId, List<Integer> featureIds, List<TortDTO> tortDTOS) {
+        //根据专利号和任务id获得拆分信息
+        LambdaQueryWrapper<PatentSplitMessage> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(PatentSplitMessage::getTaskId, taskId)
+                .eq(PatentSplitMessage::getPatentNo, patentNo);
+        PatentSplitMessage patentSplitMessage = patentSplitMessageService.getOne(queryWrapper);
+        if (patentSplitMessage == null) {
+            throw new XiaoShiException("未获取到拆分信息");
+        }
         // 获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
         try {
@@ -322,6 +333,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
                 feature.setCreateId(personnelVO.getId());
                 feature.setRightType(item.getRightType());
                 feature.setSysOrder(order);
+                feature.setSplitMessageId(patentSplitMessage.getId());
                 feature.insert();
                 item.setFeatureId(feature.getId());
                 // 新增对比结果
@@ -907,39 +919,38 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
         List<TortVO> compareMessageVOS = new ArrayList<>();
         if (tortCompareRecordVO != null) {
             List<TortRightVO> tortRightVOS = tortCompareRecordVO.getTortRightVOS();
-         if(tortRightVOS!=null) {
-             for (TortRightVO item : tortRightVOS) {
-                 if(item.getTortVOS() != null && item.getTortVOS().size() > 0) {
-                     compareMessageVOS.addAll((item.getTortVOS()));
-                 }
-                 if (item.getType().equals(0)) {
-                     mainRightNum++;
-                 }
-                 rightNum++;
-             }
-         }
+            if (tortRightVOS != null) {
+                for (TortRightVO item : tortRightVOS) {
+                    if (item.getTortVOS() != null && item.getTortVOS().size() > 0) {
+                        compareMessageVOS.addAll((item.getTortVOS()));
+                    }
+                    if (item.getType().equals(0)) {
+                        mainRightNum++;
+                    }
+                    rightNum++;
+                }
+            }
         }
-        compareMessageVOS.forEach(item->{
-         if(item.getOriginalRecordVO()!=null){
-             item.setTargetDescription(item.getOriginalRecordVO().getTargetDescription());
-             if(item.getOriginalRecordVO().getCompareResult()!=null){
-                 switch (item.getOriginalRecordVO().getCompareResult())
-                 {
-                     case 0:
-                         item.setResultStr("字面相同");
-                         break;
-                     case 1:
-                         item.setResultStr("等同");
-                         break;
-                     case 2:
-                         item.setResultStr("不等同");
-                         break;
-                     case 3:
-                         item.setResultStr("待确定");
-                         break;
-                 }
-             }
-         }
+        compareMessageVOS.forEach(item -> {
+            if (item.getOriginalRecordVO() != null) {
+                item.setTargetDescription(item.getOriginalRecordVO().getTargetDescription());
+                if (item.getOriginalRecordVO().getCompareResult() != null) {
+                    switch (item.getOriginalRecordVO().getCompareResult()) {
+                        case 0:
+                            item.setResultStr("字面相同");
+                            break;
+                        case 1:
+                            item.setResultStr("等同");
+                            break;
+                        case 2:
+                            item.setResultStr("不等同");
+                            break;
+                        case 3:
+                            item.setResultStr("待确定");
+                            break;
+                    }
+                }
+            }
         });
         map.put("compareMessageVOs", compareMessageVOS);
         map.put("rightNum", rightNum);

+ 2 - 2
src/main/java/cn/cslg/pas/service/importPatent/TaskThread.java

@@ -81,7 +81,7 @@ public class TaskThread extends Thread {
         if (ifCataloguing == '1' || ifFullText == '1') {
             threadCount += 1;
             this.patentProcess.setPatentMessageDefaultNum(0);
-            this.patentProcess.setPatentMessageDoneNum(0);
+            this.patentProcess.setPatentMessageDoneNum(importTaskAMVO.getDoneNum());
             if (ifCataloguing == '1') {
                 messageThreadCount += 1;
             }
@@ -91,7 +91,7 @@ public class TaskThread extends Thread {
         }
         if (ifPdf == '1') {
             this.patentProcess.setPdfDefaultNum(0);
-            this.patentProcess.setPdfDoneNum(0);
+            this.patentProcess.setPdfDoneNum(importTaskAMVO.getDoneNum());
             threadCount += 1;
         }
         importTaskAMVO.setMessageThreadCounter(messageThreadCount);