baoshiwei
2025-03-12 f1208474f771a1c233d7425c8ed13fbaa0d521ac
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwInstanceService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,159 @@
package org.dromara.workflow.service;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.warm.flow.orm.entity.FlowInstance;
import org.dromara.workflow.domain.bo.FlowCancelBo;
import org.dromara.workflow.domain.bo.FlowInstanceBo;
import org.dromara.workflow.domain.bo.FlowInvalidBo;
import org.dromara.workflow.domain.vo.FlowInstanceVo;
import java.util.List;
import java.util.Map;
/**
 * æµç¨‹å®žä¾‹ æœåС层
 *
 * @author may
 */
public interface IFlwInstanceService {
    /**
     * åˆ†é¡µæŸ¥è¯¢æ­£åœ¨è¿è¡Œçš„æµç¨‹å®žä¾‹
     *
     * @param flowInstanceBo æµç¨‹å®žä¾‹
     * @param pageQuery      åˆ†é¡µ
     * @return ç»“æžœ
     */
    TableDataInfo<FlowInstanceVo> selectRunningInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery);
    /**
     * åˆ†é¡µæŸ¥è¯¢å·²ç»“束的流程实例
     *
     * @param flowInstanceBo æµç¨‹å®žä¾‹
     * @param pageQuery      åˆ†é¡µ
     * @return ç»“æžœ
     */
    TableDataInfo<FlowInstanceVo> selectFinishInstanceList(FlowInstanceBo flowInstanceBo, PageQuery pageQuery);
    /**
     * æ ¹æ®ä¸šåŠ¡id查询流程实例详细信息
     *
     * @param businessId ä¸šåŠ¡id
     * @return ç»“æžœ
     */
    FlowInstanceVo queryByBusinessId(Long businessId);
    /**
     * æŒ‰ç…§ä¸šåŠ¡id查询流程实例
     *
     * @param businessId ä¸šåŠ¡id
     * @return ç»“æžœ
     */
    FlowInstance selectInstByBusinessId(String businessId);
    /**
     * æŒ‰ç…§å®žä¾‹id查询流程实例
     *
     * @param instanceId å®žä¾‹id
     * @return ç»“æžœ
     */
    FlowInstance selectInstById(Long instanceId);
    /**
     * æŒ‰ç…§å®žä¾‹id查询流程实例
     *
     * @param instanceIds å®žä¾‹id
     * @return ç»“æžœ
     */
    List<FlowInstance> selectInstListByIdList(List<Long> instanceIds);
    /**
     * æŒ‰ç…§ä¸šåŠ¡id删除流程实例
     *
     * @param businessIds ä¸šåŠ¡id
     * @return ç»“æžœ
     */
    boolean deleteByBusinessIds(List<Long> businessIds);
    /**
     * æŒ‰ç…§å®žä¾‹id删除流程实例
     *
     * @param instanceIds å®žä¾‹id
     * @return ç»“æžœ
     */
    boolean deleteByInstanceIds(List<Long> instanceIds);
    /**
     * æ’¤é”€æµç¨‹
     *
     * @param bo å‚æ•°
     * @return ç»“æžœ
     */
    boolean cancelProcessApply(FlowCancelBo bo);
    /**
     * èŽ·å–å½“å‰ç™»é™†äººå‘èµ·çš„æµç¨‹å®žä¾‹
     *
     * @param instanceBo æµç¨‹å®žä¾‹
     * @param pageQuery  åˆ†é¡µ
     * @return ç»“æžœ
     */
    TableDataInfo<FlowInstanceVo> selectCurrentInstanceList(FlowInstanceBo instanceBo, PageQuery pageQuery);
    /**
     * èŽ·å–æµç¨‹å›¾,流程记录
     *
     * @param businessId ä¸šåŠ¡id
     * @return ç»“æžœ
     */
    Map<String, Object> flowImage(String businessId);
    /**
     * æŒ‰ç…§å®žä¾‹id更新状态
     *
     * @param instanceId å®žä¾‹id
     * @param status     çŠ¶æ€
     */
    void updateStatus(Long instanceId, String status);
    /**
     * èŽ·å–æµç¨‹å˜é‡
     *
     * @param instanceId å®žä¾‹id
     * @return ç»“æžœ
     */
    Map<String, Object> instanceVariable(Long instanceId);
    /**
     * è®¾ç½®æµç¨‹å˜é‡
     *
     * @param instanceId å®žä¾‹id
     * @param variable   æµç¨‹å˜é‡
     */
    void setVariable(Long instanceId, Map<String, Object> variable);
    /**
     * æŒ‰ä»»åŠ¡id查询实例
     *
     * @param taskId ä»»åŠ¡id
     * @return ç»“æžœ
     */
    FlowInstance selectByTaskId(Long taskId);
    /**
     * æŒ‰ä»»åŠ¡id查询实例
     *
     * @param taskIdList ä»»åŠ¡id
     * @return ç»“æžœ
     */
    List<FlowInstance> selectByTaskIdList(List<Long> taskIdList);
    /**
     * ä½œåºŸæµç¨‹
     *
     * @param bo æµç¨‹å®žä¾‹
     * @return ç»“æžœ
     */
    boolean processInvalid(FlowInvalidBo bo);
}