Browse Source

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

yucheng 3 years ago
parent
commit
7a17416a2b
28 changed files with 1016 additions and 238 deletions
  1. 35 6
      dmp-business/dmp-dic/src/main/java/com/persagy/dmp/codetable/controller/CodeTableDataController.java
  2. 18 0
      dmp-business/dmp-dic/src/main/java/com/persagy/dmp/codetable/service/ICodeTableDataService.java
  3. 86 10
      dmp-business/dmp-dic/src/main/java/com/persagy/dmp/codetable/service/impl/CodeTableDataServiceImpl.java
  4. 2 0
      dmp-business/dmp-dic/src/main/resources/bootstrap.yml
  5. 0 144
      dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/basic/dto/RequestData.java
  6. 0 6
      dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/basic/validations/QueryVadition.java
  7. 150 5
      dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/controller/ObjectDigitalController.java
  8. 20 2
      dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/dao/ObjectDigitalMapper.java
  9. 37 1
      dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/IObjectDigitalService.java
  10. 0 1
      dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/ProjectBusinessService.java
  11. 115 14
      dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/impl/ObjectDigitalServiceImpl.java
  12. 0 4
      dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/impl/ProjectBusinessServiceImpl.java
  13. 2 0
      dmp-business/dmp-rwd/src/main/resources/bootstrap.yml
  14. 87 27
      dmp-business/dmp-rwd/src/main/resources/mapper/ObjectDigitalMapper.xml
  15. 199 1
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/basic/dto/RequestData.java
  16. 1 1
      dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/basic/dto/TimeScope.java
  17. 89 0
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/basic/model/CodeTableTypeEnum.java
  18. 6 0
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/basic/validations/QueryClassCodeVadition.java
  19. 6 0
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/basic/validations/QueryFloorIdVadition.java
  20. 6 0
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/basic/validations/QuerySpaceIdVadition.java
  21. 6 0
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/basic/validations/QuerySystemIdVadition.java
  22. 68 0
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/codetable/client/CodeTableDataClient.java
  23. 70 0
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/codetable/client/CodeTableDataFacade.java
  24. 0 0
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/codetable/entity/CodeTableData.java
  25. 0 0
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/codetable/entity/CodeTableType.java
  26. 0 16
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/define/client/DigitalDefineClient.java
  27. 8 0
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/entity/ObjectDigital.java
  28. 5 0
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/entity/ObjectRelation.java

+ 35 - 6
dmp-business/dmp-dic/src/main/java/com/persagy/dmp/codetable/controller/CodeTableDataController.java

