Search in sources :

Example 1 with MovementQuery

use of eu.europa.ec.fisheries.schema.movement.search.v1.MovementQuery in project UVMS-ActivityModule-APP by UnionVMS.

the class MovementModuleServiceBean method getMovement.

/**
 * {@inheritDoc}
 */
@Override
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public List<MovementType> getMovement(List<String> vesselIds, Date startDate, Date endDate) throws ServiceException {
    try {
        MovementQuery movementQuery = new MovementQuery();
        addListCriteria(vesselIds, movementQuery);
        addRangeCriteria(startDate, endDate, movementQuery);
        movementQuery.setExcludeFirstAndLastSegment(true);
        String request = MovementModuleRequestMapper.mapToGetMovementMapByQueryRequest(movementQuery);
        String moduleMessage = movementProducer.sendModuleMessage(request, activityConsumer.getDestination());
        TextMessage response = activityConsumer.getMessage(moduleMessage, TextMessage.class);
        if (response != null && !isUserFault(response)) {
            List<MovementMapResponseType> mapResponseTypes = MovementModuleResponseMapper.mapToMovementMapResponse(response);
            List<MovementType> movements = new ArrayList<>();
            for (MovementMapResponseType movementMap : mapResponseTypes) {
                movements.addAll(movementMap.getMovements());
            }
            return movements;
        } else {
            throw new ServiceException("FAILED TO GET DATA FROM MOVEMENT");
        }
    } catch (MovementDuplicateException | MovementFaultException | ServiceException | MessageException | JMSException | ModelMapperException e) {
        log.error("Exception in communication with movements", e);
        throw new ServiceException(e.getMessage(), e);
    }
}
Also used : MovementQuery(eu.europa.ec.fisheries.schema.movement.search.v1.MovementQuery) MovementFaultException(eu.europa.ec.fisheries.uvms.movement.model.exception.MovementFaultException) MovementDuplicateException(eu.europa.ec.fisheries.uvms.movement.model.exception.MovementDuplicateException) ArrayList(java.util.ArrayList) MovementMapResponseType(eu.europa.ec.fisheries.schema.movement.search.v1.MovementMapResponseType) JMSException(javax.jms.JMSException) MovementType(eu.europa.ec.fisheries.schema.movement.v1.MovementType) ServiceException(eu.europa.ec.fisheries.uvms.commons.service.exception.ServiceException) MessageException(eu.europa.ec.fisheries.uvms.commons.message.api.MessageException) ModelMapperException(eu.europa.ec.fisheries.uvms.movement.model.exception.ModelMapperException) TextMessage(javax.jms.TextMessage) TransactionAttribute(javax.ejb.TransactionAttribute)

Example 2 with MovementQuery

use of eu.europa.ec.fisheries.schema.movement.search.v1.MovementQuery in project UVMS-ActivityModule-APP by UnionVMS.

the class MovementModuleServiceBean method addRangeCriteria.

private void addRangeCriteria(Date startDate, Date endDate, MovementQuery movementQuery) {
    RangeCriteria rangeCriteria = new RangeCriteria();
    rangeCriteria.setKey(RangeKeyType.DATE);
    rangeCriteria.setFrom(DateFormatUtils.format(DateUtils.addDays(startDate, -1), "yyyy-MM-dd HH:mm:ss Z"));
    rangeCriteria.setTo(DateFormatUtils.format(DateUtils.addDays(endDate, 1), "yyyy-MM-dd HH:mm:ss Z"));
    movementQuery.getMovementRangeSearchCriteria().add(rangeCriteria);
}
Also used : RangeCriteria(eu.europa.ec.fisheries.schema.movement.search.v1.RangeCriteria)

Example 3 with MovementQuery

use of eu.europa.ec.fisheries.schema.movement.search.v1.MovementQuery in project UVMS-ActivityModule-APP by UnionVMS.

the class MovementModuleServiceBean method addListCriteria.

private void addListCriteria(List<String> vesselIds, MovementQuery movementQuery) {
    for (String vesselId : vesselIds) {
        ListCriteria listCriteria = new ListCriteria();
        listCriteria.setKey(SearchKey.CONNECT_ID);
        listCriteria.setValue(vesselId);
        movementQuery.getMovementSearchCriteria().add(listCriteria);
    }
}
Also used : ListCriteria(eu.europa.ec.fisheries.schema.movement.search.v1.ListCriteria)

Example 4 with MovementQuery

