疯狂的狮子Li
2024-06-06 456620b6383611bc5982d670fca8dead60571208
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,119 @@
package org.dromara.workflow.service.impl;
import cn.hutool.core.util.StrUtil;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.service.WorkflowService;
import org.dromara.workflow.domain.ActHiProcinst;
import org.dromara.workflow.service.IActHiProcinstService;
import org.dromara.workflow.service.IActProcessInstanceService;
import org.dromara.workflow.utils.WorkflowUtils;
import org.flowable.engine.RuntimeService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
 * é€šç”¨ å·¥ä½œæµæœåŠ¡å®žçŽ°
 *
 * @author may
 */
@RequiredArgsConstructor
@Service
public class WorkflowServiceImpl implements WorkflowService {
    private final IActProcessInstanceService iActProcessInstanceService;
    private final RuntimeService runtimeService;
    private final IActHiProcinstService iActHiProcinstService;
    /**
     * è¿è¡Œä¸­çš„实例 åˆ é™¤ç¨‹å®žä¾‹ï¼Œåˆ é™¤åŽ†å²è®°å½•ï¼Œåˆ é™¤ä¸šåŠ¡ä¸Žæµç¨‹å…³è”ä¿¡æ¯
     *
     * @param businessKeys ä¸šåŠ¡id
     * @return ç»“æžœ
     */
    @Override
    public boolean deleteRunAndHisInstance(List<String> businessKeys) {
        return iActProcessInstanceService.deleteRunAndHisInstance(businessKeys);
    }
    /**
     * èŽ·å–å½“å‰æµç¨‹çŠ¶æ€
     *
     * @param taskId ä»»åŠ¡id
     */
    @Override
    public String getBusinessStatusByTaskId(String taskId) {
        return WorkflowUtils.getBusinessStatusByTaskId(taskId);
    }
    /**
     * èŽ·å–å½“å‰æµç¨‹çŠ¶æ€
     *
     * @param businessKey ä¸šåŠ¡id
     */
    @Override
    public String getBusinessStatus(String businessKey) {
        return WorkflowUtils.getBusinessStatus(businessKey);
    }
    /**
     * è®¾ç½®æµç¨‹å˜é‡(全局变量)
     *
     * @param taskId       ä»»åŠ¡id
     * @param variableName å˜é‡åç§°
     * @param value        å˜é‡å€¼
     */
    @Override
    public void setVariable(String taskId, String variableName, Object value) {
        runtimeService.setVariable(taskId, variableName, value);
    }
    /**
     * è®¾ç½®æµç¨‹å˜é‡(全局变量)
     *
     * @param taskId    ä»»åŠ¡id
     * @param variables æµç¨‹å˜é‡
     */
    @Override
    public void setVariables(String taskId, Map<String, Object> variables) {
        runtimeService.setVariables(taskId, variables);
    }
    /**
     * è®¾ç½®æµç¨‹å˜é‡(本地变量,非全局变量)
     *
     * @param taskId       ä»»åŠ¡id
     * @param variableName å˜é‡åç§°
     * @param value        å˜é‡å€¼
     */
    @Override
    public void setVariableLocal(String taskId, String variableName, Object value) {
        runtimeService.setVariableLocal(taskId, variableName, value);
    }
    /**
     * è®¾ç½®æµç¨‹å˜é‡(本地变量,非全局变量)
     *
     * @param taskId    ä»»åŠ¡id
     * @param variables æµç¨‹å˜é‡
     */
    @Override
    public void setVariablesLocal(String taskId, Map<String, Object> variables) {
        runtimeService.setVariablesLocal(taskId, variables);
    }
    /**
     * æŒ‰ç…§ä¸šåŠ¡id查询流程实例id
     *
     * @param businessKey ä¸šåŠ¡id
     * @return ç»“æžœ
     */
    @Override
    public String getInstanceIdByBusinessKey(String businessKey) {
        ActHiProcinst actHiProcinst = iActHiProcinstService.selectByBusinessKey(businessKey);
        if (actHiProcinst == null) {
            return StrUtil.EMPTY;
        }
        return actHiProcinst.getId();
    }
}