use of eu.europa.ec.fisheries.uvms.activity.model.schemas.GroupCriteria in project UVMS-ActivityModule-APP by UnionVMS.
the class FaCatchReportServiceBeanTest method testGetCatchesTableForCatchDetailsScreen.
@Test
@SneakyThrows
public void testGetCatchesTableForCatchDetailsScreen() throws ServiceException {
FishingActivityQuery query = new FishingActivityQuery();
List<GroupCriteria> groupByFields = new ArrayList<>();
groupByFields.add(GroupCriteria.DATE_DAY);
groupByFields.add(GroupCriteria.FAO_AREA);
groupByFields.add(GroupCriteria.TERRITORY);
groupByFields.add(GroupCriteria.EFFORT_ZONE);
groupByFields.add(GroupCriteria.GFCM_GSA);
groupByFields.add(GroupCriteria.GFCM_STAT_RECTANGLE);
groupByFields.add(GroupCriteria.ICES_STAT_RECTANGLE);
groupByFields.add(GroupCriteria.RFMO);
groupByFields.add(GroupCriteria.SPECIES);
query.setGroupByFields(groupByFields);
Map<SearchFilter, String> searchCriteriaMap = new EnumMap<SearchFilter, String>(SearchFilter.class);
searchCriteriaMap.put(SearchFilter.TRIP_ID, "NOR-TRP-20160517234053706");
query.setSearchCriteriaMap(searchCriteriaMap);
when(faCatchDao.getGroupedFaCatchData(query, Boolean.FALSE)).thenReturn(MapperUtil.getGroupedFaCatchSummaryCustomEntityData());
when(faCatchDao.getGroupedFaCatchData(query, Boolean.TRUE)).thenReturn(MapperUtil.getGroupedFaCatchSummaryCustomEntityData());
// when(vesselIdentifiersDao.getLatestVesselIdByTrip("NOR-TRP-20160517234053706")).thenReturn(MapperUtil.getVesselIdentifiersList());
// Trigger
FACatchDetailsDTO faCatchDetailsDTO = faCatchReportService.getCatchDetailsScreen("NOR-TRP-20160517234053706");
Mockito.verify(faCatchDao, Mockito.times(2)).getGroupedFaCatchData(Mockito.any(FishingActivityQuery.class), Mockito.any(Boolean.class));
// Verify
assertNotNull(faCatchDetailsDTO);
}
use of eu.europa.ec.fisheries.uvms.activity.model.schemas.GroupCriteria in project UVMS-ActivityModule-APP by UnionVMS.
the class FaCatchReportServiceBeanTest method testGetCatchSummaryReport.
@Test
@SneakyThrows
public void testGetCatchSummaryReport() throws ServiceException {
FishingActivityQuery query = new FishingActivityQuery();
List<GroupCriteria> groupByFields = new ArrayList<>();
groupByFields.add(GroupCriteria.DATE_DAY);
groupByFields.add(GroupCriteria.FAO_AREA);
groupByFields.add(GroupCriteria.TERRITORY);
groupByFields.add(GroupCriteria.EFFORT_ZONE);
groupByFields.add(GroupCriteria.GFCM_GSA);
groupByFields.add(GroupCriteria.GFCM_STAT_RECTANGLE);
groupByFields.add(GroupCriteria.ICES_STAT_RECTANGLE);
groupByFields.add(GroupCriteria.RFMO);
groupByFields.add(GroupCriteria.SPECIES);
query.setGroupByFields(groupByFields);
Map<SearchFilter, String> searchCriteriaMap = new EnumMap<SearchFilter, String>(SearchFilter.class);
searchCriteriaMap.put(SearchFilter.TRIP_ID, "NOR-TRP-20160517234053706");
query.setSearchCriteriaMap(searchCriteriaMap);
Map<FaCatchSummaryCustomProxy, List<FaCatchSummaryCustomProxy>> groupedData = MapperUtil.getGroupedFaCatchSummaryCustomEntityData();
when((faCatchDao).getGroupedFaCatchData(any(FishingActivityQuery.class), any(Boolean.class))).thenReturn(groupedData);
// when(faCatchDao.getGroupedFaCatchData(query,true)).thenReturn(MapperUtil.getGroupedFaCatchSummaryCustomEntityData());
// when(vesselIdentifiersDao.getLatestVesselIdByTrip("NOR-TRP-20160517234053706")).thenReturn(MapperUtil.getVesselIdentifiersList());
// Trigger
FACatchSummaryDTO fACatchSummaryDTO = faCatchReportService.getCatchSummaryReport(query, false);
Mockito.verify(faCatchDao, Mockito.times(1)).getGroupedFaCatchData(Mockito.any(FishingActivityQuery.class), Mockito.any(Boolean.class));
// Verify
assertNotNull(fACatchSummaryDTO);
}
use of eu.europa.ec.fisheries.uvms.activity.model.schemas.GroupCriteria in project UVMS-ActivityModule-APP by UnionVMS.
the class FACatchSummaryHelper method mapObjectArrayToFaCatchSummaryCustomEntity.
/**
* This method maps raw data fetched from database to customEntity.
* @param catchSummaryArr
* @param groupList
* @param isLanding
* @return
* @throws ServiceException
* @throws NoSuchMethodException
* @throws InvocationTargetException
* @throws ClassNotFoundException
* @throws IllegalAccessException
* @throws InstantiationException
*/
public FaCatchSummaryCustomProxy mapObjectArrayToFaCatchSummaryCustomEntity(Object[] catchSummaryArr, List<GroupCriteria> groupList, boolean isLanding) throws ServiceException {
if (ArrayUtils.isEmpty(catchSummaryArr))
return new FaCatchSummaryCustomProxy();
int objectArrSize = catchSummaryArr.length - 1;
if (// do not include count field from object array
objectArrSize != groupList.size())
throw new ServiceException("selected number of SQL fields do not match with grouping criterias asked by user ");
Class cls = null;
try {
cls = Class.forName(faCatchSummaryCustomClassName);
Object faCatchSummaryCustomEntityObj = cls.newInstance();
Class parameterType = String.class;
Map<GroupCriteria, GroupCriteriaMapper> groupMappings = FilterMap.getGroupByMapping();
for (int i = 0; i < objectArrSize; i++) {
GroupCriteria criteria = groupList.get(i);
Object value = catchSummaryArr[i];
if (value == null) {
continue;
}
if (GroupCriteria.DATE_DAY.equals(criteria) || GroupCriteria.DATE_MONTH.equals(criteria) || GroupCriteria.DATE_YEAR.equals(criteria) || GroupCriteria.DATE.equals(criteria)) {
value = extractValueFromDate((Date) value, criteria);
}
GroupCriteriaMapper mapper = groupMappings.get(criteria);
Method method = cls.getDeclaredMethod(mapper.getMethodName(), parameterType);
method.invoke(faCatchSummaryCustomEntityObj, value);
}
Method method = cls.getDeclaredMethod("setCount", Double.TYPE);
method.invoke(faCatchSummaryCustomEntityObj, catchSummaryArr[objectArrSize]);
if (isLanding)
return (FaCatchSummaryCustomChildProxy) faCatchSummaryCustomEntityObj;
else
return (FaCatchSummaryCustomProxy) faCatchSummaryCustomEntityObj;
} catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) {
log.debug("Error while trying to map FaCatchSummaryCustomProxy. ", e);
}
return null;
}
use of eu.europa.ec.fisheries.uvms.activity.model.schemas.GroupCriteria in project UVMS-ActivityModule-APP by UnionVMS.
the class FACatchSearchBuilder method appendSelectGroupColumns.
@NotNull
protected void appendSelectGroupColumns(List<GroupCriteria> groupByFieldList, StringBuilder sql, Map<GroupCriteria, GroupCriteriaMapper> groupMAppings) throws ServiceException {
if (groupByFieldList == null || Collections.isEmpty(groupByFieldList))
throw new ServiceException(" No Group information present to aggregate report.");
// Build SELECT part of query.
for (GroupCriteria criteria : groupByFieldList) {
GroupCriteriaMapper mapper = groupMAppings.get(criteria);
sql.append(mapper.getColumnName());
sql.append(", ");
}
sql.append(SUM_WEIGHT);
}
use of eu.europa.ec.fisheries.uvms.activity.model.schemas.GroupCriteria in project UVMS-ActivityModule-APP by UnionVMS.
the class FACatchSearchBuilder method createGroupByPartOfTheQuery.
protected void createGroupByPartOfTheQuery(StringBuilder sql, Map<GroupCriteria, GroupCriteriaMapper> groupMappings, List<GroupCriteria> groupByFieldList) {
sql.append(" GROUP BY ");
// Add group by statement based on grouping factors
int i = 0;
for (GroupCriteria criteria : groupByFieldList) {
if (i != 0)
sql.append(", ");
GroupCriteriaMapper mapper = groupMappings.get(criteria);
sql.append(mapper.getColumnName());
i++;
}
}
Aggregations