use of eu.europa.ec.fisheries.schema.movement.search.v1.MovementQuery in project UVMS-Docker by UnionVMS.

the class MovementMovementRestIT method createMovementQueryNumberOfLatestReports.

/**
 * Creates the movement query number of latest reports.
 *
 * @param numberPositions the number positions
 * @return the movement query
 */
private MovementQuery createMovementQueryNumberOfLatestReports(int numberPositions) {
    MovementQuery movementQuery = new MovementQuery();
    movementQuery.setExcludeFirstAndLastSegment(false);
    ListPagination listPagination = new ListPagination();
    listPagination.setListSize(BigInteger.valueOf(1000000));
    listPagination.setPage(BigInteger.valueOf(1));
    movementQuery.setPagination(listPagination);
    ListCriteria listCriteria = new ListCriteria();
    listCriteria.setKey(SearchKey.NR_OF_LATEST_REPORTS);
    listCriteria.setValue("" + numberPositions);
    movementQuery.getMovementSearchCriteria().add(listCriteria);
    RangeCriteria rangeCriteria = new RangeCriteria();
    rangeCriteria.setKey(RangeKeyType.DATE);
    rangeCriteria.setFrom("2017-09-25 15:33:14 +0200");
    rangeCriteria.setTo("2017-10-09 15:33:14 +0200");
    movementQuery.getMovementRangeSearchCriteria().add(rangeCriteria);
    return movementQuery;
}
Also used : MovementQuery(eu.europa.ec.fisheries.schema.movement.search.v1.MovementQuery) RangeCriteria(eu.europa.ec.fisheries.schema.movement.search.v1.RangeCriteria) ListCriteria(eu.europa.ec.fisheries.schema.movement.search.v1.ListCriteria) ListPagination(eu.europa.ec.fisheries.schema.movement.search.v1.ListPagination)

Example 5 with MovementQuery

use of eu.europa.ec.fisheries.schema.movement.search.v1.MovementQuery in project UVMS-Docker by UnionVMS.

the class MovementMovementRestIT method createMovementQuery.

/**
 * Creates the movement query.
 *
 * @return the movement query
 */
private MovementQuery createMovementQuery() {
    MovementQuery movementQuery = new MovementQuery();
    movementQuery.setExcludeFirstAndLastSegment(false);
    ListPagination listPagination = new ListPagination();
    listPagination.setListSize(BigInteger.valueOf(100));
    listPagination.setPage(BigInteger.valueOf(1));
    movementQuery.setPagination(listPagination);
    ListCriteria listCriteria = new ListCriteria();
    listCriteria.setKey(SearchKey.CONNECT_ID);
    listCriteria.setValue("Some connectId");
    movementQuery.getMovementSearchCriteria().add(listCriteria);
    return movementQuery;
}
Also used : MovementQuery(eu.europa.ec.fisheries.schema.movement.search.v1.MovementQuery) ListCriteria(eu.europa.ec.fisheries.schema.movement.search.v1.ListCriteria) ListPagination(eu.europa.ec.fisheries.schema.movement.search.v1.ListPagination)

Aggregations

ListCriteria (eu.europa.ec.fisheries.schema.movement.search.v1.ListCriteria)3 MovementQuery (eu.europa.ec.fisheries.schema.movement.search.v1.MovementQuery)3 ListPagination (eu.europa.ec.fisheries.schema.movement.search.v1.ListPagination)2 RangeCriteria (eu.europa.ec.fisheries.schema.movement.search.v1.RangeCriteria)2 MovementMapResponseType (eu.europa.ec.fisheries.schema.movement.search.v1.MovementMapResponseType)1 MovementType (eu.europa.ec.fisheries.schema.movement.v1.MovementType)1 MessageException (eu.europa.ec.fisheries.uvms.commons.message.api.MessageException)1 ServiceException (eu.europa.ec.fisheries.uvms.commons.service.exception.ServiceException)1 ModelMapperException (eu.europa.ec.fisheries.uvms.movement.model.exception.ModelMapperException)1 MovementDuplicateException (eu.europa.ec.fisheries.uvms.movement.model.exception.MovementDuplicateException)1 MovementFaultException (eu.europa.ec.fisheries.uvms.movement.model.exception.MovementFaultException)1 ArrayList (java.util.ArrayList)1 TransactionAttribute (javax.ejb.TransactionAttribute)1 JMSException (javax.jms.JMSException)1 TextMessage (javax.jms.TextMessage)1