package net.techreadiness.plugin.action.reports; import java.util.Collection; import java.util.HashMap; import java.util.Map; import javax.inject.Inject; import net.techreadiness.annotation.CoreSecured; import net.techreadiness.persistence.criteriaquery.QueryResult; import net.techreadiness.plugin.action.reports.ReportItemProvider.ExportType; import net.techreadiness.plugin.service.reports.MinimumRecommendedFlag; import net.techreadiness.plugin.service.reports.ReportsService; import net.techreadiness.security.CorePermissionCodes; import net.techreadiness.service.OrganizationService; import net.techreadiness.service.ScopeService; import net.techreadiness.service.ServiceContext; import net.techreadiness.service.object.Org; import org.apache.commons.lang3.StringUtils; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; @Results({ @Result(name = "success", location = "/net/techreadiness/plugin/action/reports/currentInfo.jsp") }) public class CurrentInfoAction extends ReportAction { private static final long serialVersionUID = 1L; private Long orgId; private String orgCode; private Map<String, String> org; private Org currentOrg; Map<String, String> orgSummary; private boolean showTaskLinks; private boolean reset; @Inject protected ScopeService scopeService; @Inject private OrganizationService orgService; @Inject private ReportsService reportsService; @Override @CoreSecured({ CorePermissionCodes.CORE_CUSTOMER_ORGANIZATION_ACCESS }) public String execute() throws Exception { ServiceContext context = getServiceContext(); if (orgId == null || orgId.equals("")) { Org org = context.getOrg(); orgId = org.getId(); } currentOrg = orgService.getById(context, orgId); if (currentOrg == null || !userService.hasAccessToOrg(context, context.getUserId(), currentOrg.getOrgId())) { if (currentOrg == null) { throw new Exception("Org could not be found: " + orgCode); } throw new Exception("User(" + context.getUserId() + ") doesn't have access to org (" + currentOrg.getOrgId() + ")"); } if (currentOrg.getSurveyAdminCount() == null) { currentOrg.setSurveyAdminCount("(missing)"); } if (currentOrg.getSurveyAdminTraining() == null) { currentOrg.setSurveyAdminTraining("(missing)"); } if (currentOrg.getSurveyAdminUnderstanding() == null) { currentOrg.setSurveyAdminUnderstanding("(missing)"); } if (currentOrg.getSurveyTechstaffCount() == null) { currentOrg.setSurveyTechstaffCount("(missing)"); } if (currentOrg.getSurveyTechstaffTraining() == null) { currentOrg.setSurveyTechstaffTraining("(missing)"); } if (currentOrg.getSurveyTechstaffUnderstanding() == null) { currentOrg.setSurveyTechstaffUnderstanding("(missing)"); } Collection<Map<String, String>> results; QueryResult<Map<String, String>> result = reportsService.retrieveSummaryForOrg(getSnapshotWindow() .getSnapshotWindowId(), currentOrg.getOrgId(), MinimumRecommendedFlag.MINIMUM); results = result.getRows(); orgSummary = Iterables.getFirst(results, new HashMap<String, String>()); Collection<Map<String, String>> recommendedResults = Lists.newArrayList(); QueryResult<Map<String, String>> recommendedResult = reportsService.retrieveSummaryForOrg(getSnapshotWindow() .getSnapshotWindowId(), currentOrg.getOrgId(), MinimumRecommendedFlag.RECOMMENDED); recommendedResults = recommendedResult.getRows(); for (Map<String, String> map : recommendedResults) { String recDevicePassingCount = map.get("devicePassingPercent") == null ? "" : map.get("devicePassingCount") .toUpperCase(); orgSummary.put("recDevicePassingCount", recDevicePassingCount); String recDevicePassingPercent = map.get("devicePassingPercent") == null ? "" : map.get("devicePassingPercent") .toUpperCase(); orgSummary.put("recDevicePassingPercent", recDevicePassingPercent); int totalEnrollmentCount = answeredEnrollmentCount(currentOrg); orgSummary.put("totalEnrollmentCount", Integer.toString(totalEnrollmentCount)); } return SUCCESS; } private static int answeredEnrollmentCount(Org o) { int count = (StringUtils.isBlank(o.getEnrollmentCountK()) ? 0 : Integer.parseInt(o.getEnrollmentCountK())) + (StringUtils.isBlank(o.getEnrollmentCount1()) ? 0 : Integer.parseInt(o.getEnrollmentCount1())) + (StringUtils.isBlank(o.getEnrollmentCount2()) ? 0 : Integer.parseInt(o.getEnrollmentCount2())) + (StringUtils.isBlank(o.getEnrollmentCount3()) ? 0 : Integer.parseInt(o.getEnrollmentCount3())) + (StringUtils.isBlank(o.getEnrollmentCount4()) ? 0 : Integer.parseInt(o.getEnrollmentCount4())) + (StringUtils.isBlank(o.getEnrollmentCount5()) ? 0 : Integer.parseInt(o.getEnrollmentCount5())) + (StringUtils.isBlank(o.getEnrollmentCount6()) ? 0 : Integer.parseInt(o.getEnrollmentCount6())) + (StringUtils.isBlank(o.getEnrollmentCount7()) ? 0 : Integer.parseInt(o.getEnrollmentCount7())) + (StringUtils.isBlank(o.getEnrollmentCount8()) ? 0 : Integer.parseInt(o.getEnrollmentCount8())) + (StringUtils.isBlank(o.getEnrollmentCount9()) ? 0 : Integer.parseInt(o.getEnrollmentCount9())) + (StringUtils.isBlank(o.getEnrollmentCount10()) ? 0 : Integer.parseInt(o.getEnrollmentCount10())) + (StringUtils.isBlank(o.getEnrollmentCount11()) ? 0 : Integer.parseInt(o.getEnrollmentCount11())) + (StringUtils.isBlank(o.getEnrollmentCount12()) ? 0 : Integer.parseInt(o.getEnrollmentCount12())); return count; } public Long getOrgId() { return orgId; } public void setOrgId(Long orgId) { this.orgId = orgId; } public boolean isShowTaskLinks() { return showTaskLinks; } public void setShowTaskLinks(boolean showTaskLinks) { this.showTaskLinks = showTaskLinks; } public Map<String, String> getOrg() { return org; } public void setOrg(Map<String, String> org) { this.org = org; } public Org getCurrentOrg() { return currentOrg; } public void setCurrentOrg(Org currentOrg) { this.currentOrg = currentOrg; } public Map<String, String> getOrgSummary() { return orgSummary; } public void setOrgSummary(Map<String, String> orgSummary) { this.orgSummary = orgSummary; } public boolean isReset() { return reset; } public void setReset(boolean reset) { this.reset = reset; } @Override protected ReportExport getReportExport(ExportType type) throws Exception { return null; } @Override protected ReportExport getAllSchoolsReportExport(ExportType type) throws Exception { return null; } }