package com.ruoyi.ibs.grid.mapper;

import com.ruoyi.common.core.domain.entity.GridVirtualGrid;
import com.ruoyi.ibs.grid.domain.dto.virtual.VirtualGridSelectInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 虚拟网格Mapper接口
 * 
 * @author ruoyi
 * @date 2024-09-24
 */
public interface GridVirtualGridMapper 
{
    /**
     * 查询虚拟网格
     * 
     * @param gridId 虚拟网格主键
     * @return 虚拟网格
     */
    public GridVirtualGrid selectGridVirtualGridByGridId(Long gridId);

    /**
     * 查询虚拟网格列表
     * 
     * @param gridVirtualGrid 虚拟网格
     * @return 虚拟网格集合
     */
    public List<GridVirtualGrid> selectGridVirtualGridList(GridVirtualGrid gridVirtualGrid);

    /**
     * 新增虚拟网格
     * 
     * @param gridVirtualGrid 虚拟网格
     * @return 结果
     */
    public int insertGridVirtualGrid(GridVirtualGrid gridVirtualGrid);

    /**
     * 修改虚拟网格
     * 
     * @param gridVirtualGrid 虚拟网格
     * @return 结果
     */
    public int updateGridVirtualGrid(GridVirtualGrid gridVirtualGrid);

    /**
     * 查询虚拟网格列表
     *
     * @param virtualGridSelectInfo 虚拟网格
     * @return 虚拟网格集合
     */
    public List<VirtualGridSelectInfo> selectVirtualGridList(VirtualGridSelectInfo virtualGridSelectInfo);

    /**
     * 批量删除虚拟网格
     * 
     * @param gridIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteGridVirtualGridByGridIds(Long[] gridIds);

    /**
     * 查询网格名称
     *
     * @param gridId 需要删除的数据主键集合
     * @return 结果
     */
    public String selectVirtualNameByGridId(Long gridId);

    /**
     * 获取网格创建来源
     *
     * @param gridId 需要删除的数据主键集合
     * @return 结果
     */
    public String getGridCreateRole(Long gridId);

    /**
     * 查询虚拟网格责任类型
     *
     * @param gridId 数据主键集合
     * @return 结果
     */
    public String selectVirtualGridDutyType(Long gridId);

    /**
     * 根据机构获取虚拟网格数量
     *
     * @param headDeptId 数据主键集合
     * @return 结果
     */
    public Long getVirtualGridNumByDeptId(Long deptId);

    /**
     * 根据经理获取虚拟网格数量
     *
     * @param UserId 数据主键集合
     * @return 结果
     */
    public Long getVirtualGridNumByUserId(@Param("userName") String userName);

    /**
     * 查询虚拟网格客户类型
     *
     * @param gridId 数据主键集合
     * @return 结果
     */
    public String getVirtualType(@Param("gridId")Long gridId,@Param("custType") String custType);

}
