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:
		@@ -82,6 +82,7 @@ public interface WorkflowService {
 | 
			
		||||
     * completeTask.getVariables().put("ignore", true);
 | 
			
		||||
     *
 | 
			
		||||
     * @param completeTask 参数
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    boolean completeTask(CompleteTaskDTO completeTask);
 | 
			
		||||
 | 
			
		||||
@@ -90,6 +91,15 @@ public interface WorkflowService {
 | 
			
		||||
     *
 | 
			
		||||
     * @param taskId  任务ID
 | 
			
		||||
     * @param message 办理意见
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    boolean completeTask(Long taskId, String message);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 启动流程并办理第一个任务
 | 
			
		||||
     *
 | 
			
		||||
     * @param startProcess 参数
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    boolean startCompleteTask(StartProcessDTO startProcess);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -131,16 +131,13 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
 | 
			
		||||
            bo.setId(leave.getId());
 | 
			
		||||
            // 后端发起需要忽略权限
 | 
			
		||||
            bo.getParams().put("ignore", true);
 | 
			
		||||
            StartProcessReturnDTO result = workflowService.startWorkFlow(new StartProcessDTO() {{
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            boolean flag1 = workflowService.startCompleteTask(new StartProcessDTO() {{
 | 
			
		||||
                setBusinessId(leave.getId().toString());
 | 
			
		||||
                setFlowCode(StringUtils.isEmpty(bo.getFlowCode()) ? "leave1" : bo.getFlowCode());
 | 
			
		||||
                setVariables(bo.getParams());
 | 
			
		||||
            }});
 | 
			
		||||
            boolean flag1 = workflowService.completeTask(new CompleteTaskDTO() {{
 | 
			
		||||
                setTaskId(result.getTaskId());
 | 
			
		||||
                setMessageType(List.of("1"));
 | 
			
		||||
                setVariables(bo.getParams());
 | 
			
		||||
            }});
 | 
			
		||||
            if (!flag1) {
 | 
			
		||||
                throw new ServiceException("流程发起异常");
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
@@ -6,17 +6,21 @@ import lombok.RequiredArgsConstructor;
 | 
			
		||||
import org.dromara.common.core.domain.dto.CompleteTaskDTO;
 | 
			
		||||
import org.dromara.common.core.domain.dto.StartProcessDTO;
 | 
			
		||||
import org.dromara.common.core.domain.dto.StartProcessReturnDTO;
 | 
			
		||||
import org.dromara.common.core.exception.ServiceException;
 | 
			
		||||
import org.dromara.common.core.service.WorkflowService;
 | 
			
		||||
import org.dromara.common.core.utils.StringUtils;
 | 
			
		||||
import org.dromara.warm.flow.orm.entity.FlowInstance;
 | 
			
		||||
import org.dromara.workflow.common.ConditionalOnEnable;
 | 
			
		||||
import org.dromara.workflow.common.enums.MessageTypeEnum;
 | 
			
		||||
import org.dromara.workflow.domain.bo.CompleteTaskBo;
 | 
			
		||||
import org.dromara.workflow.domain.bo.StartProcessBo;
 | 
			
		||||
import org.dromara.workflow.service.IFlwDefinitionService;
 | 
			
		||||
import org.dromara.workflow.service.IFlwInstanceService;
 | 
			
		||||
import org.dromara.workflow.service.IFlwTaskService;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.springframework.transaction.annotation.Transactional;
 | 
			
		||||
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
@@ -148,4 +152,35 @@ public class WorkflowServiceImpl implements WorkflowService {
 | 
			
		||||
        return flwTaskService.completeTask(completeTask);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 启动流程并办理第一个任务
 | 
			
		||||
     *
 | 
			
		||||
     * @param startProcess 参数
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public boolean startCompleteTask(StartProcessDTO startProcess) {
 | 
			
		||||
        try {
 | 
			
		||||
            StartProcessReturnDTO startWorkFlow = flwTaskService.startWorkFlow(BeanUtil.toBean(startProcess, StartProcessBo.class));
 | 
			
		||||
            CompleteTaskBo completeTask = new CompleteTaskBo();
 | 
			
		||||
            completeTask.setTaskId(startWorkFlow.getTaskId());
 | 
			
		||||
            completeTask.setMessageType(Collections.singletonList(MessageTypeEnum.SYSTEM_MESSAGE.getCode()));
 | 
			
		||||
            StartProcessReturnDTO result = flwTaskService.startWorkFlow(new StartProcessBo() {{
 | 
			
		||||
                setBusinessId(startProcess.getBusinessId());
 | 
			
		||||
                setFlowCode(startProcess.getFlowCode());
 | 
			
		||||
                setVariables(startProcess.getVariables());
 | 
			
		||||
            }});
 | 
			
		||||
            boolean flag = flwTaskService.completeTask(new CompleteTaskBo() {{
 | 
			
		||||
                setTaskId(result.getTaskId());
 | 
			
		||||
                setMessageType(Collections.singletonList(MessageTypeEnum.SYSTEM_MESSAGE.getCode()));
 | 
			
		||||
                setVariables(startProcess.getVariables());
 | 
			
		||||
            }});
 | 
			
		||||
            if (!flag) {
 | 
			
		||||
                throw new ServiceException("流程发起异常");
 | 
			
		||||
            }
 | 
			
		||||
            return true;
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            throw new ServiceException(e.getMessage());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user