package com.ruoyi.ibs.grid.mapper;

import java.util.List;

import com.ruoyi.ibs.grid.domain.dto.CustManageInfo;
import com.ruoyi.system.domain.GridRegionUserRelate;
import org.apache.ibatis.annotations.Param;

/**
 * 地理网格机构客户经理关联Mapper接口
 * 
 * @author ruoyi
 * @date 2024-09-23
 */
public interface GridRegionUserRelateMapper 
{
    /**
     * 查询地理网格机构客户经理关联
     * 
     * @param id 地理网格机构客户经理关联主键
     * @return 地理网格机构客户经理关联
     */
    public GridRegionUserRelate selectGridRegionUserRelateById(Long id);

    /**
     * 查询地理网格机构客户经理关联列表
     * 
     * @param gridRegionUserRelate 地理网格机构客户经理关联
     * @return 地理网格机构客户经理关联集合
     */
    public List<GridRegionUserRelate> selectGridRegionUserRelateList(GridRegionUserRelate gridRegionUserRelate);

    /**
     * 新增地理网格机构客户经理关联
     * 
     * @param gridRegionUserRelate 地理网格机构客户经理关联
     * @return 结果
     */
    public int insertGridRegionUserRelate(GridRegionUserRelate gridRegionUserRelate);

    /**
     * 修改地理网格机构客户经理关联
     * 
     * @param gridRegionUserRelate 地理网格机构客户经理关联
     * @return 结果
     */
    public int updateGridRegionUserRelate(GridRegionUserRelate gridRegionUserRelate);

    /**
     * 删除地理网格机构客户经理关联
     * 
     * @param id 地理网格机构客户经理关联主键
     * @return 结果
     */
    public int deleteGridRegionUserRelateById(Long id);

    /**
     * 批量删除地理网格机构客户经理关联
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteGridRegionUserRelateByIds(Long[] ids);


    /**
     * 查询网格内客户经理
     *
     * @param GridId 网格id
     * @return 结果
     */
    public List<String> selectGridRegionUserByGridId(@Param("gridId")Long GridId,@Param("userDept")Long userDept);

    /**
     * 查询网格内客户机构
     *
     * @param GridId 网格id
     * @return 结果
     */
    public List<String> selectGridRegionDeptByGridId(Long GridId);

    /**
     * 查询网格是否归属总行
     *
     * @param GridId 网格id
     * @return 结果
     */
    public List<String> selectHeadDeptExist(Long GridId);

    /**
     * 查询网格内客户机构层级
     *
     * @param GridId 网格id
     * @return 结果
     */
    public List<String> selectGridRegionDeptTypeByGridId(@Param("gridId")Long GridId,@Param("userDept")Long userDept);

    /**
     * 根据客户经理查询网格内客户机构
     *
     * @param userId 网格id
     * @return 结果
     */
    public String selectGridRegionDeptByUserId(@Param("userId")String userId,@Param("gridId")Long gridId,@Param("deptType")String deptType);

    /**
     * 使用查询行政网格所有客户信息列表
     *
     * @param custManageInfo 企业客户基本信息
     * @return 客户基本信息集合
     */
    public List<CustManageInfo> selectCustInfoByManage(CustManageInfo custManageInfo);

}
