in extension/storage/storage-mongodb/src/main/java/com/alibaba/smart/framework/engine/persister/mongo/service/MongoExecutionInstanceStorage.java [138:167]
public List<ExecutionInstance> findByActivityInstanceId(String processInstanceId, String activityInstanceId,
ProcessEngineConfiguration processEngineConfiguration) {
MongoTemplate mongoTemplate = (MongoTemplate)processEngineConfiguration.getInstanceAccessor().access(MONGO_TEMPLATE);
TableSchemaStrategy tableSchemaStrategy = processEngineConfiguration.getTableSchemaStrategy();
String collectionName = tableSchemaStrategy.getTableSchemaFormatter(INSTANCE);
Query query = new Query();
query.addCriteria(Criteria.where(PROCESS_INSTANCE_ID).is(processInstanceId));
if(null != activityInstanceId){
query.addCriteria(Criteria.where(ACTIVITY_INSTANCE_ID).is(activityInstanceId));
}
query.with( Sort.by(Sort.Direction.ASC, GMT_CREATE));
List<ExecutionInstanceEntity> entityList = mongoTemplate.find(query,ExecutionInstanceEntity.class,collectionName);
if(null != entityList){
List<ExecutionInstance> instanceList = new ArrayList<ExecutionInstance>(entityList.size());
for (ExecutionInstanceEntity entity : entityList) {
ExecutionInstance instance = buildInstance(entity);
instanceList.add(instance);
}
return instanceList;
}
return Collections.emptyList();
}