package com.dayou.service;
import com.dayou.dto.CommissionDeclareDTO;
import com.dayou.dto.WorkNodeCommit;
import com.dayou.entity.CommissionDeclare;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dayou.vo.CommissionDeclareDetailVO;
import com.dayou.vo.CommissionDeclareTodoCheckVO;
import com.dayou.vo.CommissionDeclareVO;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 提成申报 服务类
 * </p>
 *
 * @author wucl
 * @since 2024-05-15
 */
public interface ICommissionDeclareService extends IService<CommissionDeclare> {


    Boolean delete(Long id);

    Page<CommissionDeclareVO> majorMarketDeclarePage(Page page, CommissionDeclareVO commissionDeclare);

    /**
     * 根据部门id查询大中型市场人员提成申报信息
     * @param page
     * @param commissionDeclare
     * @return
     */
    Page<CommissionDeclareVO> majorMarketDeclarePageByDepartment(Page page, CommissionDeclareVO commissionDeclare);

    /**
     * 根据部门id查询大中型市场人员提成申报信息导出excel
     * @param commissionDeclare
     * @return
     */
    List<CommissionDeclareVO> majorMarketDeclarePageByDepartmentExport(CommissionDeclareVO commissionDeclare);

    Page<CommissionDeclareVO> majorEvaluateDeclarePage(Page page, CommissionDeclareVO commissionDeclare);

    /**
     * 根据部门id查询大中型评估人员提成申报信息
     * @param page
     * @param commissionDeclare
     * @return
     */
    Page<CommissionDeclareVO> majorEvaluateDeclarePageByDepartment(Page page, CommissionDeclareVO commissionDeclare);

    /**
     * 根据部门id查询大中型评估人员提成申报信息导出excel
     * @param commissionDeclare
     * @return
     */
    List<CommissionDeclareVO> majorEvaluateDeclarePageByDepartmentExport(CommissionDeclareVO commissionDeclare);

    Long commissionDeclare(CommissionDeclareDTO declareDTO);

    CommissionDeclareDetailVO detail(Long id);

    Page<CommissionDeclareTodoCheckVO> todoCheckPage(Page page, CommissionDeclareTodoCheckVO checkVO);

    List<CommissionDeclareTodoCheckVO> todoCheckList();

    /**
     * 更新大中型绩效申报
     * @param declareDTO dto
     * @return Boolean
     */
    Boolean updateMajorCommissionDeclare(CommissionDeclareDTO declareDTO);

    /**
     * 获取资产评估人员提成申报列表
     * @param page 分页参数
     * @param commissionDeclare 查询参数
     * @return Page<CommissionDeclareVO>
     */
    Page<CommissionDeclareVO> assetsEvaluateDeclarePage(Page page, CommissionDeclareVO commissionDeclare);

    /**
     * 资产业务新增绩效分配申报
     * @param declareDTO dto
     * @return Long
     */
    Long assetsCommissionDeclare(CommissionDeclareDTO declareDTO);

    /**
     * 获取资产市场人员提成申报列表
     * @param page 分页参数
     * @param commissionDeclare 查询参数
     * @return Page<CommissionDeclareVO>
     */
    Page<CommissionDeclareVO> assetsMarketDeclarePage(Page page, CommissionDeclareVO commissionDeclare);

    /**
     * 资产待办绩效申报列表
     * @param page 分页参数
     * @param checkVO 查询参数
     * @return Page<CommissionDeclareTodoCheckVO>
     */
    Page<CommissionDeclareTodoCheckVO> assetsTodoCheckPage(Page page, CommissionDeclareTodoCheckVO checkVO);

    /**
     * 资产待办绩效申报集合
     * @return List<CommissionDeclareTodoCheckVO>
     */
    List<CommissionDeclareTodoCheckVO> assetsTodoCheckList();

    /**
     * 更新资产绩效申报提成比列与下限信息
     * @param declareDTO dto
     * @return Boolean
     */
    Boolean updateAssetsCommissionDeclare(CommissionDeclareDTO declareDTO);
}
