diff --git a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/listeners/FlowProcessEventListener.java b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/listeners/FlowProcessEventListener.java index 8ec53040c..f2e3e4cdd 100644 --- a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/listeners/FlowProcessEventListener.java +++ b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/listeners/FlowProcessEventListener.java @@ -181,7 +181,7 @@ public class FlowProcessEventListener implements FlowableEventListener { processNodeRecordAssignUserParamDto .setLocalData(objectMapper.writeValueAsString(taskService.getVariablesLocal(task.getId()))); processNodeRecordAssignUserParamDto.setNodeId(taskDefinitionKey); - processNodeRecordAssignUserParamDto.setUserId(Long.parseLong(assignee)); + processNodeRecordAssignUserParamDto.setUserId(Long.parseLong(task.getAssignee())); processNodeRecordAssignUserParamDto.setTaskId(task.getId()); processNodeRecordAssignUserParamDto.setNodeName(task.getName()); processNodeRecordAssignUserParamDto.setTaskType("COMPLETE"); @@ -216,7 +216,7 @@ public class FlowProcessEventListener implements FlowableEventListener { processNodeRecordAssignUserParamDto.setProcessInstanceId(processInstanceId); // processNodeRecordAssignUserParamDto.setData(); processNodeRecordAssignUserParamDto.setNodeId(taskDefinitionKey); - processNodeRecordAssignUserParamDto.setUserId(Long.parseLong(assignee)); + processNodeRecordAssignUserParamDto.setUserId(Long.parseLong(task.getAssignee())); processNodeRecordAssignUserParamDto.setTaskId(task.getId()); processNodeRecordAssignUserParamDto.setNodeName(task.getName()); processNodeRecordAssignUserParamDto diff --git a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/node/MultiInstanceHandler.java b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/node/MultiInstanceHandler.java index 1997aaa7a..be8524a26 100644 --- a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/node/MultiInstanceHandler.java +++ b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/node/MultiInstanceHandler.java @@ -20,7 +20,6 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.stream.Collectors; @Slf4j @@ -62,8 +61,8 @@ public class MultiInstanceHandler { if (node != null) { Map variables = execution.getVariables(); Integer assignedType = node.getAssignedType(); - List userIdList = assignUserStrategyMap.get(assignedType + "AssignUserStrategy").handle(node, - rootUser, variables); + List userIdList = assignUserStrategyMap.get(assignedType + "AssignUserStrategy") + .handle(node, rootUser, variables); assignList.addAll(userIdList); } else { @@ -72,7 +71,7 @@ public class MultiInstanceHandler { Object variable = execution.getVariable(format); String variableJson = objectMapper.writeValueAsString(variable); - List nodeUserDtos = objectMapper.readValue(variableJson, new TypeReference>() { + List nodeUserDtos = objectMapper.readValue(variableJson, new TypeReference<>() { }); if (CollUtil.isNotEmpty(nodeUserDtos)) { List collect = nodeUserDtos.stream().map(NodeUser::getId).collect(Collectors.toList()); @@ -80,12 +79,10 @@ public class MultiInstanceHandler { } } - Optional.of(assignList).orElseGet(() -> { - List defaultList = new ArrayList<>(); - defaultList.add(ProcessInstanceConstant.DEFAULT_EMPTY_ASSIGN); - return defaultList; - }); - + // 标记为空 + if (CollUtil.isEmpty(assignList)) { + assignList.add(ProcessInstanceConstant.DEFAULT_EMPTY_ASSIGN); + } return assignList; } @@ -128,7 +125,7 @@ public class MultiInstanceHandler { if (multipleMode == ProcessInstanceConstant.MULTIPLE_MODE_AL_SAME) { return BigDecimal.valueOf(nrOfCompletedInstances * 100L) - .compareTo(BigDecimal.valueOf(nrOfCompletedInstances).multiply(modePercentage)) > 0; + .compareTo(BigDecimal.valueOf(nrOfCompletedInstances).multiply(modePercentage)) > 0; } return nrOfCompletedInstances == nrOfInstances; diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/utils/NodeFormatUtil.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/utils/NodeFormatUtil.java index 73a45df49..d99547574 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/utils/NodeFormatUtil.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/utils/NodeFormatUtil.java @@ -251,6 +251,10 @@ public class NodeFormatUtil { * @return */ private static UserVo buildUser(long userId) { + if (ProcessInstanceConstant.DEFAULT_EMPTY_ASSIGN == userId){ + return UserVo.builder().id(userId).build(); + } + RemoteUserService userService = SpringUtil.getBean(RemoteUserService.class); SysUser user = userService.getUserById(userId).getData(); if (user == null) {