//РЕКУРСИВНО рассчитываем подотчет
Object result = executeQuery(subquery.getReport());
if(result instanceof QueryResults) {
QueryResults queryResults = (QueryResults) result;
subquery.setResults(queryResults);
result = new QueryResultsData(query.getId(), subquery, queryResults);
}
//либо подотчет рассчитан, и вернем данные об этом клиенту
// либо требуется пользовательский ввод
return result;
}