package com.aizuda.boot.modules.flw.service; import com.aizuda.boot.modules.flw.entity.dto.FlwCategorySortDTO; import com.aizuda.boot.modules.flw.entity.dto.FlwProcessDTO; import com.aizuda.boot.modules.flw.entity.dto.FlwProcessHistoryDTO; import com.aizuda.boot.modules.flw.entity.dto.ProcessStartDTO; import com.aizuda.boot.modules.flw.entity.vo.FlwProcessCategoryVO; import com.aizuda.bpm.engine.core.FlowCreator; import com.aizuda.bpm.engine.entity.FlwProcess; import com.aizuda.service.service.IBaseService; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import java.util.List; /** * 流程分类 服务类 * * @author 青苗 * @since 2023-09-07 */ public interface IFlwProcessService extends IBaseService { /** * 流程定义历史分页列表 */ Page pageHistory(Page page, FlwProcessHistoryDTO dto); /** * 流程定义分类查询所有流程定义列表 * * @param keyword 搜索关键词 */ List listCategoryAll(String keyword); /** * 获取发起分类流程定义列表 * * @param keyword 搜索关键词 */ List listLaunch(String keyword); /** * 查询满足条件前10条子流程列表 * * @param keyword 搜索关键词 */ List listChildTop10(String keyword); /** * 发起流程 * * @param dto 流程发起 DTO * @param flowCreator 流程创建者 */ boolean launchProcess(ProcessStartDTO dto, FlowCreator flowCreator); /** * 根据 id 获取模型 * * @param id 流程定义ID */ String getNodeModelById(Long id); /** * 根据 id 查询流程定义相关信息 * * @param id 流程定义ID */ FlwProcessDTO getDtoById(Long id); /** * 根据 key 查询流程定义相关信息 * * @param key 流程定义KEY */ FlwProcessDTO getDtoByKey(String key); /** * 创建添加流程定义配置 * * @param dto 流程定义配置 DTO * @return 流程定义ID */ Long saveDto(FlwProcessDTO dto); /** * 根据ID删除流程定义相关信息 * * @param id 流程定义ID */ boolean removeProcessInfo(Long id); /** * 根据ID更新流程定义排序 * * @param dtoList 流程分类排序DTO列表 */ boolean sort(List dtoList); /** * 根据ID更新流程定义流程状态 * * @param id 流程定义ID * @param state 流程状态 0,不可用 1,可用 */ boolean updateSateById(Long id, Integer state); /** * 根据ID克隆流程定义信息 * * @param id 流程定义ID */ boolean cloneById(Long id); /** * 发布指定ID流程 * * @param id 流程定义ID */ boolean releaseById(Long id); /** * 根据指定ID签出历史流程 *

* 当前版本和历史版本交换 *

* * @param id 流程定义ID */ boolean checkoutById(Long id); }