package com.sunxung.factoring.service.fundmanagement;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sunxung.factoring.entity.fundmanagement.FinancialCustomerInfo;
import com.sunxung.factoring.entity.fundmanagement.vo.FinancialBasicFileVo;
import com.sunxung.factoring.entity.fundmanagement.vo.FinancialBasicVo;
import com.sunxung.factoring.entity.fundmanagement.vo.FinancialCustomerVo;
import com.sunxung.factoring.entity.project.vo.BusinessProcessingTaskVo;
import com.sunxung.factoring.entity.project.vo.SearchBusinessProcessingTask;

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

/**
 * @Description 客户信息service
 * @Author Yafan Wang
 * @Date 2023/2/9 16:11
 */
public interface FinancialCustomerInfoService extends IService<FinancialCustomerInfo> {

    /**
     * 资料下载
     *
     * @param response
     * @param id
     */
    void downloadAllFile(HttpServletResponse response, Long id);

    /**
     * 处理页
     *
     * @param financialCustomerId
     * @return
     */
    FinancialCustomerVo editBasicFile(Long financialCustomerId);

    /**
     * 拾取任务（多个角色处理）
     * @param taskId
     */
    void claimFinancialCustomerTask(String taskId);

    /**
     * 基础资料-提交
     *
     * @param financialBasicVo
     */
    void doEditBasicFile(FinancialBasicVo financialBasicVo);

    /**
     * 客户信息我已处理列表页查询
     *
     * @param search
     * @return
     */
    List<BusinessProcessingTaskVo> findMyCompletedList(SearchBusinessProcessingTask search);

    /**
     * 客户信息全部列表页查询
     *
     * @param search
     * @return
     */
    List<BusinessProcessingTaskVo> findAllList(SearchBusinessProcessingTask search);

    /**
     * 根据id查询客户信息
     *
     * @param id
     * @return
     */
    FinancialCustomerInfo get(Long id);

    /**
     * 查询详情
     *
     * @param id
     * @return
     */
    FinancialCustomerVo getView(Long id);

    /**
     * 通过id查询vo
     *
     * @param id
     * @return
     */
    FinancialCustomerVo findVoById(Long id);

    /**
     * 通过历史id查询vo
     *
     * @param id
     * @return
     */
    FinancialCustomerVo findHisVoById(Long id);

}
