package com.sunxung.factoring.service.supplier;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sunxung.factoring.entity.GridPage;
import com.sunxung.factoring.entity.project.vo.SearchBusinessProcessingTask;
import com.sunxung.factoring.entity.supplier.CSupplierInfoHistory;
import com.sunxung.factoring.entity.supplier.SupplierInfo;
import com.sunxung.factoring.entity.supplier.VideoDueDiligence;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 供应商企业信息 服务类
 * </p>
 *
 * @author liutao
 * @since 2023-11-25
 */
public interface ISupplierInfoService extends IService<SupplierInfo> {

    /**
     * 开启供应商流程
     * @param supplierInfo
     * @return
     */
    String startProcess(SupplierInfo supplierInfo);

    /**
     * 根据id查询所需数据 流程控制反射调用
     *
     * @param id
     * @return
     */
    SupplierInfo get(Long id);

    /**
     * 建工查看表单详情
     * @param id
     * @return
     */
    CSupplierInfoHistory getView(Long id);

    /**
     * 查看表单详情
     * @param id
     * @return
     */
    /**
     * 非建工查看表单详情
     * @param id
     * @return
     */
    SupplierInfo getViewNew(Long id);

    /**
     * 根据条件查询所有
     * @param search
     * @return
     */
    GridPage<SupplierInfo> getBySearch(SearchBusinessProcessingTask search);

    /**
     * 供应商准入报告
     * @param supplierId
     * @return
     */
    VideoDueDiligence report(Long supplierId);

    /**
     * 下载授信报告
     * @param supplierId
     * @param response
     */
    void downloadReport(Long supplierId, HttpServletResponse response) throws IOException;


    List<SupplierInfo> getByClientUserId(Long cUserId);

    /**
     * 根据企业信息Id查询
     *
     * @param enterpriseId
     * @return
     */
    SupplierInfo getByEnterpriseId(Long enterpriseId);
}
