package com.trade.service.enterprise.customer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.trade.service.enterprise.customer.dto.EnterpriseBaseInfoDto;
import com.trade.service.enterprise.customer.dto.EnterpriseDictVO;
import com.trade.service.enterprise.customer.dto.EnterpriseSearchDto;
import com.trade.service.enterprise.customer.domain.Enterprise;
import com.trade.service.enterprise.customer.dto.EnterpriseXtIdsDto;

import java.util.Date;
import java.util.List;

/**
 * 企业信息基础服务接口
 *
 * @author hlb
 * @since 2024-05-29 15:07:42
 */
public interface EnterpriseBaseService extends IService<Enterprise> {

    /**
     * 查询企业
     *
     * @param customerId
     * @return
     */
    Enterprise getEnterpriseByCustomerId(Long customerId);

    /**
     * 根据变更记录ID查询企业
     * 
     * @param changeRecordId
     * @return
     */
    Enterprise getEnterpriseByChangeRecordId(Long changeRecordId);

    /**
     * 根据证件号查询企业
     *
     * @param certNo
     * @return
     */
    Enterprise getEnterpriseByCertNo(String certNo);

    /**
     * 根据搜索条件查询企业列表
     * 
     * @param search
     * @return
     */
    List<EnterpriseBaseInfoDto> findBySearch(EnterpriseSearchDto search);

    /**
     * 根据客户信息查询企业
     * 
     * @param customerInfo 客户信息
     * @return 企业 信息
     */
    List<EnterpriseBaseInfoDto> findByCustomerInfo(String customerInfo);

    /**
     * 查询所有企业信息，用于下拉框
     *
     * @return 所有企业信息
     */
    List<EnterpriseDictVO> queryAllEnterprise4Dict();

    /**
     * 根据证件号获取小图系统id
     *
     * @param certNo 证件号
     * @return 小图系统id
     */
    EnterpriseXtIdsDto getEnterpriseXtIdsDto(String certNo);


    /**
     * 企业缴纳出口退税服务费并入账确认
     * @param customerUserId
     * @param paymentDate
     * @return
     */
    Boolean taxRebateServiceFeePayment(Long customerUserId, String xtUid, Date paymentDate);
}
