24282 há 2 anos atrás
pai
commit
b0a2883f6a

+ 22 - 29
hx-flow/src/main/java/com/fjhx/flow/service/flow/impl/FlowProcessServiceImpl.java

@@ -109,23 +109,17 @@ public class FlowProcessServiceImpl implements FlowProcessService {
 
         // 如果下一节点不为结束节点,赋值下一个节点处理用户id
         if (!NodeTypeEnum.END.equals(nextNodeType)) {
-            // 前端没有传下一节点处理人id
-            if (dto.getHandleUserId() == null) {
-                FlowResult handleUser = getHandleUser(nextUserNode);
-                // 如果下一节点处理用户只有1人,赋值用户id
-                if (handleUser.getSuccess()) {
-                    flowExample.setHandleUserId(handleUser.getUserId());
-                }
-                // 如果下一节点处理用户有多人,则返回用户列表让用户选择下一节点处理人id
-                else {
-                    return handleUser;
-                }
+
+            FlowResult handleUser = getHandleUser(nextUserNode, dto.getHandleUserId());
+            // 如果下一节点处理用户只有1人,赋值用户id
+            if (handleUser.getSuccess()) {
+                flowExample.setHandleUserId(handleUser.getUserId());
             }
-            // 前端传下一节点处理人id
+            // 如果下一节点处理用户有多人,则返回用户列表让用户选择下一节点处理人id
             else {
-                // 传入用户id
-                flowExample.setHandleUserId(dto.getHandleUserId());
+                return handleUser;
             }
+
         }
 
         // 执行开始流程方法
@@ -255,22 +249,15 @@ public class FlowProcessServiceImpl implements FlowProcessService {
                     flowExample.setStatus(FlowStatusEnum.HAVE_PASSED.getKey());
                 } else {
 
-                    // 前端没有传下一节点处理人id
-                    if (dto.getHandleUserId() == null) {
-                        FlowResult handleUser = getHandleUser(nextUserNode);
-                        // 如果下一节点处理用户只有1人,赋值用户id
-                        if (handleUser.getSuccess()) {
-                            flowExample.setHandleUserId(handleUser.getUserId());
-                        }
-                        // 如果下一节点处理用户有多人,则返回用户列表让用户选择下一节点处理人id
-                        else {
-                            return handleUser;
-                        }
+                    FlowResult handleUser = getHandleUser(nextUserNode, dto.getHandleUserId());
+
+                    // 如果下一节点处理用户只有1人,赋值用户id
+                    if (handleUser.getSuccess()) {
+                        flowExample.setHandleUserId(handleUser.getUserId());
                     }
-                    // 前端传下一节点处理人id
+                    // 如果下一节点处理用户有多人,则返回用户列表让用户选择下一节点处理人id
                     else {
-                        // 传入用户id
-                        flowExample.setHandleUserId(dto.getHandleUserId());
+                        return handleUser;
                     }
 
                     // 流程进行中
@@ -464,9 +451,15 @@ public class FlowProcessServiceImpl implements FlowProcessService {
      * @param node 处理节点
      * @return 处理用户
      */
-    private FlowResult getHandleUser(FlowDefinitionNode node) {
+    private FlowResult getHandleUser(FlowDefinitionNode node, Long handleUserId) {
         FlowResult flowResult = new FlowResult();
 
+        if (handleUserId != null) {
+            flowResult.setSuccess(true);
+            flowResult.setUserId(handleUserId);
+            return flowResult;
+        }
+
         Integer handleObjectType = node.getHandleObjectType();
         Long handleObjectId = node.getHandleObjectId();