mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 16:23:42 +08:00 
			
		
		
		
	add 添加通用接口
This commit is contained in:
		@@ -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);
 | 
			
		||||
}
 | 
			
		||||
@@ -180,7 +180,7 @@ public class ActTaskServiceImpl implements IActTaskService {
 | 
			
		||||
            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);
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -159,7 +159,7 @@ public class QueryUtils {
 | 
			
		||||
        }
 | 
			
		||||
        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;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -228,10 +228,10 @@ public class WorkflowUtils {
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取当前流程状态
 | 
			
		||||
     *
 | 
			
		||||
     * @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();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user