浏览代码

新增项目信息点数据统计接口

zhangqiankun 3 年之前
父节点
当前提交
1f10ef644f
共有 41 个文件被更改,包括 721 次插入198 次删除
  1. 4 3
      src/main/java/com/persagy/proxy/adm/controller/RelationReportController.java
  2. 204 67
      src/main/java/com/persagy/proxy/adm/handler/RelationReportHandler.java
  3. 8 8
      src/main/java/com/persagy/proxy/adm/model/EquipmentExcel2.java
  4. 43 17
      src/main/java/com/persagy/proxy/adm/service/IRelationReportService.java
  5. 103 24
      src/main/java/com/persagy/proxy/adm/service/impl/RelationReportService.java
  6. 18 4
      src/main/java/com/persagy/proxy/adm/strategy/RelationObjectContext.java
  7. 7 6
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/AbstractRelationObject.java
  8. 3 14
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/AbstractReportRelationObject.java
  9. 6 4
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSh2BdRelationObject.java
  10. 6 4
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSh2FlRelationObject.java
  11. 6 3
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSh2ShRelationObject.java
  12. 6 3
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSh2SpRelationObject.java
  13. 6 3
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSp2BdRelationObject.java
  14. 6 3
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSp2FlRelationObject.java
  15. 16 0
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchSubsetBd2FlRelationObject.java
  16. 15 0
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ConvectionNetworkMixMechRelationObject.java
  17. 15 0
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ConvectionNetworkNaturalRelationObject.java
  18. 15 0
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ConvectionNetworkOnewayMechRelationObject.java
  19. 15 0
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/EquipPowerEqBackupRelationObject.java
  20. 15 0
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/EquipPowerEqNormalRelationObject.java
  21. 15 0
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/EquipPowerSyBackupRelationObject.java
  22. 15 0
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/EquipPowerSyNormalRelationObject.java
  23. 5 2
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchEq2BdRelationObject.java
  24. 5 2
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchEq2FlRelationObject.java
  25. 6 3
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchEq2ShRelationObject.java
  26. 5 2
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchSy2BdRelationObject.java
  27. 5 2
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchSy2FlRelationObject.java
  28. 5 2
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchSy2ShRelationObject.java
  29. 6 3
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchSy2SpRelationObject.java
  30. 6 3
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechInArchEq2BdRelationObject.java
  31. 6 3
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechInArchEq2FlRelationObject.java
  32. 5 2
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechInArchEq2SpRelationObject.java
  33. 13 3
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/RadiationNetworkConnectRelationObject.java
  34. 15 0
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/RadiationNetworkTransparentRelationObject.java
  35. 11 2
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/RelationObjectStrategy.java
  36. 12 2
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/SensorRelationshipSs2EqRelationObject.java
  37. 12 2
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/SensorRelationshipSs2SpRelationObject.java
  38. 12 2
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/SensorRelationshipSs2SyRelationObject.java
  39. 15 0
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/TrafficNetworkFFCloseRelationObject.java
  40. 15 0
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/TrafficNetworkFFOpenRelationObject.java
  41. 15 0
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/TrafficNetworkNormalRelationObject.java

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

@@ -36,6 +36,7 @@ import com.persagy.proxy.adm.constant.AdmCommonConstant;
 import com.persagy.proxy.adm.constant.AdmRelationTypeEnum;
 import com.persagy.proxy.adm.handler.RelationReportHandler;
 import com.persagy.proxy.adm.model.AdmRelationObject;
+import com.persagy.proxy.adm.model.EquipmentBindPointExcel;
 import com.persagy.proxy.adm.model.EquipmentExcel;
 import com.persagy.proxy.adm.request.AdmQueryCriteria;
 import com.persagy.proxy.adm.request.AdmResponse;
@@ -196,8 +197,8 @@ public class RelationReportController {
             String fileName = URLEncoder.encode("设备实例交付", encode);
             response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
             
-            List<EquipmentExcel> equipByNotSpace = this.relationReportHandler.findEquipByNotSpace(groupCode, projectId);
-            EasyExcel.write(response.getOutputStream(), EquipmentExcel.class).sheet(0).doWrite(equipByNotSpace);
+            List<EquipmentBindPointExcel> equipmentBindPointExcel = this.relationReportHandler.queryProjectBindPoint(groupCode, projectId);
+            EasyExcel.write(response.getOutputStream(), EquipmentBindPointExcel.class).sheet(0).doWrite(equipmentBindPointExcel);
 		} catch(Exception e) {
 			log.error("设备数据导出异常", e);
 		}
