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.digital.domain.CalculatingDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * 对象数据 DAO
 * @author Charlie Yu
 * @date 2021-07-08
 */
public interface ObjectDigitalMapper extends BaseMapper<ObjectDigital> {
    /***
     * Description: 根据项目id查询对象列表
     * @param requestData : 请求参数
     * @param skip
     * @param size
     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
     * @author : lijie
     * @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);
    /***
     * Description: 根据上级id查询对象列表
     * @param requestData : 请求参数
     * @return : java.util.List<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
     * @author : lijie
     * @date :2021/8/25 9:49
     * Update By lijie 2021/8/25 9:49
     */
    List<List<ObjectDigital>> queryObjectListBySuperiorId(@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 10:26
     * 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);
    /***
     * Description: 根据id,localId,name,localName,CADID及关系类型信息,对象分类信息创建关系
     * @param requestData : 请求参数
     * @return : java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>  
     * @author : lijie
     * @date :2021/9/2 21:43
     * Update By lijie 2021/9/2 21:43
     */
    List<ObjectDigital> queryObjectListByIdOrNameOrCadId(@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 9:41
     * Update By lijie 2021/8/30 9:41
     */
    List<List<ObjectDigital>> queryObjectListByGraphCodeAndRelCode(@Param("param") RequestData requestData);
    /***
     * Description: 查询去向数据
     * @param toIds : 去向id数组
     * @param toObjType : 去向对象分类
     * @param toInfoCode : 去向信息点code
     * @param calculatingDTO : 请求参数
     * @return : java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>
     * @author : lijie
     * @date :2021/9/11 18:23
     * Update By lijie 2021/9/11 18:23
     */
    List<ObjectDigital> queryToData(@Param("toIds") Set<String> toIds,@Param("toObjType") String toObjType,
                                    @Param("toInfoCode") String toInfoCode, @Param("param") CalculatingDTO calculatingDTO);
    /***
     * Description: 查询来源数据
     * @param fromIds : 来源id集合
     * @param fromObjType : 来源对象分类
     * @param fromInfoCode : 来源信息点
     * @param calculatingDTO : 请求参数
     * @return : java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>
     * @author : lijie
     * @date :2021/9/11 18:55
     * Update By lijie 2021/9/11 18:55
     */
    List<ObjectDigital> queryFromData(@Param("fromIds") Set<String> fromIds,@Param("fromObjType") String fromObjType,
                                      @Param("fromInfoCode")  String fromInfoCode, @Param("param") CalculatingDTO calculatingDTO);
    /***
     * Description: 根据对象id批量查询对象
     * @param objIds : 对象id
     * @return : java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>  
     * @author : lijie
     * @date :2021/9/27 18:27
     * Update By lijie 2021/9/27 18:27
     */
    List<ObjectDigital> queryObjectListByIds(@Param("objIds") Set<String> objIds);
}
