package cn.iocoder.yudao.module.bpm.service.oa.conversion;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.conversion.vo.OaConversionPageReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.conversion.vo.OaConversionRespVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.conversion.vo.OaConversionSaveReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskReturnReqVO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.conversion.OaConversionDO;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 转正流程信息 Service 接口
 *
 * @author 芋道源码
 */
public interface OaConversionService {

    Long stagingOaConversion(OaConversionSaveReqVO stagingReqVO);

    Long commitOaConversion(OaConversionSaveReqVO commitReqVO);

    Long agreeOaConversion(BpmTaskApproveReqVO agreeReqVO);

    Long disagreeOaConversion(BpmTaskReturnReqVO disagreeReqVO);

    Long revocationOaConversion(BpmTaskApproveReqVO revocationReqVO);

    Long reCommitOaConversion(OaConversionSaveReqVO reCommitReqVO);

    Long closeOaConversion(Long id);

    void deleteOaConversion(Long id);

    OaConversionRespVO getOaConversion(Long id);

    OaConversionRespVO getOaConversionByProcInstId(String procInstId);

    PageResult<OaConversionRespVO> getOaConversionPage(OaConversionPageReqVO pageReqVO);

    PageResult<OaConversionRespVO> exportOaConversionExcel(OaConversionPageReqVO pageReqVO);

}