@@ -1,17 +1,16 @@
 package com.persagy.dmp.codetable.controller;
 
 import cn.hutool.core.util.StrUtil;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.codetable.entity.CodeTableData;
 import com.persagy.dmp.codetable.service.ICodeTableDataService;
 import com.persagy.dmp.common.context.AppContext;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.common.utils.ResultHelper;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -32,11 +31,41 @@ public class CodeTableDataController {
      * @return List<CodeTableDetail>
      */
     @GetMapping("/queryAll/{typeCode}")
-    public CommonResult<List<CodeTableData>> queryCodeTableDetailListByCodeTableId(@PathVariable String typeCode) {
+    public CommonResult<List<CodeTableData>> queryCodeTableDetailListByTypeCode(@PathVariable String typeCode) {
         if (StrUtil.isBlank(typeCode)) {
-            return null;
+            return ResultHelper.multi(new ArrayList<>(),0L);
         }
         List<CodeTableData> dataList = dataService.queryAllByTypeCode(AppContext.getContext().getProjectId(), typeCode);
         return ResultHelper.multi(dataList);
     }
+    /**
+     * 根据码表类型及码表数据code查询字典详情
+     * @return List<CodeTableDetail>
+     */
+    @PostMapping("/queryCodeTableDatasByTypeCodeAndCodes")
+    public CommonResult<List<CodeTableData>> queryCodeTableDetailListByTypeCodeAndCodes(@RequestBody RequestData requestData) {
+        if (StrUtil.isBlank(requestData.getTypeCode())) {
+            return ResultHelper.multi(new ArrayList<>(),0L);
+        }
+        List<CodeTableData> dataList = dataService
+                .queryCodeTableDatasByTypeCodeAndCodes(AppContext.getContext().getProjectId(), requestData.getTypeCode(), requestData);
+        return ResultHelper.multi(dataList);
+    }
+    /***
+     * Description: 根据父码表code查询其下的码表数据
+     * @param requestData : 请求参数
+     * @return : java.util.List<com.persagy.dmp.codetable.entity.CodeTableData>
+     * @author : lijie
+     * @date :2021/8/30 22:58
+     * Update By lijie 2021/8/30 22:58
+     */
+    @PostMapping("/queryCodeTableDatasByParentCode")
+    public CommonResult<List<CodeTableData>> queryCodeTableDatasByParentCode(@RequestBody RequestData requestData) {
+        if (StrUtil.isBlank(requestData.getTypeCode()) || StrUtil.isBlank(requestData.getParentCode())) {
+            return ResultHelper.multi(new ArrayList<>(),0L);
+        }
+        List<CodeTableData> dataList = dataService
+                .queryCodeTableDatasByParentCode(AppContext.getContext().getProjectId(), requestData);
+        return ResultHelper.multi(dataList);
+    }
 }

+ 18 - 0
dmp-business/dmp-dic/src/main/java/com/persagy/dmp/codetable/service/ICodeTableDataService.java

@@ -1,6 +1,7 @@
 package com.persagy.dmp.codetable.service;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.codetable.entity.CodeTableData;
 
 import java.util.List;
@@ -53,4 +54,21 @@ public interface ICodeTableDataService {
      * @return 码表数据。如果为树型,则返回树型结果
      */
     List<CodeTableData> queryAllByTypeCode(String projectId, String typeCode);
+    /**
+     * 通过类型和code查询所有码表数据
+     * @param projectId 项目ID
+     * @param typeCode 码表类型编码
+     * @return 码表数据。如果为树型,则返回树型结果
+     */
+    List<CodeTableData> queryCodeTableDatasByTypeCodeAndCodes(String projectId, String typeCode, RequestData requestData);
+    /***
+     * Description: 根据父码表code查询其下的码表数据
+     * @param projectId : 项目id
+     * @param requestData : 请求参数
+     * @return : java.util.List<com.persagy.dmp.codetable.entity.CodeTableData>
+     * @author : lijie
+     * @date :2021/8/30 22:58
+     * Update By lijie 2021/8/30 22:58
+     */
+    List<CodeTableData> queryCodeTableDatasByParentCode(String projectId, RequestData requestData);
 }

+ 86 - 10
dmp-business/dmp-dic/src/main/java/com/persagy/dmp/codetable/service/impl/CodeTableDataServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.codetable.dao.CodeTableDataMapper;
 import com.persagy.dmp.codetable.entity.CodeTableData;
 import com.persagy.dmp.codetable.entity.CodeTableType;
@@ -18,9 +19,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 码表数据 实现类
@@ -74,13 +74,7 @@ public class CodeTableDataServiceImpl implements ICodeTableDataService {
         if(codeType == null) {
             return null;
         }
-        LambdaQueryWrapper<CodeTableData> wrapper = new LambdaQueryWrapper<>();
-        wrapper.select(CodeTableData::getId, CodeTableData::getParentId, CodeTableData::getCode, CodeTableData::getName, CodeTableData::getExtras);
-        wrapper.eq(CodeTableData::getTypeId, codeType.getId());
-        wrapper.eq(CodeTableData::getValid, ValidEnum.TRUE.getType());
-        ConditionUtil.ensureProjectCriteria(wrapper, CodeTableData::getProjectId, projectId);
-        wrapper.orderByAsc(CodeTableData::getShowOrder);
-        List<CodeTableData> dataList = dao.selectList(wrapper);
+        List<CodeTableData> dataList = commonQueryCodeTableDatasByTypeCode(codeType,projectId);
         if(CollUtil.isEmpty(dataList)) {
             return null;
         } else if(!codeType.isTree()) {
@@ -106,4 +100,86 @@ public class CodeTableDataServiceImpl implements ICodeTableDataService {
         }
         return rsList;
     }
+
+    /**
+     * 通过类型和code查询所有码表数据
+     * @param projectId 项目ID
+     * @param typeCode 码表类型编码
+     * @return 码表数据。如果为树型,则返回树型结果
+     */
+    @Override
+    public List<CodeTableData> queryCodeTableDatasByTypeCodeAndCodes(String projectId, String typeCode,
+                                                                     RequestData requestData) {
+        CodeTableType codeType = typeService.loadByCode(projectId, typeCode);
+        if(null == codeType) {
+            return new ArrayList<>();
+        }
+        List<CodeTableData> codeTableDatas = commonQueryCodeTableDatasByTypeCode(codeType, projectId);
+        if (CollUtil.isEmpty(codeTableDatas)){
+            return new ArrayList<>();
+        }
+        if (CollUtil.isNotEmpty(requestData.getCodes())){
+            return codeTableDatas.stream()
+                    .filter(codeTableData -> requestData.getCodes().contains(codeTableData.getCode()))
+                    .collect(Collectors.toList());
+        }
+        return codeTableDatas;
+    }
+    /***
+     * Description: 根据父码表code查询其下的码表数据
+     * @param projectId : 项目id
+     * @param requestData : 请求参数
+     * @return : java.util.List<com.persagy.dmp.codetable.entity.CodeTableData>
+     * @author : lijie
+     * @date :2021/8/30 22:58
+     * Update By lijie 2021/8/30 22:58
+     */
+    @Override
+    public List<CodeTableData> queryCodeTableDatasByParentCode(String projectId, RequestData requestData) {
+        // 1.查询对应码表类型值
+        CodeTableType codeType = typeService.loadByCode(projectId, requestData.getTypeCode());
+        if(null == codeType) {
+            return new ArrayList<>();
+        }
+        // 2.根据码表类型和项目id查询码表数据
+        List<CodeTableData> codeTableDatas = commonQueryCodeTableDatasByTypeCode(codeType, projectId);
+        if (CollUtil.isEmpty(codeTableDatas)){
+            return new ArrayList<>();
+        }
+        // 3.获取符合条件的父级对象
+        Optional<CodeTableData> parentCodeData = codeTableDatas.stream()
+                .filter(codeTableData -> requestData.getParentCode().equals(codeTableData.getCode()))
+                .findFirst();
+        if (!parentCodeData.isPresent()){
+            return new ArrayList<>();
+        }
+        CodeTableData parentCodeTableData = parentCodeData.get();
+        return codeTableDatas.stream()
+                .filter(codeTableData -> codeTableData.getInnerCode().contains(parentCodeTableData.getInnerCode()))
+                .sorted(Comparator.comparing(CodeTableData::getInnerCode))
+                .collect(Collectors.toList());
+    }
+
+    /***
+     * Description: 通用的根据typeCode查询数据
+     * @param projectId : 项目id
+     * @param codeType : 码表类型对象
+     * @return : java.util.List<com.persagy.dmp.codetable.entity.CodeTableData>
+     * @author : lijie
+     * @date :2021/8/30 22:41
+     * Update By lijie 2021/8/30 22:41
+     */
+    private List<CodeTableData> commonQueryCodeTableDatasByTypeCode(CodeTableType codeType,String projectId){
+
+        LambdaQueryWrapper<CodeTableData> wrapper = new LambdaQueryWrapper<>();
+        wrapper.select(CodeTableData::getId, CodeTableData::getParentId,
+                CodeTableData::getCode, CodeTableData::getName, CodeTableData::getExtras,CodeTableData::getInnerCode);
+        wrapper.eq(CodeTableData::getTypeId, codeType.getId());
+        wrapper.eq(CodeTableData::getValid, ValidEnum.TRUE.getType());
+        ConditionUtil.ensureProjectCriteria(wrapper, CodeTableData::getProjectId, projectId);
+        wrapper.orderByAsc(CodeTableData::getShowOrder);
+        return dao.selectList(wrapper);
+    }
+
+
 }

+ 2 - 0
dmp-business/dmp-dic/src/main/resources/bootstrap.yml

@@ -4,6 +4,8 @@ spring:
   application:
     # 应用名称
     name: dmp-dic
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
 
 config:
   file:

+ 0 - 144
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/basic/dto/RequestData.java

@@ -1,144 +0,0 @@
-package com.persagy.dmp.rwd.basic.dto;
-
-import com.alibaba.fastjson.annotation.JSONField;
-import com.fasterxml.jackson.annotation.JsonAlias;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.persagy.dmp.rwd.basic.validations.QueryVadition;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import javax.validation.constraints.NotBlank;
-import java.util.Set;
-
-/***
- * @Description: 统一的请求体封装对象
- * @author: lijie
- * @Date:2020/7/9 10:35
- * Update By lijie 2020/7/9 10:35
- */
-@Data
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class RequestData {
-
-    /**账号id*/
-    @JsonAlias({"user_id"})
-    @JsonProperty("userId")
-    @JSONField(name = "userId",alternateNames = {"user_id"})
-    private String userId;
-    /**管理分区id*/
-    @JsonAlias({"group_manage_zone_ids"})
-    @JsonProperty("groupManageZoneIds")
-    @JSONField(name = "groupManageZoneIds",alternateNames = {"group_manage_zone_ids"})
-    private Set<String> groupManageZoneIds;
-    /** 分页页码,从 1 开始 */
-    @JsonAlias({"page"})
-    @JsonProperty("page")
-    @JSONField(name = "page",alternateNames = {"page"})
-    private Long page;
-    /** 每页行数 */
-    @JsonAlias({"page_size","size","pageSize"})
-    @JsonProperty("size")
-    @JSONField(name = "size",alternateNames = {"page_size","size","pageSize"})
-    private Long size;
-    /** 筛选关键字,本地名称筛选 */
-    @JsonAlias({"keyword"})
-    @JsonProperty("keyword")
-    @JSONField(name = "keyword",alternateNames = {"keyword"})
-    private String keyword;
-    /** 是否只统计总数 */
-    @JsonAlias({"only_count","onlyCount"})
-    @JsonProperty("onlyCount")
-    @JSONField(name = "onlyCount",alternateNames = {"only_count","onlyCount"})
-    private boolean onlyCount = false;
-    /** 创建时间筛选范围 */
-    @JsonAlias({"ctime","createTimeScope"})
-    @JsonProperty("createTimeScope")
-    @JSONField(name = "createTimeScope",alternateNames = {"ctime","createTimeScope"})
-    private TimeScope createTimeScope;
-    /** 返回信息点过滤,仅过滤infos内的信息点,基础信息点不过滤 */
-    @JsonAlias({"return_infos","returnInfos"})
-    @JsonProperty("returnInfos")
-    @JSONField(name = "returnInfos",alternateNames = {"return_infos","returnInfos"})
-    private Set<String> returnInfos;
-    /** 查询有效数据,true,false */
-    @JsonAlias({"valid_set","validSet"})
-    @JsonProperty("validSet")
-    @JSONField(name = "validSet",alternateNames = {"valid_set","validSet"})
-    private Set<Integer> validSet;
-    /** 项目id */
-    @JsonAlias({"project_id","projectId"})
-    @JsonProperty("projectId")
-    @JSONField(name = "projectId",alternateNames = {"project_id","projectId"})
-    private String projectId;
-    /** 建筑id */
-    @JsonAlias({"building_id","buildingId"})
-    @JsonProperty("buildingId")
-    @JSONField(name = "buildingId",alternateNames = {"building_id","buildingId"})
-    private String buildingId;
-    /** 楼层id */
-    @JsonAlias({"floor_id","floorId"})
-    @JsonProperty("floorId")
-    @JSONField(name = "floorId",alternateNames = {"floor_id","floorId"})
-    @NotBlank(message = "缺少必填项:空间id", groups = {QueryVadition.class})
-    private String floorId;
-    /** 空间功能类型 */
-    @JsonAlias({"room_func_type","roomFuncType"})
-    @JsonProperty("roomFuncType")
-    @JSONField(name = "roomFuncType",alternateNames = {"room_func_type","roomFuncType"})
-    private String roomFuncType;
-    /** 关系Code */
-    @JsonAlias({"rel_code","relCode"})
-    @JsonProperty("relCode")
-    @JSONField(name = "relCode",alternateNames = {"rel_code","relCode"})
-    private String relCode;
-    /** 对象分类 */
-    @JsonAlias({"obj_type","objType"})
-    @JsonProperty("objType")
-    @JSONField(name = "objType",alternateNames = {"obj_type","objType"})
-    private String objType;
-    /** 设备id */
-    @JsonAlias({"equipment_id","equipmentId"})
-    @JsonProperty("equipmentId")
-    @JSONField(name = "equipmentId",alternateNames = {"equipment_id","equipmentId"})
-    private String equipmentId;
-    /** 对象类型数组 */
-    @JsonAlias({"class_codes","classCodes"})
-    @JsonProperty("classCodes")
-    @JSONField(name = "classCodes",alternateNames = {"class_codes","classCodes"})
-    private Set<String> classCodes;
-    /** 对象分类数组 */
-    @JsonAlias({"obj_types","objTypes"})
-    @JsonProperty("objTypes")
-    @JSONField(name = "objTypes",alternateNames = {"obj_types","objTypes"})
-    private Set<String> objTypes;
-    /** 跳跃条数 */
-    @JsonAlias({"skip"})
-    @JsonProperty("skip")
-    @JSONField(name = "skip",alternateNames = {"skip"})
-    private Long skip;
-    /** 关系code数组 */
-    @JsonAlias({"relCodes","rel_codes"})
-    @JsonProperty("relCodes")
-    @JSONField(name = "relCodes",alternateNames = {"relCodes","rel_codes"})
-    private Set<String> relCodes;
-    /** 查询部件标记,true-查询,false-不查询 */
-    @JsonAlias({"queryEcFlag","query_ec_flag"})
-    @JsonProperty("queryEcFlag")
-    @JSONField(name = "queryEcFlag",alternateNames = {"queryEcFlag","query_ec_flag"})
-    private Boolean queryEcFlag=false;
-    /** 部件关系码 */
-    @JsonAlias({"ecRelCodes","ec_rel_codes"})
-    @JsonProperty("ecRelCodes")
-    @JSONField(name = "ecRelCodes",alternateNames = {"ecRelCodes","ec_rel_codes"})
-    private Set<String> ecRelCodes;
-    /** 过滤的对象id */
-    @JsonAlias({"filterObjId","filter_obj_id"})
-    @JsonProperty("filterObjId")
-    @JSONField(name = "filterObjId",alternateNames = {"filterObjId","filter_obj_id"})
-    private String filterObjId;
-
-}

+ 0 - 6
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/basic/validations/QueryVadition.java

@@ -1,6 +0,0 @@
-package com.persagy.dmp.rwd.basic.validations;
-
-import javax.validation.groups.Default;
-
-public interface QueryVadition extends Default {
-}

+ 150 - 5
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/controller/ObjectDigitalController.java

@@ -1,25 +1,35 @@
 package com.persagy.dmp.rwd.digital.controller;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
+import com.persagy.dmp.basic.model.QueryOperator;
 import com.persagy.dmp.basic.utils.JsonNodeUtils;
+import com.persagy.dmp.basic.validations.QueryClassCodeVadition;
+import com.persagy.dmp.basic.validations.QueryFloorIdVadition;
+import com.persagy.dmp.basic.validations.QuerySpaceIdVadition;
+import com.persagy.dmp.basic.validations.QuerySystemIdVadition;
 import com.persagy.dmp.common.constant.CommonConstant;
 import com.persagy.dmp.common.constant.ResponseCode;
 import com.persagy.dmp.common.context.AppContext;
 import com.persagy.dmp.common.exception.BusinessException;
 import com.persagy.dmp.common.model.response.CommonResult;
+import com.persagy.dmp.common.utils.JsonHelper;
 import com.persagy.dmp.common.utils.ParamCheckUtil;
 import com.persagy.dmp.common.utils.ResultHelper;
 import com.persagy.dmp.digital.entity.ObjectDigital;
+import com.persagy.dmp.digital.entity.ObjectRelation;
 import com.persagy.dmp.mybatis.utils.ConditionUtil;
 import com.persagy.dmp.basic.utils.QueryCriteriaHelper;
-import com.persagy.dmp.rwd.basic.dto.RequestData;
-import com.persagy.dmp.rwd.basic.validations.QueryVadition;
+import com.persagy.dmp.rwd.basic.constant.DigitalObjectType;
+import com.persagy.dmp.rwd.basic.constant.DigitalRelCode;
 import com.persagy.dmp.rwd.digital.service.IObjectDigitalService;
 import com.persagy.dmp.rwd.digital.service.ProjectBusinessService;
 import com.persagy.dmp.rwd.digital.utils.ObjectDigitalCriteriaHelper;
@@ -207,14 +217,149 @@ public class ObjectDigitalController{
      * Update By lijie 2021/8/30 9:41
      */
     @PostMapping("/querySpaceListByFloorIdAndRoomFuncType")
-    public CommonResult<List<ObjectDigital>> querySpaceListByFloorIdAndRoomFuncType(@Validated({QueryVadition.class})
+    public CommonResult<List<ObjectDigital>> querySpaceListByFloorIdAndRoomFuncType(@Validated({QueryFloorIdVadition.class})
                                                                                     @RequestBody RequestData requestData) {
         //基础参数校验
         ParamCheckUtil.checkParam(CommonConstant.QUERY_GROUPCODE);
+        requestData.setProjectId(AppContext.getContext().getProjectId());
+        requestData.setGroupCode(AppContext.getContext().getGroupCode());
         return service.querySpaceListByFloorIdAndRoomFuncType(requestData);
     }
-
-
+    /***
+     * Description: 查询指定楼层下所有指定空间类型的空间
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/30 9:41
+     * Update By lijie 2021/8/30 9:41
+     */
+    @PostMapping("/queryEquipListBySpaceIdAndClassCode")
+    public CommonResult<List<ObjectDigital>> queryEquipListBySpaceIdAndClassCode(@Validated({QuerySpaceIdVadition.class})
+                                                                                    @RequestBody RequestData requestData) {
+        //基础参数校验
+        ParamCheckUtil.checkParam(CommonConstant.QUERY_GROUPCODE);
+        requestData.setProjectId(AppContext.getContext().getProjectId());
+        requestData.setGroupCode(AppContext.getContext().getGroupCode());
+        return service.queryEquipListBySpaceIdAndClassCode(requestData);
+    }
+    /***
+     * Description: 按类型编码查询所有设备
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/30 9:41
+     * Update By lijie 2021/8/30 9:41
+     */
+    @PostMapping("/queryEquipListByClassCode")
+    public CommonResult<List<ObjectDigital>> queryEquipListByClassCode(@Validated({QueryClassCodeVadition.class})
+                                                                                    @RequestBody RequestData requestData) {
+        //基础参数校验
+        ParamCheckUtil.checkParam(CommonConstant.QUERY_GROUPCODE);
+        requestData.setProjectId(AppContext.getContext().getProjectId());
+        requestData.setGroupCode(AppContext.getContext().getGroupCode());
+        return service.queryEquipListByClassCode(requestData);
+    }
+    /***
+     * Description: 按系统查询系统下所有设备
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/30 9:41
+     * Update By lijie 2021/8/30 9:41
+     */
+    @PostMapping("/queryEquipListBySystemId")
+    public CommonResult<List<ObjectDigital>> queryEquipListBySystemId(@Validated({QuerySystemIdVadition.class})
+                                                                                    @RequestBody RequestData requestData) {
+        //基础参数校验
+        ParamCheckUtil.checkParam(CommonConstant.QUERY_GROUPCODE);
+        requestData.setProjectId(AppContext.getContext().getProjectId());
+        requestData.setGroupCode(AppContext.getContext().getGroupCode());
+        return service.queryEquipListBySystemId(requestData);
+    }
+    /***
+     * Description: 按系统查询系统下所有设备
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/30 9:41
+     * Update By lijie 2021/8/30 9:41
+     */
+    @PostMapping("/queryEquipListByConditions")
+    public CommonResult<List<ObjectNode>> queryEquipListByConditions(@RequestBody RequestData requestData) {
+        // 暂时先拼接query接口参数进行查询,后续视情况再单独写逻辑
+        ObjectMapper objectMapper = JsonHelper.objectMapper;
+        QueryCriteria queryCriteria = new QueryCriteria();
+        queryCriteria.setOrders(requestData.getOrders());
+        queryCriteria.setPage(requestData.getPage());
+        queryCriteria.setSize(requestData.getSize());
+        ObjectNode objectNode = objectMapper.createObjectNode();
+        // 专业,系统类,设备类
+        if (StrUtil.isNotBlank(requestData.getClassCode())){
+            ObjectNode classCodeObj = objectMapper.createObjectNode();
+            classCodeObj.put(QueryOperator.LIKE_RIGHT.getIndex(),requestData.getClassCode());
+            objectNode.put(ObjectDigital.CLASS_CODE,classCodeObj);
+        }
+        // 楼层id
+        if (StrUtil.isNotBlank(requestData.getFloorId())){
+            // criteria条件
+            ObjectNode criteriaObj = objectMapper.createObjectNode();
+            criteriaObj.put(ObjectRelation.REL_CODE_HUM, DigitalRelCode.EQ_2_FL.getIndex());
+            criteriaObj.put(ObjectRelation.OBJ_TO_HUM, requestData.getFloorId());
+            objectNode.put(ObjectRelation.RELATION_FROM_HUM,criteriaObj);
+        }
+        // 系统id
+        if (StrUtil.isNotBlank(requestData.getSystemId())){
+            // criteria条件
+            ObjectNode criteriaObj = objectMapper.createObjectNode();
+            criteriaObj.put(ObjectRelation.REL_CODE_HUM, DigitalRelCode.SY_2_EQ.getIndex());
+            criteriaObj.put(ObjectRelation.OBJ_FROM_HUM, requestData.getFloorId());
+            objectNode.put(ObjectRelation.RELATION_TO_HUM,criteriaObj);
+        }
+        // installLocation安装位置
+        if (StrUtil.isNotBlank(requestData.getInstallLocation())){
+            objectNode.put(RequestData.INSTALL_LOCATION_HUM,requestData.getInstallLocation());
+        }
+        // manufacturer生产厂家
+        if (StrUtil.isNotBlank(requestData.getManufacturer())){
+            objectNode.put(RequestData.MANUFACTURER,requestData.getManufacturer());
+        }
+        // equipStatus设备状态
+        if (StrUtil.isNotBlank(requestData.getEquipStatus())){
+            objectNode.put(RequestData.EQUIP_STATUS_HUM,requestData.getEquipStatus());
+        }
+        // warranter维保单位名称
+        if (StrUtil.isNotBlank(requestData.getWarranter())){
+            objectNode.put(RequestData.WARRANTER,requestData.getWarranter());
+        }
+        // keyword关键字
+        if (StrUtil.isNotBlank(requestData.getKeyword())){
+            ObjectNode keywordObj = objectMapper.createObjectNode();
+            keywordObj.put(QueryOperator.LIKE.getIndex(),requestData.getKeyword());
+            objectNode.put(ObjectDigital.LOCAL_NAME_HUM,keywordObj);
+        }
+        objectNode.put(ObjectDigital.OBJ_TYPE_HUM, DigitalObjectType.EQUIPMENT.getIndex());
+        queryCriteria.setCriteria(objectNode);
+        return query(queryCriteria);
+    }
+    /***
+     * Description: 支持按指定空间功能类型查询此空间类型及其下级类型的所有空间列表
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/30 9:41
+     * Update By lijie 2021/8/30 9:41
+     */
+    @PostMapping("/querySpaceListByRoomFuncType")
+    public CommonResult<List<ObjectDigital>> querySpaceListByRoomFuncType(@RequestBody RequestData requestData) {
+        //基础参数校验
+        if (StrUtil.isBlank(requestData.getRoomFuncType())){
+            throw new BusinessException(ResponseCode.A0402.getCode(),ResponseCode.A0402.getDesc());
+        }
+        ParamCheckUtil.checkParam(CommonConstant.QUERY_GROUPCODE);
+        requestData.setProjectId(AppContext.getContext().getProjectId());
+        requestData.setGroupCode(AppContext.getContext().getGroupCode());
+        return service.querySpaceListByRoomFuncType(requestData);
+    }
 
 
     /**

+ 20 - 2
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/dao/ObjectDigitalMapper.java

@@ -1,8 +1,8 @@
 package com.persagy.dmp.rwd.digital.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.digital.entity.ObjectDigital;
-import com.persagy.dmp.rwd.basic.dto.RequestData;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -23,7 +23,7 @@ public interface ObjectDigitalMapper extends BaseMapper<ObjectDigital> {
      * @date :2021/8/24 16:40
      * Update By lijie 2021/8/24 16:40
      */
-    List<List<ObjectDigital>> queryObjectDigitalsByProjectId(@Param("param") RequestData requestData,@Param("skip") Long skip,@Param("size") Long size);
+    List<List<ObjectDigital>> queryObjectDigitalsByProjectId(@Param("param") RequestData requestData, @Param("skip") Long skip, @Param("size") Long size);
     /***
      * Description: 根据上级id查询对象列表
      * @param requestData : 请求参数
@@ -42,4 +42,22 @@ public interface ObjectDigitalMapper extends BaseMapper<ObjectDigital> {
      * Update By lijie 2021/8/30 10:26
      */
     List<List<ObjectDigital>> queryObjectListByFloorIdAndRoomFuncType(@Param("param") RequestData requestData);
+    /***
+     * Description:查询指定空间下所有指定对象类型的设备
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/30 17:03
+     * Update By lijie 2021/8/30 17:03
+     */
+    List<List<ObjectDigital>> queryObjectListByRelIdAndClassCode(@Param("param") RequestData requestData);
+    /***
+     * Description: 按类型编码查询所有设备
+     * @param requestData : 请求参数
+     * @return : java.util.List<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/30 17:44
+     * Update By lijie 2021/8/30 17:44
+     */
+    List<List<ObjectDigital>> queryEquipListByClassCode(@Param("param") RequestData requestData);
 }

+ 37 - 1
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/IObjectDigitalService.java

@@ -2,9 +2,9 @@ package com.persagy.dmp.rwd.digital.service;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.entity.ObjectDigital;
-import com.persagy.dmp.rwd.basic.dto.RequestData;
 
 import java.util.List;
 import java.util.Map;
@@ -91,4 +91,40 @@ public interface IObjectDigitalService {
      * Update By lijie 2021/8/30 9:54
      */
     CommonResult<List<ObjectDigital>> querySpaceListByFloorIdAndRoomFuncType(RequestData requestData);
+    /***
+     * Description:查询指定空间下所有指定对象类型的设备
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>  
+     * @author : lijie
+     * @date :2021/8/30 17:03
+     * Update By lijie 2021/8/30 17:03
+     */
+    CommonResult<List<ObjectDigital>> queryEquipListBySpaceIdAndClassCode(RequestData requestData);
+    /***
+     * Description: 按类型编码查询所有设备
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/30 9:41
+     * Update By lijie 2021/8/30 9:41
+     */
+    CommonResult<List<ObjectDigital>> queryEquipListByClassCode(RequestData requestData);
+    /***
+     * Description: 按系统查询系统下所有设备
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/30 9:41
+     * Update By lijie 2021/8/30 9:41
+     */
+    CommonResult<List<ObjectDigital>> queryEquipListBySystemId(RequestData requestData);
+    /***
+     * Description: 支持按指定空间功能类型查询此空间类型及其下级类型的所有空间列表
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/30 9:41
+     * Update By lijie 2021/8/30 9:41
+     */
+    CommonResult<List<ObjectDigital>> querySpaceListByRoomFuncType(RequestData requestData);
 }

+ 0 - 1
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/ProjectBusinessService.java

@@ -2,7 +2,6 @@ package com.persagy.dmp.rwd.digital.service;
 
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.entity.ObjectDigital;
-import com.persagy.dmp.rwd.basic.dto.RequestData;
 
 import java.util.List;
 import java.util.Set;

+ 115 - 14
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/impl/ObjectDigitalServiceImpl.java

@@ -8,10 +8,15 @@ import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.JsonNodeFactory;
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.dto.RequestData;
+import com.persagy.dmp.basic.model.CodeTableTypeEnum;
+import com.persagy.dmp.codetable.client.CodeTableDataFacade;
+import com.persagy.dmp.codetable.entity.CodeTableData;
 import com.persagy.dmp.common.constant.CommonConstant;
 import com.persagy.dmp.common.constant.ValidEnum;
 import com.persagy.dmp.common.context.AppContext;
@@ -24,7 +29,6 @@ import com.persagy.dmp.digital.entity.ObjectDigital;
 import com.persagy.dmp.rwd.basic.constant.DigitalMessageConstant;
 import com.persagy.dmp.rwd.basic.constant.DigitalObjectType;
 import com.persagy.dmp.rwd.basic.constant.DigitalRelCode;
-import com.persagy.dmp.rwd.basic.dto.RequestData;
 import com.persagy.dmp.rwd.basic.utils.DigitalCommonUtils;
 import com.persagy.dmp.rwd.basic.utils.DigitalMessageHelper;
 import com.persagy.dmp.rwd.define.service.IObjectInfoService;
@@ -51,31 +55,30 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor
 public class ObjectDigitalServiceImpl implements IObjectDigitalService {
 
-    private final ObjectDigitalMapper dao;
+    private final ObjectDigitalMapper objectDigitalMapper;
     private final DigitalMessageHelper messageSender;
     private final IObjectInfoService infoService;
     private final IObjectTypeService typeService;
-    private final ObjectDigitalMapper objectDigitalMapper;
     private final ObjectRelationMapper objectRelationMapper;
 
     @Override
     public ObjectDigital load(String id) {
-        return dao.selectById(id);
+        return objectDigitalMapper.selectById(id);
     }
 
     @Override
     public List<ObjectDigital> queryByCondition(Wrapper<ObjectDigital> queryWrapper) {
-        return dao.selectList(queryWrapper);
+        return objectDigitalMapper.selectList(queryWrapper);
     }
 
     @Override
     public Integer queryCount(Wrapper<ObjectDigital> queryWrapper) {
-        return dao.selectCount(queryWrapper);
+        return objectDigitalMapper.selectCount(queryWrapper);
     }
 
     @Override
     public Page queryByCondition(Page page, Wrapper<ObjectDigital> queryWrapper) {
-        return dao.selectPage(page, queryWrapper);
+        return objectDigitalMapper.selectPage(page, queryWrapper);
     }
 
     @Override
@@ -99,7 +102,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
             vo.setObjType(typeMap.get(vo.getClassCode()));
             vo.setValid(ValidEnum.TRUE.getType());
             // 新增
-            dao.insert(vo);
+            objectDigitalMapper.insert(vo);
             // 新增后消息
             messageSender.sendMessage(DigitalMessageConstant.OPERATE_AFTER_INSERT, null, vo, false);
         });
@@ -118,7 +121,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
         Set<String> fieldSet = ReflectUtil.getFieldMap(ObjectDigital.class).keySet();
         //查询数据库中存在的数据
         List<String> idList = CollUtil.getFieldValues(voList, BaseEntity.PROP_ID, String.class);
-        List<ObjectDigital> dbList = dao.selectBatchIds(idList);
+        List<ObjectDigital> dbList = objectDigitalMapper.selectBatchIds(idList);
         Map<String, ObjectDigital> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
 
         //填充classCode
@@ -143,7 +146,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
             remove(newDbVO,remove,fieldSet);
 
             // 修改
-            dao.updateById(newDbVO);
+            objectDigitalMapper.updateById(newDbVO);
             resultList.add(newDbVO);
             // 修改后消息
             messageSender.sendMessage(DigitalMessageConstant.OPERATE_AFTER_UPDATE, dbVO, newDbVO, false);
@@ -156,7 +159,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
         if(CollUtil.isEmpty(idList)) {
             return;
         }
-        List<ObjectDigital> dbList = dao.selectBatchIds(idList);
+        List<ObjectDigital> dbList = objectDigitalMapper.selectBatchIds(idList);
         Map<String, ObjectDigital> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
         idList.forEach(id -> {
             ObjectDigital dbVO = MapUtil.get(dbMap, id, ObjectDigital.class);
@@ -168,7 +171,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
             ObjectDigital vo = new ObjectDigital();
             vo.setId(id);
             vo.setValid(ValidEnum.FALSE.getType());
-            dao.updateById(vo);
+            objectDigitalMapper.updateById(vo);
             // 删除后消息
             dbVO.setValid(ValidEnum.FALSE.getType());
             messageSender.sendMessage(DigitalMessageConstant.OPERATE_AFTER_DELETE, null, dbVO, false);
@@ -224,10 +227,108 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
         // 2.使用Fl2Sp关系查询楼层下的空间
         requestData.setRelCode(DigitalRelCode.FL_2_SP.getIndex());
         requestData.setObjType(DigitalObjectType.SPACE.getIndex());
+        requestData.setRelId(requestData.getFloorId());
         List<List<ObjectDigital>> dataResult = objectDigitalMapper.queryObjectListByFloorIdAndRoomFuncType(requestData);
         return commonAnalysisPageResult(dataResult);
     }
     /***
+     * Description:查询指定空间下所有指定对象类型的设备
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/30 17:03
+     * Update By lijie 2021/8/30 17:03
+     */
+    @Override
+    public CommonResult<List<ObjectDigital>> queryEquipListBySpaceIdAndClassCode(RequestData requestData) {
+        // 1.计算分页参数
+        computePageParam(requestData);
+        // 2.使用Eq2Sp关系查询楼层下的空间
+        requestData.setRelCode(DigitalRelCode.EQ_2_SP.getIndex());
+        requestData.setObjType(DigitalObjectType.EQUIPMENT.getIndex());
+        requestData.setRelId(requestData.getSpaceId());
+        List<List<ObjectDigital>> dataResult = objectDigitalMapper.queryObjectListByRelIdAndClassCode(requestData);
+        return commonAnalysisPageResult(dataResult);
+    }
+    /***
+     * Description: 按类型编码查询所有设备
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/30 9:41
+     * Update By lijie 2021/8/30 9:41
+     */
+    @Override
+    public CommonResult<List<ObjectDigital>> queryEquipListByClassCode(RequestData requestData) {
+        // 1.计算分页参数
+        computePageParam(requestData);
+        // 2.使用Fl2Sp关系查询楼层下的空间
+        requestData.setObjType(DigitalObjectType.EQUIPMENT.getIndex());
+        List<List<ObjectDigital>> dataResult = objectDigitalMapper.queryEquipListByClassCode(requestData);
+        return commonAnalysisPageResult(dataResult);
+    }
+    /***
+     * Description: 按系统查询系统下所有设备
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/30 9:41
+     * Update By lijie 2021/8/30 9:41
+     */
+    @Override
+    public CommonResult<List<ObjectDigital>> queryEquipListBySystemId(RequestData requestData) {
+        // 1.计算分页参数
+        computePageParam(requestData);
+        // 2.使用Sy2Eq关系查询系统下的设备
+        requestData.setRelId(requestData.getSystemId());
+        requestData.setObjType(DigitalObjectType.EQUIPMENT.getIndex());
+        requestData.setRelCode(DigitalRelCode.SY_2_EQ.getIndex());
+        List<List<ObjectDigital>> dataResult = objectDigitalMapper.queryObjectListByRelIdAndClassCode(requestData);
+        return commonAnalysisPageResult(dataResult);
+    }
+
+    /***
+     * Description: 支持按指定空间功能类型查询此空间类型及其下级类型的所有空间列表
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/30 9:41
+     * Update By lijie 2021/8/30 9:41
+     */
+    @Override
+    public CommonResult<List<ObjectDigital>> querySpaceListByRoomFuncType(RequestData requestData) {
+        // 1.计算分页参数
+        computePageParam(requestData);
+        // 2.根据空间功能类型查询其下级空间功能类型
+        List<CodeTableData> codeTableDatas = CodeTableDataFacade
+                .queryCodeTableDatasByParentCode(AppContext.getContext().getGroupCode(),
+                AppContext.getContext().getProjectId(),
+                AppContext.getContext().getAppId(),
+                AppContext.getContext().getAccountId(),
+                RequestData.builder()
+                        .typeCode(CodeTableTypeEnum.SPACE.getIndex())
+                        .parentCode(requestData.getRoomFuncType())
+                        .build());
+        if (CollUtil.isEmpty(codeTableDatas)){
+            return ResultHelper.multi(new ArrayList<>(),0L);
+        }
+        // 3.根据分页参数及空间功能类型code数组查询对象
+        Set<String> codes = codeTableDatas.stream()
+                .map(CodeTableData::getCode)
+                .collect(Collectors.toSet());
+        QueryWrapper<ObjectDigital> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(ObjectDigital.PROP_VALID,true);
+        queryWrapper.eq(StrUtil.toUnderlineCase(CommonConstant.QUERY_GROUPCODE),AppContext.getContext().getGroupCode());
+        if (StrUtil.isNotBlank(requestData.getProjectId())){
+            queryWrapper.eq(StrUtil.toUnderlineCase(CommonConstant.QUERY_PROJECTID),requestData.getProjectId());
+        }
+        queryWrapper.in("JSON_UNQUOTE(JSON_EXTRACT(infos,'$.roomFuncType'))",codes);
+        Page<ObjectDigital> page = new Page<>(requestData.getPage(), requestData.getSize(), true);
+        Page<ObjectDigital> digitalPage = objectDigitalMapper.selectPage(page, queryWrapper);
+        return ResultHelper.multi(digitalPage.getRecords(),digitalPage.getTotal());
+    }
+
+    /***
      * Description: 通用处理分页数据方法
      * @param dataResult : 分页数据
      * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
@@ -468,8 +569,8 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
             String objType = objTypeMap.get(vo.getClassCode());
             //设置通用信息点
             if(!objType.equals(vo.getClassCode())){
-                Map<String, ObjectInfoDefine> commonInfoDefineMap = allInfoMap.get(objType);
-                if(commonInfoDefineMap!=null || commonInfoDefineMap.size()>0){
+                Map<String, ObjectInfoDefine> commonInfoDefineMap = allInfoMap.getOrDefault(objType,new HashMap<>());
+                if(null!=commonInfoDefineMap && commonInfoDefineMap.size()>0){
                     infoMap.putAll(commonInfoDefineMap);
                 }
             }

+ 0 - 4
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/impl/ProjectBusinessServiceImpl.java

@@ -1,21 +1,17 @@
 package com.persagy.dmp.rwd.digital.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.dmp.common.constant.CommonConstant;
 import com.persagy.dmp.common.context.AppContext;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.common.utils.ResultHelper;
 import com.persagy.dmp.digital.entity.ObjectDigital;
 import com.persagy.dmp.rwd.basic.constant.DigitalObjectType;
-import com.persagy.dmp.rwd.basic.dto.RequestData;
 import com.persagy.dmp.rwd.digital.dao.ObjectDigitalMapper;
 import com.persagy.dmp.rwd.digital.service.ProjectBusinessService;
-import com.persagy.utils.JacksonMapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;

+ 2 - 0
dmp-business/dmp-rwd/src/main/resources/bootstrap.yml

@@ -4,6 +4,8 @@ spring:
   application:
     # 应用名称
     name: dmp-rwd
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
 #  datasource:
 #    druid:
 #      filters: stat,slf4j

+ 87 - 27
dmp-business/dmp-rwd/src/main/resources/mapper/ObjectDigitalMapper.xml

@@ -165,6 +165,61 @@
             limit #{param.skip},#{param.size}
         </if>
     </sql>
+    <sql id="commonQueryObjectListByParam">
+        SELECT DISTINCT SQL_CALC_FOUND_ROWS
+        dto.*,
+        JSON_ARRAYAGG( dtr.obj_from ) AS objFromIds,
+        JSON_ARRAYAGG( dtr.obj_to ) AS objToIds
+        FROM
+        dt_object AS dto
+        INNER JOIN ( SELECT * FROM dt_relation AS dtrA WHERE 1=1
+        <if test="null!=param.relId and param.relId.length>0">
+            AND (dtrA.obj_from = #{param.relId} OR dtrA.obj_to=#{param.relId})
+        </if>
+        <if test="null!=param.projectId and param.projectId.length>0">
+            AND dtrA.project_id = #{param.projectId}
+        </if>
+        <if test="null!=param.relCode and param.relCode.length>0">
+            AND dtrA.rel_code = #{param.relCode}
+        </if>
+        <if test="null!=param.groupCode and param.groupCode.length>0">
+            AND dtrA.group_code = #{param.groupCode}
+        </if>
+        ) AS dtr ON (dtr.obj_to = dto.id OR dtr.obj_from = dto.id)
+        <include refid="commonQueryObjectListByParamDtObjectWhereCondition">
+            <property name="param" value="#{param}"/>
+        </include>
+
+
+    </sql>
+    <sql id="commonQueryObjectListByParamDtObjectWhereCondition">
+        WHERE
+        1 = 1
+        <if test="null!=param.projectId and param.projectId.length>0">
+            AND dto.project_id = #{param.projectId}
+        </if>
+        <if test="null!=param.objType and param.objType.length>0">
+            AND dto.obj_type = #{param.objType}
+        </if>
+        <if test="null!=param.keyword and param.keyword.length>0">
+            AND dto.local_name LIKE CONCAT('%',#{param.keyword},'%')
+        </if>
+        <if test="null!=param.groupCode and param.groupCode.length>0">
+            AND dto.group_code = #{param.groupCode}
+        </if>
+        AND dto.valid = TRUE
+    </sql>
+    <sql id="commonQueryObjectListByParamSuffix">
+        GROUP BY
+        dto.id
+        <include refid="pageSet">
+            <property name="param" value="#{param}"/>
+        </include>
+        ;
+        SELECT
+        FOUND_ROWS( ) AS totalCount;
+    </sql>
+
 
     <select id="queryObjectDigitalsByProjectId" resultMap="BaseResultMap,count">
         SELECT DISTINCT SQL_CALC_FOUND_ROWS
@@ -196,36 +251,41 @@
         SELECT FOUND_ROWS()	AS totalCount;
     </select>
     <select id="queryObjectListByFloorIdAndRoomFuncType" resultMap="BaseResultMap,count">
-       SELECT DISTINCT
-            dto.*,
-            JSON_ARRAYAGG( dtr.obj_from ) AS objFromIds,
-            JSON_ARRAYAGG( dtr.obj_to ) AS objToIds
-        FROM
-            dt_object AS dto
-            INNER JOIN ( SELECT * FROM dt_relation AS dtrA WHERE 1=1
-        <if test="null!=param.floorId and param.floorId.length>0">
-            AND dtrA.obj_from = #{param.floorId}
-        </if>
-        <if test="null!=param.projectId and param.projectId.length>0">
-            AND dtrA.project_id = #{param.projectId}
-        </if>
-        <if test="null!=param.relCode and param.relCode.length>0">
-            AND dtrA.rel_code = #{param.relCode}
+        <include refid="commonQueryObjectListByParam">
+            <property name="param" value="#{param}"/>
+        </include>
+        <if test="null!=param.roomFuncType and param.roomFuncType.length>0">
+            AND JSON_UNQUOTE(JSON_EXTRACT(dto.infos, '$.roomFuncType'))=#{param.roomFuncType}
         </if>
-        ) AS dtr ON dtr.obj_to = dto.id
-        WHERE
-            1 = 1
-        <if test="null!=param.projectId and param.projectId.length>0">
-            AND dto.obj_from = #{param.projectId}
+        <include refid="commonQueryObjectListByParamSuffix">
+            <property name="param" value="#{param}"/>
+        </include>
+    </select>
+    <select id="queryObjectListByRelIdAndClassCode" resultMap="BaseResultMap,count">
+        <include refid="commonQueryObjectListByParam">
+            <property name="param" value="#{param}"/>
+        </include>
+        <if test="null!=param.classCode and param.classCode.length>0">
+            AND dto.class_code=#{param.classCode}
         </if>
-        <if test="null!=param.objType and param.objType.length>0">
-            AND dto.obj_type = #{param.objType}
+        <include refid="commonQueryObjectListByParamSuffix">
+            <property name="param" value="#{param}"/>
+        </include>
+    </select>
+    <select id="queryEquipListByClassCode" resultMap="BaseResultMap,count">
+        SELECT DISTINCT SQL_CALC_FOUND_ROWS
+        dto.*
+        FROM
+        dt_object AS dto
+        <include refid="commonQueryObjectListByParamDtObjectWhereCondition">
+            <property name="param" value="#{param}"/>
+        </include>
+        <if test="null!=param.classCode and param.classCode.length>0">
+            AND dto.class_code LIKE CONCAT(#{param.classCode},'%')
         </if>
-            AND dto.valid = TRUE
-        GROUP BY
-            dto.id;
-        SELECT
-            FOUND_ROWS( ) AS totalCount;
+        <include refid="commonQueryObjectListByParamSuffix">
+            <property name="param" value="#{param}"/>
+        </include>
     </select>
 
 

+ 199 - 1
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/basic/dto/RequestData.java

@@ -1,10 +1,20 @@
 package com.persagy.dmp.basic.dto;
 
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.fasterxml.jackson.annotation.JsonAlias;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.persagy.dmp.basic.validations.QueryClassCodeVadition;
+import com.persagy.dmp.basic.validations.QueryFloorIdVadition;
+import com.persagy.dmp.basic.validations.QuerySpaceIdVadition;
+import com.persagy.dmp.basic.validations.QuerySystemIdVadition;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import javax.validation.constraints.NotBlank;
+import java.util.List;
 import java.util.Set;
 
 /***
@@ -19,10 +29,198 @@ import java.util.Set;
 @AllArgsConstructor
 public class RequestData {
 
+    /** 安装位置 */
+    public static final String INSTALL_LOCATION_HUM = "installLocation";
+    /** 生产厂家 */
+    public static final String MANUFACTURER = "manufacturer";
+    /** 设备状态 */
+    public static final String EQUIP_STATUS_HUM = "equipStatus";
+    /** 维保单位名称 */
+    public static final String WARRANTER = "warranter";
+
     /**账号id*/
+    @JsonAlias({"user_id"})
+    @JsonProperty("userId")
+    @JSONField(name = "userId",alternateNames = {"user_id"})
     private String userId;
     /**管理分区id*/
+    @JsonAlias({"group_manage_zone_ids"})
+    @JsonProperty("groupManageZoneIds")
+    @JSONField(name = "groupManageZoneIds",alternateNames = {"group_manage_zone_ids"})
     private Set<String> groupManageZoneIds;
-
+    /** 分页页码,从 1 开始 */
+    @JsonAlias({"page"})
+    @JsonProperty("page")
+    @JSONField(name = "page",alternateNames = {"page"})
+    private Long page;
+    /** 每页行数 */
+    @JsonAlias({"page_size","size","pageSize"})
+    @JsonProperty("size")
+    @JSONField(name = "size",alternateNames = {"page_size","size","pageSize"})
+    private Long size;
+    /** 筛选关键字,本地名称筛选 */
+    @JsonAlias({"keyword"})
+    @JsonProperty("keyword")
+    @JSONField(name = "keyword",alternateNames = {"keyword"})
+    private String keyword;
+    /** 是否只统计总数 */
+    @JsonAlias({"only_count","onlyCount"})
+    @JsonProperty("onlyCount")
+    @JSONField(name = "onlyCount",alternateNames = {"only_count","onlyCount"})
+    private boolean onlyCount = false;
+    /** 创建时间筛选范围 */
+    @JsonAlias({"ctime","createTimeScope"})
+    @JsonProperty("createTimeScope")
+    @JSONField(name = "createTimeScope",alternateNames = {"ctime","createTimeScope"})
+    private TimeScope createTimeScope;
+    /** 返回信息点过滤,仅过滤infos内的信息点,基础信息点不过滤 */
+    @JsonAlias({"return_infos","returnInfos"})
+    @JsonProperty("returnInfos")
+    @JSONField(name = "returnInfos",alternateNames = {"return_infos","returnInfos"})
+    private Set<String> returnInfos;
+    /** 查询有效数据,true,false */
+    @JsonAlias({"valid_set","validSet"})
+    @JsonProperty("validSet")
+    @JSONField(name = "validSet",alternateNames = {"valid_set","validSet"})
+    private Set<Integer> validSet;
+    /** 集团编码 */
+    @JsonAlias({"group_code","groupCode"})
+    @JsonProperty("groupCode")
+    @JSONField(name = "groupCode",alternateNames = {"group_code","groupCode"})
+    private String groupCode;
+    /** 项目id */
+    @JsonAlias({"project_id","projectId"})
+    @JsonProperty("projectId")
+    @JSONField(name = "projectId",alternateNames = {"project_id","projectId"})
+    private String projectId;
+    /** 建筑id */
+    @JsonAlias({"building_id","buildingId"})
+    @JsonProperty("buildingId")
+    @JSONField(name = "buildingId",alternateNames = {"building_id","buildingId"})
+    private String buildingId;
+    /** 楼层id */
+    @JsonAlias({"floor_id","floorId"})
+    @JsonProperty("floorId")
+    @JSONField(name = "floorId",alternateNames = {"floor_id","floorId"})
+    @NotBlank(message = "缺少必填项:楼层id", groups = {QueryFloorIdVadition.class})
+    private String floorId;
+    /** 楼层id */
+    @JsonAlias({"space_id","spaceId"})
+    @JsonProperty("spaceId")
+    @JSONField(name = "spaceId",alternateNames = {"space_id","spaceId"})
+    @NotBlank(message = "缺少必填项:空间id", groups = {QuerySpaceIdVadition.class})
+    private String spaceId;
+    /** 系统id */
+    @JsonAlias({"system_id","systemId"})
+    @JsonProperty("systemId")
+    @JSONField(name = "systemId",alternateNames = {"system_id","systemId"})
+    @NotBlank(message = "缺少必填项:空间id", groups = {QuerySystemIdVadition.class})
+    private String systemId;
+    /** 空间功能类型 */
+    @JsonAlias({"room_func_type","roomFuncType"})
+    @JsonProperty("roomFuncType")
+    @JSONField(name = "roomFuncType",alternateNames = {"room_func_type","roomFuncType"})
+    private String roomFuncType;
+    /** 对象类型 */
+    @JsonAlias({"class_code","classCode"})
+    @JsonProperty("classCode")
+    @JSONField(name = "classCode",alternateNames = {"class_code","classCode"})
+    @NotBlank(message = "缺少必填项:对象类型",groups = {QueryClassCodeVadition.class})
+    private String classCode;
+    /** 对象关系id */
+    @JsonAlias({"rel_id","relId"})
+    @JsonProperty("relId")
+    @JSONField(name = "relId",alternateNames = {"rel_id","relId"})
+    private String relId;
+    /** 关系Code */
+    @JsonAlias({"rel_code","relCode"})
+    @JsonProperty("relCode")
+    @JSONField(name = "relCode",alternateNames = {"rel_code","relCode"})
+    private String relCode;
+    /** 对象分类 */
+    @JsonAlias({"obj_type","objType"})
+    @JsonProperty("objType")
+    @JSONField(name = "objType",alternateNames = {"obj_type","objType"})
+    private String objType;
+    /** 设备id */
+    @JsonAlias({"equipment_id","equipmentId"})
+    @JsonProperty("equipmentId")
+    @JSONField(name = "equipmentId",alternateNames = {"equipment_id","equipmentId"})
+    private String equipmentId;
+    /** 对象类型数组 */
+    @JsonAlias({"class_codes","classCodes"})
+    @JsonProperty("classCodes")
+    @JSONField(name = "classCodes",alternateNames = {"class_codes","classCodes"})
+    private Set<String> classCodes;
+    /** 对象分类数组 */
+    @JsonAlias({"obj_types","objTypes"})
+    @JsonProperty("objTypes")
+    @JSONField(name = "objTypes",alternateNames = {"obj_types","objTypes"})
+    private Set<String> objTypes;
+    /** 跳跃条数 */
+    @JsonAlias({"skip"})
+    @JsonProperty("skip")
+    @JSONField(name = "skip",alternateNames = {"skip"})
+    private Long skip;
+    /** 关系code数组 */
+    @JsonAlias({"relCodes","rel_codes"})
+    @JsonProperty("relCodes")
+    @JSONField(name = "relCodes",alternateNames = {"relCodes","rel_codes"})
+    private Set<String> relCodes;
+    /** 查询部件标记,true-查询,false-不查询 */
+    @JsonAlias({"queryEcFlag","query_ec_flag"})
+    @JsonProperty("queryEcFlag")
+    @JSONField(name = "queryEcFlag",alternateNames = {"queryEcFlag","query_ec_flag"})
+    private Boolean queryEcFlag=false;
+    /** 部件关系码 */
+    @JsonAlias({"ecRelCodes","ec_rel_codes"})
+    @JsonProperty("ecRelCodes")
+    @JSONField(name = "ecRelCodes",alternateNames = {"ecRelCodes","ec_rel_codes"})
+    private Set<String> ecRelCodes;
+    /** 过滤的对象id */
+    @JsonAlias({"filterObjId","filter_obj_id"})
+    @JsonProperty("filterObjId")
+    @JSONField(name = "filterObjId",alternateNames = {"filterObjId","filter_obj_id"})
+    private String filterObjId;
+    /** 安装位置 */
+    @JsonAlias({"installLocation","install_location"})
+    @JsonProperty("installLocation")
+    @JSONField(name = "installLocation",alternateNames = {"installLocation","install_location"})
+    private String installLocation;
+    /** 生产厂家 */
+    @JsonAlias({"manufacturer"})
+    @JsonProperty("manufacturer")
+    @JSONField(name = "manufacturer",alternateNames = {"manufacturer","manufacturer"})
+    private String manufacturer;
+    /** 维保单位名称 */
+    @JsonAlias({"warranter"})
+    @JsonProperty("warranter")
+    @JSONField(name = "warranter",alternateNames = {"warranter"})
+    private String warranter;
+    /** 设备状态 */
+    @JsonAlias({"equipStatus","equip_status"})
+    @JsonProperty("equipStatus")
+    @JSONField(name = "equipStatus",alternateNames = {"equip_status","equipStatus"})
+    private String equipStatus;
+    /** 排序条件 */
+    @JsonAlias({"orders"})
+    @JsonProperty("orders")
+    @JSONField(name = "orders",alternateNames = {"orders"})
+    private List<OrderItem> orders;
+    /** 码表数据code */
+    @JsonAlias({"codes"})
+    @JsonProperty("codes")
+    @JSONField(name = "codes",alternateNames = {"codes"})
+    private Set<String> codes;
+    /** 码表数据code */
+    @JsonAlias({"parentCode","parent_code"})
+    @JsonProperty("parentCode")
+    @JSONField(name = "parentCode",alternateNames = {"parentCode","parent_code"})
+    private String parentCode;
+    /** 码表类型 */
+    @JsonAlias({"typeCode","type_code"})
+    @JsonProperty("typeCode")
+    @JSONField(name = "typeCode",alternateNames = {"typeCode","type_code"})
+    private String typeCode;
 
 }

+ 1 - 1
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/basic/dto/TimeScope.java

@@ -1,4 +1,4 @@
-package com.persagy.dmp.rwd.basic.dto;
+package com.persagy.dmp.basic.dto;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import com.fasterxml.jackson.annotation.JsonAlias;

+ 89 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/basic/model/CodeTableTypeEnum.java

@@ -0,0 +1,89 @@
+package com.persagy.dmp.basic.model;
+
+import lombok.Getter;
+
+/***
+ * Description: 码表类型
+ * @author : lijie
+ * @date :2021/8/31 10:17
+ * Update By lijie 2021/8/31 10:17
+ */
+@Getter
+public enum CodeTableTypeEnum {
+
+    /**省市信息-geography*/
+    GEOGRAPHY("geography", "省市信息"),
+    /**设备类型-equipment_all*/
+    EQUIPMENT_ALL("equipment_all", "设备类型"),
+    /**种族类型-equipment_family*/
+    EQUIPMENT_FAMILY("equipment_family", "种族类型"),
+    /**气候区-climate*/
+    CLIMATE("climate", "气候区"),
+    /**发展水平-develop*/
+    DEVELOP("develop", "发展水平"),
+    /**天气状态-weather*/
+    WEATHER("weather", "天气状态"),
+    /**空气风力等级-wind*/
+    WIND("wind", "空气风力等级"),
+    /**方位信息-direction*/
+    DIRECTION("direction", "方位信息"),
+    /**建筑功能类型-building*/
+    BUILDING("building", "建筑功能类型"),
+    /**空间功能类型-space*/
+    SPACE("space", "空间功能类型"),
+    /**租赁业态-rental*/
+    RENTAL("rental", "租赁业态"),
+    /**防尘等级-dustproof*/
+    DUSTPROOF("dustproof", "防尘等级"),
+    /**防水等级-waterproof*/
+    WATERPROOF("waterproof", "防水等级"),
+    /**防爆设备类型-explosionproof_equipment*/
+    EXPLOSIONPROOF_EQUIPMENT("explosionproof_equipment", "防爆设备类型"),
+    /**防爆类型-explosionproof_type*/
+    EXPLOSIONPROOF_TYPE("explosionproof_type", "防爆类型"),
+    /**危险区域等级-danger*/
+    DANGER("danger", "危险区域等级"),
+    /**气体类型和温度类型-gas_temperature*/
+    GAS_TEMPERATURE("gas_temperature", "气体类型和温度类型"),
+    /**污染等级-pollution_level*/
+    POLLUTION_LEVEL("pollution_level", "污染等级"),
+    /**污秽等级-contamination_level*/
+    CONTAMINATION_LEVEL("contamination_level", "污秽等级"),
+    /**标准分项-standard_energy_item*/
+    STANDARD_ENERGY_ITEM("standard_energy_item", "标准分项"),
+    /**抗震设防烈度-seismic_precautionary_intensity*/
+    SEISMIC_PRECAUTIONARY_INTENSITY("seismic_precautionary_intensity", "抗震设防烈度"),
+    /**虚拟对象类型-virtual_object*/
+    VIRTUAL_OBJECT("virtual_object", "虚拟对象类型"),
+    /**日历标签-calendar_tag*/
+    CALENDAR_TAG("calendar_tag", "日历标签"),
+    /**日历时间段-calendar_interval*/
+    CALENDAR_INTERVAL("calendar_interval", "日历时间段"),
+    /**耗材编码-consumable_all*/
+    CONSUMABLE_ALL("consumable_all", "耗材编码"),
+    /**工具编码-tool_all*/
+    TOOL_ALL("tool_all", "工具编码");
+
+    private String index;
+    private String name;
+
+    CodeTableTypeEnum(String index, String name) {
+        this.index = index;
+        this.name = name;
+    }
+
+    /**
+     * 通过Index查找
+     * @param index
+     * @return
+     */
+    public static CodeTableTypeEnum findByIndex(String index) {
+        CodeTableTypeEnum[] values = CodeTableTypeEnum.values();
+        for(CodeTableTypeEnum value:values) {
+            if(value.getIndex().equalsIgnoreCase(index)) {
+                return value;
+            }
+        }
+        return null;
+    }
+}

+ 6 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/basic/validations/QueryClassCodeVadition.java

@@ -0,0 +1,6 @@
+package com.persagy.dmp.basic.validations;
+
+import javax.validation.groups.Default;
+
+public interface QueryClassCodeVadition extends Default {
+}

+ 6 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/basic/validations/QueryFloorIdVadition.java

@@ -0,0 +1,6 @@
+package com.persagy.dmp.basic.validations;
+
+import javax.validation.groups.Default;
+
+public interface QueryFloorIdVadition extends Default {
+}

+ 6 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/basic/validations/QuerySpaceIdVadition.java

@@ -0,0 +1,6 @@
+package com.persagy.dmp.basic.validations;
+
+import javax.validation.groups.Default;
+
+public interface QuerySpaceIdVadition extends Default {
+}

+ 6 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/basic/validations/QuerySystemIdVadition.java

@@ -0,0 +1,6 @@
+package com.persagy.dmp.basic.validations;
+
+import javax.validation.groups.Default;
+
+public interface QuerySystemIdVadition extends Default {
+}

+ 68 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/codetable/client/CodeTableDataClient.java

@@ -0,0 +1,68 @@
+package com.persagy.dmp.codetable.client;
+
+import com.persagy.dmp.basic.config.DigitalFeignConfig;
+import com.persagy.dmp.basic.dto.RequestData;
+import com.persagy.dmp.codetable.entity.CodeTableData;
+import com.persagy.dmp.common.model.response.CommonResult;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+@FeignClient(name = "dmp-dic", configuration = DigitalFeignConfig.class,
+        url = "${persagy.bdtp.dic.service:}",path = "/dic/code")
+public interface CodeTableDataClient {
+
+    /**
+     * 根据码表类型查询所有字典数据
+     * @param groupCode 集团编码
+     * @param projectId 项目ID
+     * @param appId 应用ID
+     * @param userId 用户ID
+     * @param typeCode 码表类型编码
+     * @return List<CodeTableData>
+     */
+    @PostMapping("/queryAll/{typeCode}")
+    CommonResult<List<CodeTableData>> queryCodeTableDetailListByTypeCode(
+            @RequestParam("groupCode") String groupCode,
+            @RequestParam("projectId") String projectId,
+            @RequestParam("appId") String appId,
+            @RequestParam("userId") String userId,
+            @PathVariable String typeCode);
+    /**
+     * 根据码表类型及码表数据code查询字典详情
+     * @param groupCode 集团编码
+     * @param projectId 项目ID
+     * @param appId 应用ID
+     * @param userId 用户ID
+     * @param requestData 请求参数
+     * @return List<CodeTableData>
+     */
+    @PostMapping("/queryCodeTableDatasByTypeCodeAndCodes")
+    CommonResult<List<CodeTableData>> queryCodeTableDatasByTypeCodeAndCodes(
+            @RequestParam("groupCode") String groupCode,
+            @RequestParam("projectId") String projectId,
+            @RequestParam("appId") String appId,
+            @RequestParam("userId") String userId,
+            @RequestBody RequestData requestData);
+    /**
+     * 根据码表类型及父码表code查询其下的码表数据
+     * @param groupCode 集团编码
+     * @param projectId 项目ID
+     * @param appId 应用ID
+     * @param userId 用户ID
+     * @param requestData 请求参数
+     * @return List<CodeTableData>
+     */
+    @PostMapping("/queryCodeTableDatasByParentCode")
+    CommonResult<List<CodeTableData>> queryCodeTableDatasByParentCode(
+            @RequestParam("groupCode") String groupCode,
+            @RequestParam("projectId") String projectId,
+            @RequestParam("appId") String appId,
+            @RequestParam("userId") String userId,
+            @RequestBody RequestData requestData);
+
+}

+ 70 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/codetable/client/CodeTableDataFacade.java

@@ -0,0 +1,70 @@
+package com.persagy.dmp.codetable.client;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.persagy.dmp.basic.dto.RequestData;
+import com.persagy.dmp.basic.model.QueryCriteria;
+import com.persagy.dmp.codetable.entity.CodeTableData;
+import com.persagy.dmp.common.model.response.CommonResult;
+import com.persagy.dmp.common.utils.ResultHelper;
+import com.persagy.dmp.define.client.DigitalDefineClient;
+import com.persagy.dmp.define.entity.ObjectTypeDefine;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * 数据字典Client门面
+ * @author Charlie Yu
+ * @date 2021-05-15
+ */
+public class CodeTableDataFacade {
+
+    private static CodeTableDataClient client = SpringUtil.getBean(CodeTableDataClient.class);
+
+    /**
+     * 根据码表类型查询所有字典数据
+     * @param groupCode 集团编码
+     * @param projectId 项目ID
+     * @param appId 应用ID
+     * @param userId 用户ID
+     * @param typeCode 码表类型编码
+     * @return List<CodeTableData>
+     */
+    public static List<CodeTableData> queryCodeTableDetailListByTypeCode(
+            String groupCode, String projectId, String appId, String userId, String typeCode){
+        CommonResult<List<CodeTableData>> result = client.queryCodeTableDetailListByTypeCode(groupCode, projectId, appId, userId, typeCode);
+        return ResultHelper.getContent(result);
+    }
+
+    /**
+     * 根据码表类型及码表数据code查询字典详情
+     * @param groupCode 集团编码
+     * @param projectId 项目ID
+     * @param appId 应用ID
+     * @param userId 用户ID
+     * @param requestData 请求参数
+     * @return List<CodeTableData>
+     */
+    public static List<CodeTableData> queryCodeTableDatasByTypeCodeAndCodes(
+            String groupCode, String projectId, String appId, String userId, RequestData requestData){
+        CommonResult<List<CodeTableData>> result = client
+                .queryCodeTableDatasByTypeCodeAndCodes(groupCode, projectId, appId, userId, requestData);
+        return ResultHelper.getContent(result);
+    }
+    /**
+     * 根据码表类型及父码表code查询其下的码表数据
+     * @param groupCode 集团编码
+     * @param projectId 项目ID
+     * @param appId 应用ID
+     * @param userId 用户ID
+     * @param requestData 请求参数
+     * @return List<CodeTableData>
+     */
+    public static List<CodeTableData> queryCodeTableDatasByParentCode(
+            String groupCode, String projectId, String appId, String userId, RequestData requestData){
+        CommonResult<List<CodeTableData>> result = client
+                .queryCodeTableDatasByParentCode(groupCode, projectId, appId, userId, requestData);
+        return ResultHelper.getContent(result);
+    }
+}

dmp-business/dmp-dic/src/main/java/com/persagy/dmp/codetable/entity/CodeTableData.java → dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/codetable/entity/CodeTableData.java


dmp-business/dmp-dic/src/main/java/com/persagy/dmp/codetable/entity/CodeTableType.java → dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/codetable/entity/CodeTableType.java


+ 0 - 16
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/define/client/DigitalDefineClient.java

@@ -36,20 +36,4 @@ public interface DigitalDefineClient {
             @RequestParam("appId") String appId,
             @RequestParam("userId") String userId,
             @RequestBody QueryCriteria criteria);
-    /**
-     * 查询类型定义
-     * @param groupCode 集团编码
-     * @param projectId 项目ID
-     * @param appId 应用ID
-     * @param userId 用户ID
-     * @param criteria 查询条件
-     * @return 类型定义
-     */
-    @PostMapping("/rwd/instance/object/batchQueryProjectByGroupManageZoneIds")
-    CommonResult<List<ObjectDigital>> batchQueryProjectByGroupManageZoneIds(
-            @RequestParam("groupCode") String groupCode,
-            @RequestParam("projectId") String projectId,
-            @RequestParam("appId") String appId,
-            @RequestParam("userId") String userId,
-            @RequestBody QueryCriteria criteria);
 }

