/**
* @param task 任务节点id
* @return boolean (这里用一句话描述返回结果说明)
* @Title: isMultiInstance 是否为多实例节点
* @Description: 是否为多实例节点
*/
private boolean isMultiInstance(TaskEntity task) {
// 获取流程定义id
boolean flag = false;
String processDefinitionId = task.getProcessDefinitionId();
Process process = ProcessDefinitionUtil.getProcess(processDefinitionId);
FlowElement flowElement = process.getFlowElement(task.getTaskDefinitionKey());
// 根据活动id获取活动实例
if (flowElement instanceof UserTask) {
UserTask userTask = (UserTask) flowElement;
if (userTask.getBehavior() instanceof ParallelMultiInstanceBehavior) {
ParallelMultiInstanceBehavior behavior = (ParallelMultiInstanceBehavior) userTask.getBehavior();
if (behavior != null && behavior.getCollectionExpression() != null) {
flag = true;
}
}
}
return flag;
}
当前TaskEntity可从执行期中的commandcontext上下文中获得taskEntityManager进一步获得节点对象