package com.sunxung.factoring.service.fundmanagement;

import com.sunxung.factoring.entity.fundmanagement.FinancialCustomerExpenditureApprovalInfo;
import com.sunxung.factoring.entity.fundmanagement.FinancialCustomerExpenditureInfo;
import com.sunxung.factoring.entity.fundmanagement.vo.FinancialCustomerExpenditureDetailVo;
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 : L.Jia
 * @Date: 2023-02-23 10:14
 */
public interface FinancialCustomerExpenditureService {

    /**
     * 获取支用信息
     *
     * @param id
     * @return
     */
    FinancialCustomerExpenditureInfo get(Long id);

    /**
     * 获取支用详情信息
     *
     * @param id
     * @return
     */
    FinancialCustomerExpenditureInfo getDetail(Long id);

    /**
     * 跳转编辑资料
     *
     * @param id
     * @return
     */
    FinancialCustomerExpenditureDetailVo edit(Long id);

    /**
     * 拾取任务
     *
     * @param taskId
     */
    void claimFinancialCustomerExpenditureTask(String taskId);

    /**
     * 编辑资料提交
     *
     * @param detailVo
     */
    void doEdit(FinancialCustomerExpenditureDetailVo detailVo);

    /**
     * 审核提交
     *
     * @param approvalInfo
     */
    void doApproval(FinancialCustomerExpenditureApprovalInfo approvalInfo);

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

    /**
     * 打包压缩并下载
     *
     * @param response
     * @param id
     */
    void downloadAllFile(HttpServletResponse response, Long id);

    /**
     * 上传合同清单附件
     *
     * @param detailVo
     */
    void uploadContractList(FinancialCustomerExpenditureDetailVo detailVo);
}
