package jnpf.workflow.service;

import jnpf.base.service.SuperService;
import jnpf.entity.workflow.AttendanceLeaveApprove;
import jnpf.model.attendance.dto.LeaveApproveForOaDto;
import jnpf.model.workflow.dto.AttendanceLeaveApproveDto;
import jnpf.model.workflow.vo.AttendanceLeaveFlowApproveVo;

import java.util.List;
import java.util.Map;

public interface LeaveApproveService extends SuperService<AttendanceLeaveApprove> {

    /**
     * 新增审批记录
     *
     * @param id                        审批id
     * @param entity                    实体
     * @param attendanceLeaveApproveDto 请假dto
     */
    void save(String id, AttendanceLeaveApprove entity, AttendanceLeaveApproveDto attendanceLeaveApproveDto);

    /**
     * 提交审批记录
     *
     * @param id                        审批id
     * @param entity                    实体
     * @param attendanceLeaveApproveDto 请假dto
     */
    void submit(String id, AttendanceLeaveApprove entity, AttendanceLeaveApproveDto attendanceLeaveApproveDto);

    /**
     * 通过请假id获取请假详情
     *
     * @param id 请假id
     * @return jnpf.model.workflow.vo.AttendanceLeaveFlowApproveVo
     * @author hlp
     */
    AttendanceLeaveFlowApproveVo getAttendanceLeave(String id);

    void saveForOa(LeaveApproveForOaDto dto);
}
