Преглед изворни кода

自定义字段 2022/11/22

lwhhszx пре 2 година
родитељ
комит
10674e521b

+ 14 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/PatentField.java

@@ -0,0 +1,14 @@
+package cn.cslg.report.common.model.vo;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+@Data
+@Accessors(chain = true)
+public class PatentField {
+    private Integer id;
+    private Integer type;
+    private String name;
+    private List<String> selected;
+}

+ 2 - 1
RMS/src/main/java/cn/cslg/report/common/model/vo/TaskVO.java

@@ -24,7 +24,8 @@ public class TaskVO extends BaseVO {
 
     @Schema(description = "报告信息")
     private Report report;
-
+    @Schema(description = "报告Id")
+    private Integer reportId;
     @Schema(description = "参与人Id列表")
     private List<Integer> personIds;
 

+ 155 - 0
RMS/src/main/java/cn/cslg/report/common/utils/PatentUtils.java

@@ -0,0 +1,155 @@
+package cn.cslg.report.common.utils;
+
+
+import cn.cslg.report.entity.ReportFieldTree;
+import cn.hutool.core.util.StrUtil;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+public class PatentUtils {
+
+    /**
+     * 直辖市
+     */
+    public static final List<String> CHARTERED_CITIES = Arrays.asList("北京市", "天津市", "重庆市", "上海市");
+
+    public static String getMapKeyByValue(Map<String, String> map, String value) {
+        for (String key : map.keySet()) {
+            if (map.get(key).equals(value)) {
+                return key;
+            }
+        }
+        return null;
+    }
+
+    public static Integer getIntKeyByValue(Map<String, String> map, String value) {
+        String key = getMapKeyByValue(map, value);
+        if (key != null) {
+            return Integer.parseInt(key);
+        }
+        return 0;
+    }
+
+    public static Integer getIntKeyByOrganType(String name) {
+        if (name.length() < 4) {
+            return 1;
+        }
+        if (Arrays.asList("大学", "学院", "学校").contains(name.substring(name.length() - 2))) {
+            return 3;
+        }
+        if (Arrays.asList("研究所", "研究所").contains(name.substring(name.length() - 3)) || "研究总院".equals(name.substring(name.length() - 4))) {
+            return 4;
+        }
+        return 2;
+    }
+
+    public static List<String> formatValue(String string) {
+        return StringUtils.changeStringToString(string.replaceAll(" ", ""), "\\|");
+    }
+
+    public static List<String> formatValue2(String string) {
+        return StringUtils.changeStringToString(string.replaceAll(">", ""), "\\\n");
+    }
+
+    public static String getPatentCountry(String patentNo) {
+        return StrUtil.sub(patentNo, 0, 2);
+    }
+
+    public static String formatAddress(String address, Integer level) {
+        for (String name : CHARTERED_CITIES) {
+            if (address.contains(name)) {
+                if (level == 1 || level == 2) {
+                    return name;
+                } else {
+                    return StrUtil.sub(address, address.indexOf("市") + 1, address.indexOf("区") + 1);
+                }
+            }
+        }
+        String a = removeStringNotChinese(address);
+        switch (level) {
+            case 1:
+                return StrUtil.sub(a, 0, a.indexOf("省") + 1);
+            case 2:
+                return StrUtil.sub(a, a.indexOf("省") + 1, a.indexOf("市") + 1);
+            case 3:
+                return StrUtil.sub(a, a.indexOf("市") + 1, a.indexOf("区") + 1);
+        }
+        return "暂无";
+    }
+
+    private static String removeStringNotChinese(String address) {
+        String tmpString = address.replaceAll("(?i)[^a-zA-Z0-9\u4E00-\u9FA5]", "");
+        char[] carr = tmpString.toCharArray();
+        for (int i = 0; i < tmpString.length(); i++) {
+            if (carr[i] < 0xFF) {
+                carr[i] = ' ';
+            }
+        }
+        return String.copyValueOf(carr).trim();
+    }
+
+
+    public static String getTreeNodeFullName(List<ReportFieldTree> treeList, String path) {
+        List<String> paths = StringUtils.changeStringToString(path, "/");
+        List<String> fullName = new ArrayList<>();
+        paths.forEach(id -> fullName.add(treeList.stream().filter(item -> item.getId().equals(Integer.parseInt(id))).findFirst().orElse(new ReportFieldTree()).getName()));
+        return StringUtils.join(fullName, "\\");
+    }
+
+    public static List<String> getPatentLicensor(String text) {
+        return Arrays.stream(text.replaceAll("\n", "").split("[0-99]\\.")).filter(StringUtils::isNotEmpty).collect(Collectors.toList());
+    }
+
+    public static String formatTextQuerySql(String content, String keyword) {
+        String space = " ";
+        String like = " LIKE ";
+        String notLike = " NOT LIKE ";
+        String left = "'%";
+        String right = "%'";
+        String placeholder = "#";
+        Pattern patten = Pattern.compile(" OR | AND ");
+        Matcher matcher = patten.matcher(content);
+        String copy = matcher.replaceAll(placeholder);
+        String[] querys = StringUtils.split(copy, placeholder);
+        List<String> queryList = new ArrayList<>();
+
+        if (content.split(",").length > 1) {
+            String[] a = content.split(",");
+            StringBuffer sb = new StringBuffer();
+
+            for (int j = 0; j < a.length; j++) {
+                content = sb.append(keyword).append(like).append(left).append(a[j]).append(right).append(" or ").toString();
+
+                if (j == a.length - 1) {
+                    content = sb.delete(sb.length() - 4, sb.length()).toString();
+
+                }
+            }
+        } else {
+            for (int i = 0; i < querys.length; i++) {
+                String query = querys[i].replaceAll("\\(|\\)", "");
+                queryList.add(query);
+                content = content.replaceFirst(query, i + placeholder);
+            }
+            for (int i = 0; i < queryList.size(); i++) {
+                StringBuffer sb = new StringBuffer();
+                content = content.replaceAll(i + placeholder, sb.append(keyword).append(like).append(left).append(queryList.get(i)).append(right).toString());
+            }
+        }
+        return content;
+    }
+
+    public static void main(String[] args) {
+//        System.out.println(formatTextQuerySql("(一种 OR 测试) AND 测试2 AND (测试 OR A method)", "a.name"));
+        System.out.println(formatTextQuerySql("(A method for manufacturing OR A test) AND 测试", "a.name"));
+        System.out.println(formatTextQuerySql("CN", "a.name"));
+        System.out.println(formatTextQuerySql("CN OR CM AND SD", "a.name"));
+        System.out.println(formatTextQuerySql("CN OR CM AND CM", "a.name"));
+    }
+}

+ 3 - 0
RMS/src/main/java/cn/cslg/report/entity/Features.java

@@ -67,4 +67,7 @@ public class Features extends BaseEntity<Features> {
     @TableField(value = "SPLIT_BY")
     private Integer splitBy;
 
+    @TableField(value = "RIGHT_NAME")
+    private String rightName;
+
 }

+ 2 - 0
RMS/src/main/java/cn/cslg/report/entity/PatentRight.java

@@ -33,4 +33,6 @@ public class PatentRight {
     private Integer type;
 
     private Integer sort;
+
+    private String rightName;
 }

+ 3 - 3
RMS/src/main/java/cn/cslg/report/entity/ReportFieldPatentLink.java

@@ -39,14 +39,14 @@ public class ReportFieldPatentLink extends BaseEntity<ReportFieldPatentLink> {
     /**
      * 专利id
      */
-    @TableField("PATENT_ID")
-    private Integer patentId;
+    @TableField("PATENT_NO")
+    private String patentNo;
 
     /**
      * 专题库id
      */
     @TableField("REPORT_ID")
-    private Integer projectId;
+    private Integer reportId;
 
     /**
      * 操作人

+ 12 - 2
RMS/src/main/java/cn/cslg/report/service/business/FeatureService.java

@@ -54,6 +54,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
                     retList.get(retList.size() - 1).setContent(retList.get(retList.size() - 1).getContent() + patentRights.get(i).getContent());
                     retList.get(retList.size() - 1).setContentOut(retList.get(retList.size() - 1).getContentOut() + patentRights.get(i).getContentOut());
                 }
+
             }
 
         }
@@ -119,6 +120,8 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
         //将拆解的权要和特征装载到对象PatentRightVo
         for (int i = 0; i < patentRights.size(); i++) {
             List<Features> featuresList = new ArrayList<>();
+            String[] tems= patentRights.get(i).getContent().split("\\.");
+            String name ="权要"+tems[0].replace(" ","");
             //对需要拆解的权要进行拆解
             if (partRightIds.contains(patentRights.get(i).getId())) {
 
@@ -128,10 +131,13 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
                 }
                 //如果数据库里无拆解记录则手动插入一条
                 if (featuresList == null || featuresList.size() == 0 || flag == 1) {
+                    //去除存在数据(可删除这部分)
                     LambdaQueryWrapper<Features> wrapper = new LambdaQueryWrapper<>();
                     wrapper.eq(Features::getReportId, reportId)
                             .eq(Features::getSignPatentNo, patentNo)
-                            .eq(Features::getPartnerId, personnelVO.getId());
+                            .eq(Features::getPartnerId, personnelVO.getId())
+                            .eq(Features::getRightId,patentRights.get(i).getId());
+
                     this.remove(wrapper);
                     featuresList = new ArrayList<>();
                     //获得权要的译文并且拆解
@@ -150,6 +156,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
                         features.setContent(contents.get(t));
                         features.setSplitBy(splitBy);
                         features.setPartnerId(personnelVO.getId());
+                        features.setRightName(name);
                         featuresList.add(features);
                     }
                     this.saveBatch(featuresList);
@@ -165,13 +172,13 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
                 features.setContent(patentRights.get(i).getContent());
                 features.setSplitBy(splitBy);
                 features.setPartnerId(personnelVO.getId());
+                features.setRightName(name);
                features.insert();
                 this.saveBatch(featuresList);
             }
 
             //装载到对象PatentRightVo
             PatentRightVo patentRightVo = new PatentRightVo();
-            String name = "权要" + (i + 1);
             patentRightVo.setPatentId(patentRights.get(i).getPatentId());
             patentRightVo.setFeatures(featuresList);
             patentRightVo.setContent(patentRights.get(i).getContent());
@@ -202,6 +209,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
         JSONObject jsonObject = JSONObject.parseObject(resBody);
         //解析jason获得标的专利的权要
         List<PatentRight> patentRightsOrgin = JSON.parseArray(jsonObject.getString("data"), PatentRight.class);
+        //处理权要
         List<PatentRight> patentRights = FormatPatentRights(patentRightsOrgin);
      Features featureTO = new Features();
         featureTO.setReportId(reportId);
@@ -210,6 +218,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
         List<Features> featureFromDb = this.queryFeatures(featureTO);
         //将拆解的权要和特征装载到对象PatentRightVo
         for (int i = 0; i < patentRights.size(); i++) {
+
             List<Features> featuresList = new ArrayList<>();
             //对需要拆解的权要进行拆解
                 if (featureFromDb != null && featureFromDb.size() != 0) {
@@ -219,6 +228,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
 
             //装载到对象PatentRightVo
             PatentRightVo patentRightVo = new PatentRightVo();
+
             String name = "权要" + (i + 1);
             patentRightVo.setPatentId(patentRights.get(i).getPatentId());
             patentRightVo.setFeatures(featuresList);

+ 41 - 41
RMS/src/main/java/cn/cslg/report/service/business/ReportFieldPatentLinkService.java

@@ -37,57 +37,57 @@ public class ReportFieldPatentLinkService extends ServiceImpl<ReportFieldPatentL
     private final ReportFieldService reportFieldService;
     private final LoginUtils loginUtils;
 
-    public List<ReportFieldPatentLink> getProjectPatentLinkByPatentAndProId(Integer patentId, Integer projectId) {
+    public List<ReportFieldPatentLink> getProjectPatentLinkByPatentAndProId(String patentNo, Integer projectId) {
         LambdaQueryWrapper<ReportFieldPatentLink> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(ReportFieldPatentLink::getPatentId, patentId);
-        queryWrapper.eq(ReportFieldPatentLink::getProjectId, projectId);
+        queryWrapper.eq(ReportFieldPatentLink::getPatentNo, patentNo);
+        queryWrapper.eq(ReportFieldPatentLink::getReportId, projectId);
         return this.list(queryWrapper);
     }
 
-    public List<ReportFieldPatentLink> getProjectPatentLinkByPatentAndProjectIdAndFieldId(Integer patentId, Integer projectId, Integer fieldId) {
+    public List<ReportFieldPatentLink> getProjectPatentLinkByPatentAndProjectIdAndFieldId(String patentNo, Integer projectId, Integer fieldId) {
         LambdaQueryWrapper<ReportFieldPatentLink> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(ReportFieldPatentLink::getPatentId, patentId);
-        queryWrapper.eq(ReportFieldPatentLink::getProjectId, projectId);
+        queryWrapper.eq(ReportFieldPatentLink::getPatentNo, patentNo);
+        queryWrapper.eq(ReportFieldPatentLink::getReportId, projectId);
         queryWrapper.eq(ReportFieldPatentLink::getFieldId, fieldId);
         return this.list(queryWrapper);
     }
 
     public ReportFieldPatentLink getProjectPatentLinkByPatentAndProjectIdAndFieldIdAndOptionId(Integer patentId, Integer projectId, Integer fieldId, Integer optionId) {
         LambdaQueryWrapper<ReportFieldPatentLink> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(ReportFieldPatentLink::getPatentId, patentId);
-        queryWrapper.eq(ReportFieldPatentLink::getProjectId, projectId);
+        queryWrapper.eq(ReportFieldPatentLink::getPatentNo, patentId);
+        queryWrapper.eq(ReportFieldPatentLink::getReportId, projectId);
         queryWrapper.eq(ReportFieldPatentLink::getFieldId, fieldId);
         queryWrapper.eq(ReportFieldPatentLink::getOptionId, optionId);
         return this.getOne(queryWrapper);
     }
 
-    public void updateProjectPatentLink(Integer patentId, Integer type, Integer fieldId, Integer optionId, Integer userId, Integer projectId) {
+    public void updateProjectPatentLink(String patentNo, Integer type, Integer fieldId, Integer optionId, Integer userId, Integer projectId) {
         ReportFieldPatentLink reportFieldPatentLink = new ReportFieldPatentLink();
         reportFieldPatentLink.setType(type);
-        reportFieldPatentLink.setPatentId(patentId);
+        reportFieldPatentLink.setPatentNo(patentNo);
         reportFieldPatentLink.setOptionId(optionId);
         reportFieldPatentLink.setFieldId(fieldId);
         reportFieldPatentLink.setCreateBy(userId);
-        reportFieldPatentLink.setProjectId(projectId);
+        reportFieldPatentLink.setReportId(projectId);
         reportFieldPatentLink.insert();
     }
 
-    public List<ReportFieldPatentLink> getProjectPatentLinkByPatentIdsAndProjectId(List<Integer> patentIds, Integer projectId) {
-        if (patentIds == null || patentIds.size() == 0) {
+    public List<ReportFieldPatentLink> getProjectPatentLinkByPatentIdsAndProjectId(List<String> patentNos, Integer projectId) {
+        if (patentNos == null || patentNos.size() == 0) {
             return new ArrayList<>();
         }
         LambdaQueryWrapper<ReportFieldPatentLink> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.in(ReportFieldPatentLink::getPatentId, patentIds);
-        queryWrapper.eq(ReportFieldPatentLink::getProjectId, projectId);
+        queryWrapper.in(ReportFieldPatentLink::getPatentNo, patentNos);
+        queryWrapper.eq(ReportFieldPatentLink::getReportId, projectId);
         return this.list(queryWrapper);
     }
 
-    public List<ReportFieldPatentLink> getProjectPatentLinkByPatentIdsAndFieldId(List<Integer> patentIds, Integer fieldId) {
-        if (patentIds == null || patentIds.size() == 0) {
+    public List<ReportFieldPatentLink> getProjectPatentLinkByPatentIdsAndFieldId(List<String> patentNos, Integer fieldId) {
+        if (patentNos == null || patentNos.size() == 0) {
             return new ArrayList<>();
         }
         LambdaQueryWrapper<ReportFieldPatentLink> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.in(ReportFieldPatentLink::getPatentId, patentIds);
+        queryWrapper.in(ReportFieldPatentLink::getPatentNo, patentNos);
         queryWrapper.eq(ReportFieldPatentLink::getFieldId, fieldId);
         return this.list(queryWrapper);
     }
@@ -133,14 +133,14 @@ public class ReportFieldPatentLinkService extends ServiceImpl<ReportFieldPatentL
         }
     }
 
-    public void deleteByPatentIdAndProjectIdAndFieldId(Integer patentId, Integer projectId, Integer fieldId) {
-        this.remove(Wrappers.<ReportFieldPatentLink>lambdaQuery().eq(ReportFieldPatentLink::getFieldId, fieldId).eq(ReportFieldPatentLink::getProjectId, projectId).eq(ReportFieldPatentLink::getPatentId, patentId));
-    }
+//    public void deleteByPatentIdAndProjectIdAndFieldId(Integer patentId, Integer projectId, Integer fieldId) {
+//        this.remove(Wrappers.<ReportFieldPatentLink>lambdaQuery().eq(ReportFieldPatentLink::getFieldId, fieldId).eq(ReportFieldPatentLink::getReportId, projectId).eq(ReportFieldPatentLink::getPatentId, patentId));
+//    }
 
-    public void deleteByPatentIdsAndProjectIdAndFieldId(List<Integer> patentIds, Integer projectId, Integer fieldId) {
+    public void deleteByPatentIdsAndProjectIdAndFieldId(List<Integer> patentNos, Integer projectId, Integer fieldId) {
         LambdaQueryWrapper<ReportFieldPatentLink> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.in(ReportFieldPatentLink::getPatentId, patentIds);
-        queryWrapper.eq(ReportFieldPatentLink::getProjectId, projectId);
+        queryWrapper.in(ReportFieldPatentLink::getPatentNo, patentNos);
+        queryWrapper.eq(ReportFieldPatentLink::getReportId, projectId);
         queryWrapper.eq(ReportFieldPatentLink::getFieldId, fieldId);
         this.remove(queryWrapper);
     }
@@ -184,23 +184,23 @@ public class ReportFieldPatentLinkService extends ServiceImpl<ReportFieldPatentL
 //            this.saveOrUpdateBatch(reportFieldPatentLinkList);
 //        }
 //    }
-    private List<ReportFieldPatentLink> setPatentBatchIndexDataList(List<ReportFieldPatentLink> tempList, List<Integer> patentIds, ReportField field, Integer optionId, Integer projectId) {
-        List<ReportFieldPatentLink> dataList = new ArrayList<>();
-        for (Integer patentId : patentIds) {
-            ReportFieldPatentLink temp = tempList.stream().filter(item -> item.getFieldId().equals(field.getId()) && item.getOptionId().equals(optionId) && item.getPatentId().equals(patentId)).findFirst().orElse(null);
-            if (temp == null) {
-                ReportFieldPatentLink reportFieldPatentLink = new ReportFieldPatentLink();
-                reportFieldPatentLink.setFieldId(field.getId());
-                reportFieldPatentLink.setProjectId(projectId);
-                reportFieldPatentLink.setType(field.getType());
-                reportFieldPatentLink.setCreateBy(loginUtils.getId());
-                reportFieldPatentLink.setOptionId(optionId);
-                reportFieldPatentLink.setPatentId(patentId);
-                dataList.add(reportFieldPatentLink);
-            }
-        }
-        return dataList;
-    }
+//    private List<ReportFieldPatentLink> setPatentBatchIndexDataList(List<ReportFieldPatentLink> tempList, List<String> patentNos, ReportField field, Integer optionId, Integer projectId) {
+//        List<ReportFieldPatentLink> dataList = new ArrayList<>();
+//        for (Integer patentId : patentIds) {
+//            ReportFieldPatentLink temp = tempList.stream().filter(item -> item.getFieldId().equals(field.getId()) && item.getOptionId().equals(optionId) && item.getPatentNo().equals(patentId)).findFirst().orElse(null);
+//            if (temp == null) {
+//                ReportFieldPatentLink reportFieldPatentLink = new ReportFieldPatentLink();
+//                reportFieldPatentLink.setFieldId(field.getId());
+//                reportFieldPatentLink.setReportId(projectId);
+//                reportFieldPatentLink.setType(field.getType());
+//                reportFieldPatentLink.setCreateBy(loginUtils.getId());
+//                reportFieldPatentLink.setOptionId(optionId);
+//                reportFieldPatentLink.setPatentNo(patentNos);
+//                dataList.add(reportFieldPatentLink);
+//            }
+//        }
+//        return dataList;
+//    }
 
 //    public List<CustomFieldLabelDTO> getPatentIndexSetting2(Integer patentId, Integer projectId) {
 //        List<CustomFieldLabelDTO> dataList = new ArrayList<>();

+ 48 - 3
RMS/src/main/java/cn/cslg/report/service/business/ReportFieldService.java

@@ -1,12 +1,13 @@
 package cn.cslg.report.service.business;
 
+import cn.cslg.report.common.model.vo.PatentField;
 import cn.cslg.report.common.model.vo.ReportFieldVO;
 import cn.cslg.report.common.utils.DataUtils;
 import cn.cslg.report.common.utils.DateUtils;
+import cn.cslg.report.common.utils.PatentUtils;
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
-import cn.cslg.report.entity.Report;
-import cn.cslg.report.entity.ReportField;
+import cn.cslg.report.entity.*;
 import cn.cslg.report.mapper.ReportFieldMapper;
 import cn.hutool.core.lang.tree.Tree;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -90,9 +91,53 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
 
   }
 
+    public List<PatentField> getPatentFieldByPatentIdAndProjectId(Integer reportId, String patentNo) {
+        List<PatentField> dataList = new ArrayList<>();
+        List<ReportFieldPatentLink> linkList = reportFieldPatentLinkService.getProjectPatentLinkByPatentAndProId(patentNo, reportId);
+        List<Integer> fieldIds = linkList.stream().map(ReportFieldPatentLink::getFieldId).distinct().collect(Collectors.toList());
+        List<Integer> optionIds = linkList.stream().map(ReportFieldPatentLink::getOptionId).distinct().collect(Collectors.toList());
+        List<ReportField> fieldList = this.getFieldListByIds(fieldIds);
+        List<ReportFieldText> textList = reportFieldTextService.getProjectFieldTextByFieldIds(fieldIds);
+        List<ReportFieldOption> optionList = reportFieldOptionService.getFieldOptionList(fieldIds);
+        List<ReportFieldTree> treeList = reportFieldTreeService.getReportFieldTreeOptionByFieldIds(fieldIds);
+        fieldList.forEach(field -> {
+            PatentField data = new PatentField();
+            data.setId(field.getId());
+            data.setName(field.getName());
+            data.setType(field.getType());
+            switch (field.getType()) {
+                case 0:
+                case 1:
+                case 2:
+                    data.setSelected(textList.stream().filter(item -> item.getFieldId().equals(field.getId()) && optionIds.contains(item.getId())).map(ReportFieldText::getText).distinct().collect(Collectors.toList()));
+                    break;
+                case 3:
+                case 4:
+                case 5:
+                    data.setSelected(optionList.stream().filter(item -> item.getFieldId().equals(field.getId()) && optionIds.contains(item.getId())).map(ReportFieldOption::getName).distinct().collect(Collectors.toList()));
+                    break;
+                case 6:
+                    List<ReportFieldTree> trees = treeList.stream().filter(item -> item.getFieldId().equals(field.getId())).collect(Collectors.toList());
+                    List<ReportFieldTree> optionTree = trees.stream().filter(item -> optionIds.contains(item.getId())).collect(Collectors.toList());
+                    List<String> selected = new ArrayList<>();
+                    optionTree.forEach(item -> selected.add(PatentUtils.getTreeNodeFullName(trees, item.getPath())));
+                    data.setSelected(selected);
+                    break;
+            }
+            dataList.add(data);
+        });
+        return dataList;
+    }
 
 
-
+    public List<ReportField> getFieldListByIds(List<Integer> ids) {
+        if (ids == null || ids.size() == 0) {
+            return new ArrayList<>();
+        }
+        LambdaQueryWrapper<ReportField> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(ReportField::getId, ids);
+        return this.list(queryWrapper);
+    }
 
     public ReportField getProjectFieldByName(String name, Integer projectId) {
         LambdaQueryWrapper<ReportField> queryWrapper = new LambdaQueryWrapper<>();

+ 12 - 1
RMS/src/main/java/cn/cslg/report/service/business/TaskService.java

@@ -39,6 +39,7 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
     private final CacheUtils cacheUtils;
     private final CompareFilesService compareFilesService;
     private final AssoTaskPersonelService assoTaskPersonelService;
+    private final ReportFieldService reportFieldService;
 
     @Transactional(rollbackFor = Exception.class)
     public String deleteTask(Integer id) {
@@ -272,6 +273,16 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> {
         patentVO.setSize(taskVo.getSize());
         patentVO.setCurrent(taskVo.getCurrent());
         String res = outInterfaceService.getPatentFromPAS(patentVO, 1);
-        return res;
+        JSONObject jsonObject = JSONObject.parseObject(res);
+        JSONObject jsonObject1= JSONObject.parseObject(jsonObject.get("data").toString()) ;
+        List<JSONObject> jsonObjects = JSONArray.parseArray(jsonObject1.get("records").toString(), JSONObject.class);
+        for (int i =0;i<jsonObjects.size();i++)
+        { jsonObjects.get(i).put("field", reportFieldService.getPatentFieldByPatentIdAndProjectId(taskVo.getReportId(), jsonObjects.get(i).getString("patentNo")));
+        }
+        jsonObject1.put("records",jsonObjects);
+        jsonObject.put("data",jsonObject1);
+
+
+        return jsonObject.toString();
     }
 }

+ 0 - 36
logs/rms/rms-debug.2022-11-16.0.log

@@ -1,36 +0,0 @@
-[rms:0.0.0.0:8885] [,] 2022-11-16 10:29:55.017 DEBUG 2796 [http-nio-8885-exec-5] cn.cslg.report.mapper.CompareFilesMapper.selectList ==>  Preparing: SELECT ID,REPORT_ID,PATENT_NO,REMARK FROM COMPARE_FILES WHERE (REPORT_ID = ?)
-[rms:0.0.0.0:8885] [,] 2022-11-16 10:29:55.041 DEBUG 2796 [http-nio-8885-exec-5] cn.cslg.report.mapper.CompareFilesMapper.selectList ==> Parameters: 1(Integer)
-[rms:0.0.0.0:8885] [,] 2022-11-16 10:29:55.074 DEBUG 2796 [http-nio-8885-exec-5] cn.cslg.report.mapper.CompareFilesMapper.selectList <==      Total: 0
-[rms:0.0.0.0:8885] [,] 2022-11-16 10:30:48.819 DEBUG 2796 [http-nio-8885-exec-8] cn.cslg.report.mapper.ReportMapper.deleteById ==>  Preparing: DELETE FROM REPORT WHERE ID=?
-[rms:0.0.0.0:8885] [,] 2022-11-16 10:30:48.820 DEBUG 2796 [http-nio-8885-exec-8] cn.cslg.report.mapper.ReportMapper.deleteById ==> Parameters: 1(Integer)
-[rms:0.0.0.0:8885] [,] 2022-11-16 10:30:48.851 DEBUG 2796 [http-nio-8885-exec-8] cn.cslg.report.mapper.ReportMapper.deleteById <==    Updates: 0
-[rms:0.0.0.0:8885] [,] 2022-11-16 10:51:46.870 DEBUG 7552 [http-nio-8885-exec-8] cn.cslg.report.mapper.ReportMapper.deleteById ==>  Preparing: DELETE FROM REPORT WHERE ID=?
-[rms:0.0.0.0:8885] [,] 2022-11-16 10:51:46.900 DEBUG 7552 [http-nio-8885-exec-8] cn.cslg.report.mapper.ReportMapper.deleteById ==> Parameters: 1(Integer)
-[rms:0.0.0.0:8885] [,] 2022-11-16 10:51:46.937 DEBUG 7552 [http-nio-8885-exec-8] cn.cslg.report.mapper.ReportMapper.deleteById <==    Updates: 0
-[rms:0.0.0.0:8885] [,] 2022-11-16 11:36:31.958 DEBUG 11236 [http-nio-8885-exec-4] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete ==>  Preparing: DELETE FROM ASSO_TASK_PERSONEL WHERE (REPORT_ID = ?)
-[rms:0.0.0.0:8885] [,] 2022-11-16 11:36:32.223 DEBUG 11236 [http-nio-8885-exec-4] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete ==> Parameters: 48(Integer)
-[rms:0.0.0.0:8885] [,] 2022-11-16 11:36:32.266 DEBUG 11236 [http-nio-8885-exec-4] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete <==    Updates: 0
-[rms:0.0.0.0:8885] [,] 2022-11-16 11:37:20.342 DEBUG 11236 [http-nio-8885-exec-7] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete ==>  Preparing: DELETE FROM ASSO_TASK_PERSONEL WHERE (REPORT_ID = ?)
-[rms:0.0.0.0:8885] [,] 2022-11-16 11:37:20.342 DEBUG 11236 [http-nio-8885-exec-7] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete ==> Parameters: 48(Integer)
-[rms:0.0.0.0:8885] [,] 2022-11-16 11:37:20.378 DEBUG 11236 [http-nio-8885-exec-7] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete <==    Updates: 0
-[rms:0.0.0.0:8885] [,] 2022-11-16 11:37:37.112 DEBUG 2640 [http-nio-8885-exec-4] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete ==>  Preparing: DELETE FROM ASSO_TASK_PERSONEL WHERE (REPORT_ID = ?)
-[rms:0.0.0.0:8885] [,] 2022-11-16 11:37:37.139 DEBUG 2640 [http-nio-8885-exec-4] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete ==> Parameters: 48(Integer)
-[rms:0.0.0.0:8885] [,] 2022-11-16 11:37:37.175 DEBUG 2640 [http-nio-8885-exec-4] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete <==    Updates: 0
-[rms:0.0.0.0:8885] [,] 2022-11-16 12:38:26.653 DEBUG 2640 [http-nio-8885-exec-8] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete ==>  Preparing: DELETE FROM ASSO_TASK_PERSONEL WHERE (REPORT_ID = ?)
-[rms:0.0.0.0:8885] [,] 2022-11-16 12:38:26.654 DEBUG 2640 [http-nio-8885-exec-8] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete ==> Parameters: 48(Integer)
-[rms:0.0.0.0:8885] [,] 2022-11-16 12:38:26.685 DEBUG 2640 [http-nio-8885-exec-8] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete <==    Updates: 0
-[rms:0.0.0.0:8885] [,] 2022-11-16 13:38:18.565 DEBUG 2640 [http-nio-8885-exec-3] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete ==>  Preparing: DELETE FROM ASSO_TASK_PERSONEL WHERE (REPORT_ID = ?)
-[rms:0.0.0.0:8885] [,] 2022-11-16 13:38:18.565 DEBUG 2640 [http-nio-8885-exec-3] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete ==> Parameters: 48(Integer)
-[rms:0.0.0.0:8885] [,] 2022-11-16 13:38:18.602 DEBUG 2640 [http-nio-8885-exec-3] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete <==    Updates: 0
-[rms:0.0.0.0:8885] [,] 2022-11-16 13:38:28.222 DEBUG 2640 [http-nio-8885-exec-4] cn.cslg.report.mapper.ReportMapper.deleteById ==>  Preparing: DELETE FROM REPORT WHERE ID=?
-[rms:0.0.0.0:8885] [,] 2022-11-16 13:38:28.223 DEBUG 2640 [http-nio-8885-exec-4] cn.cslg.report.mapper.ReportMapper.deleteById ==> Parameters: 1(Integer)
-[rms:0.0.0.0:8885] [,] 2022-11-16 13:38:28.259 DEBUG 2640 [http-nio-8885-exec-4] cn.cslg.report.mapper.ReportMapper.deleteById <==    Updates: 0
-[rms:0.0.0.0:8885] [,] 2022-11-16 16:05:19.626 DEBUG 13120 [http-nio-8885-exec-7] cn.cslg.report.mapper.ReportMapper.dele ==>  Preparing: delete from REPORT where ID=?
-[rms:0.0.0.0:8885] [,] 2022-11-16 16:05:19.648 DEBUG 13120 [http-nio-8885-exec-7] cn.cslg.report.mapper.ReportMapper.dele ==> Parameters: 48(Integer)
-[rms:0.0.0.0:8885] [,] 2022-11-16 16:05:19.687 DEBUG 13120 [http-nio-8885-exec-7] cn.cslg.report.mapper.ReportMapper.dele <==    Updates: 1
-[rms:0.0.0.0:8885] [,] 2022-11-16 17:02:26.221 DEBUG 9428 [http-nio-8885-exec-4] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete ==>  Preparing: DELETE FROM ASSO_TASK_PERSONEL WHERE (REPORT_ID = ?)
-[rms:0.0.0.0:8885] [,] 2022-11-16 17:02:26.245 DEBUG 9428 [http-nio-8885-exec-4] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete ==> Parameters: 1(Integer)
-[rms:0.0.0.0:8885] [,] 2022-11-16 17:02:26.282 DEBUG 9428 [http-nio-8885-exec-4] cn.cslg.report.mapper.AssoTaskPersonelMapper.delete <==    Updates: 0
-[rms:0.0.0.0:8885] [,] 2022-11-16 17:02:26.296 DEBUG 9428 [http-nio-8885-exec-4] cn.cslg.report.mapper.ReportMapper.dele ==>  Preparing: delete from REPORT where ID=?
-[rms:0.0.0.0:8885] [,] 2022-11-16 17:02:26.296 DEBUG 9428 [http-nio-8885-exec-4] cn.cslg.report.mapper.ReportMapper.dele ==> Parameters: 1(Integer)
-[rms:0.0.0.0:8885] [,] 2022-11-16 17:02:26.332 DEBUG 9428 [http-nio-8885-exec-4] cn.cslg.report.mapper.ReportMapper.dele <==    Updates: 0

Разлика између датотеке није приказан због своје велике величине
+ 0 - 453
logs/rms/rms-info.2022-11-16.0.log