package com.yida.data.form.apply.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yida.data.common.core.entity.applyForm.CoreApprovalProcess;
import com.yida.data.customForm.dto.apply.ApprovalProcessSelectPageDTO;
import com.yida.data.customForm.vo.apply.ApprovalProcessInfoVO;
import com.yida.data.customForm.vo.apply.ApprovalProcessSelectPageVO;

import java.util.List;

/**
 * 审核流程表 Service
 *
 * @author ZYJ
 * @date 2023/11/21
 */
public interface CoreApprovalProcessService extends IService<CoreApprovalProcess> {

    /**
     * 查询审核流程节点列表数据
     *
     * @param dto 审核流程节点后台列表请求类
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.yida.data.customForm.vo.apply.ApprovalProcessSelectPageVO>
     * @author ZYJ
     * @date 2023/11/21 15:12
     */
    IPage<ApprovalProcessSelectPageVO> listApprovalProcessPage(ApprovalProcessSelectPageDTO dto);

    /**
     * 查询审核流程节点详情
     *
     * @param id 审核流程节点id
     * @return com.yida.data.customForm.vo.apply.ApprovalProcessInfoVO
     * @author ZYJ
     * @date 2023/11/21 16:03
     */
    ApprovalProcessInfoVO getApprovalProcessInfo(Long id);

    /**
     * 删除审核流程节点
     *
     * @param id 审核流程节点id
     * @author ZYJ
     * @date 2023/11/21 16:35
     */
    void deleteApprovalProcess(Long id);

    /**
     * 保存审核流程节点
     *
     * @param process 保存的节点信息
     * @author ZYJ
     * @date 2023/11/21 16:51
     */
    void saveApprovalProcess(CoreApprovalProcess process);

    /**
     * 查询所有审核流程节点数据(排除当前表单包含的数据)
     *
     * @param formId 表单id
     * @return java.util.List<com.yida.data.common.core.entity.applyForm.CoreApprovalProcess>
     * @author ZYJ
     * @date 2023/12/19 14:17
     */
    List<CoreApprovalProcess> listApprovalProcess(Long formId);
}