@@ -376,7 +377,7 @@ public class RelationReportController {
 			List<AdmRelationObject> relationObjects = null;
 			if (typeEnum != null) {
 				String graphAndRelKey = typeEnum.getGraphCode() + AdmCommonConstant.UNDERLINE + typeEnum.getRelCode();
-				relationObjects = this.relationObjectContext.findRelationObject(groupCode, projectId, graphAndRelKey);
+				relationObjects = this.relationObjectContext.exportRelationObject(groupCode, projectId, graphAndRelKey);
 			}
 			
 			File templateFile = this.getTemplateFile("relation-template.xlsx");

+ 204 - 67
src/main/java/com/persagy/proxy/adm/handler/RelationReportHandler.java

@@ -1,7 +1,6 @@
 package com.persagy.proxy.adm.handler;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -12,23 +11,18 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.metadata.OrderItem;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.google.common.collect.Lists;
-import com.persagy.dmp.basic.dto.RequestData;
-import com.persagy.dmp.basic.model.QueryCriteria;
-import com.persagy.dmp.common.helper.SpringHelper;
-import com.persagy.dmp.define.client.DigitalDefineFacade;
+import com.google.common.collect.Sets;
+import com.persagy.dmp.define.entity.ObjectInfoDefine;
 import com.persagy.dmp.define.entity.ObjectTypeDefine;
-import com.persagy.dmp.digital.client.DigitalObjectFacade;
-import com.persagy.dmp.digital.client.DigitalRelationFacade;
 import com.persagy.dmp.digital.entity.ObjectDigital;
 import com.persagy.dmp.digital.entity.ObjectRelation;
 import com.persagy.proxy.adm.constant.AdmCommonConstant;
 import com.persagy.proxy.adm.constant.AdmObjectType;
 import com.persagy.proxy.adm.constant.GraphCodeEnum;
 import com.persagy.proxy.adm.constant.RelCodeEnum;
+import com.persagy.proxy.adm.model.EquipmentBindPointExcel;
 import com.persagy.proxy.adm.model.EquipmentExcel;
 import com.persagy.proxy.adm.service.IRelationReportService;
 import com.persagy.proxy.adm.strategy.RelationObjectContext;
@@ -63,96 +57,100 @@ public class RelationReportHandler {
 	 */
 	public List<EquipmentExcel> findEquipByNotSpace(String groupCode, String projectId) {
 		groupCode = StrUtil.isBlank(groupCode) ? defaultCode : groupCode;
+		String equipment = AdmObjectType.EQUIPMENT.getIndex();
 		
-		ObjectMapper objectMapper = SpringHelper.getBean(ObjectMapper.class);
-		QueryCriteria objectCriteria = new QueryCriteria();
-		ObjectNode object = objectMapper.createObjectNode();
-		object.put("objType", AdmObjectType.EQUIPMENT.getIndex());
-		objectCriteria.setCriteria(object);
-		
-		// 1.获取所有的设备类定义的className
-		List<ObjectTypeDefine> classList = DigitalDefineFacade.queryObjectType(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, objectCriteria);
+		// 1.获取所有的设备对象数据
+		List<ObjectNode> equipList = this.relationReportService.queryObjects(groupCode, projectId, null, null, equipment, "classCode");
+		if (CollectionUtil.isEmpty(equipList)) {
+			return Lists.newArrayList();
+		}
+				
+		// 2.获取所有的设备类定义的className
+		List<ObjectTypeDefine> classList = this.relationReportService.queryClassList(groupCode, projectId, null, equipment, null);
 		// key-classCode, value-className
 		Map<String, String> classDefine = new HashMap<String, String>();
-		if (CollectionUtil.isNotEmpty(classList)) {
-			for (ObjectTypeDefine objectTypeDefine : classList) {
-				classDefine.put(objectTypeDefine.getCode(), objectTypeDefine.getName());
+		for (ObjectTypeDefine objectTypeDefine : classList) {
+			classDefine.put(objectTypeDefine.getCode(), objectTypeDefine.getName());
+		}
+		
+		// 3.查询出所有的边类型为 Eq2Sp 的关系数据
+		List<ObjectRelation> relationObjects = this.relationReportService.findRelationObjects(groupCode, projectId, null, RelCodeEnum.Eq2Sp.name());
+		Set<String> excludeIds = new HashSet<String>();
+		if (CollectionUtil.isNotEmpty(relationObjects)) {
+			for (ObjectRelation relationInfo : relationObjects) {
+				excludeIds.add(relationInfo.getObjFrom());
 			}
 		}
+		
+		return this.exportEquipmentExcel(equipList, classDefine, excludeIds, groupCode, projectId);
+	}
+	
+	/**
+	 * 统计项目下已有的设备,信息点,每个设备
+	 * 
+	 * @param groupCode
+	 * @param projectId
+	 */
+	public List<EquipmentBindPointExcel> queryProjectBindPoint(String groupCode, String projectId) {
+		groupCode = StrUtil.isBlank(groupCode) ? defaultCode : groupCode;
+		String equipment = AdmObjectType.EQUIPMENT.getIndex();
+		
+		// 1.获取项目名称
+		List<ObjectNode> projects = this.relationReportService.queryObjects(groupCode, projectId, projectId, AdmObjectType.PROJECT.getIndex(), null, null);
+		if (CollectionUtil.isEmpty(projects)) {
+			return Lists.newArrayList();
+		}
+		String projectName = projects.get(0).has("localName") ? projects.get(0).get("localName").asText() : null;
+		
 		// 2.获取所有的设备对象数据
-		objectCriteria.setOrders(Collections.singletonList(OrderItem.asc("classCode")));
-		List<ObjectNode> equipList = DigitalObjectFacade.query(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, objectCriteria);
+		List<ObjectNode> equipList = this.relationReportService.queryObjects(groupCode, projectId, null, null, equipment, "classCode");
 		if (CollectionUtil.isEmpty(equipList)) {
 			return Lists.newArrayList();
 		}
 		
-		// 3.查询出所有的边类型为 Eq2Sp 的关系数据
-		QueryCriteria relationCriteria = new QueryCriteria();
-		ObjectNode relation = objectMapper.createObjectNode();
-		relation.put("relCode", RelCodeEnum.Eq2Sp.name());
-		relationCriteria.setCriteria(relation);
-		List<ObjectRelation> relationList = DigitalRelationFacade.query(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, relationCriteria);
-		Set<String> equipIds = new HashSet<String>();
-		if (CollectionUtil.isNotEmpty(relationList)) {
-			for (ObjectRelation relationInfo : relationList) {
-				equipIds.add(relationInfo.getObjFrom());
-			}
+		// 3.获取所有的设备、系统类定义信息
+		List<ObjectTypeDefine> equipClass = this.relationReportService.queryClassList(groupCode, projectId, null, equipment, null);
+		List<ObjectTypeDefine> systemClass = this.relationReportService.queryClassList(groupCode, projectId, null, AdmObjectType.SYSTEM.getIndex(), null);
+		// key-equipCode, value-equipName
+		Map<String, String> equipTemp = new HashMap<String, String>();
+		for (ObjectTypeDefine equip : equipClass) {
+			equipTemp.put(equip.getCode(), equip.getName());
+		}
+		// key-systemCode, value-systemName
+		Map<String, String> systemTemp = new HashMap<String, String>();
+		for (ObjectTypeDefine system : systemClass) {
+			systemTemp.put(system.getCode(), system.getName());
 		}
 		
-		return this.exportEquipmentExcel(equipList, classDefine, equipIds, groupCode, projectId);
+		// 4.获取所有的信息点
+		Set<String> equipCodes = equipTemp.keySet();
+		List<ObjectInfoDefine> funidList = this.relationReportService.queryFunidList(groupCode, projectId, equipCodes, null, null);
+		return this.exportEquipmentBindPointExcel(equipList, equipTemp, systemTemp, funidList, groupCode, projectId, projectName);
 	}
 	
 	/**
-	 * 构造 excel 设备数据
+	 * 构造 excel 设备数据--不在空间内的设备数据
 	 * 
 	 * @param equipList 设备数据集合
 	 * @param classDefine 类定义信息
-	 * @param equipIds 需要剔除的设备ID集合
+	 * @param excludeIds 需要剔除的设备ID集合
 	 * @param groupCode 
 	 * @param projectId 
 	 * @return
 	 */
-	private List<EquipmentExcel> exportEquipmentExcel(List<ObjectNode> equipList, Map<String, String> classDefine, Set<String> equipIds, String groupCode, String projectId) {
+	private List<EquipmentExcel> exportEquipmentExcel(List<ObjectNode> equipList, Map<String, String> classDefine, Set<String> excludeIds, String groupCode, String projectId) {
 		// key: 设备ID,value: 建筑名称
 		Map<String, String> buildTemp = new HashMap<String, String>();
 		// key: 设备ID,value: 楼层名称
 		Map<String, String> floorTemp = new HashMap<String, String>();
 		
-		// 获取建筑名称
-		//this.relationObjectContext.findRelationObject(groupCode, projectId, projectId);
-		RequestData requestData = new RequestData();
-		requestData.setGraphCode(GraphCodeEnum.MechInArch.name());
-		requestData.setRelCode(RelCodeEnum.Eq2Bd.name());
-		requestData.setPage(1L);
-		requestData.setSize(500L);
-		List<ObjectDigital> buildDigitals = DigitalObjectFacade.queryObjectListByGraphCodeAndRelCode(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, requestData);
-		if (CollectionUtil.isNotEmpty(buildDigitals)) {
-			for (ObjectDigital master : buildDigitals) {
-				List<ObjectDigital> slaveDigitals = master.getRelObjs();
-				ObjectDigital slave = CollectionUtil.isEmpty(slaveDigitals) ? null : slaveDigitals.get(0);
-				if (slave != null) {
-					buildTemp.put(master.getId(), slave.getLocalName());
-				}
-			}
-		}
-		// 楼层名称
-		requestData.setRelCode(RelCodeEnum.Eq2Fl.name());
-		List<ObjectDigital> floorDigitals = DigitalObjectFacade.queryObjectListByGraphCodeAndRelCode(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, requestData);
-		if (CollectionUtil.isNotEmpty(floorDigitals)) {
-			for (ObjectDigital master : floorDigitals) {
-				List<ObjectDigital> slaveDigitals = master.getRelObjs();
-				ObjectDigital slave = CollectionUtil.isEmpty(slaveDigitals) ? null : slaveDigitals.get(0);
-				if (slave != null) {
-					floorTemp.put(master.getId(), slave.getLocalName());
-				}
-			}
-		}
+		this.findBuildAndFloorName(buildTemp, floorTemp, groupCode, projectId);
 		
 		// 结果封装
 		List<EquipmentExcel> excelList = new ArrayList<EquipmentExcel>();
 		for (ObjectNode equip : equipList) {
 			String id = equip.get("id") == null ? null : equip.get("id").asText();
-			if (id != null && !equipIds.contains(id)) {
+			if (id != null && !excludeIds.contains(id)) {
 				EquipmentExcel excel = new EquipmentExcel();
 				excel.setId(id);
 				excel.setName(equip.get("name") == null ? null : equip.get("name").asText());
@@ -176,5 +174,144 @@ public class RelationReportHandler {
 		}
 		return excelList;
 	}
+
+	/**
+	 * 构造 excel 设备数据--统计项目下已有的设备,信息点,每个设备
+	 * 
+	 * @param equipList
+	 * @param equipTemp
+	 * @param systemTemp
+	 * @param groupCode
+	 * @param projectId
+	 * @param projectName
+	 * @return
+	 */
+	private List<EquipmentBindPointExcel> exportEquipmentBindPointExcel(List<ObjectNode> equipList, Map<String, String> equipTemp, 
+			Map<String, String> systemTemp, List<ObjectInfoDefine> funidList, String groupCode, String projectId, String projectName) {
+		// key: 设备ID,value: 建筑名称
+		Map<String, String> buildTemp = new HashMap<String, String>();
+		// key: 设备ID,value: 楼层名称
+		Map<String, String> floorTemp = new HashMap<String, String>();
+		
+		this.findBuildAndFloorName(buildTemp, floorTemp, groupCode, projectId);
+		
+		// 信息点分类信息统计
+		// key: classCode, value: 信息点
+		Map<String, Set<String>> infoCodes = new HashMap<String, Set<String>>();
+		// key: classCode, value: 静态信息点的数量 
+		Map<String, Integer> staticCount = new HashMap<String, Integer>();
+		// key: classCode, value: 动态信息点的数量 
+		Map<String, Integer> dynamicCount = new HashMap<String, Integer>();
+		// key: classCode_infoCode, value: 动静态
+		Map<String, String> codeAttrbut = new HashMap<String, String>();
+		for (ObjectInfoDefine infoDefine : funidList) {
+			String classCode = infoDefine.getClassCode();
+			String category = infoDefine.getCategory();
+			if ("STATIC".equals(category)) {
+				int count = (staticCount.get(classCode) == null ? 0 : staticCount.get(classCode)) + 1;
+				staticCount.put(classCode, count);
+			} else {
+				int count = (dynamicCount.get(classCode) == null ? 0 : dynamicCount.get(classCode)) + 1;
+				dynamicCount.put(classCode, count);
+			}
+			
+			codeAttrbut.put(classCode + AdmCommonConstant.UNDERLINE + infoDefine.getCode(), category);
+			if (infoCodes.containsKey(classCode)) {
+				infoCodes.get(classCode).add(infoDefine.getCode());
+			} else {
+				infoCodes.put(classCode, Sets.newHashSet(infoDefine.getCode()));
+			}
+		}
+		
+		// 结果封装
+		List<EquipmentBindPointExcel> excelList = new ArrayList<EquipmentBindPointExcel>();
+		for (int i = 0; i < equipList.size(); i++) {
+			ObjectNode equip = equipList.get(i);
+			String id = equip.get("id") == null ? null : equip.get("id").asText();
+			String equipCode = equip.get("classCode") == null ? null : equip.get("classCode").asText();
+			String systemCode = (equipCode == null || equipCode.length() < 5) ? null : equipCode.substring(0, 4);
+			
+			EquipmentBindPointExcel excel = new EquipmentBindPointExcel();
+			excel.setIndex(i + 1);
+			excel.setProjectName(projectName);
+			excel.setBuildName(buildTemp.get(id));
+			excel.setFloorName(floorTemp.get(id));
+			excel.setSystemCode(systemCode);
+			excel.setSystemName(systemTemp.get(systemCode));
+			excel.setEquipCode(equipCode);
+			excel.setEquipName(equipTemp.get(equipCode));
+			excel.setEquipId(id);
+			excel.setLocalId(equip.get("localId") == null ? null : equip.get("localId").asText());
+			excel.setLocalName(equip.get("localName") == null ? null : equip.get("localName").asText());
+			
+			// 获取此classCode下有多少信息点、静态信息点、动态信息点
+			int staticNum = staticCount.get(equipCode) == null ? 0 : staticCount.get(equipCode);
+			int dynamicNum = dynamicCount.get(equipCode) == null ? 0 : dynamicCount.get(equipCode);
+			excel.setNeedPointCount(staticNum + dynamicNum);
+			excel.setNeedStaticPointCount(staticNum);
+			excel.setNeedDynamicPointCount(dynamicNum);
+			
+			int nowStatic = 0;
+			int nowDynamic = 0;
+			Set<String> needCodes = infoCodes.get(equipCode);
+			String infos = equip.get("infos") == null ? null : equip.get("infos").asText();
+			if (StrUtil.isNotBlank(infos)) {
+				JSONObject parseObject = JSONObject.parseObject(infos);
+				excel.setBimId(parseObject.getString("bimId"));
+				
+				// 判断已绑定多少信息点
+				Set<String> nowCodes = parseObject.keySet();
+				for (String key : nowCodes) {
+					if (needCodes.contains(key)) {
+						if ("STATIC".equals(codeAttrbut.get(equipCode + AdmCommonConstant.UNDERLINE + key))) {
+							nowStatic++;
+						} else {
+							nowDynamic++;
+						}
+					}
+				}
+			}
+			excel.setNowPointCount(nowStatic + nowDynamic);
+			excel.setNowStaticPointCount(nowStatic);
+			excel.setNowDynamicPointCount(nowDynamic);
+			excelList.add(excel);
+		}
+		return excelList;
+	}
+	
+	/**
+	 * 获取建筑、楼层的名称
+	 * 
+	 * @param buildTemp key: 设备ID,value: 建筑名称
+	 * @param floorTemp key: 设备ID,value: 楼层名称
+	 * @param groupCode
+	 * @param projectId
+	 */
+	private void findBuildAndFloorName(Map<String, String> buildTemp, Map<String, String> floorTemp, String groupCode, String projectId) {
+		// 获取建筑名称
+		String graphAndRelKey = GraphCodeEnum.MechInArch.name() + AdmCommonConstant.UNDERLINE + RelCodeEnum.Eq2Bd.name();
+		List<ObjectDigital> buildDigitals = this.relationObjectContext.queryAllRelations(groupCode, projectId, graphAndRelKey);
+		if (CollectionUtil.isNotEmpty(buildDigitals)) {
+			for (ObjectDigital master : buildDigitals) {
+				List<ObjectDigital> slaveDigitals = master.getRelObjs();
+				ObjectDigital slave = CollectionUtil.isEmpty(slaveDigitals) ? null : slaveDigitals.get(0);
+				if (slave != null) {
+					buildTemp.put(master.getId(), slave.getLocalName());
+				}
+			}
+		}
+		// 获取楼层名称
+		graphAndRelKey = GraphCodeEnum.MechInArch.name() + AdmCommonConstant.UNDERLINE + RelCodeEnum.Eq2Fl.name();
+		List<ObjectDigital> floorDigitals = this.relationObjectContext.queryAllRelations(groupCode, projectId, graphAndRelKey);
+		if (CollectionUtil.isNotEmpty(floorDigitals)) {
+			for (ObjectDigital master : floorDigitals) {
+				List<ObjectDigital> slaveDigitals = master.getRelObjs();
+				ObjectDigital slave = CollectionUtil.isEmpty(slaveDigitals) ? null : slaveDigitals.get(0);
+				if (slave != null) {
+					floorTemp.put(master.getId(), slave.getLocalName());
+				}
+			}
+		}
+	}
 	
 }

+ 8 - 8
src/main/java/com/persagy/proxy/adm/model/EquipmentExcel2.java

@@ -19,11 +19,11 @@ import lombok.Setter;
 @Getter
 @Setter
 @HeadFontStyle(color = Font.COLOR_NORMAL)
-public class EquipmentExcel2 {
+public class EquipmentBindPointExcel {
 	
 	@ColumnWidth(10)
 	@ExcelProperty(value = "序号", index=0)
-	private String index;
+	private int index;
 	
 	@ColumnWidth(25)
 	@ExcelProperty(value = "项目名称", index=1)
@@ -71,26 +71,26 @@ public class EquipmentExcel2 {
 	
 	@ColumnWidth(10)
 	@ExcelProperty(value = "【信息点】应绑点位总数", index=12)
-	private String needPointCount;
+	private int needPointCount;
 	
 	@ColumnWidth(10)
 	@ExcelProperty(value = "【信息点】已绑点位总数", index=13)
-	private String nowPointCount;
+	private int nowPointCount;
 	
 	@ColumnWidth(10)
 	@ExcelProperty(value = "【信息点】静态应绑点", index=14)
-	private String needStaticPointCount;
+	private int needStaticPointCount;
 	
 	@ColumnWidth(10)
 	@ExcelProperty(value = "【信息点】静态已绑点", index=15)
-	private String nowStaticPointCount;
+	private int nowStaticPointCount;
 	
 	@ColumnWidth(10)
 	@ExcelProperty(value = "【信息点】动态应绑点", index=16)
-	private String needDynamicPointCount;
+	private int needDynamicPointCount;
 	
 	@ColumnWidth(10)
 	@ExcelProperty(value = "【信息点】动态已绑点", index=17)
-	private String nowDynamicPointCount;
+	private int nowDynamicPointCount;
 	
 }

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

@@ -8,6 +8,8 @@ import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.dmp.define.entity.GraphDefine;
+import com.persagy.dmp.define.entity.ObjectInfoDefine;
+import com.persagy.dmp.define.entity.ObjectTypeDefine;
 import com.persagy.dmp.define.entity.RelationDefine;
 import com.persagy.dmp.digital.entity.ObjectRelation;
 
@@ -20,7 +22,19 @@ import com.persagy.dmp.digital.entity.ObjectRelation;
  * @date 2021831日 下午4:42:51
  */
 public interface IRelationReportService {
-
+	
+	/**
+	 * 获取class类型定义数据
+	 * 
+	 * @param groupCode
+	 * @param projectId
+	 * @param classCode
+	 * @param objType
+	 * @param ascOrder
+	 * @return
+	 */
+	List<ObjectTypeDefine> queryClassList(String groupCode, String projectId, String classCode, String objType, String ascOrder);
+	
 	/**
 	 * 根据信息点统计对象个数
 	 * 
@@ -33,7 +47,7 @@ public interface IRelationReportService {
 	List<Map<String,Object>> queryObjectCountByObjInfos(String groupCode, Set<String> classCodes, Set<String> objTypes, List<String> groups);
 	
 	/**
-	 * 根据条件查询对应的类型数据
+	 * 根据条件查询对应的类型数据
 	 * 
 	 * @param groupCode
 	 * @param projectId
@@ -150,7 +164,20 @@ public interface IRelationReportService {
 	ObjectNode getObjectByCodeAndId(String groupCode, String projectId, String graphCode, String relCode, String objFrom, String objTo);
 	
 	/**
-	 * 获取对象关系数据
+	 * 获取原始的对象数据
+	 * 
+	 * @param groupCode
+	 * @param projectId
+	 * @param id
+	 * @param classCode
+	 * @param objType
+	 * @param ascOrder
+	 * @return
+	 */
+	List<ObjectNode> queryObjects(String groupCode, String projectId, String id, String classCode, String objType, String ascOrder);
+	
+	/**
+	 * 获取原始的对象关系数据
 	 * 
 	 * @param groupCode
 	 * @param projectId
@@ -158,7 +185,19 @@ public interface IRelationReportService {
 	 * @param relCode
 	 * @return
 	 */
-	List<ObjectRelation> findObjectRelationList(String groupCode, String projectId, String graphCode, String relCode);
+	List<ObjectRelation> findRelationObjects(String groupCode, String projectId, String graphCode, String relCode);
+	
+	/**
+	 * 查询信息点定义
+	 * 
+	 * @param groupCode
+	 * @param projectId
+	 * @param classCodes
+	 * @param code
+	 * @param category
+	 * @return
+	 */
+	List<ObjectInfoDefine> queryFunidList(String groupCode, String projectId, Set<String> classCodes, String code, String category);
 
 	/**
 	 * 查询关系总览(空表,先插入)
@@ -175,17 +214,4 @@ public interface IRelationReportService {
 	 */
 	boolean createRelationProjectCal(String groupCode, String projectId) throws JsonProcessingException;
 
-	/**
-	 * 查询出所有的关系信息
-	 * <p>因原代码中,不存在zoneType类型不为空时对应的方法,所以此处不再进行此数据的判断</p>
-	 * 
-	 * @param groupCode
-	 * @param projectId
-	 * @param relType
-	 * @param code
-	 * @param zoneType
-	 * @return 可以被直接导出的数据集
-	 */
-	//List<AdmRelationObject> reportRelationObject(String groupCode, String projectId, String relType, String code, String zoneType);
-
 }

+ 103 - 24
src/main/java/com/persagy/proxy/adm/service/impl/RelationReportService.java

@@ -27,9 +27,13 @@ import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.context.AppContext;
 import com.persagy.dmp.common.helper.SpringHelper;
 import com.persagy.dmp.common.model.response.CommonResult;
+import com.persagy.dmp.define.client.DigitalDefineFacade;
 import com.persagy.dmp.define.client.DigitalGraphDefineFacade;
+import com.persagy.dmp.define.client.DigitalObjectInfoFacade;
 import com.persagy.dmp.define.client.DigitalRelationDefineFacade;
 import com.persagy.dmp.define.entity.GraphDefine;
+import com.persagy.dmp.define.entity.ObjectInfoDefine;
+import com.persagy.dmp.define.entity.ObjectTypeDefine;
 import com.persagy.dmp.define.entity.RelationDefine;
 import com.persagy.dmp.digital.client.DigitalObjectFacade;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -63,6 +67,27 @@ public class RelationReportService implements IRelationReportService {
 	private String defaultCode;
 
 	@Override
+	public List<ObjectTypeDefine> queryClassList(String groupCode, String projectId, String classCode, String objType, String ascOrder) {
+		groupCode = StrUtil.isBlank(groupCode) ? defaultCode : groupCode;
+		
+		ObjectMapper objectMapper = SpringHelper.getBean(ObjectMapper.class);
+		QueryCriteria classCriteria = new QueryCriteria();
+		ObjectNode condition = objectMapper.createObjectNode();
+		if (StrUtil.isNotBlank(classCode)) {
+			condition.put("code", classCode);
+		}
+		if (StrUtil.isNotBlank(objType)) {
+			condition.put("objType", objType);
+		}
+		classCriteria.setCriteria(condition);
+		if (StrUtil.isNotBlank(ascOrder)) {
+			classCriteria.setOrders(Collections.singletonList(OrderItem.asc(ascOrder)));
+		}
+		List<ObjectTypeDefine> objectNodes = DigitalDefineFacade.queryObjectType(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, classCriteria);
+		return CollectionUtil.isEmpty(objectNodes) ? Lists.newArrayList() : objectNodes;
+	}
+	
+	@Override
 	public List<Map<String, Object>> queryObjectCountByObjInfos(String groupCode, Set<String> classCodes, Set<String> objTypes, List<String> groups) {
 		groupCode = StrUtil.isBlank(groupCode) ? defaultCode : groupCode;
 		
@@ -310,9 +335,33 @@ public class RelationReportService implements IRelationReportService {
 		String relationId = StrUtil.isBlank(objFrom) ? objectRelation.getObjFrom() : objectRelation.getObjTo();
 		return this.getObjectNode(groupCode, projectId, relationId); 
 	}
+
+	@Override
+	public List<ObjectNode> queryObjects(String groupCode, String projectId, String id, String classCode, String objType, String ascOrder) {
+		groupCode = StrUtil.isBlank(groupCode) ? defaultCode : groupCode;
+		
+		ObjectMapper objectMapper = SpringHelper.getBean(ObjectMapper.class);
+		QueryCriteria objectCriteria = new QueryCriteria();
+		ObjectNode object = objectMapper.createObjectNode();
+		if (StrUtil.isNotBlank(id)) {
+			object.put("id", id);
+		}
+		if (StrUtil.isNotBlank(classCode)) {
+			object.put("classCode", classCode);
+		}
+		if (StrUtil.isNotBlank(objType)) {
+			object.put("objType", objType);
+		}
+		objectCriteria.setCriteria(object);
+		if (StrUtil.isNotBlank(ascOrder)) {
+			objectCriteria.setOrders(Collections.singletonList(OrderItem.asc(ascOrder)));
+		}
+		List<ObjectNode> objectNodes = DigitalObjectFacade.query(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, objectCriteria);
+		return CollectionUtil.isEmpty(objectNodes) ? Lists.newArrayList() : objectNodes;
+	}
 	
 	@Override
-	public List<ObjectRelation> findObjectRelationList(String groupCode, String projectId, String graphCode, String relCode) {
+	public List<ObjectRelation> findRelationObjects(String groupCode, String projectId, String graphCode, String relCode) {
 		groupCode = StrUtil.isBlank(groupCode) ? defaultCode : groupCode;
 		
 		// 获取出关联对象
@@ -320,14 +369,41 @@ public class RelationReportService implements IRelationReportService {
 		
 		QueryCriteria queryCriteria = new QueryCriteria();
 		ObjectNode criteria = objectMapper.createObjectNode();
-		criteria.put("graphCode", graphCode);
-		criteria.put("relCode", relCode);
+		if (StrUtil.isNotBlank(graphCode)) {
+			criteria.put("graphCode", graphCode);
+		}
+		if (StrUtil.isNotBlank(relCode)) {
+			criteria.put("relCode", relCode);
+		}
 		queryCriteria.setCriteria(criteria);
 		List<ObjectRelation> objectRelations = DigitalRelationFacade.query(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, queryCriteria);
 		return CollectionUtil.isEmpty(objectRelations) ? Lists.newArrayList() : objectRelations;
 	}
 	
 	@Override
+	public List<ObjectInfoDefine> queryFunidList(String groupCode, String projectId, Set<String> classCodes, String code, String category) {
+		groupCode = StrUtil.isBlank(groupCode) ? defaultCode : groupCode;
+		
+		ObjectMapper objectMapper = SpringHelper.getBean(ObjectMapper.class);
+		QueryCriteria queryCriteria = new QueryCriteria();
+		ObjectNode condition = objectMapper.createObjectNode();
+		if (StrUtil.isNotBlank(code)) {
+			condition.put("code", code);
+		}
+		if (StrUtil.isNotBlank(category)) {
+			condition.put("category", category);
+		}
+		if (CollectionUtil.isNotEmpty(classCodes)) {
+			JSONObject arrays = new JSONObject();
+			arrays.put("$in", classCodes);
+			condition.putPOJO("classCode", arrays);
+		}
+		queryCriteria.setCriteria(condition);
+		List<ObjectInfoDefine> infos = DigitalObjectInfoFacade.query(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, queryCriteria);
+		return CollectionUtil.isEmpty(infos) ? Lists.newArrayList() : infos;
+	}
+	
+	@Override
 	public boolean createRelationProjectCal(String groupCode, String projectId) throws JsonProcessingException {
 		groupCode = StrUtil.isBlank(groupCode) ? defaultCode : groupCode;
 		// 1.验证是否已经添加过
@@ -371,6 +447,25 @@ public class RelationReportService implements IRelationReportService {
 		return CollectionUtil.isNotEmpty(result);
 	}
 	
+	@Override
+	public JSONObject overview(String content) throws JsonProcessingException {
+		JSONObject result = new JSONObject();
+		if (StrUtil.isBlank(content)) {
+			this.createRelationProjectCal(AppContext.getContext().getGroupCode(), AppContext.getContext().getProjectId());
+		}
+		List<JSONObject> parentList = new ArrayList<>();
+		// 获取树结构
+		this.getGraphRelationProjectTree(parentList, AppContext.getContext().getGroupCode(),
+				AppContext.getContext().getProjectId(), content);
+		result.put("content", parentList);
+		result.put("message", "");
+		result.put("pageNumber", 1);
+		result.put("pageSize", 1000);
+		result.put("result", "success");
+		result.put("total", parentList.size());
+		return result;
+	}
+	
 	/***
 	 * Description: 创建存储的对象
 	 * @param groupCode : 集团编码
@@ -405,25 +500,6 @@ public class RelationReportService implements IRelationReportService {
 		objectNode.put("modifier", AdmCommonConstant.USER_ID);	// 最后修改人
 		return objectNode;
 	}
-
-	@Override
-	public JSONObject overview(String content) throws JsonProcessingException {
-		JSONObject result = new JSONObject();
-		if (StrUtil.isBlank(content)) {
-			this.createRelationProjectCal(AppContext.getContext().getGroupCode(), AppContext.getContext().getProjectId());
-		}
-		List<JSONObject> parentList = new ArrayList<>();
-		// 获取树结构
-		this.getGraphRelationProjectTree(parentList, AppContext.getContext().getGroupCode(),
-				AppContext.getContext().getProjectId(), content);
-		result.put("content", parentList);
-		result.put("message", "");
-		result.put("pageNumber", 1);
-		result.put("pageSize", 1000);
-		result.put("result", "success");
-		result.put("total", parentList.size());
-		return result;
-	}
 	
 	/**
 	 * 获取图类型下的边类型的项目计算关系数据,并形成三级树结构
@@ -504,6 +580,7 @@ public class RelationReportService implements IRelationReportService {
 		topList.sort(Comparator.comparing(b -> b.getIntValue("sort")));
 		parentList.addAll(topList);
 	}
+	
 	/***
 	 * Description: 根据项目id查询项目计算关系
 	 * @param groupCode : 集团编码
@@ -608,11 +685,13 @@ public class RelationReportService implements IRelationReportService {
 		AdmRelationTypeEnum typeEnum = graphRelTypeMap.get(key);
 		RelationDefine relationDefine = relationDefineMap.getOrDefault(key,new RelationDefine());
 		JSONObject result = new JSONObject();
+		long count = 0;
 		if (StrUtil.isAllNotBlank(groupCode, projectId)) {
 			String zoneType = relationProject.has("zoneType") ? relationProject.get("zoneType").asText() : null;
-			long count = this.countRelationObject(groupCode, projectId, graphicId, relCode, zoneType);
-			result.put("count", count);
+			count = this.countRelationObject(groupCode, projectId, graphicId, relCode, zoneType);
 		}
+		
+		result.put("count", count);
 		result.put("graphicId", graphicId);
 		result.put("computationalState",relationProject.has("computationalState")?relationProject.get("computationalState").asText():null);
 		result.put("id",relationProject.has("id")?relationProject.get("id").asText():null);

+ 18 - 4
src/main/java/com/persagy/proxy/adm/strategy/RelationObjectContext.java

@@ -47,9 +47,9 @@ public class RelationObjectContext {
 	 * @param relType graphCode_relCode
 	 * @return
 	 */
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId, String relType) {
+	public List<AdmRelationObject> exportRelationObject(String groupCode, String projectId, String relType) {
 		RelationObjectStrategy strategy = this.relationObjectStrategyMap.get(relType);
-		return strategy == null ? Lists.newArrayList() : strategy.findRelationObject(groupCode, projectId);
+		return strategy == null ? Lists.newArrayList() : strategy.exportRelationObject(groupCode, projectId);
 	}
 	
 	/**
@@ -91,6 +91,20 @@ public class RelationObjectContext {
 		RelationObjectStrategy strategy = this.relationObjectStrategyMap.get(relType);
 		return strategy == null ? 0 : strategy.countRelationObjects(groupCode, projectId);
 	}
+
+	/**
+	 * 查询全部的关系对象数据
+	 * 
+	 * @param masterObjs 查询的数据集存储地方
+	 * @param requestData 请求参数
+	 * @param groupCode 集团编码
+	 * @param projectId 项目ID
+	 * @param relType  graphCode_relCode
+	 */
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId, String relType) {
+		RelationObjectStrategy strategy = this.relationObjectStrategyMap.get(relType);
+		return strategy == null ? Lists.newArrayList() : strategy.queryAllRelations(groupCode, projectId);
+	}
 	
 	/**
 	 * 分页查询关系对象数据
@@ -101,13 +115,13 @@ public class RelationObjectContext {
 	 * @param projectId 项目ID
 	 * @param relType  graphCode_relCode
 	 */
-	public List<ObjectDigital> queryPageObjectInfo(RequestData requestData, String groupCode, String projectId, String relType) {
+	public List<ObjectDigital> queryPageRelations(RequestData requestData, String groupCode, String projectId, String relType) {
 		List<ObjectDigital> masterObjs = new ArrayList<ObjectDigital>();
 		RelationObjectStrategy strategy = this.relationObjectStrategyMap.get(relType);
 		if (strategy == null) {
 			return masterObjs;
 		}
-		strategy.queryPageObjectInfo(masterObjs, requestData, groupCode, projectId, requestData.getPage());
+		strategy.queryPageRelations(masterObjs, requestData, groupCode, projectId, requestData.getPage());
 		return masterObjs;
 	}
 	

+ 7 - 6
src/main/java/com/persagy/proxy/adm/strategy/relationdata/AbstractRelationObject.java

@@ -31,32 +31,32 @@ public abstract class AbstractRelationObject implements RelationObjectStrategy {
 	}
 	
 	@Override
-	public void queryPageObjectInfo(List<ObjectDigital> masterObjs, RequestData requestData, String groupCode, String projectId, Long page) {
+	public void queryPageRelations(List<ObjectDigital> allDigitals, RequestData requestData, String groupCode, String projectId, Long page) {
 		requestData.setPage(page);
 		List<ObjectDigital> objectDigitals = DigitalObjectFacade.queryObjectListByGraphCodeAndRelCode(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, requestData);
 		if (CollectionUtil.isEmpty(objectDigitals)) {
 			return;
 		}
-		masterObjs.addAll(objectDigitals);
-		this.queryPageObjectInfo(masterObjs, requestData, groupCode, projectId, ++page);
+		allDigitals.addAll(objectDigitals);
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, ++page);
 	}
 	
 	@Override
 	public boolean saveRelationObject(ObjectNode relationObject, String groupCode, String projectId) {
 		ObjectRelation objectRelation = DigitalRelationFacade.createOne(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, relationObject);
-		return 	objectRelation != null;
+		return objectRelation != null;
 	}
 	
 	@Override
 	public boolean saveRelationObjects(List<ObjectNode> relationObjects, String groupCode, String projectId) {
 		List<ObjectRelation> create = DigitalRelationFacade.create(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, relationObjects);
-		return 	CollectionUtil.isNotEmpty(create);
+		return CollectionUtil.isNotEmpty(create);
 	}
 	
 	/**************************************************** 默认不实现的类 *******************************************************/
 	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<AdmRelationObject> exportRelationObject(String groupCode, String projectId) {
 		throw new UnsupportedOperationException("未实现的策略类");
 	}
 
@@ -64,4 +64,5 @@ public abstract class AbstractRelationObject implements RelationObjectStrategy {
 	public Object beforeSaveRelationObject(AdmRelationObject relationObject, String groupCode, String projectId, String code) {
 		throw new UnsupportedOperationException("未实现的策略类");
 	}
+	
 }

+ 3 - 14
src/main/java/com/persagy/proxy/adm/strategy/relationdata/AbstractReportRelationObject.java

@@ -4,7 +4,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.digital.entity.ObjectDigital;
 import com.persagy.proxy.adm.constant.AdmCommonConstant;
 import com.persagy.proxy.adm.constant.AdmRelationTypeEnum;
@@ -29,19 +28,9 @@ public abstract class AbstractReportRelationObject extends AbstractRelationObjec
 		super(reportDownloadService);
 	}
 
-	/**
-	 * 根据项目ID,查询出所有的对象信息
-	 * 
-	 * @param requestData
-	 * @param extraMapping
-	 * @return
-	 */
-	protected List<AdmRelationObject> queryAllObjectInfo(RequestData requestData, String groupCode, String projectId) {
-		List<ObjectDigital> masterObjs = new ArrayList<ObjectDigital>();
-		
-		// 获取数据
-		this.queryPageObjectInfo(masterObjs, requestData, groupCode, projectId, requestData.getPage());
-		
+	@Override
+	public List<AdmRelationObject> exportRelationObject(String groupCode, String projectId) {
+		List<ObjectDigital> masterObjs = this.queryAllRelations(groupCode, projectId);
 		// 转换中台数据
 		return this.handleObjectDigital(masterObjs, groupCode, projectId);
 	}

+ 6 - 4
src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSh2BdRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -47,16 +48,17 @@ public class ArchForArchSh2BdRelationObject extends AbstractReportRelationObject
 	}
 	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.ArchForArch.name());
 		requestData.setRelCode(RelCodeEnum.Sh2Bd.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
-		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
-
+	
 	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		return this.convertObject(master, "设备", slave, "空间");

+ 6 - 4
src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSh2FlRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -47,16 +48,17 @@ public class ArchForArchSh2FlRelationObject extends AbstractReportRelationObject
 	}
 	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.ArchForArch.name());
 		requestData.setRelCode(RelCodeEnum.Sh2Fl.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
-		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
-
+	
 	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		// 获取建筑的信息

+ 6 - 3
src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSh2ShRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -45,16 +46,18 @@ public class ArchForArchSh2ShRelationObject extends AbstractReportRelationObject
 		CommonResult<List<ObjectRelation>> result = DigitalRelationFacade.queryPrototype(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, queryCriteria);
 		return result == null ? 0 : (result.getCount() == null ? 0 : result.getCount());
 	}
-
+	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.ArchForArch.name());
 		requestData.setRelCode(RelCodeEnum.Sh2Sh.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
 
 	@Override

+ 6 - 3
src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSh2SpRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -49,16 +50,18 @@ public class ArchForArchSh2SpRelationObject extends AbstractReportRelationObject
 	}
 	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.ArchForArch.name());
 		requestData.setRelCode(RelCodeEnum.Sh2Sp.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
-
+	
 	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		// 获取建筑的信息

+ 6 - 3
src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSp2BdRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -47,16 +48,18 @@ public class ArchForArchSp2BdRelationObject extends AbstractReportRelationObject
 		CommonResult<List<ObjectRelation>> result = DigitalRelationFacade.queryPrototype(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, queryCriteria);
 		return result == null ? 0 : (result.getCount() == null ? 0 : result.getCount());
 	}
-
+	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.ArchForArch.name());
 		requestData.setRelCode(RelCodeEnum.Sp2Bd.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
 
 	@Override

+ 6 - 3
src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSp2FlRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -49,16 +50,18 @@ public class ArchForArchSp2FlRelationObject extends AbstractReportRelationObject
 	}
 	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.ArchForArch.name());
 		requestData.setRelCode(RelCodeEnum.Sp2Fl.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
-
+	
 	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		// 获取建筑的信息

+ 16 - 0
src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchSubsetBd2FlRelationObject.java

@@ -1,13 +1,16 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
+import com.persagy.dmp.digital.entity.ObjectDigital;
 import com.persagy.dmp.digital.entity.ObjectRelation;
 import com.persagy.proxy.adm.constant.AdmCommonConstant;
 import com.persagy.proxy.adm.constant.AdmRelationType;
@@ -41,5 +44,18 @@ public class ArchSubsetBd2FlRelationObject extends AbstractRelationObject {
 		CommonResult<List<ObjectRelation>> result = DigitalRelationFacade.queryPrototype(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, queryCriteria);
 		return result == null ? 0 : (result.getCount() == null ? 0 : result.getCount());
 	}
+	
+	@Override
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(GraphCodeEnum.ArchSubset.name());
+		requestData.setRelCode(RelCodeEnum.Bd2Fl.name());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
+	}
 
 }

+ 15 - 0
src/main/java/com/persagy/proxy/adm/strategy/relationdata/ConvectionNetworkMixMechRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -45,6 +47,19 @@ public class ConvectionNetworkMixMechRelationObject extends AbstractReportRelati
 	}
 	
 	@Override
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.SP2SP_CONVECTIONNETWORK_2.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.SP2SP_CONVECTIONNETWORK_2.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
+	}
+	
+	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		throw new UnsupportedOperationException("未实现的策略类");
 	}

+ 15 - 0
src/main/java/com/persagy/proxy/adm/strategy/relationdata/ConvectionNetworkNaturalRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -45,6 +47,19 @@ public class ConvectionNetworkNaturalRelationObject extends AbstractReportRelati
 	}
 	
 	@Override
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.SP2SP_CONVECTIONNETWORK_1.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.SP2SP_CONVECTIONNETWORK_1.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
+	}
+	
+	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		throw new UnsupportedOperationException("未实现的策略类");
 	}

+ 15 - 0
src/main/java/com/persagy/proxy/adm/strategy/relationdata/ConvectionNetworkOnewayMechRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -45,6 +47,19 @@ public class ConvectionNetworkOnewayMechRelationObject extends AbstractReportRel
 	}
 	
 	@Override
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.SP2SP_CONVECTIONNETWORK_3.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.SP2SP_CONVECTIONNETWORK_3.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
+	}
+	
+	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		throw new UnsupportedOperationException("未实现的策略类");
 	}

