Browse Source

实现接口queryEquipListByConditions

lijie 3 years ago
parent
commit
dac3b907c5

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

@@ -1,6 +1,7 @@
 package com.persagy.dmp.rwd.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.rwd.basic.validations.QueryClassCodeVadition;
@@ -13,6 +14,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import javax.validation.constraints.NotBlank;
+import java.util.List;
 import java.util.Set;
 
 /***
@@ -27,6 +29,15 @@ 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")
@@ -166,5 +177,30 @@ public class RequestData {
     @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;
 
 }

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

@@ -1,23 +1,30 @@
 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.netflix.discovery.CommonConstants;
 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.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.constant.DigitalRelCode;
 import com.persagy.dmp.rwd.basic.dto.RequestData;
 import com.persagy.dmp.rwd.basic.validations.QueryClassCodeVadition;
 import com.persagy.dmp.rwd.basic.validations.QueryFloorIdVadition;
@@ -265,8 +272,64 @@ public class ObjectDigitalController{
         requestData.setProjectId(AppContext.getContext().getProjectId());
         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());
+        }
+        queryCriteria.setCriteria(objectNode);
+        return query(queryCriteria);
+    }
 
 
     /**

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

@@ -29,6 +29,10 @@ public class ObjectDigital extends AuditableEntity {
     public static final String EXTRA_COLUMN = "infos";
     /** 扩展属性列 */
     public static final String OBJ_TYPE = "obj_type";
+    /** 对象类型 */
+    public static final String CLASS_CODE = "class_code";
+    /** 对象类型 */
+    public static final String CLASS_CODE_HUM = "class_code";
 
     /** 项目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;