mirror of
https://github.com/dromara/RuoYi-Vue-Plus.git
synced 2026-07-09 06:06:11 +00:00
update 优化 liteflow 整体上下文用法优化
This commit is contained in:
+1
-1
@@ -14,7 +14,7 @@ public class ContextRequiredComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
if (getRequestData() == null) {
|
||||
if (getFirstContextBean() == null) {
|
||||
throw new ServiceException("LiteFlow 上下文不能为空");
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -27,8 +27,8 @@ public class FailComponent extends NodeComponent {
|
||||
* @return 失败提示
|
||||
*/
|
||||
private String getFailMessage() {
|
||||
Object requestData = getRequestData();
|
||||
if (requestData instanceof FailMessageProvider provider) {
|
||||
Object context = getFirstContextBean();
|
||||
if (context instanceof FailMessageProvider provider) {
|
||||
String message = provider.getFailMessage();
|
||||
if (StringUtils.isNotBlank(message)) {
|
||||
return message;
|
||||
|
||||
+9
-2
@@ -4,6 +4,7 @@ import com.yomahub.liteflow.core.FlowExecutor;
|
||||
import com.yomahub.liteflow.flow.LiteflowResponse;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.SpringUtils;
|
||||
|
||||
@@ -12,19 +13,25 @@ import org.dromara.common.core.utils.SpringUtils;
|
||||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
@Slf4j
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public class LiteFlowUtils {
|
||||
|
||||
/**
|
||||
* 执行 LiteFlow 链路,并按业务异常语义透传失败原因。
|
||||
* 执行 LiteFlow 链路,并按 contextBean 语义透传业务上下文和失败原因。
|
||||
*
|
||||
* @param chainId 链路标识
|
||||
* @param context 链路上下文
|
||||
*/
|
||||
public static void execute(String chainId, Object context) {
|
||||
LiteflowResponse response = SpringUtils.getBean(FlowExecutor.class).execute2Resp(chainId, context);
|
||||
if (context == null) {
|
||||
throw new ServiceException("LiteFlow 上下文不能为空");
|
||||
}
|
||||
LiteflowResponse response = SpringUtils.getBean(FlowExecutor.class).execute2Resp(chainId, null, context);
|
||||
if (!response.isSuccess()) {
|
||||
Exception cause = response.getCause();
|
||||
log.error("LiteFlow 链路执行失败 chainId={} requestId={} message={} steps={}",
|
||||
chainId, response.getRequestId(), response.getMessage(), response.getExecuteStepStrWithTime(), cause);
|
||||
if (cause instanceof RuntimeException runtimeException) {
|
||||
throw runtimeException;
|
||||
}
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@ public class CompleteAutoPassComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
CompleteTaskContext context = getRequestData();
|
||||
CompleteTaskContext context = getContextBean(CompleteTaskContext.class);
|
||||
FlowTask flowTask = context.getFlowTask();
|
||||
autoPass(flowTask.getId(), context.getFlowParams(), flowTask.getInstanceId());
|
||||
}
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ public class CompleteExecuteComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
CompleteTaskContext context = getRequestData();
|
||||
CompleteTaskContext context = getContextBean(CompleteTaskContext.class);
|
||||
CompleteTaskBo completeTaskBo = context.getCompleteTaskBo();
|
||||
Map<String, Object> variables = completeTaskBo.getVariables();
|
||||
FlowParams flowParams = FlowParams.build()
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ public class CompleteNeedAutoPassComponent extends NodeBooleanComponent {
|
||||
|
||||
@Override
|
||||
public boolean processBoolean() {
|
||||
CompleteTaskContext context = getRequestData();
|
||||
CompleteTaskContext context = getContextBean(CompleteTaskContext.class);
|
||||
return Boolean.TRUE.equals(context.getAutoPass());
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@ public class CompletePrepareComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
CompleteTaskContext context = getRequestData();
|
||||
CompleteTaskContext context = getContextBean(CompleteTaskContext.class);
|
||||
CompleteTaskBo completeTaskBo = context.getCompleteTaskBo();
|
||||
FlowTask flowTask = flowTaskMapper.selectById(completeTaskBo.getTaskId());
|
||||
if (ObjectUtil.isNull(flowTask)) {
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ public class InstanceDeleteEventComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
InstanceDeleteContext context = getRequestData();
|
||||
InstanceDeleteContext context = getContextBean(InstanceDeleteContext.class);
|
||||
String userId = LoginHelper.getUserIdStr();
|
||||
context.getFlowInstances().forEach(flowInstance -> {
|
||||
if (!LoginHelper.isSuperAdmin() && !flowInstance.getCreateBy().equals(userId)) {
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ public class InstanceDeleteExecuteComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
InstanceDeleteContext context = getRequestData();
|
||||
InstanceDeleteContext context = getContextBean(InstanceDeleteContext.class);
|
||||
if (!context.isHistory()) {
|
||||
context.setResult(insService.remove(context.getDeleteInstanceIds()));
|
||||
return;
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ public class InstanceDeleteExistsComponent extends NodeBooleanComponent {
|
||||
|
||||
@Override
|
||||
public boolean processBoolean() {
|
||||
InstanceDeleteContext context = getRequestData();
|
||||
InstanceDeleteContext context = getContextBean(InstanceDeleteContext.class);
|
||||
return CollUtil.isNotEmpty(context.getFlowInstances());
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ public class InstanceDeleteLoadComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
InstanceDeleteContext context = getRequestData();
|
||||
InstanceDeleteContext context = getContextBean(InstanceDeleteContext.class);
|
||||
List<FlowInstance> flowInstances;
|
||||
if (CollUtil.isNotEmpty(context.getBusinessIds())) {
|
||||
flowInstances = flowInstanceMapper.selectList(QueryBuilder.lambda(FlowInstance.class)
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ public class TaskOpExecuteComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
TaskOperationContext context = getRequestData();
|
||||
TaskOperationContext context = getContextBean(TaskOperationContext.class);
|
||||
Long taskId = context.getTaskOperationBo().getTaskId();
|
||||
boolean result = false;
|
||||
switch (context.getOperation()) {
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ public class TaskOpLoadComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
TaskOperationContext context = getRequestData();
|
||||
TaskOperationContext context = getContextBean(TaskOperationContext.class);
|
||||
Task task = taskService.getById(context.getTaskOperationBo().getTaskId());
|
||||
if (ObjectUtil.isNull(task)) {
|
||||
throw new ServiceException("任务不存在!");
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ public class TaskOpNeedNotifyComponent extends NodeBooleanComponent {
|
||||
|
||||
@Override
|
||||
public boolean processBoolean() {
|
||||
TaskOperationContext context = getRequestData();
|
||||
TaskOperationContext context = getContextBean(TaskOperationContext.class);
|
||||
return context.isResult() && CollUtil.isNotEmpty(context.getTaskOperationBo().getMessageType());
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ public class TaskOpNotifyComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
TaskOperationContext context = getRequestData();
|
||||
TaskOperationContext context = getContextBean(TaskOperationContext.class);
|
||||
TaskOperationBo bo = context.getTaskOperationBo();
|
||||
List<Long> userIdList = new ArrayList<>();
|
||||
if (StringUtils.isNotBlank(bo.getUserId())) {
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ public class TaskOpPrepareComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
TaskOperationContext context = getRequestData();
|
||||
TaskOperationContext context = getContextBean(TaskOperationContext.class);
|
||||
TaskOperationEnum op = TaskOperationEnum.getByCode(context.getTaskOperation());
|
||||
if (op == null) {
|
||||
log.error("Invalid operation type:{} ", context.getTaskOperation());
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ public class StartExecuteComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
StartProcessContext context = getRequestData();
|
||||
StartProcessContext context = getContextBean(StartProcessContext.class);
|
||||
FlowParams flowParams = FlowParams.build()
|
||||
.handler(context.getStartProcessBo().getHandler())
|
||||
.flowCode(context.getStartProcessBo().getFlowCode())
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ public class StartExistsComponent extends NodeBooleanComponent {
|
||||
|
||||
@Override
|
||||
public boolean processBoolean() {
|
||||
StartProcessContext context = getRequestData();
|
||||
StartProcessContext context = getContextBean(StartProcessContext.class);
|
||||
return ObjectUtil.isNotNull(context.getExistingInstance());
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ public class StartPrepareInstanceComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
StartProcessContext context = getRequestData();
|
||||
StartProcessContext context = getContextBean(StartProcessContext.class);
|
||||
Definition definition = FlowEngine.defService().getPublishByFlowCode(context.getStartProcessBo().getFlowCode());
|
||||
if (ObjectUtil.isNull(definition)) {
|
||||
throw new ServiceException("流程【" + context.getStartProcessBo().getFlowCode() + "】未发布,请先在流程设计器中发布流程定义");
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ public class StartPrepareRequestComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
StartProcessContext context = getRequestData();
|
||||
StartProcessContext context = getContextBean(StartProcessContext.class);
|
||||
String businessId = context.getStartProcessBo().getBusinessId();
|
||||
if (StringUtils.isBlank(businessId)) {
|
||||
throw new ServiceException("启动工作流时必须包含业务ID");
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ public class StartResumeComponent extends NodeComponent {
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
StartProcessContext context = getRequestData();
|
||||
StartProcessContext context = getContextBean(StartProcessContext.class);
|
||||
BusinessStatusEnum.checkStartStatus(context.getExistingInstance().getFlowStatus());
|
||||
List<Task> taskList = taskService.list(new FlowTask().setInstanceId(context.getExistingInstance().getId()));
|
||||
if (CollUtil.isEmpty(taskList)) {
|
||||
|
||||
Reference in New Issue
Block a user