+ 15 - 0
src/main/java/com/persagy/proxy/adm/strategy/relationdata/EquipPowerEqBackupRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -45,6 +47,19 @@ public class EquipPowerEqBackupRelationObject extends AbstractReportRelationObje
 	}
 	
 	@Override
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.EQ2EQ_EQUIPPOWER_2.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.EQ2EQ_EQUIPPOWER_2.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
+	}
+	
+	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		throw new UnsupportedOperationException("未实现的策略类");
 	}

+ 15 - 0
src/main/java/com/persagy/proxy/adm/strategy/relationdata/EquipPowerEqNormalRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -45,6 +47,19 @@ public class EquipPowerEqNormalRelationObject extends AbstractReportRelationObje
 	}
 	
 	@Override
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.EQ2EQ_EQUIPPOWER_1.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.EQ2EQ_EQUIPPOWER_1.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
+	}
+	
+	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		throw new UnsupportedOperationException("未实现的策略类");
 	}

+ 15 - 0
src/main/java/com/persagy/proxy/adm/strategy/relationdata/EquipPowerSyBackupRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -45,6 +47,19 @@ public class EquipPowerSyBackupRelationObject extends AbstractReportRelationObje
 	}
 
 	@Override
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.EQ2EQ_EQUIPPOWER_4.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.EQ2EQ_EQUIPPOWER_4.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
+	}
+	
+	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		throw new UnsupportedOperationException("未实现的策略类");
 	}

