Преглед изворни кода

设备设施-暖通系统-分集水器查询

linhuili пре 3 година
родитељ
комит
7d01512259

+ 6 - 0
src/main/java/com/persagy/dmp/middleware/constant/CommonConsant.java

@@ -30,4 +30,10 @@ public class CommonConsant {
     /** 万达暖通系统编码 */
     public final static String WD_HAVC_SYSTEM_CODE= "ntxt";
 
+    /** 分水器bimTypeID */
+    public final static String DIVIDE_BREECH_BIMTYPEID= "20.30.20.40.10";
+
+    /** 集水器bimTypeID */
+    public final static String COLLECT_BREECH_BIMTYPEID= "20.30.20.40.20";
+
 }

+ 33 - 4
src/main/java/com/persagy/dmp/middleware/controller/EquipController.java

@@ -61,13 +61,42 @@ public class EquipController {
                               @RequestBody CommonRequestDTO request) throws Exception {
         // 组装上下文条件
         InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, null);
-        // 非空校验
-        if(StringUtils.isEmpty(request.getBuildId())){
-            throw new Exception("建筑ID不能为空");
-        }
         //查询冷却塔设备类下的设备,制冷机房空间下的设备/阀门信息
         CommonResult response = equipService.queryHavcSystem(context,request);
         return  response;
     }
 
+    /**
+     * 设备设施-暖通系统-分集水器原理图查询
+     * @param projectId
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @PostMapping("/subCatchment/query")
+    public CommonResult querysubCatchment(@QueryParam("groupCode") String groupCode, @QueryParam("projectId") String projectId,
+                                        @RequestBody CommonRequestDTO request) throws Exception {
+        // 组装上下文条件
+        InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, null);
+        //查询分水器、集水器类型下的对象信息
+        CommonResult response = equipService.querysubCatchment(context,request);
+        return  response;
+    }
+
+    /**
+     * 防火分区数量统计
+     * @param projectId
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @PostMapping("/fireZone/count")
+    public CommonResult countFireZone(@QueryParam("groupCode") String groupCode, @QueryParam("projectId") String projectId,
+                                          @RequestBody CommonRequestDTO request) throws Exception {
+        // 组装上下文条件
+        InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, null);
+        //防火分区数量统计
+        CommonResult response = equipService.countFireZone(context,request);
+        return  response;
+    }
 }

+ 5 - 0
src/main/java/com/persagy/dmp/middleware/entity/dto/CommonRequestDTO.java

@@ -2,6 +2,8 @@ package com.persagy.dmp.middleware.entity.dto;
 
 import lombok.Data;
 
+import java.util.Set;
+
 /**
  * 通用请求参数
  */
@@ -23,4 +25,7 @@ public class CommonRequestDTO {
     /** 通用对象id */
     private String id;
 
+    /** 空间ID,多个 */
+    private Set<String> spaceIds;
+
 }

+ 20 - 2
src/main/java/com/persagy/dmp/middleware/service/IEquipService.java

@@ -27,12 +27,30 @@ public interface IEquipService {
 
 
     /**
-     * 查询设备设施- 暖通系统-全局-3D原理图相关的设备/阀门
+     * 查询设备设施-暖通系统-全局-3D原理图相关的设备/阀门
      * @param context
      * @param request
      * @return
      */
-    CommonResult queryHavcSystem(InstanceUrlParam context, CommonRequestDTO request);
+    CommonResult queryHavcSystem(InstanceUrlParam context, CommonRequestDTO request) throws Exception;
+
+
+    /**
+     * 设备设施-暖通系统-分集水器原理图查询
+     * @param context
+     * @param request
+     * @return
+     */
+    CommonResult querysubCatchment(InstanceUrlParam context, CommonRequestDTO request) throws Exception;
+
+
+    /**
+     * 防火分区数量统计
+     * @param context
+     * @param request
+     * @return
+     */
+    CommonResult countFireZone(InstanceUrlParam context, CommonRequestDTO request) throws Exception;
 
 
     /**

+ 10 - 0
src/main/java/com/persagy/dmp/middleware/service/ISpaceService.java

@@ -48,4 +48,14 @@ public interface ISpaceService {
      * @return
      */
     CommonResult relQuery(InstanceUrlParam context, CommonRequestDTO request) throws Exception;
+
+
+    /**
+     * 查询空间下的设备
+     * @param context
+     * @param request
+     * @param bimTypeId
+     * @return
+     */
+    List<JSONObject> queryEquipInSpace(InstanceUrlParam context, CommonRequestDTO request,String bimTypeId) throws Exception;
 }

