Browse Source

实现接口queryEquipListBySpaceIdAndClassCode

lijie 3 years ago
parent
commit
e4343ae4e6

+ 19 - 2
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/basic/dto/RequestData.java

@@ -3,7 +3,8 @@ 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 com.persagy.dmp.rwd.basic.validations.QueryFloorIdVadition;
+import com.persagy.dmp.rwd.basic.validations.QuerySpaceIdVadition;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -83,13 +84,29 @@ public class RequestData {
     @JsonAlias({"floor_id","floorId"})
     @JsonProperty("floorId")
     @JSONField(name = "floorId",alternateNames = {"floor_id","floorId"})
-    @NotBlank(message = "缺少必填项:空间id", groups = {QueryVadition.class})
+    @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;
     /** 空间功能类型 */
     @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"})
+    private String classCode;
+    /** 对象类型 */
+    @JsonAlias({"rel_id","relId"})
+    @JsonProperty("relId")
+    @JSONField(name = "relId",alternateNames = {"rel_id","relId"})
+    private String relId;
     /** 关系Code */
     @JsonAlias({"rel_code","relCode"})
     @JsonProperty("relCode")

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

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

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

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

+ 18 - 2
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/controller/ObjectDigitalController.java

@@ -19,7 +19,8 @@ import com.persagy.dmp.digital.entity.ObjectDigital;
 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.validations.QueryFloorIdVadition;
+import com.persagy.dmp.rwd.basic.validations.QuerySpaceIdVadition;
 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,12 +208,27 @@ 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);
         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);
+        return service.queryEquipListBySpaceIdAndClassCode(requestData);
+    }
 
 
 

+ 9 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/dao/ObjectDigitalMapper.java

@@ -42,4 +42,13 @@ 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>> queryObjectListBySpaceIdAndClassCode(@Param("param") RequestData requestData);
 }

+ 9 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/IObjectDigitalService.java

@@ -91,4 +91,13 @@ 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);
 }

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

@@ -224,10 +224,31 @@ 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.使用Fl2Sp关系查询楼层下的空间
+        requestData.setRelCode(DigitalRelCode.EQ_2_SP.getIndex());
+        requestData.setObjType(DigitalObjectType.EQUIPMENT.getIndex());
+        requestData.setRelId(requestData.getSpaceId());
+        List<List<ObjectDigital>> dataResult = objectDigitalMapper.queryObjectListBySpaceIdAndClassCode(requestData);
+        return commonAnalysisPageResult(dataResult);
+    }
+
+    /***
      * Description: 通用处理分页数据方法
      * @param dataResult : 分页数据
      * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>

+ 59 - 30
dmp-business/dmp-rwd/src/main/resources/mapper/ObjectDigitalMapper.xml

@@ -165,6 +165,39 @@
             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>
+        ) AS dtr ON (dtr.obj_to = dto.id OR dtr.obj_from = dto.id)
+        WHERE
+        1 = 1
+        <if test="null!=param.projectId and param.projectId.length>0">
+            AND dto.obj_from = #{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>
+        AND dto.valid = TRUE
+
+    </sql>
+
 
     <select id="queryObjectDigitalsByProjectId" resultMap="BaseResultMap,count">
         SELECT DISTINCT SQL_CALC_FOUND_ROWS
@@ -196,43 +229,39 @@
         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}
-        </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}
-        </if>
-        <if test="null!=param.objType and param.objType.length>0">
-            AND dto.obj_type = #{param.objType}
-        </if>
+        <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>
-        <if test="null!=param.keyword and param.keyword.length>0">
-            AND dto.local_name LIKE CONCAT('%',#{param.keyword},'%')
-        </if>
-            AND dto.valid = TRUE
         GROUP BY
-            dto.id;
+            dto.id
+        <include refid="pageSet">
+            <property name="param" value="#{param}"/>
+        </include>
+        ;
         SELECT
             FOUND_ROWS( ) AS totalCount;
     </select>
+    <select id="queryObjectListBySpaceIdAndClassCode" 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>
+        GROUP BY
+        dto.id
+        <include refid="pageSet">
+            <property name="param" value="#{param}"/>
+        </include>
+        ;
+        SELECT
+        FOUND_ROWS( ) AS totalCount;
+    </select>
+
+
 
 
 </mapper>