Browse Source

修复queryObjectListSuperiorId接口可以查询到关系已删除的bug
修复queryEquipListByConditions接口新增projectIds筛选条件

lijie 3 years ago
parent
commit
7ca168788f

+ 23 - 4
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/controller/ObjectDigitalController.java

@@ -4,10 +4,12 @@ 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.core.JsonProcessingException;
 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.mysql.cj.xdevapi.JsonArray;
 import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.basic.model.QueryOperator;
@@ -42,6 +44,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -60,16 +63,27 @@ public class ObjectDigitalController{
 
     @PostMapping("/query")
     @Deprecated
-    public CommonResult<List<ObjectNode>> query(@RequestBody QueryCriteria criteria) {
+    public CommonResult<List<ObjectNode>> query(@RequestBody QueryCriteria criteria) throws IOException {
         if(criteria == null) {
             throw new BusinessException(ResponseCode.A0400.getCode(), ResponseCode.A0400.getDesc());
         }
         //基础参数校验
         ParamCheckUtil.checkParam(CommonConstant.QUERY_GROUPCODE);
-
+        // 增加判断传值项目id逻辑,2021年9月10日19:15:17
+        JsonNode projectNode = criteria.getCriteria().get(RequestData.PROJECT_IDS_HUM);
+        if (criteria.getCriteria().has(RequestData.PROJECT_IDS_HUM)){
+            criteria.getCriteria().remove(RequestData.PROJECT_IDS_HUM);
+        }
         QueryWrapper<ObjectDigital> wrapper = new QueryWrapper<>();
         // 添加所属项目条件
-        ConditionUtil.ensureProjectCriteriaDirectly(wrapper);
+        // ConditionUtil.ensureProjectCriteriaDirectly(wrapper);
+        String projectId = AppContext.getContext().getProjectId();
+
+        if (projectNode.isArray()){
+            wrapper.in(StrUtil.toUnderlineCase(AppContext.PROJECT_ID), JsonHelper.toMultiEntity(projectNode,String.class));
+        }else {
+            wrapper.eq(StrUtil.isNotBlank(projectId), StrUtil.toUnderlineCase(AppContext.PROJECT_ID), projectId);
+        }
         // 处理扩展条件
         ObjectDigitalCriteriaHelper.presetDigitalCriteria(criteria);
         // 转换查询条件
@@ -285,7 +299,7 @@ public class ObjectDigitalController{
      * Update By lijie 2021/8/30 9:41
      */
     @PostMapping("/queryEquipListByConditions")
-    public CommonResult<List<ObjectNode>> queryEquipListByConditions(@RequestBody RequestData requestData) {
+    public CommonResult<List<ObjectNode>> queryEquipListByConditions(@RequestBody RequestData requestData) throws IOException {
         // 暂时先拼接query接口参数进行查询,后续视情况再单独写逻辑
         ObjectMapper objectMapper = JsonHelper.objectMapper;
         QueryCriteria queryCriteria = new QueryCriteria();
@@ -337,6 +351,11 @@ public class ObjectDigitalController{
             keywordObj.put(QueryOperator.LIKE.getIndex(),requestData.getKeyword());
             objectNode.put(ObjectDigital.LOCAL_NAME_HUM,keywordObj);
         }
+        // 传值数组
+        if (CollUtil.isNotEmpty(requestData.getProjectIds())){
+            ArrayNode projectIdsNode = objectNode.putArray(RequestData.PROJECT_IDS_HUM);
+            requestData.getProjectIds().forEach(projectIdsNode::add);
+        }
         objectNode.put(ObjectDigital.OBJ_TYPE_HUM, DigitalObjectType.EQUIPMENT.getIndex());
         objectNode.put(ObjectDigital.PROP_VALID,Boolean.TRUE);
         queryCriteria.setCriteria(objectNode);

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

@@ -122,7 +122,7 @@
         dto.*,JSON_ARRAYAGG(dtr.obj_from) AS objFromIds,JSON_ARRAYAGG(dtr.obj_to) AS objToIds
         FROM dt_object AS dto
         LEFT JOIN (SELECT * FROM dt_relation AS dtrA WHERE dtrA.obj_to=#{param.filterObjId} OR
-        dtrA.obj_from=#{param.filterObjId}) AS dtr ON dtr.obj_to=dto.id
+        dtrA.obj_from=#{param.filterObjId} AND dtrA.valid=TRUE) AS dtr ON dtr.obj_to=dto.id
         WHERE 1=1 AND dtr.valid=TRUE
         <include refid="commonJoinQueryParam">
             <property name="param" value="#{param}"/>
@@ -132,7 +132,7 @@
         SELECT DISTINCT
         dto.*,JSON_ARRAYAGG(dtr.obj_from) AS objFromIds,JSON_ARRAYAGG(dtr.obj_to) AS objToIds
         FROM dt_object AS dto
-        LEFT JOIN (SELECT * FROM dt_relation AS dtrA WHERE dtrA.obj_to=#{param.filterObjId} OR dtrA.obj_from=#{param.filterObjId}) AS dtr ON dtr.obj_from=dto.id
+        LEFT JOIN (SELECT * FROM dt_relation AS dtrA WHERE dtrA.obj_to=#{param.filterObjId} OR dtrA.obj_from=#{param.filterObjId} AND dtrA.valid=TRUE) AS dtr ON dtr.obj_from=dto.id
         WHERE 1=1
         <include refid="commonJoinQueryParam">
             <property name="param" value="#{param}"/>
@@ -153,7 +153,7 @@
                 SELECT DISTINCT
                 dto.id
                 FROM dt_relation AS dtr
-                LEFT JOIN dt_object AS dto ON (dtr.obj_from=dto.id OR dtr.obj_to=dto.id)
+                LEFT JOIN dt_object AS dto ON (dtr.obj_from=dto.id OR dtr.obj_to=dto.id AND dtr.valid=TRUE)
                 WHERE 1=1
                 <include refid="commonJoinQueryParam">
                     <property name="param" value="#{param}"/>

+ 1 - 0
dmp-business/dmp-rwd/src/main/resources/mapper/ObjectRelationMapper.xml

@@ -203,6 +203,7 @@
         <if test="relCode!=null and relCode.length>0">
             AND dtr.rel_code = #{relCode}
         </if>
+        AND dtr.valid=TRUE
         GROUP BY dtr.obj_to;
     </select>
     <select id="selectRelCodesByObjIdsAndRelCodes" resultMap="ObjectDigitalResultMap">

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

@@ -39,6 +39,8 @@ public class RequestData {
     public static final String WARRANTER = "warranter";
     /** CADID图纸编码 */
     public static final String CAD_ID = "cadId";
+    /** 项目id数组 */
+    public static final String PROJECT_IDS_HUM = "projectIds";
 
     /**账号id*/
     @JsonAlias({"user_id"})
@@ -95,6 +97,11 @@ public class RequestData {
     @JsonProperty("projectId")
     @JSONField(name = "projectId",alternateNames = {"project_id","projectId"})
     private String projectId;
+    /** 项目id数组 */
+    @JsonAlias({"project_ids","projectIds"})
+    @JsonProperty("projectIds")
+    @JSONField(name = "projectIds",alternateNames = {"project_ids","projectIds"})
+    private Set<String> projectIds;
     /** 建筑id */
     @JsonAlias({"building_id","buildingId"})
     @JsonProperty("buildingId")