Search in sources :

Example 11 with Relationships

use of org.hisp.dhis.dxf2.events.trackedentity.Relationships in project dhis2-core by dhis2.

the class AbstractRelationshipService method processRelationshipList.

@Override
@Transactional
public ImportSummaries processRelationshipList(List<Relationship> relationships, ImportOptions importOptions) {
    ImportSummaries importSummaries = new ImportSummaries();
    importOptions = updateImportOptions(importOptions);
    List<Relationship> create = new ArrayList<>();
    List<Relationship> update = new ArrayList<>();
    List<Relationship> delete = new ArrayList<>();
    if (importOptions.getImportStrategy().isCreate()) {
        create.addAll(relationships);
    } else if (importOptions.getImportStrategy().isCreateAndUpdate()) {
        for (Relationship relationship : relationships) {
            sortCreatesAndUpdates(relationship, create, update);
        }
    } else if (importOptions.getImportStrategy().isUpdate()) {
        update.addAll(relationships);
    } else if (importOptions.getImportStrategy().isDelete()) {
        delete.addAll(relationships);
    } else if (importOptions.getImportStrategy().isSync()) {
        for (Relationship relationship : relationships) {
            sortCreatesAndUpdates(relationship, create, update);
        }
    }
    importSummaries.addImportSummaries(addRelationships(create, importOptions));
    importSummaries.addImportSummaries(updateRelationships(update, importOptions));
    importSummaries.addImportSummaries(deleteRelationships(delete, importOptions));
    if (ImportReportMode.ERRORS == importOptions.getReportMode()) {
        importSummaries.getImportSummaries().removeIf(is -> !is.hasConflicts());
    }
    return importSummaries;
}
Also used : Relationship(org.hisp.dhis.dxf2.events.trackedentity.Relationship) ArrayList(java.util.ArrayList) ImportSummaries(org.hisp.dhis.dxf2.importsummary.ImportSummaries) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

ArrayList (java.util.ArrayList)8 Relationship (org.hisp.dhis.dxf2.events.trackedentity.Relationship)8 ImportSummaries (org.hisp.dhis.dxf2.importsummary.ImportSummaries)6 Transactional (org.springframework.transaction.annotation.Transactional)6 List (java.util.List)4 TrackedEntityInstanceParams (org.hisp.dhis.dxf2.events.TrackedEntityInstanceParams)4 Lists (com.google.common.collect.Lists)2 Map (java.util.Map)2 Collectors (java.util.stream.Collectors)2 Enrollment (org.hisp.dhis.dxf2.events.enrollment.Enrollment)2 Relationships (org.hisp.dhis.dxf2.events.trackedentity.Relationships)2 ImportSummary (org.hisp.dhis.dxf2.importsummary.ImportSummary)2 RelationshipConstraint (org.hisp.dhis.relationship.RelationshipConstraint)2 CurrentUserService (org.hisp.dhis.user.CurrentUserService)2 User (org.hisp.dhis.user.User)2 JsonMappingException (com.fasterxml.jackson.databind.JsonMappingException)1 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 Multimap (com.google.common.collect.Multimap)1 Collection (java.util.Collection)1