ソースを参照

查询楼层地板

linhuili 3 年 前
コミット
8924edc287

+ 2 - 1
src/main/java/com/persagy/dmp/middleware/constant/enums/ClassCodeEnum.java

@@ -8,7 +8,8 @@ package com.persagy.dmp.middleware.constant.enums;
  **/
 public enum ClassCodeEnum {
 
-    CFPKPS("CFPKPS", "停车位");
+    CFPKPS("CFPKPS", "停车位"),
+    FIREZONE("FireZone", "防火分区");
 
     private String value;
     private String desc;

+ 2 - 0
src/main/java/com/persagy/dmp/middleware/constant/enums/RelationTypeEnum.java

@@ -16,6 +16,8 @@ public enum RelationTypeEnum {
 
     ARCHSUBSET_FL2SP("ArchSubset","Fl2Sp","楼层下的业务空间"),
 
+    ARCHSUBSET_BD2SP("ArchSubset","Bd2Sp","建筑下的业务空间"),
+
     MECHINARCH_EQ2FL("MechInArch","Eq2Fl","设备设施所在楼层"),
 
     MECHINARCH_EQ2BD("MechInArch","Eq2Bd","设备设施所在楼层"),

+ 40 - 0
src/main/java/com/persagy/dmp/middleware/constant/enums/WdDefTypeEnum.java

@@ -0,0 +1,40 @@
+package com.persagy.dmp.middleware.constant.enums;
+/**
+ * @ClassName ClassCodeEnum
+ * @Description: 万达对象类型定义
+ * @Author linhuili
+ * @Date 2021/9/10 09:37
+ * @Version V1.0
+ **/
+public enum WdDefTypeEnum {
+
+    EQUIPMENT("equipment", "设备"),
+    SPACE("space", "空间"),
+    MATERIAL("material", "阀门"),
+    BOARD("board", "地板");
+
+
+    private String value;
+    private String desc;
+
+    WdDefTypeEnum(String value, String desc) {
+        this.value = value;
+        this.desc = desc;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+}

+ 28 - 0
src/main/java/com/persagy/dmp/middleware/controller/EquipController.java

@@ -200,6 +200,33 @@ public class EquipController {
         return  response;
     }
 
+
+    /**
+     * 查询楼层地板
+     * @param projectId
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @PostMapping("/floorBoard/query")
+    public CommonResult queryFloorBoard(@QueryParam("groupCode") String groupCode, @QueryParam("projectId") String projectId,
+                                              @RequestBody CommonRequestDTO request) throws Exception {
+        // 组装上下文条件
+        InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, null);
+        if(StringUtils.isEmpty(request.getFloorId())){
+            throw new Exception("楼层id不能为空");
+        }
+        //查询楼层地板
+        List<JSONObject> content = equipService.queryFloorBoard(context,request);
+        //按首字母,对象数量为0放后的规则进行排序
+        content = SortUtil.sortByCharacter(content,CommonConsant.OBJ_TYPE, CommonConsant.CLASS_NAME);
+        //设置返回值
+        CommonResult<List<JSONObject>> response = CommonResult.success(content);
+        response.setCount(content == null ? 0 : Long.valueOf(content.size()));
+        return  response;
+    }
+
+
     /**
      * 创建默认条件
      * @param voList
@@ -222,4 +249,5 @@ public class EquipController {
     }
 
 
+
 }

+ 16 - 1
src/main/java/com/persagy/dmp/middleware/controller/SpaceController.java

@@ -81,6 +81,22 @@ public class SpaceController {
     }
 
     /**
+     * 查询防火分区下的空间
+     * @param projectId
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @PostMapping("/fireZone/query")
+    public CommonResult queryFireZone(@QueryParam("groupCode") String groupCode, @QueryParam("projectId") String projectId,
+                                 @RequestBody CommonRequestDTO request) throws Exception {
+        // 组装上下文条件
+        InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, null);
+        //查询防火分区下的空间
+        return spaceService.queryFireZone(context,request);
+    }
+
+    /**
      * 封装中台查询条件
      * @param requestDTO
      * @return
@@ -93,6 +109,5 @@ public class SpaceController {
         return criteria;
     }
 
-
     
 }

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

@@ -58,10 +58,20 @@ public interface IEquipService {
 
 
     /**
+     * 查询楼层地板
+     * @param context
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    List<JSONObject> queryFloorBoard(InstanceUrlParam context,CommonRequestDTO request) throws Exception;
+
+
+    /**
      * 查询广联达设备类型
      * @return
      */
-    List<WdDefineTypeRel> queryGldEquipTypeRel();
+   // List<WdDefineTypeRel> queryGldEquipTypeRel();
 
 
     /**
@@ -78,7 +88,7 @@ public interface IEquipService {
      * 查询广联达阀门类型
      * @return
      */
-    List<WdDefineTypeRel> queryGldMateriaTypeRel();
+  //  List<WdDefineTypeRel> queryGldMateriaTypeRel();
 
 
     /**

+ 9 - 15
src/main/java/com/persagy/dmp/middleware/service/ISpaceService.java

@@ -20,21 +20,6 @@ import java.util.List;
 public interface ISpaceService {
 
     /**
-     * 查询空间基本信息
-     * @param context
-     * @param requestDTO
-     * @return
-     */
-    CommonResult query(InstanceUrlParam context, CommonRequestDTO requestDTO);
-
-    /**
-     * 查询广联达空间类型
-     * @return
-     */
-    List<WdDefineTypeRel> queryGldSpaceTypeRel();
-
-
-    /**
      * 根据广联达空间类型查询空间信息
      * @param context
      * @param defineTypeRels
@@ -61,4 +46,13 @@ public interface ISpaceService {
      */
     List<JSONObject> queryEquipInSpace(InstanceUrlParam context, CommonRequestDTO request,String bimTypeId) throws Exception;
 
+
+    /**
+     * 查询防火分区下点空间
+     * @param context
+     * @param request
+     * @return
+     */
+    CommonResult queryFireZone(InstanceUrlParam context,CommonRequestDTO request);
+
 }

+ 21 - 0
src/main/java/com/persagy/dmp/middleware/service/IWdDefineTypeRelService.java

@@ -0,0 +1,21 @@
+package com.persagy.dmp.middleware.service;
+
+import com.persagy.dmp.middleware.entity.dto.InstanceUrlParam;
+import com.persagy.dmp.middleware.entity.vo.WdDefineTypeRel;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @ClassName ObjectInstanceServiceImpl
+ * @Description: 广联达:关系映射表配置
+ * @Author linhuili
+ * @Date 2021/9/10 11:17
+ * @Version V1.0
+ **/
+public interface IWdDefineTypeRelService {
+
+    List<WdDefineTypeRel> query(InstanceUrlParam context, WdDefineTypeRel wdDefineTypeRel);
+
+    List<WdDefineTypeRel> batchQuery(Set<String> wdSystemCodes, Set<String> objTypes);
+}

+ 43 - 52
src/main/java/com/persagy/dmp/middleware/service/impl/EquipServiceImpl.java

@@ -2,7 +2,6 @@ package com.persagy.dmp.middleware.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.JsonNodeFactory;
@@ -10,8 +9,7 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.middleware.constant.CommonConsant;
 import com.persagy.dmp.middleware.constant.enums.RelationTypeEnum;
-import com.persagy.dmp.middleware.dao.WdConstructDescriptionMapper;
-import com.persagy.dmp.middleware.dao.WdDefineTypeRelMapper;
+import com.persagy.dmp.middleware.constant.enums.WdDefTypeEnum;
 import com.persagy.dmp.middleware.entity.dto.CommonRequestDTO;
 import com.persagy.dmp.middleware.entity.dto.InstanceUrlParam;
 import com.persagy.dmp.middleware.entity.response.CommonResult;
@@ -19,6 +17,7 @@ import com.persagy.dmp.middleware.entity.vo.WdDefineTypeRel;
 import com.persagy.dmp.middleware.service.IBaseService;
 import com.persagy.dmp.middleware.service.IEquipService;
 import com.persagy.dmp.middleware.service.ISpaceService;
+import com.persagy.dmp.middleware.service.IWdDefineTypeRelService;
 import com.persagy.dmp.middleware.utils.EntityTransferUtil;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -38,16 +37,13 @@ import java.util.stream.Collectors;
 public class EquipServiceImpl implements IEquipService {
 
     @Autowired
-    private WdDefineTypeRelMapper defineTypeRelMapper;
-
-    @Autowired
     private IBaseService baseService;
 
     @Autowired
     private ISpaceService spaceService;
 
     @Autowired
-    private WdConstructDescriptionMapper constructDescriptionMapper;
+    private IWdDefineTypeRelService iWdDefineTypeRelService;
 
     /**
      * 查询设备设施模块下的设备/阀门
@@ -85,7 +81,10 @@ public class EquipServiceImpl implements IEquipService {
         List<JSONObject> result = new ArrayList<>();
 
         //1.查询冷却塔设备类下的设备/阀门
-        List<WdDefineTypeRel> coolTowerDefineTypeRels = queryGldHavcTypeRel(CommonConsant.ACCCOT_BIMTYPEID,CommonConsant.WD_HAVC_SYSTEM_CODE);
+        WdDefineTypeRel defineTypeRel = new WdDefineTypeRel();
+        defineTypeRel.setBimTypeId(CommonConsant.ACCCOT_BIMTYPEID);
+        defineTypeRel.setWdSystemCode(CommonConsant.WD_HAVC_SYSTEM_CODE);
+        List<WdDefineTypeRel> coolTowerDefineTypeRels = iWdDefineTypeRelService.query(context,defineTypeRel);
         List<JSONObject> coolTowerObjects = queryEquipObjectByInfoCode(context, coolTowerDefineTypeRels, request, CommonConsant.BIM_TYPE_ID);
         List<JSONObject> coolTowerContent = combineQueryEquipResultData(coolTowerDefineTypeRels, coolTowerObjects, CommonConsant.BIM_TYPE_ID);
         if(CollUtil.isNotEmpty(coolTowerContent)){
@@ -128,15 +127,19 @@ public class EquipServiceImpl implements IEquipService {
         List<JSONObject> result = new ArrayList<>();
 
         //1.查询分水器
-        List<WdDefineTypeRel> divideDefineTypeRels = queryGldHavcTypeRel(CommonConsant.DIVIDE_BREECH_BIMTYPEID,CommonConsant.WD_HAVC_SYSTEM_CODE);
+        WdDefineTypeRel defineTypeRel = new WdDefineTypeRel();
+        defineTypeRel.setBimTypeId(CommonConsant.DIVIDE_BREECH_BIMTYPEID);
+        defineTypeRel.setWdSystemCode(CommonConsant.WD_HAVC_SYSTEM_CODE);
+
+        List<WdDefineTypeRel> divideDefineTypeRels = iWdDefineTypeRelService.query(context, defineTypeRel);
         List<JSONObject> divideBreechObjects = queryEquipObjectByInfoCode(context, divideDefineTypeRels, request, CommonConsant.BIM_TYPE_ID);
         List<JSONObject> divideContent = combineQueryEquipResultData(divideDefineTypeRels, divideBreechObjects, CommonConsant.BIM_TYPE_ID);
         if(CollUtil.isNotEmpty(divideContent)){
             result.addAll(divideContent);
         }
         //2. 查询集水器
-        List<WdDefineTypeRel> collectDefineTypeRels = queryGldHavcTypeRel(CommonConsant.COLLECT_BREECH_BIMTYPEID,CommonConsant.WD_HAVC_SYSTEM_CODE);
-        List<JSONObject> collectBreechObjects = queryEquipObjectByInfoCode(context, collectDefineTypeRels, request, CommonConsant.BIM_TYPE_ID);
+        defineTypeRel.setBimTypeId(CommonConsant.COLLECT_BREECH_BIMTYPEID);
+        List<WdDefineTypeRel> collectDefineTypeRels = iWdDefineTypeRelService.query(context, defineTypeRel);        List<JSONObject> collectBreechObjects = queryEquipObjectByInfoCode(context, collectDefineTypeRels, request, CommonConsant.BIM_TYPE_ID);
         List<JSONObject> collectContent = combineQueryEquipResultData(collectDefineTypeRels, collectBreechObjects, CommonConsant.BIM_TYPE_ID);
         if(CollUtil.isNotEmpty(collectContent)){
             result.addAll(collectContent);
@@ -156,6 +159,28 @@ public class EquipServiceImpl implements IEquipService {
         return null;
     }
 
+    /**
+     * 查询楼层地板
+     * @param context
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<JSONObject> queryFloorBoard(InstanceUrlParam context, CommonRequestDTO request) throws Exception {
+        //查询楼层地板对应的bimTypeId
+        WdDefineTypeRel defineTypeRel = new WdDefineTypeRel();
+        defineTypeRel.setObjType(WdDefTypeEnum.BOARD.getValue());
+        List<WdDefineTypeRel> defineTypeRels = iWdDefineTypeRelService.query(context, defineTypeRel);
+
+        //根据bimTypeId,以及楼层对应关系查询地板信息
+        List<JSONObject> equipList = queryEquipObjectByInfoCode(context, defineTypeRels, request, CommonConsant.BIM_TYPE_ID);
+
+        //结果组装
+        List<JSONObject> content = combineQueryEquipResultData(defineTypeRels, equipList, CommonConsant.BIM_TYPE_ID);
+        return content;
+    }
+
 
     /**
      * 获取系统下的设备
@@ -164,7 +189,10 @@ public class EquipServiceImpl implements IEquipService {
      */
     private List<JSONObject>  querySystemEquipList(InstanceUrlParam context, CommonRequestDTO request){
         //查询广联达设备类型
-        List<WdDefineTypeRel> defineTypeRels = queryGldEquipTypeRel();
+        WdDefineTypeRel defineTypeRel = new WdDefineTypeRel();
+        defineTypeRel.setObjType(WdDefTypeEnum.EQUIPMENT.getValue());
+        List<WdDefineTypeRel> defineTypeRels = iWdDefineTypeRelService.query(context,defineTypeRel);
+
         //根据系统过滤
         if(StringUtils.isNotEmpty(request.getSystemCode())){
             String systemCode = request.getSystemCode();
@@ -183,7 +211,9 @@ public class EquipServiceImpl implements IEquipService {
      */
     private List<JSONObject>  querySystemMateriaList(InstanceUrlParam context, CommonRequestDTO request){
         //查询广联达设备类型
-        List<WdDefineTypeRel> defineTypeRels = queryGldMateriaTypeRel();
+        WdDefineTypeRel defineTypeRel = new WdDefineTypeRel();
+        defineTypeRel.setObjType("material");
+        List<WdDefineTypeRel> defineTypeRels = iWdDefineTypeRelService.query(context,defineTypeRel);
         //根据系统过滤
         if(StringUtils.isNotEmpty(request.getSystemCode())){
             String systemCode = request.getSystemCode();
@@ -196,18 +226,6 @@ public class EquipServiceImpl implements IEquipService {
 
 
     /**
-     * 查询万达映射表中的设备类型
-     */
-    @Override
-    public List<WdDefineTypeRel> queryGldEquipTypeRel(){
-        QueryWrapper<WdDefineTypeRel> wrapper = new QueryWrapper<>();
-        wrapper.eq("obj_type","equipment");
-        List<WdDefineTypeRel> defineTypeRels = defineTypeRelMapper.selectList(wrapper);
-        return defineTypeRels;
-    }
-
-
-    /**
      * 根据广联达设备类型查询设备信息
      * @param context
      * @param defineTypeRels
@@ -257,18 +275,6 @@ public class EquipServiceImpl implements IEquipService {
 
 
     /**
-     * 查询万达映射表中的阀门类型
-     */
-    @Override
-    public List<WdDefineTypeRel> queryGldMateriaTypeRel(){
-        QueryWrapper<WdDefineTypeRel> wrapper = new QueryWrapper<>();
-        wrapper.eq("obj_type","material");
-        List<WdDefineTypeRel> defineTypeRels = defineTypeRelMapper.selectList(wrapper);
-        return defineTypeRels;
-    }
-
-
-    /**
      * 根据广联达阀门类型查询阀门信息
      * @param context
      * @param defineTypeRels
@@ -318,19 +324,4 @@ public class EquipServiceImpl implements IEquipService {
 
     }
 
-    /**
-     * 条件查询广联达映射关系
-     * @param bimTypeId
-     * @param systemCode
-     * @return
-     */
-    public List<WdDefineTypeRel> queryGldHavcTypeRel(String bimTypeId, String systemCode){
-        QueryWrapper<WdDefineTypeRel> wrapper = new QueryWrapper<>();
-
-        wrapper.eq("bim_type_id",bimTypeId);
-        wrapper.eq("wd_system_code",systemCode);
-        List<WdDefineTypeRel> defineTypeRels = defineTypeRelMapper.selectList(wrapper);
-        return defineTypeRels;
-    }
-
 }

+ 19 - 13
src/main/java/com/persagy/dmp/middleware/service/impl/FloorServiceImpl.java

@@ -9,15 +9,12 @@ import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.middleware.constant.CommonConsant;
 import com.persagy.dmp.middleware.constant.enums.ClassCodeEnum;
 import com.persagy.dmp.middleware.constant.enums.RelationTypeEnum;
-import com.persagy.dmp.middleware.dao.WdDefineTypeRelMapper;
+import com.persagy.dmp.middleware.constant.enums.WdDefTypeEnum;
 import com.persagy.dmp.middleware.entity.dto.CommonRequestDTO;
 import com.persagy.dmp.middleware.entity.dto.InstanceUrlParam;
 import com.persagy.dmp.middleware.entity.response.CommonResult;
 import com.persagy.dmp.middleware.entity.vo.WdDefineTypeRel;
-import com.persagy.dmp.middleware.service.IBaseService;
-import com.persagy.dmp.middleware.service.IEquipService;
-import com.persagy.dmp.middleware.service.IFloorService;
-import com.persagy.dmp.middleware.service.ISpaceService;
+import com.persagy.dmp.middleware.service.*;
 import com.persagy.dmp.middleware.utils.EntityTransferUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -37,9 +34,6 @@ public class FloorServiceImpl implements IFloorService {
 
     @Autowired
     private IBaseService baseService;
-
-    @Autowired
-    private WdDefineTypeRelMapper defineTypeRelMapper;
     
     @Autowired
     private ISpaceService spaceService;
@@ -47,6 +41,9 @@ public class FloorServiceImpl implements IFloorService {
     @Autowired
     private IEquipService equipService;
 
+    @Autowired
+    private IWdDefineTypeRelService iWdDefineTypeRelService;
+
     /**
      * 统计楼层下各信息
      * @param context
@@ -70,11 +67,11 @@ public class FloorServiceImpl implements IFloorService {
         content.put("leaseArea",floor.getDouble(CommonConsant.FLOOR_LEASE_AREA));
         //统计该楼层各商铺数量
         Long storeNum = countStoreNum(context, request);
-        content.put("storeNum",storeNum);
+        content.put("storeNum",storeNum == null ? 0 : storeNum);
 
         //统计该楼层机动车位数量
         Long parkingCarNum = countParkingCar(context, request);
-        content.put("countParkingCar",parkingCarNum);
+        content.put("countParkingCar",parkingCarNum == null ? 0 : parkingCarNum);
 
         result.add(content);
         return CommonResult.success(content);
@@ -115,7 +112,10 @@ public class FloorServiceImpl implements IFloorService {
      */
     private List<JSONObject>  queryFloorSpaceList(InstanceUrlParam context, CommonRequestDTO request){
         //查询广联达空间类型
-        List<WdDefineTypeRel> defineTypeRels = spaceService.queryGldSpaceTypeRel();
+        WdDefineTypeRel defineTypeRel = new WdDefineTypeRel();
+        defineTypeRel.setObjType(WdDefTypeEnum.SPACE.getValue());
+        List<WdDefineTypeRel> defineTypeRels = iWdDefineTypeRelService.query(context,defineTypeRel);
+
         //过滤不需要的类型,只需要楼层功能相关的空间
         List<WdDefineTypeRel> floorDefineTypeRels = defineTypeRels.stream().filter(k->"LC".equals(k.getWdModelCode())).collect(Collectors.toList());
 
@@ -132,7 +132,10 @@ public class FloorServiceImpl implements IFloorService {
      */
     private List<JSONObject>  queryFloorEquipList(InstanceUrlParam context, CommonRequestDTO request){
         //查询广联达设备类型
-        List<WdDefineTypeRel> defineTypeRels = equipService.queryGldEquipTypeRel();
+        WdDefineTypeRel defineTypeRel = new WdDefineTypeRel();
+        defineTypeRel.setObjType(WdDefTypeEnum.EQUIPMENT.getValue());
+        List<WdDefineTypeRel> defineTypeRels = iWdDefineTypeRelService.query(context,defineTypeRel);
+
         //根据广联达设备类型查询设备信息
         List<JSONObject> equipList = equipService.queryEquipByGldTypeRel(context, defineTypeRels, request);
         return equipList;
@@ -145,7 +148,10 @@ public class FloorServiceImpl implements IFloorService {
      */
     public List<JSONObject>  queryFloorMateriaList(InstanceUrlParam context, CommonRequestDTO request){
         //查询广联达设备类型
-        List<WdDefineTypeRel> defineTypeRels = equipService.queryGldMateriaTypeRel();
+        WdDefineTypeRel defineTypeRel = new WdDefineTypeRel();
+        defineTypeRel.setObjType(WdDefTypeEnum.EQUIPMENT.getValue());
+        List<WdDefineTypeRel> defineTypeRels = iWdDefineTypeRelService.query(context,defineTypeRel);
+
         //根据广联达设备类型查询阀门信息
         List<JSONObject> materiaList = equipService.queryMateriaByGldTypeRel(context, defineTypeRels, request);
         return materiaList;

+ 39 - 47
src/main/java/com/persagy/dmp/middleware/service/impl/SpaceServiceImpl.java

@@ -1,10 +1,8 @@
 package com.persagy.dmp.middleware.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.JsonNodeFactory;
@@ -13,8 +11,9 @@ import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.utils.JsonHelper;
 import com.persagy.dmp.middleware.client.DmpRwdClient;
 import com.persagy.dmp.middleware.constant.CommonConsant;
+import com.persagy.dmp.middleware.constant.enums.ClassCodeEnum;
 import com.persagy.dmp.middleware.constant.enums.RelationTypeEnum;
-import com.persagy.dmp.middleware.dao.WdDefineTypeRelMapper;
+import com.persagy.dmp.middleware.constant.enums.WdDefTypeEnum;
 import com.persagy.dmp.middleware.entity.dto.CommonRequestDTO;
 import com.persagy.dmp.middleware.entity.dto.InstanceUrlParam;
 import com.persagy.dmp.middleware.entity.response.CommonResult;
@@ -22,6 +21,7 @@ import com.persagy.dmp.middleware.entity.response.DmpResult;
 import com.persagy.dmp.middleware.entity.vo.WdDefineTypeRel;
 import com.persagy.dmp.middleware.service.IBaseService;
 import com.persagy.dmp.middleware.service.ISpaceService;
+import com.persagy.dmp.middleware.service.IWdDefineTypeRelService;
 import com.persagy.dmp.middleware.utils.EntityTransferUtil;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -42,36 +42,13 @@ import java.util.stream.Collectors;
 public class SpaceServiceImpl implements ISpaceService {
 
     @Autowired
-    private WdDefineTypeRelMapper defineTypeRelMapper;
-
-    @Autowired
     private DmpRwdClient dmpRwdClient;
 
     @Autowired
     private IBaseService baseService;
 
-    /**
-     * 查询设备设施模块下的设备/阀门
-     * @param context
-     * @param requestDTO
-     * @return
-     */
-    @Override
-    public CommonResult query(InstanceUrlParam context, CommonRequestDTO requestDTO) {
-        return null;
-    }
-
-
-    /**
-     * 查询万达映射表中的空间类型
-     */
-    @Override
-    public List<WdDefineTypeRel> queryGldSpaceTypeRel(){
-        QueryWrapper<WdDefineTypeRel> wrapper = new QueryWrapper<>();
-        wrapper.eq("obj_type","space");
-        List<WdDefineTypeRel> defineTypeRels = defineTypeRelMapper.selectList(wrapper);
-        return defineTypeRels;
-    }
+    @Autowired
+    private IWdDefineTypeRelService iWdDefineTypeRelService;
 
     /**
      * 根据广联达空间类型查询空间信息
@@ -152,8 +129,12 @@ public class SpaceServiceImpl implements ISpaceService {
     @Override
     public List<JSONObject> queryEquipInSpace(InstanceUrlParam context, CommonRequestDTO request,String bimTypeId) throws Exception{
 
+        //查询空间映射表
+        WdDefineTypeRel defineTypeRel = new WdDefineTypeRel();
+        defineTypeRel.setObjType(WdDefTypeEnum.SPACE.getValue());
+        List<WdDefineTypeRel> spaceTypeRelList = iWdDefineTypeRelService.query(context,defineTypeRel);
+
         //根据空间的BimTypeId构建编码获取所在系统
-        List<WdDefineTypeRel> spaceTypeRelList = queryGldSpaceTypeRel();
         Map<String, List<WdDefineTypeRel>> spaceTypeRelMap = spaceTypeRelList.stream().collect(Collectors.groupingBy(WdDefineTypeRel::getBimTypeId));
         List<WdDefineTypeRel> defineTypeRels = spaceTypeRelMap.get(bimTypeId);
         if(CollUtil.isEmpty(defineTypeRels)){
@@ -172,8 +153,31 @@ public class SpaceServiceImpl implements ISpaceService {
         }
 
         //结果集封装
-        List<JSONObject> content = combineQuerySpaceResultData(equipByWdObjectType, objects, CommonConsant.BIM_TYPE_ID);
-        return content;
+        return combineQuerySpaceResultData(equipByWdObjectType, objects, CommonConsant.BIM_TYPE_ID);
+    }
+
+    /**
+     * 查询防火分区下的空间
+     * @param context
+     * @param request
+     * @return
+     */
+    @Override
+    public CommonResult queryFireZone(InstanceUrlParam context, CommonRequestDTO request) {
+        ObjectNode criteria = JsonNodeFactory.instance.objectNode();
+
+        criteria.put(CommonConsant.CLASS_CODE, ClassCodeEnum.FIREZONE.getValue());
+        QueryCriteria queryCriteria = new QueryCriteria();
+        //根据建筑/楼层id关系查询
+        if(StringUtils.isNotEmpty(request.getFloorId())){
+            queryCriteria = EntityTransferUtil.transDmpRelationCriteria(criteria, RelationTypeEnum.ARCHSUBSET_FL2SP.getGraphCode(),
+                    RelationTypeEnum.ARCHSUBSET_FL2SP.getRelCode(), request.getFloorId(), 0);
+        }else{
+            queryCriteria = EntityTransferUtil.transDmpRelationCriteria(criteria, RelationTypeEnum.ARCHSUBSET_BD2SP.getGraphCode(),
+                    RelationTypeEnum.ARCHSUBSET_BD2SP.getRelCode(), request.getBuildId(), 0);
+        }
+
+        return baseService.doQuery(context, queryCriteria, JsonNode.class);
     }
 
     /**
@@ -185,7 +189,6 @@ public class SpaceServiceImpl implements ISpaceService {
      */
     private List<JSONObject> queryDmpEquipInSpace(InstanceUrlParam context, CommonRequestDTO request,Set<String> bimTypeIds){
         List<JSONObject> result = new ArrayList<>();
-
         ObjectNode criteria = JsonNodeFactory.instance.objectNode();
         ArrayNode arrayNode = criteria.withArray("bimTypeId");
         bimTypeIds.forEach(item->arrayNode.add(item));
@@ -196,9 +199,9 @@ public class SpaceServiceImpl implements ISpaceService {
             spaceId.add(request.getSpaceId());
             request.setSpaceIds(spaceId);
         }
-        Set<String> spaceIds = request.getSpaceIds();
 
         //查询空间下的设备
+        Set<String> spaceIds = request.getSpaceIds();
         for (String spaceId : spaceIds) {
             QueryCriteria queryCriteria = EntityTransferUtil.transDmpRelationCriteria(criteria,RelationTypeEnum.MECHINARCH_EQ2SP.getGraphCode(),
                     RelationTypeEnum.MECHINARCH_EQ2SP.getRelCode(),spaceId, 1);
@@ -208,7 +211,6 @@ public class SpaceServiceImpl implements ISpaceService {
                 result.addAll(content);
             }
         }
-
         return result;
     }
 
@@ -218,18 +220,10 @@ public class SpaceServiceImpl implements ISpaceService {
      * @return
      */
     private List<WdDefineTypeRel> getEquipByWdObjectType(Set<String> wdSystemCodes){
-        List<JSONObject> result = new ArrayList<>();
-
-        QueryWrapper<WdDefineTypeRel> wrapper = new QueryWrapper<>();
-
         Set<String> objTypes = new HashSet<>();
-        objTypes.add("equipment");
-        objTypes.add("material");
-
-        wrapper.in("obj_type",objTypes);
-        wrapper.in("wd_system_code",wdSystemCodes);
-        List<WdDefineTypeRel> defineTypeRels = defineTypeRelMapper.selectList(wrapper);
-        return defineTypeRels;
+        objTypes.add(WdDefTypeEnum.EQUIPMENT.getValue());
+        objTypes.add(WdDefTypeEnum.MATERIAL.getValue());
+        return iWdDefineTypeRelService.batchQuery(wdSystemCodes,objTypes);
     }
 
 
@@ -244,9 +238,7 @@ public class SpaceServiceImpl implements ISpaceService {
         if(CollUtil.isEmpty(defineTypeRels)){
             return new ArrayList<>();
         }
-
         Map<String, List<JSONObject>> spaceMap = spaceList.stream().collect(Collectors.groupingBy(k->k.getString(infoCode)));
-
         //数据组装
         List<JSONObject> result = new ArrayList<>();
         for (WdDefineTypeRel defineTypeRel : defineTypeRels) {

+ 71 - 0
src/main/java/com/persagy/dmp/middleware/service/impl/WdDefineTypeRelServiceImpl.java

@@ -0,0 +1,71 @@
+package com.persagy.dmp.middleware.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.persagy.dmp.middleware.dao.WdDefineTypeRelMapper;
+import com.persagy.dmp.middleware.entity.dto.InstanceUrlParam;
+import com.persagy.dmp.middleware.entity.vo.WdDefineTypeRel;
+import com.persagy.dmp.middleware.service.IWdDefineTypeRelService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @ClassName ObjectInstanceServiceImpl
+ * @Description: 广联达:关系映射表配置
+ * @Author linhuili
+ * @Date 2021/9/10 11:17
+ * @Version V1.0
+ **/
+@Service
+public class WdDefineTypeRelServiceImpl implements IWdDefineTypeRelService {
+
+    @Autowired
+    private WdDefineTypeRelMapper wdDefineTypeRelMapper;
+
+    /**
+     * 查询广联达映射表
+     * @param context
+     * @param wdDefineTypeRel
+     * @return
+     */
+    @Override
+    public List<WdDefineTypeRel> query(InstanceUrlParam context, WdDefineTypeRel wdDefineTypeRel) {
+        QueryWrapper<WdDefineTypeRel> wrapper = new QueryWrapper<>();
+        if(StringUtils.isNotEmpty(wdDefineTypeRel.getObjType())){
+            wrapper.eq("obj_type",wdDefineTypeRel.getObjType());
+        }
+        if(StringUtils.isNotEmpty(wdDefineTypeRel.getBimTypeId())){
+            wrapper.eq("bim_type_id",wdDefineTypeRel.getBimTypeId());
+        }
+
+        if(StringUtils.isNotEmpty(wdDefineTypeRel.getWdSystemCode())){
+            wrapper.eq("wd_system_code",wdDefineTypeRel.getWdSystemCode());
+        }
+
+        if(StringUtils.isNotEmpty(wdDefineTypeRel.getWdModelCode())){
+            wrapper.eq("wd_model_code",wdDefineTypeRel.getWdModelCode());
+        }
+
+        List<WdDefineTypeRel> defineTypeRels = wdDefineTypeRelMapper.selectList(wrapper);
+        return defineTypeRels;
+    }
+
+    /**
+     * 批量查询映射表
+     * @param wdSystemCodes
+     * @param objTypes
+     * @return
+     */
+    @Override
+    public List<WdDefineTypeRel> batchQuery(Set<String> wdSystemCodes, Set<String> objTypes) {
+        QueryWrapper<WdDefineTypeRel> wrapper = new QueryWrapper<>();
+
+        wrapper.in("obj_type",objTypes);
+        wrapper.in("wd_system_code",wdSystemCodes);
+        return  wdDefineTypeRelMapper.selectList(wrapper);
+    }
+
+}

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

@@ -117,7 +117,7 @@
 
 注:具体信息点编码参考中台数据字典定义
 
-## 4. 查询/统计楼层下的设备空间(设备设施(通用)-全局/单层 )
+## 5. 查询/统计楼层下的设备空间(设备设施(通用)-全局/单层 )
 
 接口名称:http://<ip>:<port>/equip/query?groupCode=集团编码&projectId=项目id
 
@@ -164,11 +164,11 @@
 
 注:具体信息点编码参考中台数据字典定义
 
-## 5. 修改楼层基本信息及统计数量(设备设施(通用)-全局,设备设施(通用)-单层)-暂时不做
+## 6. 修改楼层基本信息及统计数量(设备设施(通用)-全局,设备设施(通用)-单层)-暂时不做
 
 注:楼层简介中的建筑面积修改后,清理zkt-monitor 中 redis 14号索引库的缓存
 
-## 6. 通过id查询对象详情 (设备设施(通用)-单空间/单设备)
+## 7. 通过id查询对象详情 (设备设施(通用)-单空间/单设备)
 
 接口名称:http://<ip>:<port>/space/query?groupCode=集团编码&projectId=项目id
 
@@ -204,7 +204,7 @@
 }
 ```
 
-## 7. 统计空间内的设备和阀门个数(设备设施(通用)-单空间)
+## 8. 统计空间内的设备和阀门个数(设备设施(通用)-单空间)
 
 接口名称:http://<ip>:<port>/space/rel/query?groupCode=集团编码&projectId=项目id
 
@@ -248,11 +248,11 @@
 }
 ```
 
-## 8. 查询设备设施-供电系统-全局-楼层电井
+## 9. 查询设备设施-供电系统-全局-楼层电井
 
 注:zkt-sdk接口已实现,需增加返回电表号字段 - 后续新增信息点
 
-## 9. 查询设备设施- 暖通系统-全局-3D原理图相关的设备/阀门
+## 10. 查询设备设施- 暖通系统-全局-3D原理图相关的设备/阀门
 
 注:查询冷却塔设备类下的设备,制冷机房空间下的设备/阀门信息,所属系统编码
 
@@ -298,7 +298,7 @@
 }
 ```
 
-## 10. 设备设施-暖通系统-分集水器原理图查询
+## 11. 设备设施-暖通系统-分集水器原理图查询
 
 注:查询分水器、集水器类型下的对象信息,对象信息需要增加所属系统编码
 
@@ -341,9 +341,9 @@
 }
 ```
 
-## 11. 防火分区数量统计
+## 12. 防火分区数量统计(信息点未交付,接口待定)
 
-接口名称:http://<ip>:<port>/space/fireZone/count?groupCode=集团编码&projectId=项目id
+接口名称:http://<ip>:<port>/space/fireZone/query?groupCode=集团编码&projectId=项目id
 
 请求参数:
 
@@ -364,7 +364,10 @@
    "count":12,
    "content":[
      {
-      “bimLocalId”:"****",    //防火分区bimID
+      "id":"***",             //空间id
+      "name":"***",           //空间名称
+      “localId”:"****",       //空间本地编码
+      “localName”:"****",     //空间本地名称
       "fireZoneName":"***",   //防火分区
       "hostNumber":"***",     //主机编号
       "loopNumber":"***",     //回路编号
@@ -372,7 +375,12 @@
       "warmNum": ***,         //温感数量
       "handNum": ***,         //手报数量
       "hydrantsNum": ***,     //消火栓数量
-      "moldNum": ***          //模块数量 
+      "moldNum": ***,          //模块数量 
+      “bimId":"***",       //bimID
+      "bimLocation":"-178.1,126.3,225.9", //bim坐标
+      “bimTypeId”:"***",   //BIM构建编码
+      “outLine”:[{"x":123.2,"y":210,"z":227.9}],  //轮廓坐标
+      “objType”:"***",     //对象类型:space-空间
      }
    ]
 }
@@ -380,7 +388,7 @@
 
 注:统计各消防分区下的空间数量,关联的主机编号,烟感数量,温感数量等。
 
-## 12. 查询各防火分区下的空间信息(防火分区界面:3D图展示用
+## 13. 查询各防火分区下的空间信息(-作废,可直接复用接口12,接口12返回该空间所有信息,包括空间轮廓线等
 
 注:查询各防火分区下的空间信息