package com.prolog.rdc.tms.dao.mapper;

import java.util.List;

import com.prolog.rdc.tms.model.vo.basicData.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.prolog.framework.dao.mapper.BaseMapper;
import com.prolog.rdc.tms.model.dto.basicData.CustomerImportPageDTO;
import com.prolog.rdc.tms.model.dto.basicData.TmsBaseCustomerDTO;
import com.prolog.rdc.tms.model.dto.basicData.TmsBaseCustomerPopDTO;
import com.prolog.rdc.tms.model.dto.basicData.UserCustomerPopupDTO;
import com.prolog.rdc.tms.model.entity.line.TmsBaseCustomerModel;
import com.prolog.rdc.tms.model.vo.basicConfigure.ImportPageVO;

@Mapper
public interface TmsBaseCustomerMapper extends BaseMapper<TmsBaseCustomerModel> {

	// STD-DEVELOP20220823 lhb JC-HZ-001 客户支持多部门 20220906 start
	List<TmsBaseCustomerPopDTO> findCustomerAndReceiver(@Param("vo") QueryCustomerAndReceiverVO vo);

	// 客户分页查询
	List<TmsBaseCustomerDTO> queryCustomer(@Param("vo") TmsBaseCustomerQueryVO vo);

	// 客户收发货方弹窗
	List<TmsBaseCustomerDTO> popupCustomerConsigneeAndShipperData(@Param("vo") CustomerConsigneeAndShipperPopupVO vo);

	/**
	 * 用户客户弹窗
	 */
	List<UserCustomerPopupDTO> popupUserCustomerData(@Param("vo") UserCustomerPopupVO userCustomerPopupVO);

	// 客户地址解析专用查询
	List<TmsBaseCustomerDTO> queryCustomerForAddress(@Param("vo") TmsBaseCustomerQueryVO vo);

	/**
	 * 客户导入分页查询
	 */
	List<CustomerImportPageDTO> pageCustomerByImportBatchNumberData(@Param("vo") ImportPageVO importPageVO);

	/**
	 * 根据客户编码名称查询客户资料
	 */
	List<TmsBaseCustomerDTO> getCustomerByEncodingNameData(@Param("vo") CustomerByEncodingNameVO customerByEncodingNameVO);
	// STD-DEVELOP20220823 lhb JC-HZ-001 客户支持多部门 20220906 end

	// 校验是否已存在临时客户
	List<TmsBaseCustomerDTO> getTempCustomer(@Param("vo") ConsigneeAddressVO consigneeAddressVO);
}