+ 79 - 42
src/main/java/com/persagy/dmp/middleware/service/impl/EquipServiceImpl.java

@@ -43,7 +43,7 @@ public class EquipServiceImpl implements IEquipService {
     private IBaseService baseService;
 
     @Autowired
-    private IEquipService equipService;
+    private ISpaceService spaceService;
 
     /**
      * 查询设备设施模块下的设备/阀门
@@ -79,17 +79,80 @@ public class EquipServiceImpl implements IEquipService {
      * @return
      */
     @Override
-    public CommonResult queryHavcSystem(InstanceUrlParam context, CommonRequestDTO request) {
+    public CommonResult queryHavcSystem(InstanceUrlParam context, CommonRequestDTO request) throws Exception {
         // 查询冷却塔设备类下的设备,制冷机房空间下的设备/阀门信息
+        List<JSONObject> result = new ArrayList<>();
 
         //1.查询冷却塔设备类下的设备/阀门
         List<DefineTypeRel> coolTowerDefineTypeRels = queryGldHavcTypeRel(CommonConsant.ACCCOT_BIMTYPEID,CommonConsant.WD_HAVC_SYSTEM_CODE);
         List<JSONObject> coolTowerObjects = queryEquipObjectByInfoCode(context, coolTowerDefineTypeRels, request, CommonConsant.BIM_TYPE_ID);
+        if(CollUtil.isNotEmpty(coolTowerObjects)){
+            result.addAll(coolTowerObjects);
+        }
+
+        //2. 查询制冷机房空间下的所有空间
+        QueryCriteria queryCriteria = new QueryCriteria();
+        ObjectNode objectNode = JsonNodeFactory.instance.objectNode();
+        objectNode.put(CommonConsant.BIM_TYPE_ID,CommonConsant.ACCCOT_SPACE_BIMTYPEID);
+        queryCriteria.setCriteria(objectNode);
+        CommonResult commonResult = baseService.doQuery(context, queryCriteria, JSONObject.class);
+        List<JSONObject> spaceList = (List<JSONObject>) commonResult.getContent();
+
+        if(CollUtil.isEmpty(spaceList)){
+            return CommonResult.success(result);
+        }
+
+        //3.查询空间下的设备/阀门
+        Set<String> spaceIds = spaceList.stream().map(k->k.getString("id")).collect(Collectors.toSet());
+        request.setSpaceIds(spaceIds);
+        List<JSONObject> content = spaceService.queryEquipInSpace(context, request, CommonConsant.ACCCOT_SPACE_BIMTYPEID);
+        if(CollUtil.isNotEmpty(content)){
+            result.addAll(content);
+        }
+
+        return CommonResult.success(result);
+    }
+
+    /**
+     * 设备设施-暖通系统-分集水器原理图查询
+     * @param context
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public CommonResult querysubCatchment(InstanceUrlParam context, CommonRequestDTO request) throws Exception {
+        // 查询分水器/集水器下的对象信息
+        List<JSONObject> result = new ArrayList<>();
+
+        //1.查询分水器
+        List<DefineTypeRel> divideDefineTypeRels = queryGldHavcTypeRel(CommonConsant.DIVIDE_BREECH_BIMTYPEID,CommonConsant.WD_HAVC_SYSTEM_CODE);
+        List<JSONObject> divideBreechObjects = queryEquipObjectByInfoCode(context, divideDefineTypeRels, request, CommonConsant.BIM_TYPE_ID);
+        if(CollUtil.isNotEmpty(divideBreechObjects)){
+            result.addAll(divideBreechObjects);
+        }
+        //2. 查询集水器
+        List<DefineTypeRel> collectDefineTypeRels = queryGldHavcTypeRel(CommonConsant.COLLECT_BREECH_BIMTYPEID,CommonConsant.WD_HAVC_SYSTEM_CODE);
+        List<JSONObject> collectBreechObjects = queryEquipObjectByInfoCode(context, collectDefineTypeRels, request, CommonConsant.BIM_TYPE_ID);
+        if(CollUtil.isNotEmpty(collectBreechObjects)){
+            result.addAll(collectBreechObjects);
+        }
+        return CommonResult.success(result);
+    }
 
-        //2.查询制冷机房空间下的设备/阀门
+    /**
+     * 统计防火分区数量
+     * @param context
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public CommonResult countFireZone(InstanceUrlParam context, CommonRequestDTO request) throws Exception {
         return null;
     }
 
+
     /**
      * 获取系统下的设备
      * @param context
@@ -97,17 +160,18 @@ public class EquipServiceImpl implements IEquipService {
      */
     private List<JSONObject>  querySystemEquipList(InstanceUrlParam context, CommonRequestDTO request){
         //查询广联达设备类型
-        List<DefineTypeRel> defineTypeRels = equipService.queryGldEquipTypeRel();
+        List<DefineTypeRel> defineTypeRels = queryGldEquipTypeRel();
         //根据系统过滤
         if(StringUtils.isNotEmpty(request.getSystemCode())){
             String systemCode = request.getSystemCode();
             defineTypeRels = defineTypeRels.stream().filter(k->!systemCode.equals(k.getWdSystemCode())).collect(Collectors.toList());
         }
         //根据广联达设备类型查询设备信息
-        List<JSONObject> equipList = equipService.queryEquipByGldTypeRel(context, defineTypeRels, request);
+        List<JSONObject> equipList = queryEquipByGldTypeRel(context, defineTypeRels, request);
         return equipList;
     }
 
+
     /**
      * 获取系统下的阀门
      * @param context
@@ -115,17 +179,18 @@ public class EquipServiceImpl implements IEquipService {
      */
     private List<JSONObject>  querySystemMateriaList(InstanceUrlParam context, CommonRequestDTO request){
         //查询广联达设备类型
-        List<DefineTypeRel> defineTypeRels = equipService.queryGldMateriaTypeRel();
+        List<DefineTypeRel> defineTypeRels = queryGldMateriaTypeRel();
         //根据系统过滤
         if(StringUtils.isNotEmpty(request.getSystemCode())){
             String systemCode = request.getSystemCode();
             defineTypeRels = defineTypeRels.stream().filter(k->!systemCode.equals(k.getWdSystemCode())).collect(Collectors.toList());
         }
         //根据广联达设备类型查询设备信息
-        List<JSONObject> equipList = equipService.queryMateriaByGldTypeRel(context, defineTypeRels, request);
+        List<JSONObject> equipList = queryMateriaByGldTypeRel(context, defineTypeRels, request);
         return equipList;
     }
 
+
     /**
      * 查询万达映射表中的设备类型
      */
@@ -153,6 +218,7 @@ public class EquipServiceImpl implements IEquipService {
         return result;
     }
 
+
     /**
      * 根据信息点查询楼层下的设备对象信息
      * @param context
@@ -182,6 +248,7 @@ public class EquipServiceImpl implements IEquipService {
         return (List<JSONObject>)commonResult.getContent();
     }
 
+
     /**
      * 查询万达映射表中的阀门类型
      */
@@ -193,6 +260,7 @@ public class EquipServiceImpl implements IEquipService {
         return defineTypeRels;
     }
 
+
     /**
      * 根据广联达阀门类型查询阀门信息
      * @param context
@@ -208,39 +276,6 @@ public class EquipServiceImpl implements IEquipService {
         return result;
     }
 
-    /**
-     * 根据信息点查询楼层下的阀门对象信息
-     * @param context
-     * @param defineTypeRels
-     * @param request
-     * @return
-     */
-    /*private List<JSONObject> queryMateriaObjectByInfoCode(InstanceUrlParam context,List<DefineTypeRel> defineTypeRels,CommonRequestDTO request,String infoCode){
-        //获取所有的bimTypeId
-        Set<String> bimTypeIdSets = defineTypeRels.stream().filter(k-> StringUtils.isNotEmpty(k.getBimTypeId())).map(k->k.getBimTypeId()).collect(Collectors.toSet());
-        ObjectNode criteria = JsonNodeFactory.instance.objectNode();
-        ArrayNode bimTypeIds = criteria.withArray(infoCode);
-        bimTypeIdSets.forEach(item->{bimTypeIds.add(item);});
-
-        //获取万达的类型编码
-        *//*Set<String> wdClassCode = defineTypeRels.stream().filter(k-> StringUtils.isNotEmpty(k.getWdClassCode())).map(k->k.getWdClassCode()).collect(Collectors.toSet());
-        ArrayNode wdClassCodes = criteria.withArray("wdCode");
-        wdClassCode.forEach(item->{wdClassCodes.add(item);});*//*
-
-        QueryCriteria queryCriteria = new QueryCriteria();
-        //获取对应的关系查询条件
-        if(StringUtils.isNotEmpty(request.getFloorId())){
-            queryCriteria = EntityTransferUtil.transDmpRelationCriteria(criteria, RelationTypeEnum.MECHINARCH_Eq2Fl.getGraphCode(),
-                    RelationTypeEnum.MECHINARCH_Eq2Fl.getRelCode(), request.getFloorId(), 1);
-        }else{
-            queryCriteria = EntityTransferUtil.transDmpRelationCriteria(criteria, RelationTypeEnum.MECHINARCH_Eq2Bd.getGraphCode(),
-                    RelationTypeEnum.MECHINARCH_Eq2Bd.getRelCode(), request.getBuildId(), 1);
-        }
-
-        //查询阀门对象信息
-        CommonResult commonResult = baseService.doQuery(context, queryCriteria, JsonNode.class);
-        return (List<JSONObject>)commonResult.getContent();
-    }*/
 
     /**
      * 组装查询设备结果
@@ -253,7 +288,6 @@ public class EquipServiceImpl implements IEquipService {
         if(CollUtil.isEmpty(defineTypeRels)){
             return new ArrayList<>();
         }
-
         Map<String, List<JSONObject>> spaceMap = spaceList.stream().collect(Collectors.groupingBy(k->k.getString(infoCode)));
 
         //数据组装
@@ -277,7 +311,10 @@ public class EquipServiceImpl implements IEquipService {
     }
 
     /**
-     * 查询暖通系统下制冷机房,冷却塔映射关系
+     * 条件查询广联达映射关系
+     * @param bimTypeId
+     * @param systemCode
+     * @return
      */
     public List<DefineTypeRel> queryGldHavcTypeRel(String bimTypeId,String systemCode){
         QueryWrapper<DefineTypeRel> wrapper = new QueryWrapper<>();

+ 25 - 8
src/main/java/com/persagy/dmp/middleware/service/impl/SpaceServiceImpl.java

@@ -141,7 +141,8 @@ public class SpaceServiceImpl implements ISpaceService {
      * @return
      * @throws Exception
      */
-    private List<JSONObject> queryEquipInSpace(InstanceUrlParam context, CommonRequestDTO request,String bimTypeId) throws Exception{
+    @Override
+    public List<JSONObject> queryEquipInSpace(InstanceUrlParam context, CommonRequestDTO request,String bimTypeId) throws Exception{
 
         //根据空间的BimTypeId构建编码获取所在系统
         List<DefineTypeRel> spaceTypeRelList = queryGldSpaceTypeRel();
@@ -164,10 +165,11 @@ public class SpaceServiceImpl implements ISpaceService {
 
         //结果集封装
         List<JSONObject> content = combineQuerySpaceResultData(equipByWdObjectType, objects, CommonConsant.BIM_TYPE_ID);
-        return objects;
+        return content;
     }
+
     /**
-     * 查询中台空间下的设备/阀门
+     * 批量查询中台空间下的设备/阀门
      * @param context
      * @param request
      * @param bimTypeIds
@@ -180,11 +182,26 @@ public class SpaceServiceImpl implements ISpaceService {
         ArrayNode arrayNode = criteria.withArray("bimTypeId");
         bimTypeIds.forEach(item->arrayNode.add(item));
 
-        QueryCriteria queryCriteria = EntityTransferUtil.transDmpRelationCriteria(criteria,RelationTypeEnum.MECHINARCH_EQ2SP.getGraphCode(),
-                RelationTypeEnum.MECHINARCH_EQ2SP.getRelCode(), request.getSpaceId(), 0);
-        // 查询空间下的设备
-        CommonResult response = baseService.doQuery(context,queryCriteria ,null);
-        return (List<JSONObject>) response.getContent();
+        //处理空间id
+        if(CollUtil.isEmpty(request.getSpaceIds())){
+            Set<String> spaceId = new HashSet<>();
+            spaceId.add(request.getSpaceId());
+            request.setSpaceIds(spaceId);
+        }
+        Set<String> spaceIds = request.getSpaceIds();
+
+        //查询空间下的设备
+        for (String spaceId : spaceIds) {
+            QueryCriteria queryCriteria = EntityTransferUtil.transDmpRelationCriteria(criteria,RelationTypeEnum.MECHINARCH_EQ2SP.getGraphCode(),
+                    RelationTypeEnum.MECHINARCH_EQ2SP.getRelCode(),spaceId, 1);
+            CommonResult response = baseService.doQuery(context,queryCriteria ,null);
+            List<JSONObject> content = (List<JSONObject>) response.getContent();
+            if(CollUtil.isNotEmpty(content)){
+                result.addAll(content);
+            }
+        }
+
+        return result;
     }
 
     /**

+ 61 - 19
src/main/resources/md/管理说明书接口缺失整理-后台.md

@@ -40,14 +40,14 @@
 
 ## 3. 查询楼层基本信息(楼层功能 - 单层)
 
-接口名称:http://<ip>:<port>/object/count?groupCode=集团编码&projectId=项目id
+接口名称:http://<ip>:<port>/floor/count?groupCode=集团编码&projectId=项目id
 
 请求参数:
 
 ```
 
 {
-    “buildId”:"****",   //建筑id(非必传,楼层ID为空时,必传)
+    “buildId”:"****",   //建筑id(必传)
     "floorId":"****",   //楼层id (非必传,不传查全楼)
 }
 ```
@@ -61,8 +61,8 @@
    "count":12,
    "content":[
     {
-        "buildArea":****,  //建筑面积㎡ 
-        "leaseArea":****,  //租赁面积㎡
+        "buildArea":****,  //建筑面积㎡ ,统计各楼层面积之和
+        "leaseArea":****,  //租赁面积㎡,统计各楼层租赁面积
         “storeNum”:****,     //商铺数量
         “motorVehicleNum”:****, //机动车车位 
      }  
@@ -72,19 +72,63 @@
 
 ​       注:排序规则:优先按数字是否为0排序,然后按类型名称首字母排序
 
-## 4. 查询/统计楼层下的设备空间(楼层功能 - 单层,设备设施(通用)-全局/单层 
+## 4. 查询/统计楼层下的设备空间(楼层功能 - 单层)
 
-接口名称:http://<ip>:<port>/object/query?groupCode=集团编码&projectId=项目id
+接口名称:http://<ip>:<port>/floor/query?groupCode=集团编码&projectId=项目id
 
 请求参数:
 
 ```
 {
-    “buildId”:"****",    //建筑id(非必传,楼层ID为空时,必传)
+    “buildId”:"****",    //建筑id(必传)
+    "floorId":"****",    //楼层id (非必传,不传查全楼)
+}
+```
+
+返回参数:
+
+```
+{
+   "result":"success"
+   "count":12,
+   "content":[
+     {
+       “bimTypeId”:"***",  //BIM构建编码,设备/阀门类型的唯一编码
+       “className”:"***",  //类型名称
+       “systemCode”:"***", //所属系统编码
+       "count":8,          //对象数量
+       “objects”:[         //设备
+          "id":“****”,         //id
+          "name":”****“,       //名称
+          “localId”:****,      //本地编码   
+          “localName”:****,    //本地名称(展示时使用此名称)
+          “bimId":"***",       //bimID
+          "bimLocation":"-178.1,126.3,225.9", //bim坐标
+          “bimTypeId”:"***",   //BIM构建编码
+          “systemCode”:"****",  //所属系统编码
+          “outLine”:[{"x":123.2,"y":210,"z":227.9}],  //轮廓坐标
+          “objType”:"***",     //对象类型:equipment-设备,space-空间,material-阀门
+          “classCode”:"***"    //类型编码
+       ]
+     }
+   ]
+}
+```
+
+注:具体信息点编码参考中台数据字典定义
+
+## 4. 查询/统计楼层下的设备空间(设备设施(通用)-全局/单层 )
+
+接口名称:http://<ip>:<port>/equip/query?groupCode=集团编码&projectId=项目id
+
+请求参数:
+
+```
+{
+    “buildId”:"****",    //建筑id(必传)
     "floorId":"****",    //楼层id (非必传,不传查全楼)
-    "queryType":0,       //必传,0-楼层功能模块 1-设备设施模块(只统计阀门,设备)
     “systemCode”:"****", //系统编码(非必传,可根据系统筛选,不传时查所有)
-    ”bimTypeId“:["****"] //BIM构建编码(非必传)
+    //”bimTypeId“:["****"] //BIM构建编码(非必传)
 }
 ```
 
@@ -124,15 +168,15 @@
 
 注:楼层简介中的建筑面积修改后,清理zkt-monitor 中 redis 14号索引库的缓存
 
-## 6. 通过空间id查询空间详情 (设备设施(通用)-单空间
+## 6. 通过id查询对象详情 (设备设施(通用)-单空间/单设备
 
-接口名称:http://<ip>:<port>/object/queryInfo?groupCode=集团编码&projectId=项目id
+接口名称:http://<ip>:<port>/space/queryInfo?groupCode=集团编码&projectId=项目id
 
 请求参数:
 
 ```
 {
-   “id”:"****",     //空间id
+   “id”:"****",     //空间id/设备id
 }
 ```
 
@@ -162,7 +206,7 @@
 
 ## 7. 统计空间内的设备和阀门个数(设备设施(通用)-单空间)
 
-接口名称:http://<ip>:<port>/object/rel/count?groupCode=集团编码&projectId=项目id
+接口名称:http://<ip>:<port>/space/rel/query?groupCode=集团编码&projectId=项目id
 
 请求参数:
 
@@ -171,7 +215,7 @@
     “buildId”:"****",    //建筑id(非必传,楼层ID为空时,必传)
     "floorId":"****",    //楼层id (非必传,不传查全楼)
     “systemCode”:"****", //系统编码(非必传,可根据系统筛选,不传时查所有)
-    ”bimTypeId“:"****"   //空间的BIM构建编码(必传)
+    “spaceId”:"*****"    //空间id(必传)
 }
 ```
 
@@ -212,7 +256,7 @@
 
 注:查询冷却塔设备类下的设备,制冷机房空间下的设备/阀门信息,所属系统编码
 
-接口名称:http://<ip>:<port>/object/havcSystem/query?groupCode=集团编码&projectId=项目id
+接口名称:http://<ip>:<port>/equip/havcSystem/query?groupCode=集团编码&projectId=项目id
 
 请求参数:
 
@@ -258,7 +302,7 @@
 
 注:查询分水器、集水器类型下的对象信息,对象信息需要增加所属系统编码
 
-接口名称:http://<ip>:<port>/object/subCatchment/query?groupCode=集团编码&projectId=项目id
+接口名称:http://<ip>:<port>/equip/subCatchment/query?groupCode=集团编码&projectId=项目id
 
 请求参数:
 
@@ -266,8 +310,6 @@
 {
     “buildId”:"****",    //建筑id(非必传,楼层ID为空时,必传)
     "floorId":"****",    //楼层id (非必传,不传查全楼)
-    //“systemCode”:"****", //系统编码(非必传,可根据系统筛选,不传时查所有)
-    //”bimTypeId“:"****"   //空间的BIM构建编码(必传)
 }
 ```
 
@@ -301,7 +343,7 @@
 
 ## 11. 防火分区数量统计
 
-接口名称:http://<ip>:<port>/object/fireZone/count?groupCode=集团编码&projectId=项目id
+接口名称:http://<ip>:<port>/equip/fireZone/count?groupCode=集团编码&projectId=项目id
 
 请求参数: