package com.prolog.rdc.tms.service.basicConfigure;

import java.util.List;

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.model.dto.basicConfigure.ApprovalNodeDTO;
import com.prolog.rdc.tms.model.dto.basicConfigure.ApprovalViewDTO;
import com.prolog.rdc.tms.model.vo.basicConfigure.ApprovalAddVO;
import com.prolog.rdc.tms.model.vo.basicConfigure.ApprovalNodeDeleteVO;
import com.prolog.rdc.tms.model.vo.basicConfigure.ApprovalNodeVO;
import com.prolog.rdc.tms.model.vo.basicConfigure.ApprovalUpdateVO;
import com.prolog.rdc.tms.model.vo.basicConfigure.ApprovalViewVO;

/**
 *
 *
 * 审批配置服务层
 *
 * @className :ApprovalService
 * @author :lhb
 * @creationTime :2022/04/29
 * @description :
 *
 * @modifier :
 * @modifyTime :
 * @reviseRemarks:
 *
 * @version :1.0.0
 *
 */
public interface ApprovalService {

	/**
	 * 审批配置查询
	 *
	 * @param approvalViewVO
	 * @return
	 */
	Page<ApprovalViewDTO> query(ApprovalViewVO approvalViewVO);

	/**
	 * 审批配置新增
	 *
	 * @param approvalAddVO
	 * @return
	 */
	void add(ApprovalAddVO approvalAddVO);

	/**
	 * 审批配置启用
	 *
	 * @param approvalIds
	 * @return
	 */
	void approvalEnable(List<Long> approvalIds);

	/**
	 * 审批配置停用
	 *
	 * @param approvalIds
	 * @return
	 */
	void approvalDisable(List<Long> approvalIds);

	/**
	 * 审批配置删除
	 *
	 * @param approvalIds
	 * @return
	 */
	void approvalDelete(List<Long> approvalIds);

	/**
	 * 审批配置修改
	 *
	 * @param approvalUpdateVO
	 * @return
	 */
	void approvalUpdate(ApprovalUpdateVO approvalUpdateVO);

	/**
	 * 审批配置查看
	 *
	 * @param approvalId
	 * @return
	 */
	ApprovalViewDTO approvalView(String approvalId);

	/**
	 * 审批流程节点配置
	 *
	 * @param approvalNodeVOs
	 * @return
	 */
	void approvalNodeConfig(List<ApprovalNodeVO> approvalNodeVOs);

	/**
	 * 审批流程节点删除
	 *
	 * @param approvalNodeDeleteVO
	 * @return
	 */
	void approvalNodeDelete(ApprovalNodeDeleteVO approvalNodeDeleteVO);

	/**
	 * 审批流程节点查询
	 *
	 * @param approvalId
	 * @return
	 */
	ApprovalNodeDTO approvalNodeQuery(String approvalId);
}
