public DatePeriodJobReport( Department reportingDepartment, List<JobSubCategory> jobSubCategories, List<Sector> sectors, List<JobReportItem> jobReportItems, DatePeriod datePeriods[]) { this.reportingDepartment = reportingDepartment; this.datePeriods = datePeriods; this.reportPeriod = BusinessEntityUtils.getMonthAndYearString(datePeriods[0].getEndDate()); this.reportColumnData = new HashMap<Object, List>(); this.jobReportItems = new HashMap<String, JobReportItem>(); if (jobSubCategories != null) { initSubCategoriesReport(jobSubCategories); } else if (sectors != null) { initSectorsReport(sectors); } else if (jobReportItems != null) { initJobQuantitiesAndServicesReport(jobReportItems); } }
public Object getReportItemValue( JobReportItem item, DatePeriod datePeriod, List<DatePeriodJobReportColumnData> reportColumnData) { Double value = 0.0; if (item.getName().equals("Jobs received in period")) { for (DatePeriodJobReportColumnData datePeriodJobReportColumnData : reportColumnData) { if (BusinessEntityUtils.isDateWithinPeriod( datePeriodJobReportColumnData.getJobStatusAndTracking().getDateSubmitted(), datePeriod.getStartDate(), datePeriod.getEndDate())) { value = value + 1.0; } } return value; } if (item.getName().equals("Earning jobs received in period")) { for (DatePeriodJobReportColumnData datePeriodJobReportColumnData : reportColumnData) { if (BusinessEntityUtils.isDateWithinPeriod( datePeriodJobReportColumnData.getJobStatusAndTracking().getDateSubmitted(), datePeriod.getStartDate(), datePeriod.getEndDate())) { if (datePeriodJobReportColumnData.getJobSubCategory().getIsEarning()) { value = value + 1.0; } } } return value; } if (item.getName().equals("Non-earning jobs received in period")) { for (DatePeriodJobReportColumnData datePeriodJobReportColumnData : reportColumnData) { if (BusinessEntityUtils.isDateWithinPeriod( datePeriodJobReportColumnData.getJobStatusAndTracking().getDateSubmitted(), datePeriod.getStartDate(), datePeriod.getEndDate())) { if (!datePeriodJobReportColumnData.getJobSubCategory().getIsEarning()) { value = value + 1.0; } } } return value; } if (item.getName().equals("Earning jobs received and completed in period")) { for (DatePeriodJobReportColumnData datePeriodJobReportColumnData : reportColumnData) { if (BusinessEntityUtils.isDateWithinPeriod( datePeriodJobReportColumnData.getJobStatusAndTracking().getDateSubmitted(), datePeriod.getStartDate(), datePeriod.getEndDate())) { if (datePeriodJobReportColumnData.getJobSubCategory().getIsEarning()) { if (datePeriodJobReportColumnData.getJobStatusAndTracking().getDateOfCompletion() != null) { if (BusinessEntityUtils.isDateWithinPeriod( datePeriodJobReportColumnData.getJobStatusAndTracking().getDateOfCompletion(), datePeriod.getStartDate(), datePeriod.getEndDate())) { value = value + 1.0; } } } } } return value; } if (item.getName().equals("Earning jobs received and unfinished in period")) { for (DatePeriodJobReportColumnData datePeriodJobReportColumnData : reportColumnData) { if (BusinessEntityUtils.isDateWithinPeriod( datePeriodJobReportColumnData.getJobStatusAndTracking().getDateSubmitted(), datePeriod.getStartDate(), datePeriod.getEndDate())) { if (datePeriodJobReportColumnData.getJobSubCategory().getIsEarning()) { if (datePeriodJobReportColumnData.getJobStatusAndTracking().getDateOfCompletion() != null) { if (!BusinessEntityUtils.isDateWithinPeriod( datePeriodJobReportColumnData.getJobStatusAndTracking().getDateOfCompletion(), datePeriod.getStartDate(), datePeriod.getEndDate())) { value = value + 1.0; } } else { value = value + 1.0; } } } } return value; } if (item.getName().equals("Jobs completed in period")) { for (DatePeriodJobReportColumnData datePeriodJobReportColumnData : reportColumnData) { if (datePeriodJobReportColumnData.getJobStatusAndTracking().getDateOfCompletion() != null) { if (BusinessEntityUtils.isDateWithinPeriod( datePeriodJobReportColumnData.getJobStatusAndTracking().getDateOfCompletion(), datePeriod.getStartDate(), datePeriod.getEndDate())) { value = value + 1.0; } } } return value; } if (item.getName().equals("Earning jobs completed on time")) { for (DatePeriodJobReportColumnData datePeriodJobReportColumnData : reportColumnData) { if (datePeriodJobReportColumnData.getJobSubCategory().getIsEarning()) { if (datePeriodJobReportColumnData.getJobStatusAndTracking().getDateOfCompletion() != null) { if (BusinessEntityUtils.isDateWithinPeriod( datePeriodJobReportColumnData.getJobStatusAndTracking().getDateOfCompletion(), datePeriod.getStartDate(), datePeriod.getEndDate())) { if (datePeriodJobReportColumnData .getJobStatusAndTracking() .getExpectedDateOfCompletion() != null) { if (datePeriodJobReportColumnData .getJobStatusAndTracking() .getDateOfCompletion() .compareTo( datePeriodJobReportColumnData .getJobStatusAndTracking() .getExpectedDateOfCompletion()) <= 0) { value = value + 1.0; } } } } } } // saved for use in calculating cotif earningJobsCompletedOnTime = value; return value; } if (item.getName().equals("Earning jobs scheduled for completion in period")) { for (DatePeriodJobReportColumnData datePeriodJobReportColumnData : reportColumnData) { if (datePeriodJobReportColumnData.getJobSubCategory().getIsEarning()) { if (datePeriodJobReportColumnData.getJobStatusAndTracking().getExpectedDateOfCompletion() != null) { if (BusinessEntityUtils.isDateWithinPeriod( datePeriodJobReportColumnData .getJobStatusAndTracking() .getExpectedDateOfCompletion(), datePeriod.getStartDate(), datePeriod.getEndDate())) { value = value + 1.0; } } } } // saved for use in calculating cotif earningJobsScheduledForCompletionInPeriod = value; return value; } if (item.getName().equals("COTIF (%)")) { if (earningJobsScheduledForCompletionInPeriod != 0.0) { value = (earningJobsCompletedOnTime / earningJobsScheduledForCompletionInPeriod) * 100.0; } else { value = 0.0; } return value; } if (item.getName().equals("New clients served in period")) { for (DatePeriodJobReportColumnData datePeriodJobReportColumnData : reportColumnData) { if (datePeriodJobReportColumnData.getNewClient() != null) { if (datePeriodJobReportColumnData.getNewClient()) { if (BusinessEntityUtils.isDateWithinPeriod( datePeriodJobReportColumnData.getJobStatusAndTracking().getDateSubmitted(), datePeriod.getStartDate(), datePeriod.getEndDate())) { value = value + 1.0; } } } } return value; } if (item.getName().equals("Earnings from new clients")) { for (DatePeriodJobReportColumnData datePeriodJobReportColumnData : reportColumnData) { if (datePeriodJobReportColumnData.getNewClient() != null) { if (datePeriodJobReportColumnData.getNewClient()) { if (BusinessEntityUtils.isDateWithinPeriod( datePeriodJobReportColumnData.getJobStatusAndTracking().getDateSubmitted(), datePeriod.getStartDate(), datePeriod.getEndDate())) { if (datePeriodJobReportColumnData.getJobCostingAndPayment().getFinalCost() != null) { value = value + datePeriodJobReportColumnData.getJobCostingAndPayment().getFinalCost(); } } } } } return value; } if (item.getName().equals("Samples received")) { for (DatePeriodJobReportColumnData datePeriodJobReportColumnData : reportColumnData) { if (datePeriodJobReportColumnData.getJobSubCategory().getIsEarning()) { if (BusinessEntityUtils.isDateWithinPeriod( datePeriodJobReportColumnData.getJobStatusAndTracking().getDateSubmitted(), datePeriod.getStartDate(), datePeriod.getEndDate())) { value = value + datePeriodJobReportColumnData.getNumberOfSamples(); } } } return value; } if (item.getName().equals("Clients served in period")) { HashSet<String> clients = new HashSet<String>(); for (DatePeriodJobReportColumnData datePeriodJobReportColumnData : reportColumnData) { // collect clients if (datePeriodJobReportColumnData.getClient() != null) { // filter based on date eg. date submitted/job completed if (BusinessEntityUtils.isDateWithinPeriod( datePeriodJobReportColumnData.getJobStatusAndTracking().getDateSubmitted(), datePeriod.getStartDate(), datePeriod.getEndDate())) { clients.add(datePeriodJobReportColumnData.getClient().getName()); } } } value = Double.parseDouble("" + clients.size()); return value; } return value; }