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

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 ExtensionReportMapper
 * @Description  外拓报表 Mapper
 * @Author Sjiang
 * @Date 2019/1/17 20:54
 * @Version 1.0
 **/
public interface ExtensionReportMapper extends ExtensionBaseMapper<ExtensionReportDTO> {



    /**
     * @Author Sjiang
     * @Description  根据 bindingIdentifier 查询对应状态的 ids
     * @Date 21:20 2019/1/17
     * @Param []
     * @return List
     **/
    List<Long> selectErpBindingId(@Param("organName") String organName);

    /**
     * @Author Sjiang
     * @Description  查询已绑定的 ERP 数据
     * @Date 10:13 2019/1/21
     * @Param [dto, pageRowBounds]
     * @return java.util.List<cn.com.countrygarden.bi.main.dto.extension.ExtensionErpDTO>
     **/
    
    List<ExtensionErpDTO> selectErpBindingList(@Param("dto")ExtensionErpDTO dto, @Param("organName") String organName, PageRowBounds pageRowBounds);

    /**
     * @Author Sjiang
     * @Description  获取外拓报表信息
     * @Date 15:07 2019/1/21
     * @Param []
     * @return java.lang.Object
     **/
//    List<ExtensionReportDTO> selectReportAll(@Param("dto") ExtensionReportDTO reportDTO,@Param("organName") String organName, PageRowBounds pageRowBounds);

    /**
     * @Author Sjiang
     * @Description  ERP 、DUP 信息绑定
     * @Date 9:30 2019/1/22
     * @Param [reportDTO]
     * @return java.lang.Object
     **/
    void insertSelectiveByDto(ExtensionReportDTO reportDTO);

    /**
     * @Author Sjiang
     * @Description  根据 ID 获取已绑定信息
     * @Date 22:51 2019/1/22
     * @Param [dupDTO]
     * @return java.lang.Object
     **/
    ExtensionReportDTO selectByPrimaryKey(Long id);

    /**
     * @Author Sjiang
     * @Description  根据 id 修改信息
     * @Date 23:27 2019/1/22
     * @Param [reportDTO]
     * @return java.lang.Object
     **/
    void updateSelectiveByDto(ExtensionReportDTO reportDTO);

    /**
     * @Author Sjiang
     * @Description  根据 ID 撤销已绑定信息
     * @Date 10:42 2019/1/23
     * @Param [reportDTO]
     * @return java.lang.Object
     **/
    void deleteByPrimaryKey(@Param("id") Long id, @Param("userCode") String userCode);

    /**
     * @Author Sjiang
     * @Description  获取 dup 已绑定 ids
     * @Date 15:24 2019/1/23
     * @Param []
     * @return java.util.List<java.lang.Long>
     **/

    List<Long> selectDupBindingId(@Param("organName") String organName);

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

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


    int updateByErpId(ExtensionReportDTO reportDTO);

    List<ExtensionReportDTO> selectAllByDTO(@Param("dto")ExtensionReportDTO dto, @Param("organName")String organCode);

    List<ExtensionReportDTO> selectReportAll(@Param("dto")ExtensionReportDTO reportDTO,@Param("organName") String regionName, PageRowBounds pageRowBounds);
}
