Browse Source

Merge remote-tracking branch 'origin/develop' into develop

lijie 3 years ago
parent
commit
be6007653f
46 changed files with 759 additions and 168 deletions
  1. 30 33
      src/main/java/com/persagy/proxy/adm/controller/AdmReportEquipController.java
  2. 45 0
      src/main/java/com/persagy/proxy/adm/controller/AdmSpaceInfoController.java
  3. 41 21
      src/main/java/com/persagy/proxy/adm/controller/ComponentStatisticsController.java
  4. 117 3
      src/main/java/com/persagy/proxy/adm/controller/RelationReportController.java
  5. 298 41
      src/main/java/com/persagy/proxy/adm/handler/RelationReportHandler.java
  6. 4 0
      src/main/java/com/persagy/proxy/adm/model/AdmDict.java
  7. 2 2
      src/main/java/com/persagy/proxy/adm/model/EquipmentBindPointExcel.java
  8. 84 0
      src/main/java/com/persagy/proxy/adm/model/EquipmentCountExcel.java
  9. 5 3
      src/main/java/com/persagy/proxy/adm/service/IRelationReportService.java
  10. 92 23
      src/main/java/com/persagy/proxy/adm/service/impl/RelationReportService.java
  11. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/RelationObjectContext.java
  12. 3 3
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/AbstractRelationObject.java
  13. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSh2BdRelationObject.java
  14. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSh2FlRelationObject.java
  15. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSh2ShRelationObject.java
  16. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSh2SpRelationObject.java
  17. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSp2BdRelationObject.java
  18. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchForArchSp2FlRelationObject.java
  19. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ArchSubsetBd2FlRelationObject.java
  20. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ConvectionNetworkMixMechRelationObject.java
  21. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ConvectionNetworkNaturalRelationObject.java
  22. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/ConvectionNetworkOnewayMechRelationObject.java
  23. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/EquipPowerEqBackupRelationObject.java
  24. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/EquipPowerEqNormalRelationObject.java
  25. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/EquipPowerSyBackupRelationObject.java
  26. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/EquipPowerSyNormalRelationObject.java
  27. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchEq2BdRelationObject.java
  28. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchEq2FlRelationObject.java
  29. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchEq2ShRelationObject.java
  30. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchSy2BdRelationObject.java
  31. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchSy2FlRelationObject.java
  32. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchSy2ShRelationObject.java
  33. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechForArchSy2SpRelationObject.java
  34. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechInArchEq2BdRelationObject.java
  35. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechInArchEq2FlRelationObject.java
  36. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/MechInArchEq2SpRelationObject.java
  37. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/RadiationNetworkConnectRelationObject.java
  38. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/RadiationNetworkTransparentRelationObject.java
  39. 1 2
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/RelationObjectStrategy.java
  40. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/SensorRelationshipSs2EqRelationObject.java
  41. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/SensorRelationshipSs2SpRelationObject.java
  42. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/SensorRelationshipSs2SyRelationObject.java
  43. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/TrafficNetworkFFCloseRelationObject.java
  44. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/TrafficNetworkFFOpenRelationObject.java
  45. 1 1
      src/main/java/com/persagy/proxy/adm/strategy/relationdata/TrafficNetworkNormalRelationObject.java
  46. 4 4
      src/main/java/com/persagy/proxy/adm/utils/AdmQueryCriteriaHelper.java

+ 30 - 33
src/main/java/com/persagy/proxy/adm/controller/AdmReportEquipController.java

@@ -34,7 +34,6 @@ import com.persagy.proxy.adm.utils.AdmContextUtil;
 import com.persagy.proxy.adm.utils.AdmQueryCriteriaHelper;
 import com.persagy.proxy.common.entity.DmpResult;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
 import javax.ws.rs.QueryParam;
