package com.xjrsoft.module.workflow.service;

import com.github.yulichang.base.MPJBaseService;
import com.xjrsoft.common.page.PageOutput;
import com.xjrsoft.module.workflow.dto.AddWorkflowSchemaDraftDto;
import com.xjrsoft.module.workflow.dto.AddWorkflowSchemaDto;
import com.xjrsoft.module.workflow.dto.UpdateWorkflowSchemaDto;
import com.xjrsoft.module.workflow.dto.WorkflowSchemaDraftPageDto;
import com.xjrsoft.module.workflow.dto.WorkflowSchemaPageDto;
import com.xjrsoft.module.workflow.entity.WorkflowSchema;
import com.xjrsoft.module.workflow.vo.WorkflowSchemaDraftPageVo;
import com.xjrsoft.module.workflow.vo.WorkflowSchemaPageVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 流程模板表 服务类
 * </p>
 *
 * @author tzx
 * @since 2022-07-04
 */
public interface IWorkflowSchemaService extends MPJBaseService<WorkflowSchema> {

    /**
     * 新增流程模板草稿
     * @param dto
     * @return
     */
    PageOutput<WorkflowSchemaPageVo>  getPage(WorkflowSchemaPageDto dto);

    List<WorkflowSchemaPageVo>  getList(WorkflowSchemaPageDto dto);
    /**
     * 新增流程模板设计
     * @param dto
     * @return
     */
    boolean add(AddWorkflowSchemaDto dto);

    /**
     * 新增流程模板草稿
     * @param dto
     * @return
     */
    boolean addDraft(AddWorkflowSchemaDraftDto dto);


    /**
     * 新增流程模板草稿
     * @param dto
     * @return
     */
    PageOutput<WorkflowSchemaDraftPageVo> getDraftPage(WorkflowSchemaDraftPageDto dto);


    /**
     * 修改流程模板设计
     * @param dto
     * @return
     */
    boolean update(UpdateWorkflowSchemaDto dto);


    /**
     * 删除流程模板设计
     * @param ids
     * @return
     */
    boolean delete(List<Long> ids);


    /**
     * 导入流程模板设计
     * @param multipartFile
     * @return
     */
    boolean importSchema(MultipartFile multipartFile);


}
