mirror of
https://github.com/dromara/RuoYi-Vue-Plus.git
synced 2025-09-24 07:19:46 +08:00
add 增加启动流程并办理第一个任务接口
This commit is contained in:
@ -82,6 +82,7 @@ public interface WorkflowService {
|
|||||||
* completeTask.getVariables().put("ignore", true);
|
* completeTask.getVariables().put("ignore", true);
|
||||||
*
|
*
|
||||||
* @param completeTask 参数
|
* @param completeTask 参数
|
||||||
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
boolean completeTask(CompleteTaskDTO completeTask);
|
boolean completeTask(CompleteTaskDTO completeTask);
|
||||||
|
|
||||||
@ -90,6 +91,15 @@ public interface WorkflowService {
|
|||||||
*
|
*
|
||||||
* @param taskId 任务ID
|
* @param taskId 任务ID
|
||||||
* @param message 办理意见
|
* @param message 办理意见
|
||||||
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
boolean completeTask(Long taskId, String message);
|
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.setId(leave.getId());
|
||||||
// 后端发起需要忽略权限
|
// 后端发起需要忽略权限
|
||||||
bo.getParams().put("ignore", true);
|
bo.getParams().put("ignore", true);
|
||||||
StartProcessReturnDTO result = workflowService.startWorkFlow(new StartProcessDTO() {{
|
|
||||||
|
|
||||||
|
boolean flag1 = workflowService.startCompleteTask(new StartProcessDTO() {{
|
||||||
setBusinessId(leave.getId().toString());
|
setBusinessId(leave.getId().toString());
|
||||||
setFlowCode(StringUtils.isEmpty(bo.getFlowCode()) ? "leave1" : bo.getFlowCode());
|
setFlowCode(StringUtils.isEmpty(bo.getFlowCode()) ? "leave1" : bo.getFlowCode());
|
||||||
setVariables(bo.getParams());
|
setVariables(bo.getParams());
|
||||||
}});
|
}});
|
||||||
boolean flag1 = workflowService.completeTask(new CompleteTaskDTO() {{
|
|
||||||
setTaskId(result.getTaskId());
|
|
||||||
setMessageType(List.of("1"));
|
|
||||||
setVariables(bo.getParams());
|
|
||||||
}});
|
|
||||||
if (!flag1) {
|
if (!flag1) {
|
||||||
throw new ServiceException("流程发起异常");
|
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.CompleteTaskDTO;
|
||||||
import org.dromara.common.core.domain.dto.StartProcessDTO;
|
import org.dromara.common.core.domain.dto.StartProcessDTO;
|
||||||
import org.dromara.common.core.domain.dto.StartProcessReturnDTO;
|
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.service.WorkflowService;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.warm.flow.orm.entity.FlowInstance;
|
import org.dromara.warm.flow.orm.entity.FlowInstance;
|
||||||
import org.dromara.workflow.common.ConditionalOnEnable;
|
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.CompleteTaskBo;
|
||||||
import org.dromara.workflow.domain.bo.StartProcessBo;
|
import org.dromara.workflow.domain.bo.StartProcessBo;
|
||||||
import org.dromara.workflow.service.IFlwDefinitionService;
|
import org.dromara.workflow.service.IFlwDefinitionService;
|
||||||
import org.dromara.workflow.service.IFlwInstanceService;
|
import org.dromara.workflow.service.IFlwInstanceService;
|
||||||
import org.dromara.workflow.service.IFlwTaskService;
|
import org.dromara.workflow.service.IFlwTaskService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -148,4 +152,35 @@ public class WorkflowServiceImpl implements WorkflowService {
|
|||||||
return flwTaskService.completeTask(completeTask);
|
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