ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ package org.dromara.common.core.service; import java.util.List; /** * éç¨ å·¥ä½æµæå¡ * * @author may */ public interface WorkflowService { /** * è¿è¡ä¸çå®ä¾ å é¤ç¨å®ä¾ï¼å é¤åå²è®°å½ï¼å é¤ä¸å¡ä¸æµç¨å ³èä¿¡æ¯ * * @param businessKeys ä¸å¡id * @return ç»æ */ boolean deleteRunAndHisInstance(List<String> businessKeys); /** * è·åå½åæµç¨ç¶æ * * @param taskId ä»»å¡id */ String getBusinessStatusByTaskId(String taskId); /** * è·åå½åæµç¨ç¶æ * * @param businessKey ä¸å¡id */ String getBusinessStatus(String businessKey); } ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java
@@ -180,7 +180,7 @@ AttachmentCmd attachmentCmd = new AttachmentCmd(completeTaskBo.getFileId(), task.getId(), task.getProcessInstanceId()); managementService.executeCommand(attachmentCmd); FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(processInstance.getProcessDefinitionKey()); String businessStatus = WorkflowUtils.getBusinessStatus(task.getProcessInstanceId()); String businessStatus = WorkflowUtils.getBusinessStatus(processInstance.getBusinessKey()); if (BusinessStatusEnum.DRAFT.getStatus().equals(businessStatus) || BusinessStatusEnum.BACK.getStatus().equals(businessStatus) || BusinessStatusEnum.CANCEL.getStatus().equals(businessStatus)) { if (processHandler != null) { processHandler.handleProcess(processInstance.getBusinessKey(), businessStatus, true); ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,52 @@ package org.dromara.workflow.service.impl; import lombok.RequiredArgsConstructor; import org.dromara.common.core.service.WorkflowService; import org.dromara.workflow.service.IActProcessInstanceService; import org.dromara.workflow.utils.WorkflowUtils; import org.springframework.stereotype.Service; import java.util.List; /** * éç¨ å·¥ä½æµæå¡å®ç° * * @author may */ @RequiredArgsConstructor @Service public class WorkflowServiceImpl implements WorkflowService { private final IActProcessInstanceService iActProcessInstanceService; /** * è¿è¡ä¸çå®ä¾ å é¤ç¨å®ä¾ï¼å é¤åå²è®°å½ï¼å é¤ä¸å¡ä¸æµç¨å ³èä¿¡æ¯ * * @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); } } ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/QueryUtils.java
@@ -159,7 +159,7 @@ } TaskVo taskVo = BeanUtil.toBean(task, TaskVo.class); taskVo.setMultiInstance(WorkflowUtils.isMultiInstance(task.getProcessDefinitionId(), task.getTaskDefinitionKey()) != null); String businessStatus = WorkflowUtils.getBusinessStatus(taskVo.getProcessInstanceId()); String businessStatus = WorkflowUtils.getBusinessStatus(taskVo.getBusinessKey()); taskVo.setBusinessStatus(businessStatus); return taskVo; } ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java
@@ -228,10 +228,10 @@ /** * è·åå½åæµç¨ç¶æ * * @param processInstanceId æµç¨å®ä¾id * @param businessKey ä¸å¡id */ public static String getBusinessStatus(String processInstanceId) { HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery(processInstanceId).singleResult(); public static String getBusinessStatus(String businessKey) { HistoricProcessInstance historicProcessInstance = QueryUtils.hisBusinessKeyQuery(businessKey).singleResult(); return historicProcessInstance.getBusinessStatus(); }