+ 15 - 0
src/main/java/com/persagy/proxy/adm/strategy/relationdata/EquipPowerSyNormalRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -45,6 +47,19 @@ public class EquipPowerSyNormalRelationObject extends AbstractReportRelationObje
 	}
 
 	@Override
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.EQ2EQ_EQUIPPOWER_3.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.EQ2EQ_EQUIPPOWER_3.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
+	}
+	
+	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		throw new UnsupportedOperationException("未实现的策略类");
 	}

+ 5 - 2
src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchEq2BdRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -49,14 +50,16 @@ public class MechForArchEq2BdRelationObject extends AbstractReportRelationObject
 	}
 
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(AdmRelationTypeEnum.EQ2BD_FOR.getGraphCode());
 		requestData.setRelCode(AdmRelationTypeEnum.EQ2BD_FOR.getRelCode());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
 
 	@Override

+ 5 - 2
src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchEq2FlRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -49,14 +50,16 @@ public class MechForArchEq2FlRelationObject extends AbstractReportRelationObject
 	}
 	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.MechForArch.name());
 		requestData.setRelCode(RelCodeEnum.Eq2Fl.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
 
 	@Override

+ 6 - 3
src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchEq2ShRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -49,16 +50,18 @@ public class MechForArchEq2ShRelationObject extends AbstractReportRelationObject
 	}
 	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.MechForArch.name());
 		requestData.setRelCode(RelCodeEnum.Eq2Sh.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
-
+	
 	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		// 获取楼层信息

+ 5 - 2
src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchSy2BdRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -47,14 +48,16 @@ public class MechForArchSy2BdRelationObject extends AbstractReportRelationObject
 	}
 
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.MechForArch.name());
 		requestData.setRelCode(RelCodeEnum.Sy2Bd.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
 
 	@Override

+ 5 - 2
src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchSy2FlRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -47,14 +48,16 @@ public class MechForArchSy2FlRelationObject extends AbstractReportRelationObject
 	}
 	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.MechForArch.name());
 		requestData.setRelCode(RelCodeEnum.Sy2Fl.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
 
 	@Override

+ 5 - 2
src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchSy2ShRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -47,14 +48,16 @@ public class MechForArchSy2ShRelationObject extends AbstractReportRelationObject
 	}
 
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.MechForArch.name());
 		requestData.setRelCode(RelCodeEnum.Sy2Sh.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
 
 	@Override

+ 6 - 3
src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchSy2SpRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -49,16 +50,18 @@ public class MechForArchSy2SpRelationObject extends AbstractReportRelationObject
 	}
 	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.MechForArch.name());
 		requestData.setRelCode(RelCodeEnum.Sy2Sp.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
-
+	
 	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		// 获取楼层信息

+ 6 - 3
src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechInArchEq2BdRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -47,16 +48,18 @@ public class MechInArchEq2BdRelationObject extends AbstractReportRelationObject
 	}
 
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.MechInArch.name());
 		requestData.setRelCode(RelCodeEnum.Eq2Bd.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
-
+	
 	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		// 获取楼层信息

+ 6 - 3
src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechInArchEq2FlRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -47,19 +48,21 @@ public class MechInArchEq2FlRelationObject extends AbstractReportRelationObject
 	}
 	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.MechInArch.name());
 		requestData.setRelCode(RelCodeEnum.Eq2Fl.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
 
 	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
-		AdmRelationObject convertObject = this.convertObject(master, "楼层", slave, "设备");
+		AdmRelationObject convertObject = this.convertObject(master, "设备", slave, "楼层");
 		String floorName = master.getLocalName();
 		convertObject.setMasterFloorName(floorName);
 		convertObject.setSlaveFloorName(floorName);

+ 5 - 2
src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechInArchEq2SpRelationObject.java

@@ -1,5 +1,6 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
@@ -47,14 +48,16 @@ public class MechInArchEq2SpRelationObject extends AbstractReportRelationObject
 	}
 	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
 		RequestData requestData = new RequestData();
 		requestData.setGraphCode(GraphCodeEnum.MechInArch.name());
 		requestData.setRelCode(RelCodeEnum.Eq2Sp.name());
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		
-		return this.queryAllObjectInfo(requestData, groupCode, projectId);
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
 
 	@Override

