Skip to content
Snippets Groups Projects
Commit c0c7a39f authored by Long Cheng's avatar Long Cheng
Browse files

Merge branch 'master' into master-dev-merge

parents 2f2e7209 f09a468f
No related branches found
No related tags found
1 merge request!747AWS Merge Dev Into Master
......@@ -36,8 +36,10 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
......@@ -60,26 +62,36 @@ public class DpsConversionService {
List<JsonObject> recordsWithGeoJsonBlock = new ArrayList<>();
List<ConversionRecord> recordsWithoutConversionBlock = this.classifyRecords(originalRecords, conversionStatuses, recordsWithMetaBlock, recordsWithGeoJsonBlock);
List<ConversionRecord> allRecords = recordsWithoutConversionBlock;
Map<String, ConversionRecord> conversionResults = new HashMap<>();
addOrUpdateRecordStatus(conversionResults, recordsWithoutConversionBlock);
if (!conversionStatuses.isEmpty()) {
RecordsAndStatuses crsConversionResult = null;
List<ConversionRecord> conversionRecords = new ArrayList<>();
if (!recordsWithGeoJsonBlock.isEmpty()) {
List<ConversionRecord> geoConvertedRecords = new ArrayList<>();
crsConversionResult = this.crsConversionService.doCrsGeoJsonConversion(recordsWithGeoJsonBlock, conversionStatuses);
conversionRecords = this.getConversionRecords(crsConversionResult);
geoConvertedRecords = this.getConversionRecords(crsConversionResult);
addOrUpdateRecordStatus(conversionResults, geoConvertedRecords);
}
if (!recordsWithMetaBlock.isEmpty()) {
List<ConversionRecord> metaConvertedRecords = new ArrayList<>();
crsConversionResult = this.crsConversionService.doCrsConversion(recordsWithMetaBlock, conversionStatuses);
conversionRecords = this.getConversionRecords(crsConversionResult);
this.unitConversionService.convertUnitsToSI(conversionRecords);
this.datesConversionService.convertDatesToISO(conversionRecords);
metaConvertedRecords = this.getConversionRecords(crsConversionResult);
this.unitConversionService.convertUnitsToSI(metaConvertedRecords);
this.datesConversionService.convertDatesToISO(metaConvertedRecords);
addOrUpdateRecordStatus(conversionResults, metaConvertedRecords);
}
allRecords.addAll(conversionRecords);
}
this.checkMismatchAndLogMissing(originalRecords, allRecords);
List<ConversionRecord> out = new ArrayList<>(conversionResults.values());
this.checkMismatchAndLogMissing(originalRecords, out);
return this.makeResponseStatus(out);
}
return this.MakeResponseStatus(allRecords);
private void addOrUpdateRecordStatus(Map<String, ConversionRecord> out, List<ConversionRecord> result) {
for (ConversionRecord conversionRecord: result) {
String recordId = conversionRecord.getRecordId();
out.put(recordId, conversionRecord);
}
}
private List<ConversionRecord> classifyRecords(List<JsonObject> originalRecords, List<ConversionStatus.ConversionStatusBuilder> conversionStatuses, List<JsonObject> recordsWithMetaBlock, List<JsonObject> recordsWithGeoJsonBlock) {
......@@ -147,7 +159,7 @@ public class DpsConversionService {
return null;
}
private RecordsAndStatuses MakeResponseStatus(List<ConversionRecord> conversionRecords) {
private RecordsAndStatuses makeResponseStatus(List<ConversionRecord> conversionRecords) {
RecordsAndStatuses result = new RecordsAndStatuses();
List<JsonObject> records = new ArrayList<>();
List<ConversionStatus> conversionStatuses = new ArrayList<>();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment