bug fix 默认执行人为空的逻辑错误

This commit is contained in:
lbw committed 2024-02-24 17:13:04 +08:00
1 parent 46e068fe5e
commit 8c5208ffe7
3 files changed
+14 -13

No files matched your search

@@ -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
@@ -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<String, Object> variables = execution.getVariables();
Integer assignedType = node.getAssignedType();
List<Long> userIdList = assignUserStrategyMap.get(assignedType + "AssignUserStrategy").handle(node,
rootUser, variables);
List<Long> 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<NodeUser> nodeUserDtos = objectMapper.readValue(variableJson, new TypeReference<List<NodeUser>>() {
List<NodeUser> nodeUserDtos = objectMapper.readValue(variableJson, new TypeReference<>() {
});
if (CollUtil.isNotEmpty(nodeUserDtos)) {
List<Long> collect = nodeUserDtos.stream().map(NodeUser::getId).collect(Collectors.toList());
@@ -80,12 +79,10 @@ public class MultiInstanceHandler {
}
}
Optional.of(assignList).orElseGet(() -> {
List<Long> 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;
@@ -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) {