diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java index ba5fc3137..fb615d697 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java @@ -1238,14 +1238,41 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic private static void getFutureTasks(List forecasting, List tasks) { ListUtils.emptyIfNull(forecasting).forEach(e -> { - tasks.add(BpmnTaskInstanceLogVO.builder() + BpmnTaskInstanceLogVO build = BpmnTaskInstanceLogVO.builder() .taskDefinitionKey(e.getId()) .name(e.getName()) .approvalMethod(e.getApprovalMethod()) .nodeType(e.getNodeType()) .nodeMode(e.getNodeMode()) .forecastAssignees(e.getForecastAssigners()) - .build()); + .build(); + if (Objects.nonNull(e.getApprovalMethod())) { + switch (e.getApprovalMethod()) { + case bizSpecify: + case nobody: + build.setOperationDesc("待处理"); + break; + case autoPassed: + case autoRejection: + break; + case human: + if (Objects.equals(e.getNodeMode(), EXCEPTIONAL)) { + build.setOperationDesc("节点异常"); + } else { + int countPerson = e.getForecastAssigners().size(); + if (Objects.equals(BpmnFlowNodeMode.AND, e.getNodeMode())) { + build.setOperationDesc(countPerson + "人会签,需要全部同意"); + } else if (Objects.equals(BpmnFlowNodeMode.OR, e.getNodeMode())) { + build.setOperationDesc(countPerson + "人或签,仅一人同意即可"); + } + } + break; + } + } + if (Objects.equals(e.getNodeType(), NODE_CARBON_COPY)) { + build.setOperationDesc("抄送" + e.getForecastAssigners().size() + "人"); + } + tasks.add(build); }); }