fix download and xml
This commit is contained in:
parent
5e3d0531d2
commit
c0c3ce00e5
2 changed files with 48 additions and 9 deletions
|
|
@ -126,24 +126,37 @@ public class DownloadService {
|
|||
validationResults, limit, offset
|
||||
);
|
||||
if (query.get(REQUEST_WITH_ADDITIONAL_ID) != null) {
|
||||
pageIndex--;
|
||||
SqlDownloadBuildQueryResponse response = (SqlDownloadBuildQueryResponse) query.get(REQUEST_WITH_ADDITIONAL_ID);
|
||||
String url = response.getSql();
|
||||
String paramName = response.getParamName();
|
||||
Collection<List<String>> pages = partitionList(response.getParams(), limit);
|
||||
for (List<String> page : pages) {
|
||||
pageIndex++;
|
||||
String resultSet = "(" + page.stream()
|
||||
.map(s -> "'" + s.trim() + "'")
|
||||
.collect(Collectors.joining(", ")) + ")";
|
||||
url = url.replace("${" + paramName + "}",
|
||||
resultSet
|
||||
);
|
||||
results = new ArrayList<>(executeSqlQuery(connection, url));
|
||||
if (results.size() <= 1) {
|
||||
break;
|
||||
url = url.replaceAll(";(?=[^;]*$)", " ") + " LIMIT " + limit + " OFFSET "
|
||||
+ offset + ";";
|
||||
while (true) {
|
||||
results = new ArrayList<>(executeSqlQuery(connection, url));
|
||||
if (results.size() <= 1) {
|
||||
break;
|
||||
}
|
||||
File file = writeSingleSqlCsvFile(results, "download-part" + pageIndex + "-", ".csv");
|
||||
allFiles.add(file);
|
||||
if (results.size() - 1 < limit) {
|
||||
break;
|
||||
}
|
||||
String oldPagination = " OFFSET " + offset + ";";
|
||||
offset += limit;
|
||||
String newPagination = " OFFSET " + offset + ";";
|
||||
url = url.replace(oldPagination, newPagination);
|
||||
pageIndex++;
|
||||
}
|
||||
File file = writeSingleSqlCsvFile(results, "download-part" + pageIndex + "-", ".csv");
|
||||
allFiles.add(file);
|
||||
pageIndex++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
|
|
@ -42,7 +42,10 @@
|
|||
</AqlConnectionParams>
|
||||
</AQLDownloadRequest>
|
||||
<SQLDownloadRequest>
|
||||
<DownloadRequestType>Type_A</DownloadRequestType>
|
||||
<DownloadRequestType>По конкретным id</DownloadRequestType>
|
||||
<RequestValidationRules
|
||||
isEmptyDatesAllowed="true"
|
||||
/>
|
||||
<RequestURL>
|
||||
Select system_id_ern from public.recruits where id in ${endpointArguments};
|
||||
</RequestURL>
|
||||
|
|
@ -64,8 +67,8 @@
|
|||
isEmptyDatesAllowed="true"
|
||||
isIdsFormatted="true"
|
||||
/>
|
||||
<DownloadRequestType>Type_B</DownloadRequestType>
|
||||
<RequestArgumentLimit>10</RequestArgumentLimit>
|
||||
<DownloadRequestType>С выделенным подзапросом (100)</DownloadRequestType>
|
||||
<RequestArgumentLimit>100</RequestArgumentLimit>
|
||||
<RequestURL>
|
||||
Select system_id_ern from public.recruits where id in ${additionalArguments};
|
||||
</RequestURL>
|
||||
|
|
@ -98,5 +101,28 @@
|
|||
</RequestArgumentConnectionParams>
|
||||
</RequestArgument>
|
||||
</SQLDownloadRequest>
|
||||
<SQLDownloadRequest>
|
||||
<RequestValidationRules
|
||||
isEmptyIdsAllowed="true"
|
||||
isEmptyDatesAllowed="true"
|
||||
isIdsFormatted="true"
|
||||
/>
|
||||
<DownloadRequestType>Одним запросом (50)</DownloadRequestType>
|
||||
<RequestArgumentLimit>50</RequestArgumentLimit>
|
||||
<RequestURL>
|
||||
Select system_id_ern from public.recruits;
|
||||
</RequestURL>
|
||||
<SqlConnectionParams>
|
||||
<JdbcHost>10.10.31.118</JdbcHost>
|
||||
<JdbcPort>5432</JdbcPort>
|
||||
<JdbcUsername>ervu</JdbcUsername>
|
||||
<JdbcPassword>ervu</JdbcPassword>
|
||||
<JdbcDriverClassName>org.postgresql.Driver</JdbcDriverClassName>
|
||||
<JdbcXaDataSourceClassName>org.postgresql.xa.PGXADataSource</JdbcXaDataSourceClassName>
|
||||
<JdbcXaDataSourcePoolSize>50</JdbcXaDataSourcePoolSize>
|
||||
<JdbcDatabase>person_registry</JdbcDatabase>
|
||||
<JdbcXaDataSourceBorrowConnectionTimeout>4000</JdbcXaDataSourceBorrowConnectionTimeout>
|
||||
</SqlConnectionParams>
|
||||
</SQLDownloadRequest>
|
||||
|
||||
</Requests>
|
||||
Loading…
Add table
Add a link
Reference in a new issue