+ 13 - 3
src/main/java/com/persagy/proxy/adm/strategy/relationdata/RadiationNetworkConnectRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -45,10 +47,18 @@ public class RadiationNetworkConnectRelationObject extends AbstractReportRelatio
 	}
 	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
-		throw new UnsupportedOperationException("未实现的策略类");
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.SP2SP_RADIATIONNETWORK_1.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.SP2SP_RADIATIONNETWORK_1.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
-
+	
 	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		throw new UnsupportedOperationException("未实现的策略类");

+ 15 - 0
src/main/java/com/persagy/proxy/adm/strategy/relationdata/RadiationNetworkTransparentRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -45,6 +47,19 @@ public class RadiationNetworkTransparentRelationObject extends AbstractReportRel
 	}
 	
 	@Override
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.SP2SP_RADIATIONNETWORK_2.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.SP2SP_RADIATIONNETWORK_2.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
+	}
+	
+	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		throw new UnsupportedOperationException("未实现的策略类");
 	}

+ 11 - 2
src/main/java/com/persagy/proxy/adm/strategy/relationdata/RelationObjectStrategy.java

@@ -53,7 +53,16 @@ public interface RelationObjectStrategy {
 	 * @param projectId 项目ID
 	 * @return 不会返回null
 	 */
-	List<AdmRelationObject> findRelationObject(String groupCode, String projectId);
+	List<AdmRelationObject> exportRelationObject(String groupCode, String projectId);
+	
+	/**
+	 * 查询出所有的关系对象数据
+	 * 
+	 * @param groupCode 集团编码
+	 * @param projectId 项目ID
+	 * @return 不会返回null
+	 */
+	List<ObjectDigital> queryAllRelations(String groupCode, String projectId);
 	
 	/**
 	 * 分页查询关系对象数据
@@ -64,7 +73,7 @@ public interface RelationObjectStrategy {
 	 * @param projectId 项目ID
 	 * @param page 分页起始位置
 	 */
-	void queryPageObjectInfo(List<ObjectDigital> masterObjs, RequestData requestData, String groupCode, String projectId, Long page);
+	void queryPageRelations(List<ObjectDigital> masterObjs, RequestData requestData, String groupCode, String projectId, Long page);
 	
 	/**
 	 * 保存之前校验数据的合法性

+ 12 - 2
src/main/java/com/persagy/proxy/adm/strategy/relationdata/SensorRelationshipSs2EqRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -45,8 +47,16 @@ public class SensorRelationshipSs2EqRelationObject extends AbstractReportRelatio
 	}
 	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
-		throw new UnsupportedOperationException("未实现的策略类");
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.EQ2EQ_SENSORRELATIONSHIP_SS2EQ.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.EQ2EQ_SENSORRELATIONSHIP_SS2EQ.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
 
 	@Override

+ 12 - 2
src/main/java/com/persagy/proxy/adm/strategy/relationdata/SensorRelationshipSs2SpRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -46,8 +48,16 @@ public class SensorRelationshipSs2SpRelationObject extends AbstractReportRelatio
 	}
 
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
-		throw new UnsupportedOperationException("未实现的策略类");
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.EQ2SP_SENSORRELATIONSHIP_SS2SP.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.EQ2SP_SENSORRELATIONSHIP_SS2SP.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
 
 	@Override

+ 12 - 2
src/main/java/com/persagy/proxy/adm/strategy/relationdata/SensorRelationshipSs2SyRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -45,8 +47,16 @@ public class SensorRelationshipSs2SyRelationObject extends AbstractReportRelatio
 	}
 	
 	@Override
-	public List<AdmRelationObject> findRelationObject(String groupCode, String projectId) {
-		throw new UnsupportedOperationException("未实现的策略类");
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.EQ2SY_SENSORRELATIONSHIP_SS2SY.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.EQ2SY_SENSORRELATIONSHIP_SS2SY.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
 	}
 
 	@Override

+ 15 - 0
src/main/java/com/persagy/proxy/adm/strategy/relationdata/TrafficNetworkFFCloseRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -45,6 +47,19 @@ public class TrafficNetworkFFCloseRelationObject extends AbstractReportRelationO
 	}
 	
 	@Override
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.SP2SP_TRAFFICNETWORK_3.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.SP2SP_TRAFFICNETWORK_3.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
+	}
+	
+	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		throw new UnsupportedOperationException("未实现的策略类");
 	}

+ 15 - 0
src/main/java/com/persagy/proxy/adm/strategy/relationdata/TrafficNetworkFFOpenRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -45,6 +47,19 @@ public class TrafficNetworkFFOpenRelationObject extends AbstractReportRelationOb
 	}
 	
 	@Override
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.SP2SP_TRAFFICNETWORK_2.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.SP2SP_TRAFFICNETWORK_2.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
+	}
+	
+	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		throw new UnsupportedOperationException("未实现的策略类");
 	}

+ 15 - 0
src/main/java/com/persagy/proxy/adm/strategy/relationdata/TrafficNetworkNormalRelationObject.java

@@ -1,10 +1,12 @@
 package com.persagy.proxy.adm.strategy.relationdata;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.client.DigitalRelationFacade;
@@ -45,6 +47,19 @@ public class TrafficNetworkNormalRelationObject extends AbstractReportRelationOb
 	}
 
 	@Override
+	public List<ObjectDigital> queryAllRelations(String groupCode, String projectId) {
+		RequestData requestData = new RequestData();
+		requestData.setGraphCode(AdmRelationTypeEnum.SP2SP_TRAFFICNETWORK_1.getGraphCode());
+		requestData.setRelCode(AdmRelationTypeEnum.SP2SP_TRAFFICNETWORK_1.getRelCode());
+		requestData.setPage(1L);
+		requestData.setSize(500L);
+		
+		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		return allDigitals;
+	}
+	
+	@Override
 	protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) {
 		throw new UnsupportedOperationException("未实现的策略类");
 	}