package com.ruoyi.basicData.service;

import com.ruoyi.basicData.domain.TCorps;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginUser;

import java.util.List;
import java.util.Map;


/**
 * 客户详情Service接口
 *
 * @author ruoyi
 * @date 2020-12-11
 */
public interface ITCorpsService {
    /**
     * 查询客户详情
     *
     * @param fId 客户详情ID
     * @return 客户详情
     */
    public Map<String, Object> selectTCorpsById(Long fId);

    /**
     * 查询客户详情列表
     *
     * @param tCorps 客户详情
     * @return 客户详情集合
     */
    public List<TCorps> selectTCorpsList(TCorps tCorps);

    /**
     * 查询仓储费协议下的所有公司信息
     */
    List<Map<String,Object>> selectAgreementCorpList(TCorps tCorps);

    AjaxResult selectAgreementCorpListNoParams();

    /**
     * 新增客户详情
     *
     * @param tCorps 客户详情
     * @return 结果
     */
    public AjaxResult insertTCorps(String tCorps, String tCustomerContacts, String attach, LoginUser loginUser);

    /**
     * 修改客户详情
     *
     * @param tCorps 客户详情
     * @return 结果
     */
    public AjaxResult updateTCorps(TCorps tCorps);

    /**
     * 批量删除客户详情
     *
     * @param fIds 需要删除的客户详情ID
     * @return 结果
     */
    public AjaxResult deleteTCorpsByIds(Long[] fIds);

    /**
     * 删除客户详情信息
     *
     * @param fId 客户详情ID
     * @return 结果
     */
    public int deleteTCorpsById(Long fId);

    /**
     *  检验编号唯一
     * @return
     */
    public String checkUFNoUnique(TCorps tCorps);

    /**
     *  检验编号名称
     * @return
     */
    public String checkUFNnameUnique(TCorps tCorps);

    /**
     *  检验编号地址
     * @return
     */
    public String checkUFCnameUnique(TCorps tCorps);

    /**
     *  检验登录账号
     * @return
     */
    public String checkULoginAccountUnique(TCorps tCorps1);

    /**
     *  车队查询列表
     * @param tCorps
     * @return
     */
    public List<Map<String, Object>> selectFleetDriverMsgListMap(TCorps tCorps);

    /**
     *  车队使用，查询客户、司机信息、车队信息
     * @param fId
     * @return
     */
    public List<TCorps> selectCorpList(Long fId);

    /**
     *  车队使用，查询客户、车队信息
     * @return
     * @param tCorps
     */
    public List<TCorps> selectCustomerDriverList(TCorps tCorps);
    /**
     * 获取客户名称
     * @param tCorps
     * @return
     */
    public List<Map<String,Object>> getClientName(TCorps tCorps);

    /**
     * bi大屏客户数量
     *
     * @return
     */
    public Map<String, Object> biCustomerCount(Long warehouseId, Long customerId);

    /**
     * bi大屏客户列表
     *
     * @return 客户集合
     */
    public List<Map<String, Object>> biCustomerList();

}
