package com.sunxung.factoring.service.project;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sunxung.factoring.entity.GridPage;
import com.sunxung.factoring.entity.project.CProjectInformationHistory;
import com.sunxung.factoring.entity.project.ProjectInformation;
import com.sunxung.factoring.entity.project.ProjectOwnerScore;
import com.sunxung.factoring.entity.project.vo.ProjectInformationVo;
import com.sunxung.factoring.entity.project.vo.SearchBusinessProcessingTask;
import com.sunxung.factoring.entity.project.vo.UserBiddingProjectsVo;

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

/**
 * <p>
 * 项目信息 服务类
 * </p>
 *
 * @author liutao
 * @since 2023-11-25
 */
public interface IProjectInformationService extends IService<ProjectInformation> {

    /**
     * 通过业务编号获取项目信息
     * @return
     */
    ProjectInformationVo getByBusinessNo(String businessNumber);
    /**
     * 根据id查询所需数据 流程控制反射调用
     *
     * @param id
     * @return
     */
    ProjectInformation get(Long id);

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

    /**
     * 开启项目流程
     * @param projectInformation
     */
    void startProjectProcess(ProjectInformation projectInformation);

    /**
     * 根据条件查询所有项目信息
     * @param search
     * @return
     */
    GridPage<ProjectInformation> findAll(SearchBusinessProcessingTask search);

    /**
     * 获取项目准入报告
     * @param id
     * @return
     */
    ProjectOwnerScore getProjectReport(Long id);

    /**
     * 下载准入报告
     * @param id
     * @param res
     */
    void download(Long id, HttpServletResponse res) throws IOException;
}
