Quellcode durchsuchen

实现overview接口

lijie vor 3 Jahren
Ursprung
Commit
e6068995d2

+ 2 - 2
src/main/java/com/persagy/proxy/adm/controller/RelationReportController.java

@@ -92,7 +92,7 @@ public class RelationReportController {
 	public AdmResponse countRelationObjects(@RequestParam String type, HttpServletRequest request) {
 		String groupCode = request.getHeader(AdmCommonConstant.GROUP_CODE_HEADER);
 		String projectId = request.getHeader(AdmCommonConstant.PROJECT_ID_HEADER);
-		ObjectNode objectNode = this.relationReportService.getRelationProjectCal(groupCode, projectId, type);
+		JSONObject objectNode = this.relationReportService.getRelationProjectCal(groupCode, projectId, type);
  		return AdmResponse.success(Lists.newArrayList(objectNode));
 	}
 	
@@ -119,7 +119,7 @@ public class RelationReportController {
 	public AdmResponse queryRelationObjects(@RequestBody AdmQueryCriteria queryCriteria, HttpServletRequest request) {
 		String groupCode = request.getHeader(AdmCommonConstant.GROUP_CODE_HEADER);
 		String projectId = request.getHeader(AdmCommonConstant.PROJECT_ID_HEADER);
-		List<ObjectNode> relationProjectCal = this.relationReportService.getAllRelationProjectCal(groupCode, projectId);
+		List<JSONObject> relationProjectCal = this.relationReportService.getAllRelationProjectCal(groupCode, projectId);
 		return AdmResponse.success(relationProjectCal);
 	}
 	

+ 2 - 2
src/main/java/com/persagy/proxy/adm/service/IRelationReportService.java

@@ -67,7 +67,7 @@ public interface IRelationReportService {
 	 * @param projectId
 	 * @return
 	 */
-	List<ObjectNode> getAllRelationProjectCal(String groupCode, String projectId);
+	List<JSONObject> getAllRelationProjectCal(String groupCode, String projectId);
 	
 	/**
 	 * 获取项目计算关系
@@ -77,7 +77,7 @@ public interface IRelationReportService {
 	 * @param relType	ADM-类型
 	 * @return
 	 */
-	ObjectNode getRelationProjectCal(String groupCode, String projectId, String relType);
+	JSONObject getRelationProjectCal(String groupCode, String projectId, String relType);
 	
 	/**
 	 * 获取项目计算关系

+ 66 - 33
src/main/java/com/persagy/proxy/adm/service/impl/RelationReportService.java

@@ -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