public List findByActivityInstanceId()

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();
    }