+ 8 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/entity/ObjectDigital.java

@@ -29,6 +29,14 @@ public class ObjectDigital extends AuditableEntity {
     public static final String EXTRA_COLUMN = "infos";
     /** 扩展属性列 */
     public static final String OBJ_TYPE = "obj_type";
+    /** 扩展属性列 */
+    public static final String OBJ_TYPE_HUM = "objType";
+    /** 对象类型 */
+    public static final String CLASS_CODE = "class_code";
+    /** 对象类型 */
+    public static final String CLASS_CODE_HUM = "class_code";
+    /** 对象本地名称 */
+    public static final String LOCAL_NAME_HUM = "localName";
 
     /** 项目ID */
     private String projectId;

+ 5 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/entity/ObjectRelation.java

@@ -20,6 +20,11 @@ public class ObjectRelation extends AuditableEntity {
 
     public static final String OBJ_FROM="obj_from";
     public static final String OBJ_TO="obj_to";
+    public static final String REL_CODE_HUM="relCode";
+    public static final String OBJ_FROM_HUM="objFrom";
+    public static final String OBJ_TO_HUM="objTo";
+    public static final String RELATION_TO_HUM="relationTo";
+    public static final String RELATION_FROM_HUM="relationFrom";
 
     /** 项目ID */
     private String projectId;