package com.dsk.cscec.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.AddDCustomerLaborLeaderBo;
import com.dsk.cscec.domain.bo.AdvisoryBodyBo;
import com.dsk.cscec.domain.bo.CustomerCooperationBo;
import com.dsk.cscec.domain.bo.CustomerInfoBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyVo;
import com.dsk.cscec.domain.vo.CustomerApproveVo;
import com.dsk.cscec.domain.vo.CustomerCooperationVo;
import com.dsk.cscec.domain.vo.CustomerInfoVo;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 组织维表(DCustomer)表服务接口
 *
 * @author
 * @since 2023-12-10
 */
public interface ICustomerInfoService extends IService<DCustomer> {

    /**
     * 供应商分类列表
     * @param bo
     * @param query
     * @return
     */
    TableDataInfo<CustomerInfoVo> queryPageList(CustomerInfoBo bo, PageQuery query);

    /**
     * 导出供应商分类列表
     */
    void exportCustomerList(CustomerInfoBo bo, HttpServletResponse response);

    /**
     * 供应商准入情况
     * @param bo
     * @return
     */
    CustomerApproveVo queryApproveByBo(CustomerInfoBo bo);

    /**
     * 咨询机构合作记录
     * @param bo
     * @param query
     * @return
     */
    TableDataInfo<AdvisoryBodyVo> queryAdvisoryList(AdvisoryBodyBo bo, PageQuery query);

    /**
     * 供应商合作记录
     * @param bo
     * @param query
     * @return
     */
    TableDataInfo<CustomerCooperationVo> queryCooperationList(CustomerCooperationBo bo,PageQuery query);

    /**
     * 内部合作统计
     * @param companyName
     * @return
     */
    Map<String,Object> cooperationStatistic(String companyName);

    /**
     * 查询供应商基本情况
     */
    Map<String, Long> queryBasicInfo();

    /**
     * 校验劳务队长身份证号是否存在
     */
    List<CustomerInfoVo> checkLaborLeaderIdExist(String laborLeaderId);

    /**
     * 添加劳务队队长
     */
    Integer addLaborLeader(AddDCustomerLaborLeaderBo bo);
}
