|
|
@@ -398,7 +398,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
|
|
? BpmSimpleModelNodeTypeEnum.START_USER_NODE.getType()
|
|
|
: ObjUtil.defaultIfNull(parseNodeType(flowNode), // 目的:解决“办理节点”的识别
|
|
|
BpmSimpleModelNodeTypeEnum.APPROVE_NODE.getType()))
|
|
|
- .setStatus(FlowableUtils.getTaskStatus(task))
|
|
|
+ .setStatus(getEndActivityNodeStatus(task))
|
|
|
.setCandidateStrategy(BpmnModelUtils.parseCandidateStrategy(flowNode))
|
|
|
.setStartTime(DateUtils.of(task.getCreateTime())).setEndTime(DateUtils.of(task.getEndTime()))
|
|
|
.setTasks(singletonList(BpmProcessInstanceConvert.INSTANCE.buildApprovalTaskInfo(task)));
|
|
|
@@ -462,6 +462,15 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
|
|
return approvalNodes;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取结束节点的状态
|
|
|
+ */
|
|
|
+ private Integer getEndActivityNodeStatus(HistoricTaskInstance task) {
|
|
|
+ Integer status = FlowableUtils.getTaskStatus(task);
|
|
|
+ return status == null ? BpmTaskStatusEnum.SKIP.getStatus() : status; // 结束节点未获取到状态,为跳过状态
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获得【进行中】的活动节点们
|
|
|
*/
|
|
|
@@ -565,10 +574,14 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
|
|
if (runActivityIds.contains(node.getId())) {
|
|
|
return null;
|
|
|
}
|
|
|
-
|
|
|
+ Integer status = BpmTaskStatusEnum.NOT_START.getStatus();
|
|
|
+ // 如果节点被跳过。设置状态为跳过
|
|
|
+ if (SimpleModelUtils.isSkipNode(node, processVariables)) {
|
|
|
+ status = BpmTaskStatusEnum.SKIP.getStatus();
|
|
|
+ }
|
|
|
ActivityNode activityNode = new ActivityNode().setId(node.getId()).setName(node.getName())
|
|
|
.setNodeType(node.getType()).setCandidateStrategy(node.getCandidateStrategy())
|
|
|
- .setStatus(BpmTaskStatusEnum.NOT_START.getStatus());
|
|
|
+ .setStatus(status);
|
|
|
|
|
|
// 1. 开始节点/审批节点
|
|
|
if (ObjectUtils.equalsAny(node.getType(),
|
|
|
@@ -608,8 +621,13 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
|
|
if (runActivityIds.contains(node.getId())) {
|
|
|
return null;
|
|
|
}
|
|
|
+ Integer status = BpmTaskStatusEnum.NOT_START.getStatus();
|
|
|
+ // 如果节点被跳过,状态设置为跳过
|
|
|
+ if(BpmnModelUtils.isSkipNode(node, processVariables)){
|
|
|
+ status = BpmTaskStatusEnum.SKIP.getStatus();
|
|
|
+ }
|
|
|
ActivityNode activityNode = new ActivityNode().setId(node.getId())
|
|
|
- .setStatus(BpmTaskStatusEnum.NOT_START.getStatus());
|
|
|
+ .setStatus(status);
|
|
|
|
|
|
// 1. 开始节点
|
|
|
if (node instanceof StartEvent) {
|