Browse Source

实现知识库管理-更改知识库信息查询接口,修复查询父级名称的bug

lijie 3 years ago
parent
commit
46faab5adb

+ 1 - 0
dmp-model/src/main/java/com/persagy/dmp/rwd/model/RwdeditRefTypeInfosModel.java

@@ -15,6 +15,7 @@ public class RwdeditRefTypeInfosModel {
     private String code;
     private String name;
     private String parentCode;
+    private String codePath;
     private ObjectNode dataSource;
     private Integer createUser;
     private Date createTime;

+ 4 - 0
dmp-rwd-datautils/src/test/java/com/persagy/dmp/rwd/dic/ExcelUtils.java

@@ -9,6 +9,7 @@ import org.junit.Test;
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -30,6 +31,9 @@ public class ExcelUtils {
                 return val == null ? null : val.trim();
             } else if (cellType == CellType.NUMERIC) {
                 String ss = cell.getNumericCellValue() + "";
+                if (ss.matches("^[+-]?[\\d]+([\\.][\\d]+)?([Ee][+-]?[\\d]+)?$")){
+                    ss = new BigDecimal(ss).toPlainString();
+                }
                 if (ss.endsWith(".0")){
                     return ss.substring(0,ss.length()-2);
                 }

File diff suppressed because it is too large
+ 2239 - 183
dmp-rwd-datautils/src/test/java/com/persagy/dmp/rwd/dic/ImportKnowledgeForEdit.java


+ 3 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/entity/RwdeditRefTypeInfos.java

@@ -24,6 +24,7 @@ public class RwdeditRefTypeInfos {
     private String code;
     private String name;
     private String parentCode;
+    private String codePath;
     @Type(type = "json")
     private ObjectNode dataSource;
     @Column(updatable = false)
@@ -45,6 +46,7 @@ public class RwdeditRefTypeInfos {
         entity.setUpdateUser(model.getUpdateUser());
         entity.setCode(model.getCode());
         entity.setParentCode(model.getParentCode());
+        entity.setCodePath(model.getCodePath());
         entity.setDataSource(model.getDataSource());
         return entity;
     }
@@ -53,6 +55,7 @@ public class RwdeditRefTypeInfos {
         RwdeditRefTypeInfosModel model = new RwdeditRefTypeInfosModel();
         model.setRefKey(this.getRefKey());
         model.setName(this.getName());
+        model.setCodePath(this.getCodePath());
         model.setCreateTime(this.getCreateTime());
         model.setUpdateTime(this.getUpdateTime());
         model.setCreateUser(this.getCreateUser());

+ 7 - 11
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/RwdeditRefTypeInfosService.java

@@ -55,32 +55,28 @@ public class RwdeditRefTypeInfosService {
             ArrayNode parentCodes = JacksonMapper.nonDefaultMapper.createArrayNode();
             Set<String> filterIds = new HashSet<>();
             dataList.forEach(entity->{
-                if (!filterIds.contains(entity.getParentCode())){
-                    parentCodes.add(entity.getParentCode());
-                    filterIds.add(entity.getParentCode());
+                if (!filterIds.contains(entity.getCodePath())){
+                    parentCodes.add(entity.getCodePath().substring(0,entity.getCodePath().lastIndexOf("-")));
+                    filterIds.add(entity.getCodePath());
                 }
             });
             JacksonCriteria allCriteria = JacksonCriteria.newInstance();
             ObjectNode objectNode = JacksonMapper.nonDefaultMapper.createObjectNode();
             ObjectNode parentCodeNode = JacksonMapper.nonDefaultMapper.createObjectNode();
             parentCodeNode.put("$in",parentCodes);
-            objectNode.put("code", parentCodeNode);
+            objectNode.put("codePath", parentCodeNode);
             allCriteria.setCriteria(objectNode);
-            allCriteria.setWithColumns(new HashSet<>(Arrays.asList("code","name")));
+            allCriteria.setWithColumns(new HashSet<>(Arrays.asList("code","name","codePath")));
             allCriteria.setWithoutCount(true);
             PagedResponse<RwdeditRefTypeInfos> allRefTypeInfos = criteriaUtils.query(QRwdeditRefTypeInfos.rwdeditRefTypeInfos, this::parse, allCriteria);
             List<RwdeditRefTypeInfos> allRefTypeInfosData = allRefTypeInfos.getData();
             Map<String, String> nameMap = allRefTypeInfosData.stream()
                     .collect(Collectors
-                            .toMap(rwdeditRefTypeInfo -> rwdeditRefTypeInfo.getRefKey()
-                                    +"-"+rwdeditRefTypeInfo.getCode()
-                                    +"-"+rwdeditRefTypeInfo.getParentCode(), RwdeditRefTypeInfos::getName, (k1, k2) -> k1));
+                            .toMap(RwdeditRefTypeInfos::getCodePath, RwdeditRefTypeInfos::getName, (k1, k2) -> k1));
             List<RwdeditRefTypeInfosModel> collect = dataList.stream().map(entity -> {
                 RwdeditRefTypeInfosModel model = entity.toModel();
                 model.setParentName(nameMap
-                        .getOrDefault(model.getRefKey()
-                                +"-"+model.getCode()
-                                +"-"+model.getParentCode(),""));
+                        .getOrDefault(entity.getCodePath().substring(0,entity.getCodePath().lastIndexOf("-")),""));
                 return model;
             }).collect(Collectors.toList());
             result.setData(collect);