|
@@ -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) {
|
|
|
+
|
|
|
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)) {
|
|
|
+
|
|
|
+ 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;
|
|
|
}
|
|
|
|