add 增加启动流程并办理第一个任务接口

This commit is contained in:
gssong
2025-08-04 18:40:14 +08:00
parent 0ba909c52e
commit 6fc82a59f1
3 changed files with 48 additions and 6 deletions

View File

@ -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("流程发起异常");
}

View File

@ -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());
}
}
}