Search in sources :

Example 11 with ObjectUtils.firstNonNull

use of org.apache.commons.lang3.ObjectUtils.firstNonNull in project dhis2-core by dhis2.

the class TrackedEntityCriteriaMapper method map.

@Transactional(readOnly = true)
public TrackedEntityInstanceQueryParams map(TrackedEntityInstanceCriteria criteria) {
    TrackedEntityInstanceQueryParams params = new TrackedEntityInstanceQueryParams();
    final Date programEnrollmentStartDate = ObjectUtils.firstNonNull(criteria.getProgramEnrollmentStartDate(), criteria.getProgramStartDate());
    final Date programEnrollmentEndDate = ObjectUtils.firstNonNull(criteria.getProgramEnrollmentEndDate(), criteria.getProgramEndDate());
    Set<OrganisationUnit> possibleSearchOrgUnits = new HashSet<>();
    User user = currentUserService.getCurrentUser();
    if (user != null) {
        possibleSearchOrgUnits = user.getTeiSearchOrganisationUnitsWithFallback();
    }
    QueryFilter queryFilter = getQueryFilter(criteria.getQuery());
    Map<String, TrackedEntityAttribute> attributes = attributeService.getAllTrackedEntityAttributes().stream().collect(Collectors.toMap(TrackedEntityAttribute::getUid, att -> att));
    if (criteria.getAttribute() != null) {
        for (String attr : criteria.getAttribute()) {
            QueryItem it = getQueryItem(attr, attributes);
            params.getAttributes().add(it);
        }
    }
    if (criteria.getFilter() != null) {
        for (String filt : criteria.getFilter()) {
            QueryItem it = getQueryItem(filt, attributes);
            params.getFilters().add(it);
        }
    }
    for (String orgUnit : criteria.getOrgUnits()) {
        OrganisationUnit organisationUnit = organisationUnitService.getOrganisationUnit(orgUnit);
        if (organisationUnit == null) {
            throw new IllegalQueryException("Organisation unit does not exist: " + orgUnit);
        }
        if (!organisationUnitService.isInUserHierarchy(organisationUnit.getUid(), possibleSearchOrgUnits)) {
            throw new IllegalQueryException("Organisation unit is not part of the search scope: " + orgUnit);
        }
        params.getOrganisationUnits().add(organisationUnit);
    }
    validateAssignedUser(criteria);
    if (criteria.getOuMode() == OrganisationUnitSelectionMode.CAPTURE && user != null) {
        params.getOrganisationUnits().addAll(user.getOrganisationUnits());
    }
    Program program = validateProgram(criteria);
    List<OrderParam> orderParams = toOrderParams(criteria.getOrder());
    validateOrderParams(program, orderParams, attributes);
    params.setQuery(queryFilter).setProgram(program).setProgramStage(validateProgramStage(criteria, program)).setProgramStatus(criteria.getProgramStatus()).setFollowUp(criteria.getFollowUp()).setLastUpdatedStartDate(criteria.getLastUpdatedStartDate()).setLastUpdatedEndDate(criteria.getLastUpdatedEndDate()).setLastUpdatedDuration(criteria.getLastUpdatedDuration()).setProgramEnrollmentStartDate(programEnrollmentStartDate).setProgramEnrollmentEndDate(programEnrollmentEndDate).setProgramIncidentStartDate(criteria.getProgramIncidentStartDate()).setProgramIncidentEndDate(criteria.getProgramIncidentEndDate()).setTrackedEntityType(validateTrackedEntityType(criteria)).setOrganisationUnitMode(criteria.getOuMode()).setEventStatus(criteria.getEventStatus()).setEventStartDate(criteria.getEventStartDate()).setEventEndDate(criteria.getEventEndDate()).setAssignedUserSelectionMode(criteria.getAssignedUserMode()).setAssignedUsers(criteria.getAssignedUsers()).setTrackedEntityInstanceUids(criteria.getTrackedEntityInstances()).setSkipMeta(criteria.isSkipMeta()).setPage(criteria.getPage()).setPageSize(criteria.getPageSize()).setTotalPages(criteria.isTotalPages()).setSkipPaging(criteria.isSkipPaging()).setIncludeDeleted(criteria.isIncludeDeleted()).setIncludeAllAttributes(criteria.isIncludeAllAttributes()).setUser(user).setOrders(orderParams);
    return params;
}
Also used : OrderColumn.isStaticColumn(org.hisp.dhis.trackedentity.TrackedEntityInstanceQueryParams.OrderColumn.isStaticColumn) QueryItem(org.hisp.dhis.common.QueryItem) TrackedEntityTypeService(org.hisp.dhis.trackedentity.TrackedEntityTypeService) TrackerTrackedEntityCriteria(org.hisp.dhis.webapi.controller.event.webrequest.tracker.TrackerTrackedEntityCriteria) Date(java.util.Date) OrganisationUnitService(org.hisp.dhis.organisationunit.OrganisationUnitService) IllegalQueryException(org.hisp.dhis.common.IllegalQueryException) Function(java.util.function.Function) Program(org.hisp.dhis.program.Program) StringUtils.isNotEmpty(org.apache.commons.lang3.StringUtils.isNotEmpty) TrackedEntityAttributeService(org.hisp.dhis.trackedentity.TrackedEntityAttributeService) HashSet(java.util.HashSet) TrackerTrackedEntityCriteriaMapper(org.hisp.dhis.webapi.controller.event.webrequest.tracker.mapper.TrackerTrackedEntityCriteriaMapper) ObjectUtils(org.apache.commons.lang3.ObjectUtils) Map(java.util.Map) User(org.hisp.dhis.user.User) Mappers(org.mapstruct.factory.Mappers) OrganisationUnitSelectionMode(org.hisp.dhis.common.OrganisationUnitSelectionMode) TrackedEntityInstanceQueryParams(org.hisp.dhis.trackedentity.TrackedEntityInstanceQueryParams) Preconditions.checkNotNull(com.google.common.base.Preconditions.checkNotNull) QueryOperator(org.hisp.dhis.common.QueryOperator) Set(java.util.Set) TrackedEntityInstanceCriteria(org.hisp.dhis.webapi.controller.event.webrequest.TrackedEntityInstanceCriteria) Collectors(java.util.stream.Collectors) ProgramStage(org.hisp.dhis.program.ProgramStage) OrderParamsHelper.toOrderParams(org.hisp.dhis.webapi.controller.event.mapper.OrderParamsHelper.toOrderParams) OrganisationUnit(org.hisp.dhis.organisationunit.OrganisationUnit) List(java.util.List) Component(org.springframework.stereotype.Component) DimensionalObject(org.hisp.dhis.common.DimensionalObject) CurrentUserService(org.hisp.dhis.user.CurrentUserService) AssignedUserSelectionMode(org.hisp.dhis.common.AssignedUserSelectionMode) TrackedEntityType(org.hisp.dhis.trackedentity.TrackedEntityType) QueryFilter(org.hisp.dhis.common.QueryFilter) ProgramService(org.hisp.dhis.program.ProgramService) TrackedEntityAttribute(org.hisp.dhis.trackedentity.TrackedEntityAttribute) Transactional(org.springframework.transaction.annotation.Transactional) OrganisationUnit(org.hisp.dhis.organisationunit.OrganisationUnit) QueryItem(org.hisp.dhis.common.QueryItem) User(org.hisp.dhis.user.User) Program(org.hisp.dhis.program.Program) TrackedEntityAttribute(org.hisp.dhis.trackedentity.TrackedEntityAttribute) IllegalQueryException(org.hisp.dhis.common.IllegalQueryException) Date(java.util.Date) QueryFilter(org.hisp.dhis.common.QueryFilter) TrackedEntityInstanceQueryParams(org.hisp.dhis.trackedentity.TrackedEntityInstanceQueryParams) HashSet(java.util.HashSet) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

Collectors (java.util.stream.Collectors)9 List (java.util.List)8 ObjectUtils (org.apache.commons.lang3.ObjectUtils)8 Set (java.util.Set)6 StringUtils (org.apache.commons.lang3.StringUtils)6 HashSet (java.util.HashSet)5 Map (java.util.Map)5 Function (java.util.function.Function)5 Transactional (org.springframework.transaction.annotation.Transactional)5 ArrayList (java.util.ArrayList)4 Date (java.util.Date)4 TextUtils (org.hisp.dhis.commons.util.TextUtils)4 OrganisationUnitSelectionMode (org.hisp.dhis.common.OrganisationUnitSelectionMode)3 OrganisationUnit (org.hisp.dhis.organisationunit.OrganisationUnit)3 CurrentUserService (org.hisp.dhis.user.CurrentUserService)3 User (org.hisp.dhis.user.User)3 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)2 Joiner (com.google.common.base.Joiner)2 Lists (com.google.common.collect.Lists)2 IOException (java.io.IOException)2