package com.hzs.system.sys.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.system.sys.SysApproval;
import com.hzs.common.domain.system.sys.ext.SysApprovalExt;
import com.hzs.system.sys.param.ApprovalParam;
import com.hzs.system.sys.param.ApprovalSaveParam;
import com.hzs.system.sys.vo.ApprovalVO;

import java.util.List;

/**
 * 审批配置表 服务类
 *
 * @author hzs
 * @since 2022-09-15
 */
public interface ISysApprovalService extends IService<SysApproval> {

    /**
     * 审批列表
     *
     * @param param     审批查询参数
     * @param pkCountry 国家ID
     * @return
     */
    List<ApprovalVO> approvalList(ApprovalParam param, Integer pkCountry);

    /**
     * 保存审批
     *
     * @param paramList 保存参数
     * @param userId    用户ID
     * @param pkCountry 国家ID
     */
    void saveApproval(List<ApprovalSaveParam> paramList, Long userId, Integer pkCountry);

    /**
     * 删除审批
     *
     * @param id
     */
    void deleteApproval(Integer id, Long userId, Integer pkCountry);

    /**
     * 根据审批业务类型相关最新的审批
     *
     * @param approvalBusinessList 审批业务类型列表
     * @param pkCountry            国家ID
     * @return
     */
    List<SysApproval> lastApproval(List<Integer> approvalBusinessList, Integer pkCountry);

    /**
     * 根据审批业务相关最新的审批以及审批项
     *
     * @param approvalBusinessList 审批业务类型列表
     * @param pkCountry            国家ID
     * @return
     */
    List<SysApprovalExt> lastApprovalAndItem(List<Integer> approvalBusinessList, Integer pkCountry);

}
