diff --git a/o2server/x_processplatform_core_entity/src/main/java/com/x/processplatform/core/entity/element/Route.java b/o2server/x_processplatform_core_entity/src/main/java/com/x/processplatform/core/entity/element/Route.java index 8bf263391b4f94865fc29280efc8a7c1f7e01f74..46e7d0660034f185fd67aedddb5f6fbff1c28346 100644 --- a/o2server/x_processplatform_core_entity/src/main/java/com/x/processplatform/core/entity/element/Route.java +++ b/o2server/x_processplatform_core_entity/src/main/java/com/x/processplatform/core/entity/element/Route.java @@ -72,6 +72,7 @@ public class Route extends SliceJpaObject { @PostLoad public void postLoad() { this.asyncSupported = this.getProperties().getAsyncSupported(); + this.soleDirect = this.getProperties().getSoleDirect(); } public Route() { @@ -93,14 +94,26 @@ public class Route extends SliceJpaObject { return asyncSupported; } + public Boolean getSoleDirect() { + return soleDirect; + } + public void setAsyncSupported(Boolean asyncSupported) { this.asyncSupported = asyncSupported; this.getProperties().setAsyncSupported(asyncSupported); } + public void setSoleDirect(Boolean soleDirect) { + this.soleDirect = soleDirect; + this.getProperties().setSoleDirect(soleDirect); + } + @Transient private Boolean asyncSupported; + @Transient + private Boolean soleDirect; + public static final String name_FIELDNAME = "name"; @FieldDescribe("名称.") @Column(length = length_255B, name = ColumnNamePrefix + name_FIELDNAME) diff --git a/o2server/x_processplatform_core_entity/src/main/java/com/x/processplatform/core/entity/element/RouteProperties.java b/o2server/x_processplatform_core_entity/src/main/java/com/x/processplatform/core/entity/element/RouteProperties.java index a50f413b3f204c74517eaf32163a806c1f38156b..975c6a4857e5f0084207fd3e4a66aea165babb0d 100644 --- a/o2server/x_processplatform_core_entity/src/main/java/com/x/processplatform/core/entity/element/RouteProperties.java +++ b/o2server/x_processplatform_core_entity/src/main/java/com/x/processplatform/core/entity/element/RouteProperties.java @@ -1,13 +1,20 @@ package com.x.processplatform.core.entity.element; +import org.apache.commons.lang3.BooleanUtils; + import com.x.base.core.entity.JsonProperties; import com.x.base.core.project.annotation.FieldDescribe; public class RouteProperties extends JsonProperties { + private static final long serialVersionUID = -7792270726211126577L; + @FieldDescribe("是否启用异步返回.") private Boolean asyncSupported = true; + @FieldDescribe("选择优先路由时是否直接执行路由(一票否决),默认true.") + private Boolean soleDirect; + public Boolean getAsyncSupported() { return asyncSupported; } @@ -16,4 +23,12 @@ public class RouteProperties extends JsonProperties { this.asyncSupported = asyncSupported; } + public Boolean getSoleDirect() { + return BooleanUtils.isNotFalse(soleDirect); + } + + public void setSoleDirect(Boolean soleDirect) { + this.soleDirect = soleDirect; + } + } diff --git a/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/processor/manual/ManualProcessor.java b/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/processor/manual/ManualProcessor.java index d49fbe3e5979ede425b06caf74976df38d749189..2a9ada9cf1d1cf8be8c9ca2845c39ffb474f6931 100644 --- a/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/processor/manual/ManualProcessor.java +++ b/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/processor/manual/ManualProcessor.java @@ -453,8 +453,9 @@ public class ManualProcessor extends AbstractManualProcessor { boolean passThrough = false; // 取得本环节已经处理的已办 List taskCompleteds = this.listJoinInquireTaskCompleted(aeiObjects, identities); - // 存在优先路由,如果有人选择了优先路由那么直接流转. - Route soleRoute = aeiObjects.getRoutes().stream().filter(r -> BooleanUtils.isTrue(r.getSole())).findFirst() + // 存在优先路由,如果有人选择了优先路由那么直接流转.需要判断是否启用了soleDirect + Route soleRoute = aeiObjects.getRoutes().stream() + .filter(r -> BooleanUtils.isTrue(r.getSole()) && BooleanUtils.isTrue(r.getSoleDirect())).findFirst() .orElse(null); if (null != soleRoute) { TaskCompleted soleTaskCompleted = taskCompleteds.stream()