瀏覽代碼

实现知识库管理-更改知识库信息查询接口,增加返回值总数

lijie 3 年之前
父節點
當前提交
a3a5411a75

+ 4 - 5
dmp-rwd-datautils/src/test/java/com/persagy/dmp/rwd/dic/ImportKnowledgeForEdit.java

@@ -62,16 +62,15 @@ public class ImportKnowledgeForEdit {
 //        initCityLocation(classes,"cityLocation","省市区编号");
 //        writeFuncSqlToFile(classes, "cityLocation");
 //        classes.clear();
-        // 省市区编号
-        initCityLocation(classes,"cityLocation","省市区编号");
+        // 气候分区
+        initCityLocation(classes,"cityLocation","气候分区");
         writeFuncSqlToFile(classes, "cityLocation");
         classes.clear();
 
-
-
-
     }
 
+    
+
     public void initCityLocation(List<RwdeditRefTypeInfosModel> models, String refKey, String sheetName) throws Exception {
         String file = basepath + "/附表14-地域性信息表.xlsx";
 

+ 0 - 2
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/model/RwdeditRefTypeModel.java

@@ -1,8 +1,6 @@
 package com.persagy.dmp.rwd.edit.model;
 
-import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.dmp.rwd.edit.entity.RwdeditRefTypeInfos;
 import lombok.Getter;
 import lombok.Setter;

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

@@ -1,9 +1,12 @@
 package com.persagy.dmp.rwd.edit.service;
 
 import cn.hutool.core.collection.CollUtil;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.common.criteria.CriteriaUtils;
 import com.persagy.common.criteria.JacksonCriteria;
+import com.persagy.common.json.JacksonMapper;
 import com.persagy.common.web.MapResponse;
 import com.persagy.common.web.PagedResponse;
 import com.persagy.dmp.rwd.edit.config.web.UserUtils;
@@ -43,17 +46,32 @@ public class RwdeditRefTypeInfosService {
     }
 
     public PagedResponse<RwdeditRefTypeInfosModel> query(JacksonCriteria criteria) {
+        // 1.根据条件查询数据
         PagedResponse<RwdeditRefTypeInfos> destRefTypeInfos = criteriaUtils.query(QRwdeditRefTypeInfos.rwdeditRefTypeInfos, this::parse, criteria);
-        JacksonCriteria allCriteria = JacksonCriteria.newInstance();
-        allCriteria.setWithColumns(new HashSet<>(Arrays.asList("code","name")));
-        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(RwdeditRefTypeInfos::getCode, RwdeditRefTypeInfos::getName, (k1, k2) -> k1));
         PagedResponse<RwdeditRefTypeInfosModel> result = new PagedResponse<>();
         List<RwdeditRefTypeInfos> dataList = destRefTypeInfos.getData();
         if (CollUtil.isNotEmpty(dataList)) {
+            // 2.根据父级code查询数据
+            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());
+                }
+            });
+            JacksonCriteria allCriteria = JacksonCriteria.newInstance();
+            ObjectNode objectNode = JacksonMapper.nonDefaultMapper.createObjectNode();
+            ObjectNode parentCodeNode = JacksonMapper.nonDefaultMapper.createObjectNode();
+            parentCodeNode.put("$in",parentCodes);
+            objectNode.put("code", parentCodeNode);
+            allCriteria.setCriteria(objectNode);
+            allCriteria.setWithColumns(new HashSet<>(Arrays.asList("code","name")));
+            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(RwdeditRefTypeInfos::getCode, RwdeditRefTypeInfos::getName, (k1, k2) -> k1));
             List<RwdeditRefTypeInfosModel> collect = dataList.stream().map(entity -> {
                 RwdeditRefTypeInfosModel model = entity.toModel();
                 model.setParentName(nameMap.getOrDefault(model.getParentCode(),""));
@@ -61,6 +79,7 @@ public class RwdeditRefTypeInfosService {
             }).collect(Collectors.toList());
             result.setData(collect);
         }
+        result.setCount(destRefTypeInfos.getCount());
         return result;
     }