package cn.com.countrygarden.bi.main.dao.extension;

import cn.com.countrygarden.bi.main.core.Mapper;
import cn.com.countrygarden.bi.main.dto.extension.ExtensionErpDTO;
import cn.com.countrygarden.bi.main.dto.extension.ExtensionReportDTO;
import com.github.pagehelper.PageRowBounds;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName ExtensionBindingMapper
 * @Description TODO 市场拓展 -> 外拓绑定 -> Mapper
 *  放在这个文件夹主要原因是需要连接 ERP 数据库
 * @Author Sjiang
 * @Date 2019/1/15 11:26
 * @Version 1.0
 **/
public interface ExtensionErpBindingMapper extends Mapper<ExtensionErpDTO>, ExtensionBaseMapper<ExtensionErpDTO> {

    /**
     * @Author Sjiang
     * @Description // 根据 未绑定的 ERP 信息
     * @Date 11:23 2019/1/17
     * @Param [ids, pageRowBounds]
     * @return java.util.List
     **/
    List<ExtensionErpDTO> selectErpUnbinding(@Param("ids") List<Long> ids,@Param("organName") String organName, @Param("dto") ExtensionErpDTO dto, PageRowBounds pageRowBounds);


    /**
     * @Author Sjiang
     * @Description  根据 ID 查询出需要绑定的 ERP 数据，因为字段问题所以用 ExtensionReportDTO
     * @Date 11:23 2019/1/22
     * @Param [erpId]
     * @return cn.com.countrygarden.bi.main.dto.extension.ExtensionReportDTO
     **/
    ExtensionReportDTO selectById(Long erpId);


    /**
     * @Author Sjiang
     * @Description  查询已录入总数
     * @Date 15:37 2019/1/23
     * @Param []
     * @return java.lang.Long
     **/

    Long selectAllCount(@Param("organName") String organName);

    /**
     * @Author Sjiang
     * @Description  查询未绑定总数
     * @Date 15:37 2019/1/23
     * @Param []
     * @return java.lang.Long
     **/
    Long selectUnbindingCount(@Param("ids") List<Long> erpIds, @Param("organName") String organName);

    /**
     * @Author Sjiang
     * @Description 导出 未绑定的 ERP 数据
     * @Date 20:24 2019/1/23
     * @Param [dto, response]
     * @return void
     **/
    List<ExtensionErpDTO> selectUnbindingExportByDto(@Param("dto") ExtensionErpDTO dto,@Param("organName") String organName, @Param("ids") List<Long> ids);
}