@@ -51,8 +50,6 @@ import java.util.stream.Collectors;
 @RequestMapping("/equip-query")
 public class AdmReportEquipController {
 
-    @Value("${middleware.group.code}")
-    private String groupCode;
     @Autowired
     private IAdmDictService dictService;
     @Autowired
@@ -182,7 +179,7 @@ public class AdmReportEquipController {
      * 资产相关暂未支持
      */
     @PostMapping("/creat-propertys")
-    public AdmResponse batchCreation(@RequestBody AdmCreateRequest<AdmEquipment> createRequest, @QueryParam("projectId") String projectId) {
+    public AdmResponse batchCreation(@RequestBody AdmCreateRequest<AdmEquipment> createRequest ) {
         //return EquipmentService.batchCreationProperty(request)
         return null;
     }
@@ -203,7 +200,7 @@ public class AdmReportEquipController {
         }
         queryCriteria.setCriteria(criteria);
         queryCriteria.setOnlyCount(true);
-        List<ObjectNode> euipCom = DigitalObjectFacade.query(groupCode,AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null, queryCriteria);
+        List<ObjectNode> euipCom = DigitalObjectFacade.query(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null, queryCriteria);
         if(CollUtil.isNotEmpty(euipCom)){
             return AdmResponse.success(euipCom);
         }else{
@@ -227,7 +224,7 @@ public class AdmReportEquipController {
             criteria.put("classCode", criteria.get("category").textValue());
             criteria.remove("category");
         }
-        List<ObjectNode> euipCom = DigitalObjectFacade.query(groupCode,AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null, queryCriteria);
+        List<ObjectNode> euipCom = DigitalObjectFacade.query(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null, queryCriteria);
         if(CollUtil.isNotEmpty(euipCom)){
             return AdmResponse.success(euipCom);
         }else{
@@ -305,7 +302,7 @@ public class AdmReportEquipController {
         relationTo.put("objFrom", objFrom);
         criteriaEquip.putPOJO("relationTo",relationTo);
         queryCriteria.setCriteria(criteriaEquip);
-        List<ObjectNode> equips = DigitalObjectFacade.query(groupCode,AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null,queryCriteria);
+        List<ObjectNode> equips = DigitalObjectFacade.query(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null,queryCriteria);
         return AdmResponse.success(equips);
     }
 
@@ -320,7 +317,7 @@ public class AdmReportEquipController {
         request.setName(AdmSystem.OBJ_TYPE);
         QueryCriteria queryCriteria = AdmQueryCriteriaHelper.toDmpCriteria(request);
         queryCriteria.setSize(500L);
-        List<ObjectNode> objectNodeList = DigitalObjectFacade.query(groupCode,AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null,queryCriteria);
+        List<ObjectNode> objectNodeList = DigitalObjectFacade.query(AdmContextUtil.toDmpContext().getGroupCode(), AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null,queryCriteria);
         if(CollUtil.isEmpty(objectNodeList)){
             return AdmResponse.success();
         }
@@ -337,7 +334,7 @@ public class AdmReportEquipController {
         admSystemMap.keySet().stream().forEach(id -> arrayNode.add(id));
         queryCriteriaRelation.setCriteria(criteria);
 
-        List<ObjectRelation> relations = DigitalRelationFacade.query(groupCode,AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null,queryCriteriaRelation);
+        List<ObjectRelation> relations = DigitalRelationFacade.query(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null,queryCriteriaRelation);
         if(CollUtil.isEmpty(relations)){
             AdmResponse.success();
         }
@@ -350,7 +347,7 @@ public class AdmReportEquipController {
         ArrayNode array = criteriaEquip.putObject("id").putArray("$in");
         relationMap.keySet().stream().forEach(id -> array.add(id));
         queryCriteriaEqu.setCriteria(criteriaEquip);
-        List<ObjectNode> equips = DigitalObjectFacade.query(groupCode,AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null,queryCriteriaEqu);
+        List<ObjectNode> equips = DigitalObjectFacade.query(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null,queryCriteriaEqu);
         List<AdmEquipment> equipsList = JSONUtil.toList(equips.toString(), AdmEquipment.class);
         Map<String, AdmEquipment> admEquipmentMap = CollUtil.fieldValueMap(equipsList, BaseEntity.PROP_ID);
 
@@ -375,11 +372,11 @@ public class AdmReportEquipController {
      * 查询项目下的所有设备和部件的类型、以及类型名称
      */
     @GetMapping("/equip-compon-category")
-    public AdmResponse equipORComponCategory(@QueryParam("projectId") String projectId){
+    public AdmResponse equipORComponCategory(){
         //return EquipORComponCategoryService.getEquipORComponCategory()
         RequestData requestData = new RequestData();
-        if(StrUtil.isNotEmpty(projectId)){
-            requestData.setProjectId(projectId);
+        if(StrUtil.isNotEmpty(AdmContextUtil.toDmpContext().getProjectId())){
+            requestData.setProjectId(AdmContextUtil.toDmpContext().getProjectId());
         }
         requestData.setObjTypes(CollUtil.newHashSet(AdmEquipment.OBJ_TYPE, AdmComponent.OBJ_TYPE));
         List<Map<String, Object>> result = DigitalObjectSimpleFacade.queryDefineInfoByObjType(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getProjectId(),AdmContextUtil.toDmpContext().getAppId(),null,requestData);
@@ -407,7 +404,7 @@ public class AdmReportEquipController {
      * TODO 资产相关功能暂时不提供,之后根据业务进行需求处理
      */
     @PostMapping("/equip-r-property")
-    public AdmResponse equipRelationshipProperty(@RequestBody AdmCreateRequest<AdmProperty> createRequest, @QueryParam("projectId") String projectId) {
+    public AdmResponse equipRelationshipProperty(@RequestBody AdmCreateRequest<AdmProperty> createRequest ) {
         //return EquipmentComService.equipPro(request)
         return null;
     }
@@ -474,7 +471,7 @@ public class AdmReportEquipController {
     public AdmResponse equipComDel(@RequestBody List<ObjectNode> equipComDelList){
         //return EquipmentService.equipComDels(equipComDelList)
         if(CollUtil.isEmpty(equipComDelList)){
-            return AdmResponse.failure(ResponseCode.A0400.getCode());
+            return AdmResponse.success();
         }
         QueryCriteria queryCriteriaEuip = new QueryCriteria();
         ObjectNode criteriaEquip = JsonNodeFactory.instance.objectNode();
@@ -487,7 +484,7 @@ public class AdmReportEquipController {
             }
         });
         queryCriteriaEuip.setCriteria(criteriaEquip);
-        List<ObjectNode> equipList = DigitalObjectFacade.query(groupCode,AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null, queryCriteriaEuip);
+        List<ObjectNode> equipList = DigitalObjectFacade.query(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null, queryCriteriaEuip);
         if(CollUtil.isEmpty(equipList)){
             return AdmResponse.success(equipComDelList);
         }
@@ -519,7 +516,7 @@ public class AdmReportEquipController {
         //return EquipmentService.equipPropertySupplys(equipComDelList)
         //
         if(CollUtil.isEmpty(equipComDelList)){
-            return AdmResponse.failure(ResponseCode.A0400.getCode());
+            return AdmResponse.success();
         }
         //1. 根据modelId查询楼层信息
         QueryCriteria queryCriteria = new QueryCriteria();
@@ -530,7 +527,7 @@ public class AdmReportEquipController {
             arrayNode.add(node.get("modelId").textValue());
         });
         queryCriteria.setCriteria(criteria);
-        List<ObjectNode> floorList = DigitalObjectFacade.query(groupCode,AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null,queryCriteria);
+        List<ObjectNode> floorList = DigitalObjectFacade.query(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null,queryCriteria);
         if(CollUtil.isEmpty(floorList)){
             return AdmResponse.success();
         }
@@ -556,7 +553,7 @@ public class AdmReportEquipController {
         criteriaEquip.putPOJO("modelId", modelId);
 
         queryCriteriaEuip.setCriteria(criteriaEquip);
-        List<ObjectNode> equipList = DigitalObjectFacade.query(groupCode,AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null, queryCriteriaEuip);
+        List<ObjectNode> equipList = DigitalObjectFacade.query(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null, queryCriteriaEuip);
         if(CollUtil.isEmpty(equipList)){
             return AdmResponse.success(equipComDelList);
         }
@@ -733,7 +730,7 @@ public class AdmReportEquipController {
      * 统计设备信息点与总数据占比
      */
     @PostMapping("/info-point")
-    public AdmResponse infoPoint(@QueryParam("projectId") String projectId) {
+    public AdmResponse infoPoint() {
         //return customSqlService.infoPoints()
         
         JSONObject gatherInfoPoint = calInfoPointByObjType(AdmEquipment.OBJ_TYPE, false, false);
@@ -748,9 +745,9 @@ public class AdmReportEquipController {
      * 统计设备信息点与需采集数据占比
      */
     @PostMapping("/gather-info-point")
-    public AdmResponse gatherInfoPoint(@QueryParam("projectId") String projectId) {
+    public AdmResponse gatherInfoPoint() {
         //return customSqlService.gatherInfoPoints()
-        if(StrUtil.isEmpty(projectId)){
+        if(StrUtil.isEmpty(AdmContextUtil.toDmpContext().getProjectId())){
             return AdmResponse.failure(ResponseCode.A0400.getCode());
         }
         
@@ -763,8 +760,8 @@ public class AdmReportEquipController {
      * 统计系统信息点与需采集数据占比
      */
     @PostMapping("/system-info-point")
-    public AdmResponse systemInfoPoin(@QueryParam("projectId") String projectId) {
-        if(StrUtil.isEmpty(projectId)){
+    public AdmResponse systemInfoPoin() {
+        if(StrUtil.isEmpty(AdmContextUtil.toDmpContext().getProjectId())){
             return AdmResponse.failure(ResponseCode.A0400.getCode());
         }
         
@@ -777,14 +774,14 @@ public class AdmReportEquipController {
      * 台账中待删除的对象 数量统计
      */
     @PostMapping("/del-equip-comm-pro")
-    public AdmResponse deleteObj(@QueryParam("projectId") String projectId){
+    public AdmResponse deleteObj(){
         QueryCriteria queryCriteria = new QueryCriteria();
         ObjectNode criteria = JsonNodeFactory.instance.objectNode();
         criteria.put("taskState", -1);
         criteria.put("objType","['equipment','component']");
         queryCriteria.setCriteria(criteria);
         queryCriteria.setOnlyCount(true);
-        List<ObjectNode> euipCom = DigitalObjectFacade.query(groupCode,AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null, queryCriteria);
+        List<ObjectNode> euipCom = DigitalObjectFacade.query(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getProjectId(),AdmCommonConstant.APP_ID,null, queryCriteria);
         if(CollUtil.isNotEmpty(euipCom)){
            return AdmResponse.success(euipCom);
         }else{
@@ -798,10 +795,10 @@ public class AdmReportEquipController {
      * @return 返回对象列表
      */
     @PostMapping("/type")
-    public AdmResponse equipType(@QueryParam("projectId") String projectId){
+    public AdmResponse equipType(){
         RequestData requestData = new RequestData();
-        if(StrUtil.isNotEmpty(projectId)){
-            requestData.setProjectId(projectId);
+        if(StrUtil.isNotEmpty(AdmContextUtil.toDmpContext().getProjectId())){
+            requestData.setProjectId(AdmContextUtil.toDmpContext().getProjectId());
         }
         requestData.setObjType(AdmEquipment.OBJ_TYPE);
         List<Map<String, Object>> result = DigitalObjectSimpleFacade.queryDefineInfoByObjType(AdmContextUtil.toDmpContext().getGroupCode(),AdmContextUtil.toDmpContext().getProjectId(),AdmContextUtil.toDmpContext().getAppId(),null,requestData);
@@ -937,7 +934,7 @@ public class AdmReportEquipController {
         }
         admQueryCriteriaObj.setName(objType);
         QueryCriteria queryCriteriaSys = AdmQueryCriteriaHelper.toDmpCriteria(admQueryCriteriaObj);
-        List<ObjectNode> admObjList = DigitalObjectFacade.query(groupCode, AdmContextUtil.toDmpContext().getProjectId(), AdmCommonConstant.APP_ID,null,queryCriteriaSys);
+        List<ObjectNode> admObjList = DigitalObjectFacade.query(AdmContextUtil.toDmpContext().getGroupCode(), AdmContextUtil.toDmpContext().getProjectId(), AdmCommonConstant.APP_ID,null,queryCriteriaSys);
 
         //2 获取动态 静态 信息点
         // 2.1 根据objType获取定义
@@ -980,7 +977,7 @@ public class AdmReportEquipController {
                 criteria.put("valid","['0','1']");
                 queryCriteria.setCriteria(criteria);
                 queryCriteria.setOnlyCount(true);
-                List<ObjectInfoDefine> totalInfo = DigitalObjectInfoFacade.query(groupCode, AdmContextUtil.toDmpContext().getProjectId(), AdmCommonConstant.APP_ID,null,queryCriteria);
+                List<ObjectInfoDefine> totalInfo = DigitalObjectInfoFacade.query(AdmContextUtil.toDmpContext().getGroupCode(), AdmContextUtil.toDmpContext().getProjectId(), AdmCommonConstant.APP_ID,null,queryCriteria);
                 controlInfoCounts = totalInfo.size();
                 criteria.remove("valid");
             }
@@ -992,7 +989,7 @@ public class AdmReportEquipController {
                 criteria.put("valid","['0','1']");
             }
             queryCriteria.setCriteria(criteria);
-            List<ObjectInfoDefine> staticInfoCode = DigitalObjectInfoFacade.query(groupCode, AdmContextUtil.toDmpContext().getProjectId(), AdmCommonConstant.APP_ID,null,queryCriteria);
+            List<ObjectInfoDefine> staticInfoCode = DigitalObjectInfoFacade.query(AdmContextUtil.toDmpContext().getGroupCode(), AdmContextUtil.toDmpContext().getProjectId(), AdmCommonConstant.APP_ID,null,queryCriteria);
             criteria.remove("category");
 
             //动态信息点
@@ -1000,7 +997,7 @@ public class AdmReportEquipController {
             category.put("$ne","STATIC");
             criteria.putPOJO("category", category);
             queryCriteria.setCriteria(criteria);
-            List<ObjectInfoDefine> dynamicInfoCode = DigitalObjectInfoFacade.query(groupCode, AdmContextUtil.toDmpContext().getProjectId(), AdmCommonConstant.APP_ID,null,queryCriteria);
+            List<ObjectInfoDefine> dynamicInfoCode = DigitalObjectInfoFacade.query(AdmContextUtil.toDmpContext().getGroupCode(), AdmContextUtil.toDmpContext().getProjectId(), AdmCommonConstant.APP_ID,null,queryCriteria);
             //4 计算已采集的和需要采集的信息点占比
             //return customSqlService.systemInfoPoins()
             Map<String, Integer> hashMap = calculate(dynamicInfoCode, staticInfoCode, admObjList, 1);

+ 45 - 0
src/main/java/com/persagy/proxy/adm/controller/AdmSpaceInfoController.java

@@ -0,0 +1,45 @@
+package com.persagy.proxy.adm.controller;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.persagy.proxy.adm.constant.AdmCommonConstant;
+import com.persagy.proxy.adm.request.AdmResponse;
+
+import lombok.RequiredArgsConstructor;
+
+/**
+ * 
+ * @version 1.0.0
+ * @company persagy
+ * @author zhangqiankun
+ * @date 2021年10月18日 上午10:55:24
+ */
+@RestController
+@RequiredArgsConstructor
+public class AdmSpaceInfoController {
+
+	public static final String EXPORT_SHEET_NAME = "关系维护";
+
+	@Value("${middleware.group.code}")
+	private String defaultCode;
+
+	/**
+	 * 统计 属于多建筑楼层的空间
+	 * 
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping("/space/space-bd-fl")
+	public AdmResponse queryCount(HttpServletRequest request) {
+		String groupCode = request.getHeader(AdmCommonConstant.GROUP_CODE_HEADER);
+		String projectId = request.getHeader(AdmCommonConstant.PROJECT_ID_HEADER);
+		AdmResponse response = AdmResponse.success();
+		response.setCount(0L);
+		return response;
+	}
+
+}

+ 41 - 21
src/main/java/com/persagy/proxy/adm/controller/ComponentStatisticsController.java

@@ -1,15 +1,6 @@
 package com.persagy.proxy.adm.controller;
 
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
+import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
@@ -17,9 +8,23 @@ import com.persagy.proxy.adm.constant.AdmCommonConstant;
 import com.persagy.proxy.adm.constant.AdmObjectType;
 import com.persagy.proxy.adm.constant.AdmRelationTypeEnum;
 import com.persagy.proxy.adm.constant.SpaceTypeEnum;
+import com.persagy.proxy.adm.model.AdmEquipment;
 import com.persagy.proxy.adm.request.AdmCountResponse;
+import com.persagy.proxy.adm.request.AdmQueryCriteria;
 import com.persagy.proxy.adm.request.AdmResponse;
+import com.persagy.proxy.adm.service.IAdmEquipmentService;
 import com.persagy.proxy.adm.service.IRelationReportService;
+import com.persagy.proxy.adm.utils.AdmContextUtil;
+import com.persagy.proxy.common.entity.InstanceUrlParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 统计接口
@@ -39,7 +44,6 @@ public class ComponentStatisticsController {
 	/**
 	 * 台账中待删除的对象
 	 * <p>条件:"filters": "taskState = -1"</p>
-	 * @param queryCriteria
 	 * @param request
 	 * @return
 	 */
@@ -50,8 +54,6 @@ public class ComponentStatisticsController {
 	
 	/**
 	 * 不能同步到物理世界的关系数据
-	 * 
-	 * @param params
 	 * @param request
 	 * @return
 	 */
@@ -84,8 +86,6 @@ public class ComponentStatisticsController {
 	
 	/**
 	 * 设备-未关联资产的设备,这里返回所有的设备
-	 * 
-	 * @param params
 	 * @param request
 	 * @return
 	 */
@@ -100,7 +100,6 @@ public class ComponentStatisticsController {
 	
 	/**
 	 * 业务空间-各分区占比
-	 * 
 	 * @param request
 	 * @return
 	 */
@@ -118,7 +117,6 @@ public class ComponentStatisticsController {
 	
 	/**
 	 * 业务空间-默认分区功能类型占比
-	 * 
 	 * @param request
 	 * @return
 	 */
@@ -136,7 +134,6 @@ public class ComponentStatisticsController {
 	
 	/**
 	 * 租户-关联业务空间完成度
-	 * 
 	 * @param request
 	 * @return
 	 */
@@ -152,7 +149,6 @@ public class ComponentStatisticsController {
 	
 	/**
 	 * 竖井-关联业务空间完成度
-	 * 
 	 * @param request
 	 * @return
 	 */
@@ -168,7 +164,6 @@ public class ComponentStatisticsController {
 	
 	/**
 	 * 竖井-按功能类型占比
-	 * 
 	 * @param request
 	 * @return
 	 */
@@ -183,5 +178,30 @@ public class ComponentStatisticsController {
 		}
 		return AdmResponse.success(list);
 	}
-	
+
+	@Autowired
+	private IAdmEquipmentService equipmentService;
+
+	/**
+	 * 设备所在空间占比统计
+	 * @return
+	 */
+	@RequestMapping(value = "/eq2sp")
+	public AdmResponse queryEquip2Space() {
+		InstanceUrlParam context = AdmContextUtil.toDmpContext();
+		// 查询设备数量
+		AdmQueryCriteria criteria = new AdmQueryCriteria();
+		criteria.setName(AdmEquipment.OBJ_TYPE);
+		criteria.setOnlyCount(true);
+		AdmResponse rs = equipmentService.doQuery(context, criteria, AdmEquipment.class);
+		long equipCount = rs.getCount() == null ? 0L : rs.getCount().longValue();
+		// 查询关系数量
+		long relCount = relationReportService.countRelationObject(context.getGroupCode(), context.getProjectId(),
+				AdmRelationTypeEnum.EQ2SP_IN.getGraphCode(),AdmRelationTypeEnum.EQ2SP_IN.getRelCode(), "GeneralZone");
+		// 组装返回结果
+		Map<String, Long> countMap = new HashMap<>(2);
+		countMap.put("equipCount", equipCount);
+		countMap.put("relCount", relCount);
+		return AdmResponse.success(CollUtil.newArrayList(countMap));
+	}
 }

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

@@ -30,18 +30,23 @@ import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.google.common.collect.Lists;
+import com.persagy.dmp.basic.model.QueryCriteria;
+import com.persagy.dmp.common.helper.SpringHelper;
 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.EquipmentCountExcel;
 import com.persagy.proxy.adm.model.EquipmentExcel;
 import com.persagy.proxy.adm.request.AdmQueryCriteria;
 import com.persagy.proxy.adm.request.AdmResponse;
 import com.persagy.proxy.adm.service.IRelationReportService;
 import com.persagy.proxy.adm.strategy.RelationObjectContext;
+import com.persagy.proxy.adm.utils.AdmQueryCriteriaHelper;
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
@@ -72,7 +77,6 @@ public class RelationReportController {
 	
 	private final IRelationReportService relationReportService;
 	
-	
 	/**
 	 * 查询总数量
 	 * 
@@ -116,16 +120,77 @@ public class RelationReportController {
 	
 	/**
 	 * 项目关系类型查询
+	 * {"filters":"relationType in [\"bd2sp\",\"fl2sp\"];computationalState>1"}
 	 * 
 	 * @param queryCriteria
 	 * @param request
 	 * @return
 	 */
 	@RequestMapping("/graphic/relation_type_project")
-	public AdmResponse queryRelationObjects(@RequestBody AdmQueryCriteria queryCriteria, HttpServletRequest request) {
+	public AdmResponse queryRelationObjects(@RequestBody AdmQueryCriteria requestCriteria, HttpServletRequest request) {
 		String groupCode = request.getHeader(AdmCommonConstant.GROUP_CODE_HEADER);
 		String projectId = request.getHeader(AdmCommonConstant.PROJECT_ID_HEADER);
-		List<JSONObject> relationProjectCal = this.relationReportService.getAllRelationProjectCal(groupCode, projectId);
+		String filters = requestCriteria.getFilters();
+		
+		QueryCriteria queryCriteria = new QueryCriteria();
+		ObjectMapper objectMapper = SpringHelper.getBean(ObjectMapper.class);
+		ObjectNode criteria = objectMapper.createObjectNode();
+		criteria.put("projectId", projectId);
+		
+		Set<String> graphs = new HashSet<String>();
+		Set<String> relCodes = new HashSet<String>();
+		if (StrUtil.isNotBlank(filters)) {
+			if (filters.contains("relationType")) {
+				String condition = filters.substring(filters.indexOf("in [") + 4, filters.lastIndexOf("]"));
+				String[] split = condition.split(",");
+				for (String relType : split) {
+					relType = relType.replaceAll("\"", "");
+					AdmRelationTypeEnum typeEnum = AdmCommonConstant.RELATION_TYPE_MAP.get(relType);
+					if (typeEnum != null) {
+						graphs.add(typeEnum.getGraphCode());
+						relCodes.add(typeEnum.getRelCode());
+					}
+				}
+			}
+			
+			String[] split = filters.split(";");
+			for (int i = 0; i < split.length; i++) {
+				if (i == 0) {
+					continue;
+				}
+				String express = split[i];
+				String cond = StrUtil.getContainsStr(express, AdmQueryCriteriaHelper.COND_STR);
+				cond = StrUtil.isBlank(cond) ? StrUtil.getContainsStr(express, AdmQueryCriteriaHelper.COND_STR_TRIM) : cond;
+		        if(StrUtil.isBlank(cond)) {
+		        	continue;
+		        }
+		        int condIndex = StrUtil.indexOfIgnoreCase(express, cond, 0);
+		        String condLeft = StrUtil.subPre(express, condIndex).trim();
+		        String condRight = StrUtil.subSuf(express, condIndex+cond.length()).trim();
+		        // condLeft 替换为中台的字段名称
+		        condLeft = this.convert2BDTPField(condLeft);
+		        if ("=".equals(cond)) {
+		        	criteria.put(condLeft, condRight);
+				} else {
+					JSONObject condition = new JSONObject();
+					condition.put(AdmQueryCriteriaHelper.OPERATOR_MAP.get(cond), condRight);
+					criteria.putPOJO(condLeft, condition);
+				}
+			}
+		}
+		if (CollectionUtil.isNotEmpty(graphs)) {
+			JSONObject graphObject = new JSONObject();
+			graphObject.put("$in", graphs);
+			criteria.putPOJO("graphCode", graphObject);
+		}
+		if (CollectionUtil.isNotEmpty(relCodes)) {
+			JSONObject relObject = new JSONObject();
+			relObject.put("$in", relCodes);
+			criteria.putPOJO("relCode", relObject);
+		}
+		
+		queryCriteria.setCriteria(criteria);
+		List<JSONObject> relationProjectCal = this.relationReportService.getAllRelationProjectCal(queryCriteria, groupCode, projectId);
 		return AdmResponse.success(relationProjectCal);
 	}
 	
@@ -205,6 +270,36 @@ public class RelationReportController {
 	}
 	
 	/**
+	 * 下载报告-统计项目下已有的设备,以及静态和iot 信息点使用情况
+	 * 设备.xlsx 是个空模板,所以这里未使用 
+	 * 
+	 * @param projectId
+	 * @param request
+	 * @param response
+	 * @return
+	 */
+	@RequestMapping("/graphic/downloads/project/equip/count")
+	public void downloadsProjectEquipPoint(@RequestParam(required = false) String projectId, HttpServletRequest request, HttpServletResponse response) {
+		String groupCode = request.getHeader(AdmCommonConstant.GROUP_CODE_HEADER);
+		if (StrUtil.isBlank(projectId)) {
+			projectId = request.getHeader(AdmCommonConstant.PROJECT_ID_HEADER);
+		}
+		try {
+            response.setContentType("application/vnd.ms-excel");
+            String encode = StandardCharsets.UTF_8.name();
+            response.setCharacterEncoding(encode);
+            // 防止中文乱码
+            String fileName = URLEncoder.encode("equipment", encode);
+            response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+            
+            List<EquipmentCountExcel> equipmentCountExcel = this.relationReportHandler.countClassCodeEquip(groupCode, projectId);
+            EasyExcel.write(response.getOutputStream(), EquipmentCountExcel.class).sheet(0).doWrite(equipmentCountExcel);
+		} catch(Exception e) {
+			log.error("设备数据导出异常", e);
+		}
+	}
+	
+	/**
 	 * 下载报告-设备静态信息维护模板
 	 * 
 	 * @param request
@@ -606,5 +701,24 @@ public class RelationReportController {
         result.put("state", state);
 		return result;
 	}
+	
+	/**
+	 * 将前端所传的字段,转为BDTP中台所需要的字段
+	 * 
+	 * @param condLeft
+	 * @return 转换后的,或原字段
+	 */
+	private String convert2BDTPField(String condLeft) {
+		if ("automatic".equals(condLeft)) {
+			return "automaticFlag";
+		}
+		if ("source".equals(condLeft)) {
+			return "sourceFlag";
+		}
+		/*if ("graphicId".equals(condLeft)) {
+			return "graphCode";
+		}*/
+		return condLeft;
+	}
 
 }

+ 298 - 41
src/main/java/com/persagy/proxy/adm/handler/RelationReportHandler.java

@@ -23,6 +23,7 @@ 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.EquipmentCountExcel;
 import com.persagy.proxy.adm.model.EquipmentExcel;
 import com.persagy.proxy.adm.service.IRelationReportService;
 import com.persagy.proxy.adm.strategy.RelationObjectContext;
@@ -66,8 +67,8 @@ public class RelationReportHandler {
 		}
 				
 		// 2.获取所有的设备类定义的className
-		List<ObjectTypeDefine> classList = this.relationReportService.queryClassList(groupCode, projectId, null, equipment, null);
-		// key-classCode, value-className
+		List<ObjectTypeDefine> classList = this.relationReportService.queryClassList(groupCode, projectId, null, Sets.newHashSet(equipment), null);
+		/** key-classCode, value-className */
 		Map<String, String> classDefine = new HashMap<String, String>();
 		for (ObjectTypeDefine objectTypeDefine : classList) {
 			classDefine.put(objectTypeDefine.getCode(), objectTypeDefine.getName());
@@ -109,17 +110,17 @@ public class RelationReportHandler {
 		}
 		
 		// 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
+		List<ObjectTypeDefine> classInfo = this.relationReportService.queryClassList(groupCode, projectId, null, Sets.newHashSet(equipment, 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
+		/** key-systemCode, value-systemName */
 		Map<String, String> systemTemp = new HashMap<String, String>();
-		for (ObjectTypeDefine system : systemClass) {
-			systemTemp.put(system.getCode(), system.getName());
+		for (ObjectTypeDefine info : classInfo) {
+			if (info.getCode().length() > 5) {
+				equipTemp.put(info.getCode(), info.getName());
+			} else {
+				systemTemp.put(info.getCode(), info.getName());
+			}
 		}
 		
 		// 4.获取所有的信息点
@@ -129,6 +130,51 @@ public class RelationReportHandler {
 	}
 	
 	/**
+	 * 下载报告-统计项目下已有的设备,以及静态和iot 信息点使用情况,以classCode为维度
+	 * 
+	 * @param groupCode
+	 * @param projectId
+	 */
+	public List<EquipmentCountExcel> countClassCodeEquip(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.获取所有的设备对象数据
+		List<ObjectNode> equipList = this.relationReportService.queryObjects(groupCode, projectId, null, null, equipment, "classCode");
+		if (CollectionUtil.isEmpty(equipList)) {
+			return Lists.newArrayList();
+		}
+		
+		// 3.获取所有的设备、系统类定义信息
+		List<ObjectTypeDefine> classInfo = this.relationReportService.queryClassList(groupCode, projectId, null, Sets.newHashSet(equipment, AdmObjectType.SYSTEM.getIndex()), null);
+		/** key-equipCode, value-equipName */
+		Map<String, String> equipTemp = new HashMap<String, String>();
+		/** key-systemCode, value-systemName */
+		Map<String, String> systemTemp = new HashMap<String, String>();
+		for (ObjectTypeDefine info : classInfo) {
+			if (info.getCode().length() > 5) {
+				equipTemp.put(info.getCode(), info.getName());
+			} else {
+				systemTemp.put(info.getCode(), info.getName());
+			}
+		}
+		
+		// 4.获取所有的信息点
+		Set<String> equipCodes = equipTemp.keySet();
+		List<ObjectInfoDefine> funidList = this.relationReportService.queryFunidList(groupCode, projectId, equipCodes, null, null);
+		
+		// 5.导出结果汇总返回
+		return this.exportClassEquipExcel(equipList, equipTemp, systemTemp, funidList, groupCode, projectId, projectName);
+	}
+	
+	/**
 	 * 构造 excel 设备数据--不在空间内的设备数据
 	 * 
 	 * @param equipList 设备数据集合
@@ -139,12 +185,13 @@ public class RelationReportHandler {
 	 * @return
 	 */
 	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>();
+		/** key: 设备ID,value: 楼层名称 */
+		Map<String, String> floorNameTemp = new HashMap<String, String>();
+		this.findFloorName(floorNameTemp, groupCode, projectId);
 		
-		this.findBuildAndFloorName(buildTemp, floorTemp, groupCode, projectId);
+		/** key: 设备ID,value: 建筑名称 */
+		Map<String, String> buildNameTemp = new HashMap<String, String>();
+		this.findBuildingName(buildNameTemp, groupCode, projectId);
 		
 		// 结果封装
 		List<EquipmentExcel> excelList = new ArrayList<EquipmentExcel>();
@@ -166,8 +213,8 @@ public class RelationReportHandler {
 				String classCode = equip.get("classCode") == null ? null : equip.get("classCode").asText();
 				excel.setClassCodeName(classCode == null ? null : classDefine.get(classCode));
 				
-				excel.setBuildName(buildTemp.get(id));
-				excel.setFloorName(floorTemp.get(id));
+				excel.setBuildName(buildNameTemp.get(id));
+				excel.setFloorName(floorNameTemp.get(id));
 				excel.setModelFileName("T1F10模型文件v18.rvt");	// 这里写死是不对的,需要后续再补充改变
 				excelList.add(excel);
 			}
@@ -188,21 +235,22 @@ public class RelationReportHandler {
 	 */
 	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>();
+		/** key: 设备ID,value: 楼层名称 */
+		Map<String, String> floorNameTemp = new HashMap<String, String>();
+		this.findFloorName(floorNameTemp, groupCode, projectId);
 		
-		this.findBuildAndFloorName(buildTemp, floorTemp, groupCode, projectId);
+		/** key: 设备ID,value: 建筑名称 */
+		Map<String, String> buildNameTemp = new HashMap<String, String>();
+		this.findBuildingName(buildNameTemp, groupCode, projectId);
 		
 		// 信息点分类信息统计
-		// key: classCode, value: 信息点
+		/** key: classCode, value: 信息点 */
 		Map<String, Set<String>> infoCodes = new HashMap<String, Set<String>>();
-		// key: classCode, value: 静态信息点的数量 
+		/** key: classCode, value: 静态信息点的数量  */
 		Map<String, Integer> staticCount = new HashMap<String, Integer>();
-		// key: classCode, value: 动态信息点的数量 
+		/** key: classCode, value: 动态信息点的数量  */
 		Map<String, Integer> dynamicCount = new HashMap<String, Integer>();
-		// key: classCode_infoCode, value: 动静态
+		/** key: classCode_infoCode, value: 动静态 */
 		Map<String, String> codeAttrbut = new HashMap<String, String>();
 		for (ObjectInfoDefine infoDefine : funidList) {
 			String classCode = infoDefine.getClassCode();
@@ -234,8 +282,8 @@ public class RelationReportHandler {
 			EquipmentBindPointExcel excel = new EquipmentBindPointExcel();
 			excel.setIndex(i + 1);
 			excel.setProjectName(projectName);
-			excel.setBuildName(buildTemp.get(id));
-			excel.setFloorName(floorTemp.get(id));
+			excel.setBuildName(buildNameTemp.get(id));
+			excel.setFloorName(floorNameTemp.get(id));
 			excel.setSystemCode(systemCode);
 			excel.setSystemName(systemTemp.get(systemCode));
 			excel.setEquipCode(equipCode);
@@ -245,14 +293,16 @@ public class RelationReportHandler {
 			excel.setLocalName(equip.get("localName") == null ? null : equip.get("localName").asText());
 			
 			// 获取此classCode下有多少信息点、静态信息点、动态信息点
-			int staticNum = staticCount.get(equipCode) == null ? 0 : staticCount.get(equipCode);
+			
+			// 静态的默认存在4个已绑信息点,ID、name、localId、localName
+			int nowStatic = 4;
+			int nowDynamic = 0;
+			int staticNum = staticCount.get(equipCode) == null ? nowStatic : staticCount.get(equipCode);
 			int dynamicNum = dynamicCount.get(equipCode) == null ? 0 : dynamicCount.get(equipCode);
-			excel.setNeedPointCount(staticNum + dynamicNum);
+			excel.setNeedBindPointCount(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)) {
@@ -271,7 +321,7 @@ public class RelationReportHandler {
 					}
 				}
 			}
-			excel.setNowPointCount(nowStatic + nowDynamic);
+			excel.setNowBindPointCount(nowStatic + nowDynamic);
 			excel.setNowStaticPointCount(nowStatic);
 			excel.setNowDynamicPointCount(nowDynamic);
 			excelList.add(excel);
@@ -280,14 +330,211 @@ public class RelationReportHandler {
 	}
 	
 	/**
-	 * 获取建筑、楼层的名称
+	 * 大概率不对,后续观察
 	 * 
-	 * @param buildTemp key: 设备ID,value: 建筑名称
-	 * @param floorTemp key: 设备ID,value: 楼层名称
+	 * @param equipList
+	 * @param equipTemp
+	 * @param systemTemp
+	 * @param funidList
 	 * @param groupCode
 	 * @param projectId
+	 * @param projectName
+	 * @return
 	 */
-	private void findBuildAndFloorName(Map<String, String> buildTemp, Map<String, String> floorTemp, String groupCode, String projectId) {
+	private List<EquipmentCountExcel> exportClassEquipExcel(List<ObjectNode> equipList, Map<String, String> equipTemp,
+			Map<String, String> systemTemp, List<ObjectInfoDefine> funidList, String groupCode, String projectId, String projectName) {
+		
+		/** 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()));
+			}
+		}
+		funidList.clear(); 	//即时清空
+		
+		/** key: 设备ID,value: 建筑Id */
+		Map<String, String> equipId2BuildId = new HashMap<String, String>();
+		/** key: 建筑ID,value: 建筑名称 */
+		Map<String, String> buildNameTemp = new HashMap<String, String>();
+		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) {
+					equipId2BuildId.put(master.getId(), slave.getId());
+					buildNameTemp.put(slave.getId(), slave.getLocalName());
+				}
+			}
+		}
+		buildDigitals.clear();	// 即时清空
+		
+		/** key: classCode, value: 当BIMID不为空时,建筑ID不为空时,值+1 */
+		Map<String, Integer> equipBimIdByBuild = new HashMap<String, Integer>();
+		/** key: classCode, value: 当BIMID不为空时,建筑ID为空时,值+1 */
+		Map<String, Integer> equipBimIdByBuildNull = new HashMap<String, Integer>();
+		/** key: classCode, value: 当BIMID为空时,建筑ID不为空时,值+1 */
+		Map<String, Integer> equipBimIdNullByBuild = new HashMap<String, Integer>();
+		/** key: classCode, value: 当BIMID为空时,建筑ID为空时,值+1 */
+		Map<String, Integer> equipBimIdNullByBuildNull = new HashMap<String, Integer>();
+		
+		/** key: classCode, value: 已绑定的静态信息点数量 */
+		Map<String, Integer> equipStaticInfoTemp = new HashMap<String, Integer>();
+		/** key: classCode, value: 已绑定的动态信息点数量 */
+		Map<String, Integer> equipDynamicInfoTemp = new HashMap<String, Integer>();
+		
+		/** key: classCode, value: 建筑ID */
+		Map<String, String> classBuildId = new HashMap<String, String>();
+		/** key: classCode_建筑ID, value: infos字段包含信息点的设备数量 */
+		Map<String, Integer> classInfosByBuild = new HashMap<String, Integer>();
+		/** key: classCode, value: infos字段包含信息点且建筑ID为空的设备数量 */
+		Map<String, Integer> classInfosNotBuild = new HashMap<String, Integer>();
+		/** key: classCode, value: 存在建筑的设备数量 */
+		Map<String, Integer> classByBuild = new HashMap<String, Integer>();
+		/** key: classCode, value: 不存在建筑的设备数量 */
+		Map<String, Integer> classNotBuild = new HashMap<String, Integer>();
+		// 总结出如上map所需数据
+		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 classCode = equip.get("classCode") == null ? null : equip.get("classCode").asText();
+			String buildingId = equipId2BuildId.get(id); 	// 获取建筑ID
+			if (StrUtil.isBlank(buildingId)) {
+				classNotBuild.put(classCode, (classNotBuild.get(classCode) == null ? 0 : (classNotBuild.get(classCode) + 1)));
+			} else {
+				classByBuild.put(classCode, (classByBuild.get(classCode) == null ? 0 : (classByBuild.get(classCode) + 1)));
+				classBuildId.put(classCode, buildingId);
+			}
+			
+			int nowStatic = 0;
+			int nowDynamic = 0;
+			Set<String> needCodes = infoCodes.get(classCode);
+			String infos = equip.get("infos") == null ? null : equip.get("infos").asText();
+			if (StrUtil.isNotBlank(infos)) {
+				JSONObject parseObject = JSONObject.parseObject(infos);
+				String bimId = parseObject.getString("bimId");
+				if (StrUtil.isBlank(bimId)) {
+					if (StrUtil.isBlank(buildingId)) {
+						equipBimIdNullByBuildNull.put(id, (equipBimIdNullByBuildNull.get(id) == null ? 1 : (equipBimIdNullByBuildNull.get(id) + 1)));
+					} else {
+						equipBimIdNullByBuild.put(id, (equipBimIdNullByBuild.get(id) == null ? 1 : (equipBimIdNullByBuild.get(id) + 1)));
+					}
+				} else {
+					if (StrUtil.isBlank(buildingId)) {
+						equipBimIdByBuildNull.put(id, (equipBimIdByBuildNull.get(id) == null ? 1 : (equipBimIdByBuildNull.get(id) + 1)));
+					} else {
+						equipBimIdByBuild.put(id, (equipBimIdByBuild.get(id) == null ? 1 : (equipBimIdByBuild.get(id) + 1)));
+					}
+				}
+				
+				if (StrUtil.isBlank(buildingId)) {
+					classInfosNotBuild.put(classCode, (classInfosNotBuild.get(classCode) == null ? 1 : (classInfosNotBuild.get(classCode) + 1)));
+				} else {
+					String key = classCode + AdmCommonConstant.UNDERLINE + buildingId;
+					classInfosByBuild.put(key, (classInfosByBuild.get(key) == null ? 1 : (classInfosByBuild.get(key) + 1)));
+				}
+				// 判断已绑定多少信息点
+				Set<String> nowCodes = parseObject.keySet();
+				for (String key : nowCodes) {
+					if (needCodes.contains(key)) {
+						if ("STATIC".equals(codeAttrbut.get(classCode + AdmCommonConstant.UNDERLINE + key))) {
+							nowStatic++;
+						} else {
+							nowDynamic++;
+						}
+					}
+				}
+			}
+			
+			equipStaticInfoTemp.put(classCode, (equipStaticInfoTemp.get(classCode) == null ? nowStatic : (equipStaticInfoTemp.get(classCode) + nowStatic)));
+			equipDynamicInfoTemp.put(classCode, (equipDynamicInfoTemp.get(classCode) == null ? nowDynamic : (equipDynamicInfoTemp.get(classCode) + nowDynamic)));
+		}
+		equipList.clear();	//即时清空
+		
+		Set<String> classCodes = classByBuild.keySet();
+		Set<String> keySet = classNotBuild.keySet();
+		classCodes.addAll(keySet);
+		
+		// 结果封装
+		int count = 0;
+		List<EquipmentCountExcel> excelList = new ArrayList<EquipmentCountExcel>();
+		for (String classCode : classCodes) {
+			String systemCode = (classCode == null || classCode.length() < 5) ? null : classCode.substring(0, 4);
+			String buildingId = classBuildId.get(classCode);
+			EquipmentCountExcel excel = new EquipmentCountExcel();
+			excel.setIndex(++count);
+			excel.setProjectName(projectName);
+			excel.setBuildName(buildingId == null ? null : (buildNameTemp.get(buildingId) == null ? null : buildNameTemp.get(buildingId)));
+			excel.setSystemCode(systemCode);
+			excel.setSystemName(systemTemp.get(systemCode));
+			excel.setEquipCode(classCode);
+			excel.setEquipName(equipTemp.get(classCode));
+			
+			if (StrUtil.isBlank(buildingId)) {
+				// 第7列,bimId为空的设备数量
+				excel.setEquipBimIdNullCount(equipBimIdNullByBuildNull.get(classCode) == null ? 0 : equipBimIdNullByBuildNull.get(classCode));
+				// 第8列,bimId不为空的数量 
+				excel.setEquipBimIdCount(equipBimIdByBuildNull.get(classCode) == null ? 0 : equipBimIdByBuildNull.get(classCode));
+				// 第9列,当前classCode下,建筑为空的设备
+				excel.setEquipCountByBuild(classNotBuild.get(classCode) == null ? 0 : classNotBuild.get(classCode));
+				// 第10列,当前classCode下,建筑为空且信息点不为空的设备
+				excel.setEquipBindPointCount(classInfosNotBuild.get(classCode) == null ? 0 : classInfosNotBuild.get(classCode));
+			} else {
+				// 第7列,bimId为空的设备数量
+				excel.setEquipBimIdNullCount(equipBimIdNullByBuild.get(classCode) == null ? 0 : equipBimIdNullByBuild.get(classCode));
+				// 第8列,bimId不为空的数量 
+				excel.setEquipBimIdCount(equipBimIdByBuild.get(classCode) == null ? 0 : equipBimIdByBuild.get(classCode));
+				// 第9列,当前建筑下的设备数量
+				excel.setEquipCountByBuild(classByBuild.get(classCode) == null ? 0 : classByBuild.get(classCode));
+				// 第10列,当前建筑下的设备且信息点不为空的数量
+				String key = classCode + AdmCommonConstant.UNDERLINE + buildingId;
+				excel.setEquipBindPointCount(classInfosByBuild.get(key) == null ? 0 : classInfosByBuild.get(key));
+			}
+			
+			// 静态的默认存在4个已绑信息点,ID、name、localId、localName
+			int staticNum = (staticCount.get(classCode) == null ? 0 : staticCount.get(classCode)) + 4;
+			int dynamicNum = dynamicCount.get(classCode) == null ? 0 : dynamicCount.get(classCode);
+			excel.setNeedStaticPointCount(staticNum);
+			excel.setNeedDynamicPointCount(dynamicNum);
+			excel.setNowStaticPointCount(equipStaticInfoTemp.get(classCode));
+			excel.setNowDynamicPointCount(equipDynamicInfoTemp.get(classCode));
+			excelList.add(excel);
+		}
+		
+		return excelList;
+	}
+	
+	/**
+	 * 获取建筑的名称
+	 * 
+	 * @param buildNameTemp key: 设备ID,value: 建筑名称
+	 * @param buildIdTemp key: 设备ID,value: 建筑ID
+	 * @param groupCode
+	 * @param projectId
+	 */
+	private void findBuildingName(Map<String, String> buildNameTemp, String groupCode, String projectId) {
 		// 获取建筑名称
 		String graphAndRelKey = GraphCodeEnum.MechInArch.name() + AdmCommonConstant.UNDERLINE + RelCodeEnum.Eq2Bd.name();
 		List<ObjectDigital> buildDigitals = this.relationObjectContext.queryAllRelations(groupCode, projectId, graphAndRelKey);
@@ -296,19 +543,29 @@ public class RelationReportHandler {
 				List<ObjectDigital> slaveDigitals = master.getRelObjs();
 				ObjectDigital slave = CollectionUtil.isEmpty(slaveDigitals) ? null : slaveDigitals.get(0);
 				if (slave != null) {
-					buildTemp.put(master.getId(), slave.getLocalName());
+					buildNameTemp.put(master.getId(), slave.getLocalName());
 				}
 			}
 		}
+	}
+	
+	/**
+	 * 获取楼层的名称
+	 * 
+	 * @param floorNameTemp key: 设备ID,value: 楼层名称
+	 * @param groupCode
+	 * @param projectId
+	 */
+	private void findFloorName(Map<String, String> floorNameTemp, String groupCode, String projectId) {
 		// 获取楼层名称
-		graphAndRelKey = GraphCodeEnum.MechInArch.name() + AdmCommonConstant.UNDERLINE + RelCodeEnum.Eq2Fl.name();
+		String 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());
+					floorNameTemp.put(master.getId(), slave.getLocalName());
 				}
 			}
 		}

+ 4 - 0
src/main/java/com/persagy/proxy/adm/model/AdmDict.java

@@ -1,7 +1,9 @@
 package com.persagy.proxy.adm.model;
 
+import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 /**
  * @ClassName AdmLocationPoint
@@ -12,6 +14,8 @@ import lombok.Data;
  **/
 @Data
 @Builder
+@NoArgsConstructor
+@AllArgsConstructor
 public class AdmDict {
 
   private String type;

+ 2 - 2
src/main/java/com/persagy/proxy/adm/model/EquipmentBindPointExcel.java

@@ -71,11 +71,11 @@ public class EquipmentBindPointExcel {
 	
 	@ColumnWidth(10)
 	@ExcelProperty(value = "【信息点】应绑点位总数", index=12)
-	private int needPointCount;
+	private int needBindPointCount;
 	
 	@ColumnWidth(10)
 	@ExcelProperty(value = "【信息点】已绑点位总数", index=13)
-	private int nowPointCount;
+	private int nowBindPointCount;
 	
 	@ColumnWidth(10)
 	@ExcelProperty(value = "【信息点】静态应绑点", index=14)

+ 84 - 0
src/main/java/com/persagy/proxy/adm/model/EquipmentCountExcel.java

@@ -0,0 +1,84 @@
+package com.persagy.proxy.adm.model;
+
+import org.apache.poi.ss.usermodel.Font;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.HeadFontStyle;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @version 
+ * @description 下载报告-统计项目下已有的设备,以及静态和iot 信息点使用,
+ * @company persagy
+ * @author zhangqiankun
+ * @since 2020年11月26日:	下午12:30:39
+ */
+@Getter
+@Setter
+@HeadFontStyle(color = Font.COLOR_NORMAL)
+public class EquipmentCountExcel {
+	
+	@ColumnWidth(10)
+	@ExcelProperty(value = "序号", index=0)
+	private int index;
+	
+	@ColumnWidth(25)
+	@ExcelProperty(value = "项目名称", index=1)
+	private String projectName;
+
+	@ColumnWidth(20)
+	@ExcelProperty(value = "建筑", index=2)
+	private String buildName;
+
+	@ColumnWidth(10)
+	@ExcelProperty(value = "系统编码", index=3)
+	private String systemCode;
+
+	@ColumnWidth(20)
+	@ExcelProperty(value = "系统名称", index=4)
+	private String systemName;
+	
+	@ColumnWidth(10)
+	@ExcelProperty(value = "设备类型编码", index=5)
+	private String equipCode;
+	
+	@ColumnWidth(20)
+	@ExcelProperty(value = "设备类型名称", index=6)
+	private String equipName; 
+	
+	@ColumnWidth(10)
+	@ExcelProperty(value = "录入【设备】台账总数", index=7)
+	private int equipBimIdNullCount;		// 录入平台,非BIM解析的设备数量,BIMID为空的设备,有建筑就只统计对应建筑下的,反之亦然
+	
+	@ColumnWidth(10)
+	@ExcelProperty(value = "模型解析【设备】总数", index=8)
+	private int equipBimIdCount;			// 通过BIM解析的设备数量,有建筑就只统计对应建筑下的,反之亦然
+	
+	@ColumnWidth(10)
+	@ExcelProperty(value = "平台【设备】总数", index=9)
+	private int equipCountByBuild;			// 每个设备的class_code,在同一建筑下,按照classCode分组,统计出的数量
+	
+	@ColumnWidth(10)
+	@ExcelProperty(value = "已绑点【设备】", index=10)
+	private int equipBindPointCount;		// 项目和classCode为条件(有建筑就只统计对应建筑下的,反之亦然),此情况下的已绑定设备的数量
+	
+	@ColumnWidth(10)
+	@ExcelProperty(value = "【信息点】静态应绑点", index=11)
+	private int needStaticPointCount;	// 项目和classCode为条件(有建筑就只统计对应建筑下的,反之亦然)
+	
+	@ColumnWidth(10)
+	@ExcelProperty(value = "【信息点】静态已绑点", index=12)
+	private int nowStaticPointCount;	// 项目和classCode为条件(有建筑就只统计对应建筑下的,反之亦然),此情况下的已绑定信息点的数量
+	
+	@ColumnWidth(10)
+	@ExcelProperty(value = "【信息点】动态应绑点", index=13)
+	private int needDynamicPointCount;	// 项目和classCode为条件(有建筑就只统计对应建筑下的,反之亦然)
+	
+	@ColumnWidth(10)
+	@ExcelProperty(value = "【信息点】动态已绑点", index=14)
+	private int nowDynamicPointCount;	// 项目和classCode为条件(有建筑就只统计对应建筑下的,反之亦然),此情况下的已绑定信息点的数量
+	
+}

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

@@ -7,6 +7,7 @@ import java.util.Set;
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.define.entity.GraphDefine;
 import com.persagy.dmp.define.entity.ObjectInfoDefine;
 import com.persagy.dmp.define.entity.ObjectTypeDefine;
@@ -29,11 +30,11 @@ public interface IRelationReportService {
 	 * @param groupCode
 	 * @param projectId
 	 * @param classCode
-	 * @param objType
+	 * @param objTypes
 	 * @param ascOrder
 	 * @return
 	 */
-	List<ObjectTypeDefine> queryClassList(String groupCode, String projectId, String classCode, String objType, String ascOrder);
+	List<ObjectTypeDefine> queryClassList(String groupCode, String projectId, String classCode, Set<String> objTypes, String ascOrder);
 	
 	/**
 	 * 根据信息点统计对象个数
@@ -77,11 +78,12 @@ public interface IRelationReportService {
 	/**
 	 * 获取所有的项目计算数据
 	 * 
+	 * @param queryCriteria
 	 * @param groupCode
 	 * @param projectId
 	 * @return
 	 */
-	List<JSONObject> getAllRelationProjectCal(String groupCode, String projectId);
+	List<JSONObject> getAllRelationProjectCal(QueryCriteria queryCriteria, String groupCode, String projectId);
 	
 	/**
 	 * 获取项目计算关系

+ 92 - 23
src/main/java/com/persagy/proxy/adm/service/impl/RelationReportService.java

@@ -11,11 +11,10 @@ import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import cn.hutool.core.util.EnumUtil;
-import com.persagy.proxy.adm.constant.SpaceTypeEnum;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
@@ -45,6 +44,7 @@ import com.persagy.dmp.digital.entity.ObjectRelationProjectCal;
 import com.persagy.dmp.simple.client.DigitalObjectSimpleFacade;
 import com.persagy.proxy.adm.constant.AdmCommonConstant;
 import com.persagy.proxy.adm.constant.AdmRelationTypeEnum;
+import com.persagy.proxy.adm.constant.SpaceTypeEnum;
 import com.persagy.proxy.adm.service.IRelationReportService;
 import com.persagy.proxy.adm.strategy.relationdata.RelationObjectStrategy;
 
@@ -52,6 +52,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.EnumUtil;
 import cn.hutool.core.util.StrUtil;
 
 /**
@@ -69,7 +70,7 @@ public class RelationReportService implements IRelationReportService {
 	private String defaultCode;
 
 	@Override
-	public List<ObjectTypeDefine> queryClassList(String groupCode, String projectId, String classCode, String objType, String ascOrder) {
+	public List<ObjectTypeDefine> queryClassList(String groupCode, String projectId, String classCode, Set<String> objTypes, String ascOrder) {
 		groupCode = StrUtil.isBlank(groupCode) ? defaultCode : groupCode;
 		
 		ObjectMapper objectMapper = SpringHelper.getBean(ObjectMapper.class);
@@ -78,15 +79,20 @@ public class RelationReportService implements IRelationReportService {
 		if (StrUtil.isNotBlank(classCode)) {
 			condition.put("code", classCode);
 		}
-		if (StrUtil.isNotBlank(objType)) {
-			condition.put("objType", objType);
+		if (CollectionUtil.isNotEmpty(objTypes)) {
+			JSONObject arrays = new JSONObject();
+			arrays.put("$in", objTypes);
+			condition.putPOJO("objType", objTypes);
 		}
 		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;
+		classCriteria.setPage(1L);
+		classCriteria.setSize(500L);
+		List<ObjectTypeDefine> all = new ArrayList<ObjectTypeDefine>();
+		this.queryPageClass(all, classCriteria, groupCode, projectId);
+		return all;
 	}
 	
 	@Override
@@ -135,16 +141,11 @@ public class RelationReportService implements IRelationReportService {
 	}
 
 	@Override
-	public List<JSONObject> getAllRelationProjectCal(String groupCode, String projectId) {
+	public List<JSONObject> getAllRelationProjectCal(QueryCriteria queryCriteria, String groupCode, String projectId) {
 		groupCode = StrUtil.isBlank(groupCode) ? defaultCode : groupCode;
 
 		// 查询出对应项目关系计算数据
-		QueryCriteria projectCriteria = new QueryCriteria();
-		ObjectMapper objectMapper = SpringHelper.getBean(ObjectMapper.class);
-		ObjectNode criteria = objectMapper.createObjectNode();
-		criteria.put("projectId", projectId);
-		projectCriteria.setCriteria(criteria);
-		List<ObjectNode> projectList = DigitalRelationProjectCalFacade.query(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, projectCriteria);
+		List<ObjectNode> projectList = DigitalRelationProjectCalFacade.query(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, queryCriteria);
 		if (CollectionUtil.isEmpty(projectList)) {
 			return Lists.newArrayList();
 		}
@@ -309,8 +310,12 @@ public class RelationReportService implements IRelationReportService {
 		criteria.put(key, value);
 		criteria.put("objType", objType);
 		queryCriteria.setCriteria(criteria);
-		List<ObjectNode> objectNodes = DigitalObjectFacade.query(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, queryCriteria);
-		return objectNodes;
+		queryCriteria.setPage(1L);
+		queryCriteria.setSize(50000L);
+		
+		List<ObjectNode> all = new ArrayList<ObjectNode>();
+		this.queryPageObjects(all, queryCriteria, groupCode, projectId);
+		return all;
 	}
 	
 	@Override
@@ -354,12 +359,15 @@ public class RelationReportService implements IRelationReportService {
 		if (StrUtil.isNotBlank(objType)) {
 			object.put("objType", objType);
 		}
+		objectCriteria.setPage(1L);
+		objectCriteria.setSize(500L);
 		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;
+		List<ObjectNode> all = new ArrayList<ObjectNode>();
+		this.queryPageObjects(all, objectCriteria, groupCode, projectId);
+		return all;
 	}
 	
 	@Override
@@ -401,8 +409,11 @@ public class RelationReportService implements IRelationReportService {
 			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;
+		queryCriteria.setPage(1L);
+		queryCriteria.setSize(500L);
+		List<ObjectInfoDefine> all = new ArrayList<ObjectInfoDefine>();
+		this.queryPageFunids(all, queryCriteria, groupCode, projectId);
+		return all;
 	}
 	
 	@Override
@@ -695,6 +706,8 @@ public class RelationReportService implements IRelationReportService {
 		
 		result.put("count", count);
 		result.put("graphicId", graphicId);
+		result.put("statistics", new JSONObject());
+		result.put("conneObject", relationDefine.getTargetObjs());
 		result.put("computationalState",relationProject.has("computationalState")?relationProject.get("computationalState").asText():null);
 		result.put("id",relationProject.has("id")?relationProject.get("id").asText():null);
 		result.put("manual",relationProject.has("manual")?relationProject.get("manual").asText():null);
@@ -704,10 +717,9 @@ public class RelationReportService implements IRelationReportService {
 		result.put("relationTypeCode",relationProject.has("relCode")?relationProject.get("relCode").asText():null);
 		result.put("code", relationProject.has("relCode")?relationProject.get("relCode").asText():null);
 		result.put("relationTypeName",relationProject.has("relCodeName")?relationProject.get("relCodeName").asText():null);
-		result.put("statistics", new JSONObject());
-		result.put("automatic", relationProject.has("automaticFlag") && relationProject.get("automaticFlag").asBoolean());
 		result.put("source", relationProject.has("sourceFlag") && relationProject.get("sourceFlag").asBoolean());
-		result.put("conneObject", relationDefine.getTargetObjs());
+		result.put("automatic", relationProject.has("automaticFlag") && relationProject.get("automaticFlag").asBoolean());
+		result.put("mepSystemType", relationProject.has("mepSystemType") ? relationProject.get("mepSystemType").asText() : new JSONArray());
 		
 		Long modifiedTime = relationProject.get("modifiedTime") == null ? null : relationProject.get("modifiedTime").asLong();
 		Long creationTime = relationProject.get("creationTime") == null ? null : relationProject.get("creationTime").asLong();
@@ -728,4 +740,61 @@ public class RelationReportService implements IRelationReportService {
 		return result;
 	}
 
+	
+	/***************************************************** 所有接口的额外分页查询 **********************************************/
+	
+	/**
+	 * 分页查询类定义数据
+	 * 
+	 * @param all
+	 * @param classCriteria
+	 * @param groupCode
+	 * @param projectId
+	 */
+	private void queryPageClass(List<ObjectTypeDefine> all, QueryCriteria classCriteria, String groupCode, String projectId) {
+		List<ObjectTypeDefine> objectNodes = DigitalDefineFacade.queryObjectType(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, classCriteria);
+		if (CollectionUtil.isEmpty(objectNodes)) {
+			return;
+		}
+		all.addAll(objectNodes);
+		classCriteria.setPage((classCriteria.getPage() + 1));
+		this.queryPageClass(all, classCriteria, groupCode, projectId);
+	}
+	
+	/**
+	 * 分页查询对象数据
+	 * 
+	 * @param all
+	 * @param objectCriteria
+	 * @param groupCode
+	 * @param projectId
+	 */
+	private void queryPageObjects(List<ObjectNode> all, QueryCriteria objectCriteria, String groupCode, String projectId) {
+		List<ObjectNode> objectNodes = DigitalObjectFacade.query(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, objectCriteria);
+		if (CollectionUtil.isEmpty(objectNodes)) {
+			return;
+		}
+		all.addAll(objectNodes);
+		objectCriteria.setPage((objectCriteria.getPage() + 1));
+		this.queryPageObjects(all, objectCriteria, groupCode, projectId);
+	}
+	
+	/**
+	 * 分页查询信息点定义数据
+	 * 
+	 * @param all
+	 * @param classCriteria
+	 * @param groupCode
+	 * @param projectId
+	 */
+	private void queryPageFunids(List<ObjectInfoDefine> all, QueryCriteria queryCriteria, String groupCode, String projectId) {
+		List<ObjectInfoDefine> infos = DigitalObjectInfoFacade.query(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, queryCriteria);
+		if (CollectionUtil.isEmpty(infos)) {
+			return;
+		}
+		all.addAll(infos);
+		queryCriteria.setPage((queryCriteria.getPage() + 1));
+		this.queryPageFunids(all, queryCriteria, groupCode, projectId);
+	}
+	
 }

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

@@ -121,7 +121,7 @@ public class RelationObjectContext {
 		if (strategy == null) {
 			return masterObjs;
 		}
-		strategy.queryPageRelations(masterObjs, requestData, groupCode, projectId, requestData.getPage());
+		strategy.queryPageRelations(masterObjs, requestData, groupCode, projectId);
 		return masterObjs;
 	}
 	

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

@@ -31,14 +31,14 @@ public abstract class AbstractRelationObject implements RelationObjectStrategy {
 	}
 	
 	@Override
-	public void queryPageRelations(List<ObjectDigital> allDigitals, RequestData requestData, String groupCode, String projectId, Long page) {
-		requestData.setPage(page);
+	public void queryPageRelations(List<ObjectDigital> allDigitals, RequestData requestData, String groupCode, String projectId) {
 		List<ObjectDigital> objectDigitals = DigitalObjectFacade.queryObjectListByGraphCodeAndRelCode(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, requestData);
 		if (CollectionUtil.isEmpty(objectDigitals)) {
 			return;
 		}
 		allDigitals.addAll(objectDigitals);
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, ++page);
+		requestData.setPage((requestData.getPage() + 1));
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 	}
 	
 	@Override

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

@@ -55,7 +55,7 @@ public class ArchForArchSh2BdRelationObject extends AbstractReportRelationObject
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -55,7 +55,7 @@ public class ArchForArchSh2FlRelationObject extends AbstractReportRelationObject
 		requestData.setPage(1L);
 		requestData.setSize(500L);
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -56,7 +56,7 @@ public class ArchForArchSh2ShRelationObject extends AbstractReportRelationObject
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 

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

@@ -58,7 +58,7 @@ public class ArchForArchSh2SpRelationObject extends AbstractReportRelationObject
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -58,7 +58,7 @@ public class ArchForArchSp2BdRelationObject extends AbstractReportRelationObject
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 

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

@@ -58,7 +58,7 @@ public class ArchForArchSp2FlRelationObject extends AbstractReportRelationObject
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -54,7 +54,7 @@ public class ArchSubsetBd2FlRelationObject extends AbstractRelationObject {
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 

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

@@ -55,7 +55,7 @@ public class ConvectionNetworkMixMechRelationObject extends AbstractReportRelati
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -55,7 +55,7 @@ public class ConvectionNetworkNaturalRelationObject extends AbstractReportRelati
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -55,7 +55,7 @@ public class ConvectionNetworkOnewayMechRelationObject extends AbstractReportRel
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -55,7 +55,7 @@ public class EquipPowerEqBackupRelationObject extends AbstractReportRelationObje
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -55,7 +55,7 @@ public class EquipPowerEqNormalRelationObject extends AbstractReportRelationObje
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -55,7 +55,7 @@ public class EquipPowerSyBackupRelationObject extends AbstractReportRelationObje
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -55,7 +55,7 @@ public class EquipPowerSyNormalRelationObject extends AbstractReportRelationObje
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -58,7 +58,7 @@ public class MechForArchEq2BdRelationObject extends AbstractReportRelationObject
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 

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

@@ -58,7 +58,7 @@ public class MechForArchEq2FlRelationObject extends AbstractReportRelationObject
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 

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

@@ -58,7 +58,7 @@ public class MechForArchEq2ShRelationObject extends AbstractReportRelationObject
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -56,7 +56,7 @@ public class MechForArchSy2BdRelationObject extends AbstractReportRelationObject
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 

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

@@ -56,7 +56,7 @@ public class MechForArchSy2FlRelationObject extends AbstractReportRelationObject
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 

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

@@ -56,7 +56,7 @@ public class MechForArchSy2ShRelationObject extends AbstractReportRelationObject
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 

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

@@ -58,7 +58,7 @@ public class MechForArchSy2SpRelationObject extends AbstractReportRelationObject
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -56,7 +56,7 @@ public class MechInArchEq2BdRelationObject extends AbstractReportRelationObject
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -56,7 +56,7 @@ public class MechInArchEq2FlRelationObject extends AbstractReportRelationObject
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 

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

@@ -56,7 +56,7 @@ public class MechInArchEq2SpRelationObject extends AbstractReportRelationObject
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 

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

@@ -55,7 +55,7 @@ public class RadiationNetworkConnectRelationObject extends AbstractReportRelatio
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -55,7 +55,7 @@ public class RadiationNetworkTransparentRelationObject extends AbstractReportRel
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -71,9 +71,8 @@ public interface RelationObjectStrategy {
 	 * @param requestData 请求参数
 	 * @param groupCode 集团编码
 	 * @param projectId 项目ID
-	 * @param page 分页起始位置
 	 */
-	void queryPageRelations(List<ObjectDigital> masterObjs, RequestData requestData, String groupCode, String projectId, Long page);
+	void queryPageRelations(List<ObjectDigital> masterObjs, RequestData requestData, String groupCode, String projectId);
 	
 	/**
 	 * 保存之前校验数据的合法性

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

@@ -55,7 +55,7 @@ public class SensorRelationshipSs2EqRelationObject extends AbstractReportRelatio
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 

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

@@ -56,7 +56,7 @@ public class SensorRelationshipSs2SpRelationObject extends AbstractReportRelatio
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 

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

@@ -55,7 +55,7 @@ public class SensorRelationshipSs2SyRelationObject extends AbstractReportRelatio
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 

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

@@ -55,7 +55,7 @@ public class TrafficNetworkFFCloseRelationObject extends AbstractReportRelationO
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);	
 		return allDigitals;
 	}
 	

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

@@ -55,7 +55,7 @@ public class TrafficNetworkFFOpenRelationObject extends AbstractReportRelationOb
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

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

@@ -55,7 +55,7 @@ public class TrafficNetworkNormalRelationObject extends AbstractReportRelationOb
 		requestData.setSize(500L);
 		
 		List<ObjectDigital> allDigitals = new ArrayList<ObjectDigital>();
-		this.queryPageRelations(allDigitals, requestData, groupCode, projectId, requestData.getPage());
+		this.queryPageRelations(allDigitals, requestData, groupCode, projectId);
 		return allDigitals;
 	}
 	

+ 4 - 4
src/main/java/com/persagy/proxy/adm/utils/AdmQueryCriteriaHelper.java

@@ -28,13 +28,13 @@ import java.util.Map;
 public class AdmQueryCriteriaHelper {
 
     /** 条件匹配字符串 */
-    private static final String[] COND_STR = {" = "," != "," > "," >= "," < "," <= "," in "," isnull "," contain "," startwith "," endwith "};
+    public static final String[] COND_STR = {" = "," != "," > "," >= "," < "," <= "," in "," isnull "," contain "," startwith "," endwith "};
     /** 条件匹配字符串 根据ADM实际调用查看,去掉空格*/
-    private static final String[] COND_STR_TRIM = {"=","!=",">",">=","<","<=","in","isnull","contain","startwith","endwith"};
+    public static final String[] COND_STR_TRIM = {"=","!=",">",">=","<","<=","in","isnull","contain","startwith","endwith"};
     /** 需要替换的字段对照 Map<AdmQueryCriteria.name, Map<AdmFieldName, DmpFieldName> */
-    private static Map<String, Map<String, String>> RENAME_MAP = new HashMap<>(16);
+    public static Map<String, Map<String, String>> RENAME_MAP = new HashMap<>(16);
     /** 与数据中台的操作参数对照 */
-    private static Map<String, String> OPERATOR_MAP = new HashMap<>();
+    public static Map<String, String> OPERATOR_MAP = new HashMap<>();
 
     static {
         OPERATOR_MAP.put("!=", "$ne");