diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnTaskServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnTaskServiceImpl.java index c6fb7614f..d2c3f7195 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnTaskServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnTaskServiceImpl.java @@ -403,6 +403,20 @@ public class BpmnTaskServiceImpl implements BpmnTaskService { BpmnHistoricTaskInstanceGroupVO groupVO = new BpmnHistoricTaskInstanceGroupVO(); groupVO.setProcessInstanceId(processInstanceId); groupVO.setTaskDefinitionKey(entry.getKey()); + if (CollectionUtils.isEmpty(entry.getValue())) { + groupVO.setResult(PROCESSING); + } else if (entry.getValue().size() == 1) { + groupVO.setResult(entry.getValue().get(0).getResult()); + } else { + if (entry.getValue().stream().allMatch(i -> Objects.equals(APPROVED, i.getResult()))) { + groupVO.setResult(APPROVED); + } else if (entry.getValue().stream().anyMatch(i -> Objects.equals(PROCESSING, i.getResult()))) { + groupVO.setResult(PROCESSING); + } else if (entry.getValue().stream().anyMatch(i -> Objects.equals(REJECTED, i.getResult()))) { + // FIXME 明显存在问题 + groupVO.setResult(REJECTED); + } + } groupVO.setTasks(entry.getValue()); groupVos.add(groupVO); }