|
@@ -114,7 +114,7 @@ public class RelationReportService implements IRelationReportService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<ObjectNode> getAllRelationProjectCal(String groupCode, String projectId) {
|
|
|
+ public List<JSONObject> getAllRelationProjectCal(String groupCode, String projectId) {
|
|
|
groupCode = StrUtil.isBlank(groupCode) ? defaultCode : groupCode;
|
|
|
|
|
|
// 查询出对应项目关系计算数据
|
|
@@ -127,14 +127,16 @@ public class RelationReportService implements IRelationReportService {
|
|
|
if (CollectionUtil.isEmpty(projectList)) {
|
|
|
return Lists.newArrayList();
|
|
|
}
|
|
|
+ List<JSONObject> result = Lists.newArrayList();
|
|
|
+ Map<String, AdmRelationTypeEnum> graphRelTypeMap = AdmRelationTypeEnum.getGraphRelTypeMap();
|
|
|
+ Map<String, RelationDefine> relationDefineMap = queryAllRelationDefineMap(groupCode, projectId);
|
|
|
for (ObjectNode objectNode : projectList) {
|
|
|
String graphCode = objectNode.get("graphCode") == null ? null : objectNode.get("graphCode").asText();
|
|
|
String relCode = objectNode.get("relCode") == null ? null : objectNode.get("relCode").asText();
|
|
|
AdmRelationTypeEnum relationTypeEnum = AdmCommonConstant.GRAPH_RELATION_TYPE_MAP.get(graphCode + AdmCommonConstant.UNDERLINE + relCode);
|
|
|
- this.fillRelationProjectCal(objectNode, relationTypeEnum, groupCode, projectId);
|
|
|
+ result.add(this.fillRelationProjectCal(objectNode, graphCode,relCode,graphRelTypeMap, relationDefineMap));
|
|
|
}
|
|
|
-
|
|
|
- return projectList;
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -148,7 +150,9 @@ public class RelationReportService implements IRelationReportService {
|
|
|
return Lists.newArrayList();
|
|
|
}
|
|
|
// 获取此图类型对应项目计算数据
|
|
|
- List<JSONObject> resultList = new ArrayList<JSONObject>();
|
|
|
+ List<JSONObject> resultList = new ArrayList<>();
|
|
|
+ Map<String, AdmRelationTypeEnum> graphRelTypeMap = AdmRelationTypeEnum.getGraphRelTypeMap();
|
|
|
+ Map<String, RelationDefine> relationDefineMap = queryAllRelationDefineMap(groupCode, projectId);
|
|
|
for (GraphDefine graphDefine : secondList) {
|
|
|
String graphCode = graphDefine.getCode();
|
|
|
JSONObject graphObject = this.transfer(graphDefine);
|
|
@@ -166,10 +170,10 @@ public class RelationReportService implements IRelationReportService {
|
|
|
continue;
|
|
|
}
|
|
|
// 再根据图类型、边类型,统计此类型下的数量
|
|
|
+ List<JSONObject> tempList = new ArrayList<>();
|
|
|
for (ObjectNode objectNode : projectList) {
|
|
|
String relCode = objectNode.get("relCode") == null ? null : objectNode.get("relCode").asText();
|
|
|
- AdmRelationTypeEnum relationTypeEnum = AdmCommonConstant.GRAPH_RELATION_TYPE_MAP.get(graphCode + AdmCommonConstant.UNDERLINE + relCode);
|
|
|
- this.fillRelationProjectCal(objectNode, relationTypeEnum, groupCode, projectId);
|
|
|
+ tempList.add(this.fillRelationProjectCal(objectNode,graphDefine.getCode(),relCode,graphRelTypeMap,relationDefineMap));
|
|
|
}
|
|
|
graphObject.put("relationTypeProjectList", projectList);
|
|
|
resultList.add(graphObject);
|
|
@@ -179,7 +183,7 @@ public class RelationReportService implements IRelationReportService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public ObjectNode getRelationProjectCal(String groupCode, String projectId, String relType) {
|
|
|
+ public JSONObject getRelationProjectCal(String groupCode, String projectId, String relType) {
|
|
|
groupCode = StrUtil.isBlank(groupCode) ? defaultCode : groupCode;
|
|
|
|
|
|
AdmRelationTypeEnum relationTypeEnum = AdmCommonConstant.RELATION_TYPE_MAP.get(relType);
|
|
@@ -187,12 +191,15 @@ public class RelationReportService implements IRelationReportService {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- ObjectNode objectNode = this.getRelationProjectCal(groupCode, projectId, relationTypeEnum.getGraphCode(), relationTypeEnum.getRelCode(), null);
|
|
|
+ ObjectNode objectNode = this.getRelationProjectCal(groupCode, projectId, relationTypeEnum.getGraphCode(),
|
|
|
+ relationTypeEnum.getRelCode(), null);
|
|
|
+ Map<String, AdmRelationTypeEnum> graphRelTypeMap = AdmRelationTypeEnum.getGraphRelTypeMap();
|
|
|
+ Map<String, RelationDefine> relationDefineMap = queryAllRelationDefineMap(groupCode, projectId);
|
|
|
if (objectNode != null) {
|
|
|
- this.fillRelationProjectCal(objectNode, relationTypeEnum, groupCode, projectId);
|
|
|
+ return this.fillRelationProjectCal(objectNode,groupCode,relationTypeEnum.getRelCode(),graphRelTypeMap,relationDefineMap);
|
|
|
}
|
|
|
|
|
|
- return objectNode;
|
|
|
+ return new JSONObject();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -451,28 +458,9 @@ public class RelationReportService implements IRelationReportService {
|
|
|
return;
|
|
|
}
|
|
|
// 2.查询所有的边类型定义
|
|
|
- List<RelationDefine> relationDefines = DigitalRelationDefineFacade.query(groupCode, projectId,
|
|
|
- AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, parentCriteria);
|
|
|
- if (CollUtil.isEmpty(relationDefines)){
|
|
|
- return;
|
|
|
- }
|
|
|
- Map<String, RelationDefine> relationDefineMap = relationDefines.stream()
|
|
|
- .collect(Collectors.toMap(relationDefine ->
|
|
|
- relationDefine.getGraphCode() + StrUtil.UNDERLINE + relationDefine.getCode(),
|
|
|
- relationDefine -> relationDefine, (k1, k2) -> k1));
|
|
|
+ Map<String, RelationDefine> relationDefineMap = queryAllRelationDefineMap(groupCode,projectId);
|
|
|
// 3.查询出对应项目关系计算数据
|
|
|
- QueryCriteria projectCriteria = new QueryCriteria();
|
|
|
- ObjectMapper objectMapper = SpringHelper.getBean(ObjectMapper.class);
|
|
|
- ObjectNode criteria = objectMapper.createObjectNode();
|
|
|
- criteria.put("projectId", projectId);
|
|
|
- if (isQuery) {
|
|
|
- ObjectNode condition = objectMapper.createObjectNode();
|
|
|
- condition.put("$like", content);
|
|
|
- criteria.putPOJO("name", condition); // 模糊查询
|
|
|
- }
|
|
|
- projectCriteria.setCriteria(criteria);
|
|
|
- projectCriteria.setOrders(Collections.singletonList(OrderItem.asc("relCode")));
|
|
|
- List<ObjectNode> projectRelList = DigitalRelationProjectCalFacade.query(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, projectCriteria);
|
|
|
+ List<ObjectNode> projectRelList = queryRelationProjectCalsByProjectId(groupCode,projectId,content);
|
|
|
if (CollUtil.isEmpty(projectRelList)){
|
|
|
return;
|
|
|
}
|
|
@@ -489,7 +477,7 @@ public class RelationReportService implements IRelationReportService {
|
|
|
continue;
|
|
|
}
|
|
|
List<JSONObject> sonList = levelMap.getOrDefault(graphCode, new ArrayList<>());
|
|
|
- JSONObject son = this.transfer(projectRel, graphCode,relCode,graphRelTypeMap,relationDefineMap);
|
|
|
+ JSONObject son = this.fillRelationProjectCal(projectRel, graphCode,relCode,graphRelTypeMap,relationDefineMap);
|
|
|
sonList.add(son);
|
|
|
sonList.sort(Comparator.comparing(b -> b.getString("relationTypeCode")));
|
|
|
levelMap.put(graphCode,sonList);
|
|
@@ -522,6 +510,51 @@ public class RelationReportService implements IRelationReportService {
|
|
|
parentList.addAll(topList);
|
|
|
}
|
|
|
/***
|
|
|
+ * Description: 根据项目id查询项目计算关系
|
|
|
+ * @param groupCode : 集团编码
|
|
|
+ * @param projectId : 项目id
|
|
|
+ * @param content : 查询关键字
|
|
|
+ * @return : java.util.List<com.fasterxml.jackson.databind.node.ObjectNode>
|
|
|
+ * @author : lijie
|
|
|
+ * @date :2021/10/15 11:26
|
|
|
+ * Update By lijie 2021/10/15 11:26
|
|
|
+ */
|
|
|
+ private List<ObjectNode> queryRelationProjectCalsByProjectId(String groupCode, String projectId,String content) {
|
|
|
+ QueryCriteria projectCriteria = new QueryCriteria();
|
|
|
+ ObjectMapper objectMapper = SpringHelper.getBean(ObjectMapper.class);
|
|
|
+ ObjectNode criteria = objectMapper.createObjectNode();
|
|
|
+ criteria.put("projectId", projectId);
|
|
|
+ if (StrUtil.isNotBlank(content)) {
|
|
|
+ ObjectNode condition = objectMapper.createObjectNode();
|
|
|
+ condition.put("$like", content);
|
|
|
+ criteria.putPOJO("name", condition); // 模糊查询
|
|
|
+ }
|
|
|
+ projectCriteria.setCriteria(criteria);
|
|
|
+ projectCriteria.setOrders(Collections.singletonList(OrderItem.asc("relCode")));
|
|
|
+ return DigitalRelationProjectCalFacade.query(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, projectCriteria);
|
|
|
+ }
|
|
|
+
|
|
|
+ /***
|
|
|
+ * Description: 查询所有关系类型
|
|
|
+
|
|
|
+ * @return : java.util.Map<java.lang.String,com.persagy.dmp.define.entity.RelationDefine>
|
|
|
+ * @author : lijie
|
|
|
+ * @date :2021/10/15 11:22
|
|
|
+ * Update By lijie 2021/10/15 11:22
|
|
|
+ */
|
|
|
+ private Map<String, RelationDefine> queryAllRelationDefineMap(String groupCode,String projectId) {
|
|
|
+ List<RelationDefine> relationDefines = DigitalRelationDefineFacade.query(groupCode, projectId,
|
|
|
+ AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, new QueryCriteria());
|
|
|
+ if (CollUtil.isEmpty(relationDefines)){
|
|
|
+ return new HashMap<>();
|
|
|
+ }
|
|
|
+ return relationDefines.stream()
|
|
|
+ .collect(Collectors.toMap(relationDefine ->
|
|
|
+ relationDefine.getGraphCode() + StrUtil.UNDERLINE + relationDefine.getCode(),
|
|
|
+ relationDefine -> relationDefine, (k1, k2) -> k1));
|
|
|
+ }
|
|
|
+
|
|
|
+ /***
|
|
|
* Description: 创建一级返回数据
|
|
|
* @param graphParentMes : 一级信息对象
|
|
|
* @return : com.alibaba.fastjson.JSONObject
|