/* * Electronic Logistics Management Information System (eLMIS) is a supply chain management system for health commodities in a developing country setting. * * Copyright (C) 2015 John Snow, Inc (JSI). This program was produced for the U.S. Agency for International Development (USAID). It was prepared under the USAID | DELIVER PROJECT, Task Order 4. * * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.openlmis.report.controller; import lombok.NoArgsConstructor; import org.openlmis.core.web.OpenLmisResponse; import org.openlmis.core.web.controller.BaseController; import org.openlmis.report.Report; import org.openlmis.report.ReportManager; import org.openlmis.report.model.Pages; import org.openlmis.report.model.report.*; import org.openlmis.report.model.report.vaccine.ReplacementPlanSummary; import org.openlmis.report.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import static org.springframework.web.bind.annotation.RequestMethod.GET; @Controller @NoArgsConstructor @RequestMapping(value = "/reports") public class InteractiveReportController extends BaseController { @Autowired public ReportManager reportManager; @RequestMapping(value = "/reportdata/facilitylist", method = GET, headers = BaseController.ACCEPT_JSON) public Pages getFacilityLists( @RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("facilities"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<FacilityReport> facilityReportList = (List<FacilityReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, facilityReportList); } @RequestMapping(value = "/reportdata/mailingLabels", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_MAILING_LABEL_REPORT')") public Pages getFacilityListsWtihLables( //@PathVariable(value = "reportKey") String reportKey, @RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("mailinglabels"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<MailingLabelReport> mailingLabelReports = (List<MailingLabelReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, mailingLabelReports); } @RequestMapping(value = "/reportdata/consumption", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_CONSUMPTION_REPORT')") public Pages getConsumptionData( @RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("consumption"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<ConsumptionReport> consumptionReportList = (List<ConsumptionReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, consumptionReportList); } @RequestMapping(value = "/reportdata/summary", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_SUMMARY_REPORT')") public Pages getSummaryData( @RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("summary"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<SummaryReport> reportList = (List<SummaryReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, reportList); } @RequestMapping(value = "/reportdata/non_reporting", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_NON_REPORTING_FACILITIES')") public Pages getNonReportingFacilitiesData( //@PathVariable(value = "reportKey") String reportKey, @RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, // @RequestParam(value = "period", required = false, defaultValue = "0") int period , HttpServletRequest request ) { Report report = reportManager.getReportByKey("non_reporting"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<MasterReport> reportList = (List<MasterReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, reportList); } @RequestMapping(value = "/reportdata/adjustmentSummary", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_ADJUSTMENT_SUMMARY_REPORT')") public Pages getAdjustmentSummaryData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("adjustment_summary"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<AdjustmentSummaryReport> adjustmentSummaryReportList = (List<AdjustmentSummaryReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, adjustmentSummaryReportList); } @RequestMapping(value = "/reportdata/districtConsumption", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_DISTRICT_CONSUMPTION_REPORT')") public Pages getDistrictConsumptionData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("district_consumption"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<DistrictConsumptionReport> districtConsumptionReportList = (List<DistrictConsumptionReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, districtConsumptionReportList); } @RequestMapping(value = "/reportdata/aggregateConsumption", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_DISTRICT_CONSUMPTION_REPORT')") public Pages getAggregateConsumptionData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("aggregate_consumption"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<DistrictConsumptionReport> districtConsumptionReportList = (List<DistrictConsumptionReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, districtConsumptionReportList); } @RequestMapping(value = "/reportdata/viewOrders", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_ORDER_REPORT')") public Pages getOrderSummaryData( @RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("order_summary"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<OrderSummaryReport> orderReportList = (List<OrderSummaryReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, orderReportList); } @RequestMapping(value = "/reportdata/supply_status", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_SUPPLY_STATUS_REPORT')") public Pages getSupplyStatusData( @RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("supply_status"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<SupplyStatusReport> supplyStatusReportList = (List<SupplyStatusReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, supplyStatusReportList); } @RequestMapping(value = "/reportdata/stockImbalance", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_STOCK_IMBALANCE_REPORT')") public Pages getStockImbalanceData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("stock_imbalance"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<StockImbalanceReport> stockImbalanceReportList = (List<StockImbalanceReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, stockImbalanceReportList); } // @RequestMapping(value = "/reportdata/stockedOut", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_STOCKED_OUT_REPORT')") public Pages getStockedOutData( @RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("stocked_out"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<StockedOutReport> stockedOutReportList = (List<StockedOutReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, stockedOutReportList); } @RequestMapping(value = "/reportdata/rnr_feedback", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_RNR_FEEDBACK_REPORT')") public Pages getRnRFeedbackReportData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("rnr_feedback"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<RnRFeedbackReport> rnRFeedbackReports = (List<RnRFeedbackReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, rnRFeedbackReports); } @RequestMapping(value = "/reportdata/orderFillRate", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_ORDER_FILL_RATE_REPORT')") public Pages getOrderFillRateData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("order_fill_rate"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<MasterReport> orderFillRateReportList = (List<MasterReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, orderFillRateReportList); } @RequestMapping(value = "/reportdata/regimenSummary", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_REGIMEN_SUMMARY_REPORT')") public Pages getRegimenSummaryData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("regimen_summary"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<RegimenSummaryReport> regimenSummaryReportList = (List<RegimenSummaryReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, regimenSummaryReportList); } @RequestMapping(value = "/reportdata/aggregateRegimenSummary", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_REGIMEN_SUMMARY_REPORT')") public Pages getAggregateRegimenSummaryData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("aggregate_regimen_summary"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<RegimenSummaryReport> regimenSummaryReportList = (List<RegimenSummaryReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, regimenSummaryReportList); } @RequestMapping(value = "/reportdata/getRegimenDistribution", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_REGIMEN_SUMMARY_REPORT')") public Pages getRegimenDistributionData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("regimen_distribution"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<RegimenSummaryReport> regimenSummaryReportList = (List<RegimenSummaryReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, regimenSummaryReportList); } @RequestMapping(value = "/reportdata/districtFinancialSummary", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_DISTRICT_FINANCIAL_SUMMARY_REPORT')") public Pages geDistrictFinancialSummaryData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("district_financial_summary"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<DistrictSummaryReport> districtSummaryReportList = (List<DistrictSummaryReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, districtSummaryReportList); } @RequestMapping(value = "/reportdata/userSummary", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_USER_SUMMARY_REPORT')") public Pages getUserSummaryData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("user_summary"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<UserSummaryReport> userSummmaryReportList = (List<UserSummaryReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, userSummmaryReportList); } @RequestMapping(value = "/reportdata/userRoleAssignmentSummary", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_USER_SUMMARY_REPORT')") public ResponseEntity<OpenLmisResponse> getUseRoleAssignmentSummary(HttpServletRequest request ) { Report report = reportManager.getReportByKey("user_summary"); report.getReportDataProvider().setUserId(loggedInUserId(request)); UserSummaryReportProvider provider = (UserSummaryReportProvider) report.getReportDataProvider(); return OpenLmisResponse.response("userAssignment", provider.getUserAssignments()); } @RequestMapping(value = "/reportdata/pipelineExport", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_PIPELINE_EXPORT')") public Pages getPipelineExportData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request) { Report report = reportManager.getReportByKey("pipeline_export"); report.getReportDataProvider().setUserId(loggedInUserId(request)); PipelineExportReportProvider provider = (PipelineExportReportProvider) report.getReportDataProvider(); List<PipelineExportReport> pipelineExportData = (List<PipelineExportReport>) provider.getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, pipelineExportData); } @RequestMapping(value = "/reportdata/labEquipmentList", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_LAB_EQUIPMENT_LIST_REPORT')") public Pages getLabEquipmentStatus(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request) { Report report = reportManager.getReportByKey("lab_equipment_list"); report.getReportDataProvider().setUserId(loggedInUserId(request)); LabEquipmentStatusReportDataProvider provider = (LabEquipmentStatusReportDataProvider) report.getReportDataProvider(); List<LabEquipmentStatusReport> labEquipmentStatusList = (List<LabEquipmentStatusReport>) provider.getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, labEquipmentStatusList); } @RequestMapping(value = "/reportdata/cceStorageCapacity", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_CCE_STORAGE_CAPACITY_REPORT')") public Pages getCCEStorageCapacity(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request) { Report report = reportManager.getReportByKey("cce_storage_capacity"); report.getReportDataProvider().setUserId(loggedInUserId(request)); CCEStorageCapacityReportDataProvider provider = (CCEStorageCapacityReportDataProvider)report.getReportDataProvider(); List<CCEStorageCapacityReport> list = (List<CCEStorageCapacityReport>) provider.getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, list); } @RequestMapping(value = "/reportdata/labEquipmentsByFundingSource", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_LAB_EQUIPMENTS_BY_FUNDING_SOURCE')") public Pages getLabEquipmentListByFundingSource(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request) { Report report = reportManager.getReportByKey("lab_equipments_by_donor"); report.getReportDataProvider().setUserId(loggedInUserId(request)); LabEquipmentsByDonorReportDataProvider provider = (LabEquipmentsByDonorReportDataProvider) report.getReportDataProvider(); List<LabEquipmentsByDonorReport> labEquipmentsListByDonor = (List<LabEquipmentsByDonorReport>) provider.getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, labEquipmentsListByDonor); } @RequestMapping(value = "/reportdata/pushedProductList", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_ORDER_FILL_RATE_REPORT')") public Pages getPushedProductsReport(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request) { Report report = reportManager.getReportByKey("pushed_product_list"); report.getReportDataProvider().setUserId(loggedInUserId(request)); PushedProductReportDataProvider provider = (PushedProductReportDataProvider) report.getReportDataProvider(); List<OrderFillRateReport> pushedProductList = (List<OrderFillRateReport>) provider.getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, pushedProductList); } @RequestMapping(value = "/reportdata/orderFillRateReportSummary", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_ORDER_FILL_RATE_SUMMARY_REPORT')") public Pages getOrderFillRateReportSummaryData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request) { Report report = reportManager.getReportByKey("order_fill_rate_summary"); report.getReportDataProvider().setUserId(loggedInUserId(request)); OrderFillRateReportSummaryDataProvider provider = (OrderFillRateReportSummaryDataProvider) report.getReportDataProvider(); List<OrderFillRateSummaryReport> orderFillRateReportList = (List<OrderFillRateSummaryReport>) provider.getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, orderFillRateReportList); } @RequestMapping(value = "/reportdata/functioningLabEquipment", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_LAB_EQUIPMENTS_BY_LOCATION_REPORT')") public Pages getFunctioningLabEquipmentWithServiceContract(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request) { Report report = reportManager.getReportByKey("lab_equipments_functioning"); report.getReportDataProvider().setUserId(loggedInUserId(request)); EquipmentsFunctioningDataProvider provider = (EquipmentsFunctioningDataProvider) report.getReportDataProvider(); List<LabEquipmentStatusReport> labEquipmentFunctioningList = (List<LabEquipmentStatusReport>) provider.getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, labEquipmentFunctioningList); } @RequestMapping(value = "/reportdata/nonFunctioningLabEquipment", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_LAB_EQUIPMENTS_BY_LOCATION_REPORT')") public Pages getNonFunctioningLabEquipmentWithServiceContract(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request) { Report report = reportManager.getReportByKey("lab_equipments_non_functioning"); report.getReportDataProvider().setUserId(loggedInUserId(request)); EquipmentsNonFunctioningDataProvider provider = (EquipmentsNonFunctioningDataProvider) report.getReportDataProvider(); List<LabEquipmentStatusReport> labEquipmentNonFunctioningList = (List<LabEquipmentStatusReport>) provider.getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, labEquipmentNonFunctioningList); } @RequestMapping(value = "/reportdata/seasonalityRationing", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_SEASONALITY_RATIONING_REPORT')") public Pages getSeasonalityRationingAdjustmentReport(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request) { Report report = reportManager.getReportByKey("seasonality_rationing"); report.getReportDataProvider().setUserId(loggedInUserId(request)); SeasonalRationingReportDataProvider provider = (SeasonalRationingReportDataProvider) report.getReportDataProvider(); List<SeasonalRationingReport> seasonalRationingAdjustmentList = (List<SeasonalRationingReport>) provider.getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, seasonalRationingAdjustmentList); } @RequestMapping(value = "/reportdata/timeliness", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_TIMELINESS_REPORT')") public Pages getTimelinessData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("timeliness"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<TimelinessReport> timelinessReportList = (List<TimelinessReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, timelinessReportList); } @RequestMapping(value = "/reportdata/cceRepairManagement", method = GET, headers = BaseController.ACCEPT_JSON) public Pages getRepairManagementSummary( @RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("cce_repair_management"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<CCERepairManagementReport> CCERepairManagementReport = (List<CCERepairManagementReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, CCERepairManagementReport); } @RequestMapping(value = "/reportdata/cceRepairManagementEquipmentList", method = GET, headers = BaseController.ACCEPT_JSON) public Pages getRepairManagementEquipmentList( @RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("cce_repair_management_equipment_list"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<CCERepairManagementEquipmentList> repairManagementEquipmentList = (List<CCERepairManagementEquipmentList>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, repairManagementEquipmentList); } @RequestMapping(value = "/reportdata/replacementPlanSummary", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_VACCINE_REPLACEMENT_PLAN_SUMMARY')") public Pages getReplacementPlanSummaryReport(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request) { Report report = reportManager.getReportByKey("replacement_plan_summary"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<ReplacementPlanSummary> reportList = (List<ReplacementPlanSummary>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, reportList); } @RequestMapping(value = "/reportdata/equipmentsInNeedForReplacement", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_VACCINE_REPLACEMENT_PLAN_SUMMARY')") public Pages getReplacementToBeReplaced(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request) { Report report = reportManager.getReportByKey("equipment_replacement_list"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<ReplacementPlanSummary> SummaryList = (List<ReplacementPlanSummary>)report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, SummaryList); } @RequestMapping(value = "/reportdata/coldChainEquipment", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_COLD_CHAIN_EQUIPMENT_LIST_REPORT')") public Pages getColdChainEquipment(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("cold_chain_equipment"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<CCEInventoryReportDatum> reportData = (List<CCEInventoryReportDatum>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, reportData); } @RequestMapping(value = "/reportdata/vaccineTemperature", method = GET, headers = BaseController.ACCEPT_JSON) ///@PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_COLD_CHAIN_EQUIPMENT_LIST_REPORT')") public Map<String, Pages> getVaccineTemperatureReport(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("cold_chain_temperature"); report.getReportDataProvider().setUserId(loggedInUserId(request)); ColdChainTemperatureDataProvider provider = (ColdChainTemperatureDataProvider)report.getReportDataProvider(); List<ColdChainTemperature> reportData = (List<ColdChainTemperature>) provider.getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); List<ColdChainTemperature> mainReportMinMaxAggregate = (List<ColdChainTemperature>) provider.getMainReportMinMaxAggregate(request.getParameterMap(), request.getParameterMap(), page, max); List<ColdChainTemperature> mainReportMinMaxTempRecorded = (List<ColdChainTemperature>) provider.getMainReportAggregateMinMaxTempRecorded(request.getParameterMap(), request.getParameterMap(), page, max); List<ColdChainTemperature> mainReportTotalTemp = (List<ColdChainTemperature>) provider.getMainReportAggregateTotal(request.getParameterMap(), request.getParameterMap(), page, max); //Sub report data List<ColdChainTemperature> subReportData = (List<ColdChainTemperature>) provider.getSubReportData(request.getParameterMap(), request.getParameterMap(), page, max); Map<String, Pages> multiPages = new HashMap<String, Pages>(); multiPages.put("coldchainreportdata", new Pages(page, max, reportData)); multiPages.put("coldchainreportminmaxaggregate", new Pages(page, max, mainReportMinMaxAggregate)); multiPages.put("coldchainreportminmaxtemprecorded", new Pages(page, max, mainReportMinMaxTempRecorded)); multiPages.put("coldchainreporttotaltemprecorded", new Pages(page, max, mainReportTotalTemp)); multiPages.put("coldchainSubreportdata", new Pages(page, max, subReportData)); return multiPages; } @RequestMapping(value = "/reportdata/vaccineStockStatus", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_VACCINE_STOCK_STATUS_REPORT')") public Pages getVaccineStockStatus(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("vaccine_stock_status"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<VaccineStockStatusReport> reportData = (List<VaccineStockStatusReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, reportData); } @RequestMapping(value = "/reportdata/stockLedgerReport", method = GET, headers = BaseController.ACCEPT_JSON) @PreAuthorize("@permissionEvaluator.hasPermission(principal,'VIEW_STOCK_LEDGER_REPORT')") public Pages getStockLedgerReport(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("stock_ledger"); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<StockLedgerReport> reportData = (List<StockLedgerReport>) report.getReportDataProvider().getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, reportData); } @RequestMapping(value = "/reportdata/performanceCoverage", method = GET, headers = BaseController.ACCEPT_JSON) public Pages getPerformanceCoverageReportData(@RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "max", required = false, defaultValue = "10") int max, HttpServletRequest request ) { Report report = reportManager.getReportByKey("performance_coverage"); PerformanceCoverageDataProvider dataProvider = (PerformanceCoverageDataProvider)report.getReportDataProvider(); report.getReportDataProvider().setUserId(loggedInUserId(request)); List<PerformanceCoverageReport> reportData = (List<PerformanceCoverageReport>)dataProvider.getReportBody(request.getParameterMap(), request.getParameterMap(), page, max); return new Pages(page, max, reportData); } }