use of py.org.fundacionparaguaya.pspserver.reports.dtos.SnapshotFilterDTO in project FP-PSP-SERVER by FundacionParaguaya.
the class SnapshotReportManagerImpl method listSnapshotByFamily.
@Override
public List<FamilySnapshotDTO> listSnapshotByFamily(SnapshotFilterDTO filters) {
List<FamilySnapshotDTO> toRet = new ArrayList<>();
Sort sort = new Sort(new Sort.Order(Direction.ASC, "createdAt"));
if (filters.getDateFrom() != null && filters.getDateTo() != null && filters.getFamilyId() != null) {
List<SnapshotEconomicEntity> snapshots = snapshotRepository.findAll(where(forFamily(filters.getFamilyId())).and(SnapshotEconomicSpecification.createdAtBetween2Dates(filters.getDateFrom(), filters.getDateTo())), sort);
Map<SurveyEntity, List<SnapshotEconomicEntity>> groupBySurvey = snapshots.stream().collect(Collectors.groupingBy(s -> s.getSurveyDefinition()));
groupBySurvey.forEach((k, v) -> {
FamilySnapshotDTO familySnapshots = new FamilySnapshotDTO(filters.getFamilyId(), k.getTitle());
familySnapshots.setSnapshots(getSnasphots(v));
toRet.add(familySnapshots);
});
}
return toRet;
}
use of py.org.fundacionparaguaya.pspserver.reports.dtos.SnapshotFilterDTO in project FP-PSP-SERVER by FundacionParaguaya.
the class SnapshotReportController method getFamiliesByOrganization.
@GetMapping(path = "/family/organizations", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<List<OrganizationFamilyDTO>> getFamiliesByOrganization(@RequestParam(value = "application_id", required = false) Long applicationId, @RequestParam(value = "organization_id", required = false) Long organizationId, @RequestParam(value = "family_id", required = false) Long familyId, @RequestParam(value = "date_from", required = true) String dateFrom, @RequestParam(value = "date_to", required = true) String dateTo) {
SnapshotFilterDTO filters = new SnapshotFilterDTO(applicationId, organizationId, familyId, dateFrom, dateTo);
List<OrganizationFamilyDTO> families = familyReportService.listFamilyByOrganizationAndCreatedDate(filters);
return ResponseEntity.ok(families);
}
use of py.org.fundacionparaguaya.pspserver.reports.dtos.SnapshotFilterDTO in project FP-PSP-SERVER by FundacionParaguaya.
the class SnapshotReportController method getSnapshotsIndicatorsByFamily.
@GetMapping(path = "/family/indicators", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<List<FamilySnapshotDTO>> getSnapshotsIndicatorsByFamily(@RequestParam(value = "application_id", required = false) Long applicationId, @RequestParam(value = "organization_id", required = false) Long organizationId, @RequestParam(value = "family_id", required = true) Long familyId, @RequestParam(value = "date_from", required = true) String dateFrom, @RequestParam(value = "date_to", required = true) String dateTo) {
SnapshotFilterDTO filters = new SnapshotFilterDTO(applicationId, organizationId, familyId, dateFrom, dateTo);
List<FamilySnapshotDTO> snapshots = familyReportService.listSnapshotByFamily(filters);
return ResponseEntity.ok(snapshots);
}
use of py.org.fundacionparaguaya.pspserver.reports.dtos.SnapshotFilterDTO in project FP-PSP-SERVER by FundacionParaguaya.
the class SnapshotReportController method generateCSVSnapshotByOrganizationAndCreatedDate.
@GetMapping(path = "/family/indicators/csv", produces = "application/octet-stream")
public void generateCSVSnapshotByOrganizationAndCreatedDate(@RequestParam(value = "application_id", required = false) Long applicationId, @RequestParam(value = "organization_id", required = false) Long organizationId, @RequestParam(value = "family_id", required = true) Long familyId, @RequestParam(value = "date_from", required = true) String dateFrom, @RequestParam(value = "date_to", required = true) String dateTo, HttpServletResponse response) throws IOException {
SnapshotFilterDTO filters = new SnapshotFilterDTO(applicationId, organizationId, familyId, dateFrom, dateTo);
String csv = familyReportService.generateCSVSnapshotByOrganizationAndCreatedDate(filters);
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=\"snapshots.csv\"");
response.getWriter().write(csv);
response.getWriter().close();
}
use of py.org.fundacionparaguaya.pspserver.reports.dtos.SnapshotFilterDTO in project FP-PSP-SERVER by FundacionParaguaya.
the class SnapshotReportManagerImpl method listFamilyByOrganizationAndCreatedDate.
@Override
public List<OrganizationFamilyDTO> listFamilyByOrganizationAndCreatedDate(SnapshotFilterDTO filters) {
List<FamilyEntity> families = new ArrayList<>();
Sort sort = new Sort(new Sort.Order(Direction.ASC, "organization.name"), new Sort.Order(Direction.ASC, "name"));
Specification<FamilyEntity> dateRange = FamilySpecification.createdAtBetween2Dates(filters.getDateFrom(), filters.getDateTo());
families = familyRepository.findAll(where(byOrganization(filters.getOrganizationId())).and(dateRange).and(byApplication(filters.getApplicationId())).and(dateRange), sort);
Map<OrganizationEntity, List<FamilyEntity>> groupByOrganization = families.stream().collect(Collectors.groupingBy(f -> f.getOrganization()));
List<OrganizationFamilyDTO> toRet = new ArrayList<>();
groupByOrganization.forEach((k, v) -> {
OrganizationFamilyDTO fa = new OrganizationFamilyDTO(k.getName(), k.getCode(), k.getDescription(), k.isActive());
fa.setFamilies(familyReportMapper.entityListToDtoList(v));
toRet.add(fa);
});
return toRet;
}
Aggregations