Example usage for org.hibernate.criterion Restrictions between

List of usage examples for org.hibernate.criterion Restrictions between

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions between.

Prototype

public static Criterion between(String propertyName, Object low, Object high) 

Source Link

Document

Apply a "between" constraint to the named property

Usage

From source file:fsl.ta.toms.roms.dao.impl.ReportDAOImpl.java

@Override
public RoadOperationSummaryBO operationSummaryReport(OperationSummaryReportCriteriaBO reportCriteria,
        String userName, String userRegion, ReportDisplayInformationDAOImpl reportDisplayInformation) {
    Criteria criteriaRoadOp = this.hibernateTemplate.getSessionFactory().getCurrentSession()
            .createCriteria(RoadOperationDO.class, "ro");

    criteriaRoadOp.createAlias("ro.category", "cat");

    Criterion subCriteron = null;//from   ww w . j  a va 2s .  c o  m

    Criterion mainCriteron = null;

    if (reportCriteria.getOperationStartDate() != null && reportCriteria.getOperationEndDate() != null) {
        mainCriteron = Restrictions.or(
                Restrictions.between("ro.scheduledStartDtime",
                        DateUtils.searchDateFormater(reportCriteria.getOperationStartDate(),
                                DateUtils.SEARCHDATETYPE.START),
                        DateUtils.searchDateFormater(reportCriteria.getOperationEndDate(),
                                DateUtils.SEARCHDATETYPE.END)),
                Restrictions.between("ro.scheduledEndDtime",
                        DateUtils.searchDateFormater(reportCriteria.getOperationStartDate(),
                                DateUtils.SEARCHDATETYPE.START),
                        DateUtils.searchDateFormater(reportCriteria.getOperationEndDate(),
                                DateUtils.SEARCHDATETYPE.END)));
    }

    if (reportCriteria.getTAOfficeRegions() != null && reportCriteria.getTAOfficeRegions().size() > 0) {

        subCriteron = Restrictions.in("ro.officeLocCode", reportCriteria.getTAOfficeRegions());

    }

    if (reportCriteria.getTeamLeadStaffIds() != null && reportCriteria.getTeamLeadStaffIds().size() > 0)

    {

        /* Get List of all road operations with staff as team lead. */
        Criteria teamLeadsByStaffIdCrit = this.getSession().createCriteria(TeamDO.class, "team");
        teamLeadsByStaffIdCrit
                .add(Restrictions.in("team.teamLead.staffId", reportCriteria.getTeamLeadStaffIds()));
        teamLeadsByStaffIdCrit.setProjection(Projections.property("team.roadOperation.roadOperationId"));

        List<Integer> teamLeadsByStaffId = teamLeadsByStaffIdCrit.list();

        if (teamLeadsByStaffId != null && teamLeadsByStaffId.size() > 0) {
            if (subCriteron == null) {
                subCriteron = Restrictions.in("ro.roadOperationId", teamLeadsByStaffId);
            } else {
                subCriteron = Restrictions.and(subCriteron,
                        Restrictions.in("ro.roadOperationId", teamLeadsByStaffId));
            }
        }
    }

    if (reportCriteria.getTeamLeadTRNs() != null && reportCriteria.getTeamLeadTRNs().size() > 0) {
        /* Get List of all road operations with staff as team lead. */
        Criteria teamLeadsByTRNCrit = this.getSession().createCriteria(TeamDO.class, "team");
        teamLeadsByTRNCrit.createAlias("team.teamLead", "teamLead");
        teamLeadsByTRNCrit.createAlias("teamLead.person", "person");
        teamLeadsByTRNCrit.add(Restrictions.in("person.trnNbr", reportCriteria.getTeamLeadTRNs()));
        teamLeadsByTRNCrit.setProjection(Projections.property("team.roadOperation.roadOperationId"));

        List<Integer> teamLeadsByTRN = teamLeadsByTRNCrit.list();

        if (teamLeadsByTRN != null && teamLeadsByTRN.size() > 0) {
            if (subCriteron == null) {
                subCriteron = Restrictions.in("ro.roadOperationId", teamLeadsByTRNCrit.list());
            } else {
                subCriteron = Restrictions.and(subCriteron,
                        Restrictions.in("ro.roadOperationId", teamLeadsByTRNCrit.list()));
            }
        }
    }

    if (reportCriteria.getOperationCategory() != null && !reportCriteria.getOperationCategory().isEmpty()) {
        if (subCriteron == null) {
            subCriteron = Restrictions
                    .eq("ro.category.categoryId", reportCriteria.getOperationCategory().trim()).ignoreCase();
        } else {
            subCriteron = Restrictions.and(subCriteron, Restrictions
                    .eq("ro.category.categoryId", reportCriteria.getOperationCategory().trim()).ignoreCase());
        }
    }

    if (StringUtil.isSet(reportCriteria.getRoadOperationName())) {
        if (subCriteron == null) {
            subCriteron = Restrictions
                    .like("ro.operationName", reportCriteria.getRoadOperationName().trim(), MatchMode.ANYWHERE)
                    .ignoreCase();
        } else {
            subCriteron = Restrictions.and(subCriteron, Restrictions
                    .like("ro.operationName", reportCriteria.getRoadOperationName().trim(), MatchMode.ANYWHERE)
                    .ignoreCase());
        }
    }

    if (reportCriteria.getRoadOperationId() != null && reportCriteria.getRoadOperationId() > 0) {
        if (subCriteron == null) {
            subCriteron = Restrictions.eq("ro.roadOperationId", reportCriteria.getRoadOperationId());
        } else {
            subCriteron = Restrictions.and(subCriteron,
                    Restrictions.eq("ro.roadOperationId", reportCriteria.getRoadOperationId()));
        }
    }

    if (reportCriteria.getRoadOperationIds() != null && !reportCriteria.getRoadOperationIds().isEmpty()) {
        if (subCriteron == null) {
            subCriteron = Restrictions.in("ro.roadOperationId", reportCriteria.getRoadOperationIds());
        } else {
            subCriteron = Restrictions.and(subCriteron,
                    Restrictions.in("ro.roadOperationId", reportCriteria.getRoadOperationIds()));
        }
    }

    if (subCriteron == null && mainCriteron != null)
        criteriaRoadOp.add(mainCriteron);
    else if (mainCriteron == null && subCriteron != null)
        criteriaRoadOp.add(subCriteron);
    else if (mainCriteron != null && subCriteron != null)
        criteriaRoadOp.add(Restrictions.and(mainCriteron, subCriteron));
    else
        return null;

    /* Get report criteria names and descriptions */
    reportCriteria.setTAOfficeDescription(this.getTAOfficeRegionDescription(userRegion));

    if (reportCriteria.getTeamLeadStaffIds() != null && reportCriteria.getTeamLeadStaffIds().size() > 0)
        reportCriteria.setTAStaffFullName(this.getTAStaffNames(reportCriteria.getTeamLeadStaffIds()));
    else if (reportCriteria.getTeamLeadTRNs() != null && reportCriteria.getTeamLeadTRNs().size() > 0)
        reportCriteria.setTAStaffFullName(this.getPersonNamesWithTRN(reportCriteria.getTeamLeadTRNs()));

    reportCriteria.setOperationCategoryDescription(
            this.getOperationCategoryDesc(reportCriteria.getOperationCategory()));

    criteriaRoadOp.addOrder(Order.asc("ro.officeLocCode"));
    criteriaRoadOp.addOrder(Order.asc("cat.description"));
    criteriaRoadOp.addOrder(Order.asc("ro.actualStartDtime"));
    criteriaRoadOp.addOrder(Order.asc("ro.actualEndDtime"));
    criteriaRoadOp.addOrder(Order.asc("ro.operationName"));

    List<RoadOperationSummaryResultsBO> results = new ArrayList<RoadOperationSummaryResultsBO>();

    String stringStartDate = "";
    String stringEndDate = "";
    try {
        stringStartDate = DateUtils.getFormattedUtilDate(reportCriteria.getOperationStartDate());
        stringEndDate = DateUtils.getFormattedUtilDate(reportCriteria.getOperationEndDate());
    } catch (Exception exe) {

    }

    for (RoadOperationDO roadOp : (List<RoadOperationDO>) criteriaRoadOp.list()) {
        // Get counts that are needed to fill roadOpSummaryReportList
        Integer absentMembersCount = this.absentPersonCount(roadOp.getRoadOperationId());

        Integer teamMemberCount = this.teamMemberPersonCount(roadOp.getRoadOperationId());

        Integer summonsCount = this.summonsCount(roadOp.getRoadOperationId());

        Integer warningNoProsecutionCount = this.warningNoProsecutionCount(roadOp.getRoadOperationId());

        Integer warningNoticeCount = this.warningNoticeCount(roadOp.getRoadOperationId());

        Integer vehicleSeizedCount = this.roadCheckOutcomeCount(roadOp.getRoadOperationId(),
                Constants.OutcomeType.VEHICLE_SEIZURE);

        Integer complianceCount = this.complianceCount(roadOp.getRoadOperationId());

        Integer motorVehicleCheckCount = this.roadCheckTypeCount(roadOp.getRoadOperationId(),
                Constants.RoadCheckType.MOTOR_VEHICLE);

        Integer dlCheckCount = this.roadCheckTypeCount(roadOp.getRoadOperationId(),
                Constants.RoadCheckType.DRIVERS_LICENCE);

        Integer badgeCheckCount = this.roadCheckTypeCount(roadOp.getRoadOperationId(),
                Constants.RoadCheckType.BADGE);

        Integer citationCheckCount = this.roadCheckTypeCount(roadOp.getRoadOperationId(),
                Constants.RoadCheckType.CITATION);

        Integer roadLicenceCheckCount = this.roadCheckTypeCount(roadOp.getRoadOperationId(),
                Constants.RoadCheckType.ROAD_LICENCE);

        Integer otherCheckCount = this.roadCheckTypeCount(roadOp.getRoadOperationId(),
                Constants.RoadCheckType.OTHER);

        Integer countJPs = this.getCountOfPersonType(roadOp.getRoadOperationId(), Constants.PersonType.JP);

        Integer countPoliceOfficers = this.getCountOfPersonType(roadOp.getRoadOperationId(),
                Constants.PersonType.POLICE_OFFCER);

        Integer countTAInspectors = this.getCountOfPersonType(roadOp.getRoadOperationId(),
                Constants.PersonType.TA_STAFF);

        Integer countITAExaminers = this.getCountOfPersonType(roadOp.getRoadOperationId(),
                Constants.PersonType.ITA_EXAMINER);

        /*****
         * UR-057 Got absent count for each person type
         */

        Integer absentITACount = absentPersonTypeCount(roadOp.getRoadOperationId(),
                Constants.PersonType.ITA_EXAMINER);
        Integer absentTACount = absentPersonTypeCount(roadOp.getRoadOperationId(),
                Constants.PersonType.TA_STAFF);
        Integer absentPoliceCount = absentPersonTypeCount(roadOp.getRoadOperationId(),
                Constants.PersonType.POLICE_OFFCER);
        Integer absentJPCount = absentPersonTypeCount(roadOp.getRoadOperationId(), Constants.PersonType.JP);

        /* __________________________________________________________________________ */

        /*
         * Get Duration of an road operation using actual start and end
         * time.
         */

        long operationDuration = 0;

        if (roadOp.getActualStartDtime() != null && roadOp.getActualEndDtime() != null)
            operationDuration = DateUtils.getDateDiff(roadOp.getActualStartDtime(), roadOp.getActualEndDtime(),
                    TimeUnit.MINUTES);

        /* ___________________________________________________________________ */

        RoadOperationSummaryResultsBO result = new RoadOperationSummaryResultsBO(
                roadOp.getAuditEntry().getCreateDTime()/* operationCreateDate */,
                roadOp.getScheduledEndDtime()/* scheduledEndDateTime */,
                roadOp.getScheduledStartDtime()/* scheduledStartDateTime */,
                roadOp.getActualStartDtime()/* actualStartDateTime */,
                roadOp.getActualEndDtime()/* actualEndDateTime */,
                roadOp.getStatus().getDescription()/* operationStatus */,
                roadOp.getCategory().getDescription()/* operationCategory */,
                roadOp.getOperationName()/* operationName */, summonsCount/* countSummonsIssued */,
                warningNoticeCount/* countWaningNoticesIssued */, vehicleSeizedCount/* countVehiclesSeized */,
                complianceCount/* countCompliancyActivitiesCommited */,
                motorVehicleCheckCount/* countMotorVehiclesChecked */,
                dlCheckCount/* countDrivesLicenceChecked */, badgeCheckCount/* countBadgesChecked */,
                citationCheckCount/* countCitationChecks */,
                roadLicenceCheckCount/* countRoadLicencesChecked */, otherCheckCount/* countOtherChecks */,
                (int) operationDuration/* durationOfOperationInMinutes */,
                absentMembersCount/* countAbsentMembers */, roadOp.getRoadOperationId()/* operationId */,
                this.roadCheckOutcomeCount(roadOp.getRoadOperationId(),
                        Constants.OutcomeType.REMOVE_PLATES)/* countPlatesRemoved */,
                this.roadCheckOutcomeCount(roadOp.getRoadOperationId(),
                        Constants.OutcomeType.WARNED_FOR_PROSECUTION)/* warningsForProcecution */,
                this.roadCheckOutcomeCount(roadOp.getRoadOperationId(), Constants.OutcomeType.ALL_IN_ORDER)/*
                                                                                                           * Integer
                                                                                                           * allInOrders
                                                                                                           */,
                teamMemberCount /* count team members */,
                this.getRoadOpTeamSummaryResults(roadOp.getRoadOperationId()) /* team Summaries */,
                roadOp.getOfficeLocCode()/*TAOfficeRegion*/,
                this.getTAOfficeRegionDescription(roadOp.getOfficeLocCode())/*TAOfficeRegion*/);

        result.setCountWarningNoProsecutions(warningNoProsecutionCount);
        result.setCountITAExaminers(countITAExaminers);
        result.setCountPoliceOfficers(countPoliceOfficers);
        result.setCountJPs(countJPs);
        result.setCountTAInspectors(countTAInspectors);

        /*****
         * UR-057 - Set absentee values for each assigned person group
         */
        result.setCountAbsentITAExaminers(absentITACount);
        result.setCountAbsentJPs(absentJPCount);
        result.setCountAbsentPoliceOfficers(absentPoliceCount);
        result.setCountAbsentTAInspectors(absentTACount);

        results.add(result);
    }

    return new RoadOperationSummaryBO(userName, userRegion, reportDisplayInformation.applicationName,
            reportDisplayInformation.roadOperationSummaryTitle + stringStartDate + " TO " + stringEndDate,
            reportCriteria.getOperationStartDate(), reportCriteria.getOperationEndDate(),
            reportCriteria.getSearchCriteriaString(), this.getTAOfficeRegionDescription(userRegion), results);
}

From source file:fsl.ta.toms.roms.dao.impl.ReportDAOImpl.java

@Override
public SummonsOutstandingReportBO summonsOutstandingReport(SummonsOutstandingReportCriteriaBO reportCriteria,
        String userName, String userRegion, ReportDisplayInformationDAOImpl reportDisplayInformation) {
    Criteria criteria = this.hibernateTemplate.getSessionFactory().getCurrentSession()
            .createCriteria(SummonsDO.class, "s");
    criteria.createAlias("s.roadOperation", "ro", Criteria.LEFT_JOIN);
    criteria.createAlias("s.offender", "of", Criteria.LEFT_JOIN);
    criteria.createAlias("s.status", "st", Criteria.LEFT_JOIN);
    criteria.createAlias("ro.category", "c", Criteria.LEFT_JOIN);
    criteria.createAlias("s.taStaff", "ta", Criteria.LEFT_JOIN);
    criteria.createAlias("ta.person", "taPerson");

    Date reportStartDate = DateUtils.searchDateFormater(reportCriteria.getOperationStartDate(),
            DateUtils.SEARCHDATETYPE.START);
    Date reportEndDate = DateUtils.searchDateFormater(reportCriteria.getOperationEndDate(),
            DateUtils.SEARCHDATETYPE.END);

    Criterion mainCriterion = Restrictions.or(
            Restrictions.between("ro.scheduledStartDtime", reportStartDate, reportEndDate),
            Restrictions.between("ro.scheduledEndDtime", reportStartDate, reportEndDate));

    /* Only summons which are not yet issued should be returned */
    List<String> summonsOutstandingStatusList = new ArrayList<String>();
    summonsOutstandingStatusList.add(fsl.ta.toms.roms.constants.Constants.DocumentStatus.CANCELLED);
    summonsOutstandingStatusList.add(fsl.ta.toms.roms.constants.Constants.DocumentStatus.WITHDRAWN);
    summonsOutstandingStatusList.add(fsl.ta.toms.roms.constants.Constants.DocumentStatus.SERVED);
    Criterion subCriterion = Restrictions.not(Restrictions.in("st.statusId", summonsOutstandingStatusList));
    /* _________________________________________________________ */

    if (reportCriteria.getOffenderId() != null && reportCriteria.getOffenderId() > 0) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.eq("of.personId", reportCriteria.getOffenderId()));
    }/*from   w ww  .  jav a 2  s.co m*/

    if (StringUtil.isSet(reportCriteria.getOffenderTRN())) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.eq("of.trnNbr", reportCriteria.getOffenderTRN().trim()));
    }

    if (StringUtil.isSet(reportCriteria.getOffenderFirstName())) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions
                        .like("of.firstName", reportCriteria.getOffenderFirstName().trim(), MatchMode.ANYWHERE)
                        .ignoreCase());
    }

    if (StringUtil.isSet(reportCriteria.getOffenderLastName())) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions
                        .like("of.lastName", reportCriteria.getOffenderLastName().trim(), MatchMode.ANYWHERE)
                        .ignoreCase());
    }

    if (reportCriteria.getOperationCategory() != null && !reportCriteria.getOperationCategory().isEmpty()) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.eq("c.categoryId", reportCriteria.getOperationCategory().trim()));

    }

    if (reportCriteria.getRoadOperationId() != null && reportCriteria.getRoadOperationId() > 0) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.eq("ro.roadOperationId", reportCriteria.getRoadOperationId()));
    }

    if (reportCriteria.getTAOfficeRegion() != null && !reportCriteria.getTAOfficeRegion().isEmpty()) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.eq("ro.officeLocCode", reportCriteria.getTAOfficeRegion().trim()));
    }

    if (reportCriteria.getTAStaffId() != null && !reportCriteria.getTAStaffId().isEmpty()) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.eq("ta.staffId", reportCriteria.getTAStaffId().trim()));
    }

    if (StringUtil.isSet(reportCriteria.getTAStaffTRN())) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.eq("taPerson.trnNbr", reportCriteria.getTAStaffTRN().trim()));
    }

    if (StringUtil.isSet(reportCriteria.getRoadOperationName())) {
        subCriterion = Restrictions.and(subCriterion, Restrictions
                .like("ro.operationName", reportCriteria.getRoadOperationName().trim(), MatchMode.ANYWHERE)
                .ignoreCase());
    }

    criteria.add(Restrictions.and(mainCriterion, subCriterion));

    NameUtil nameUtil = new NameUtil();
    String stringStartDate = "";
    String stringEndDate = "";
    try {
        stringStartDate = DateUtils.getFormattedUtilDate(reportCriteria.getOperationStartDate());
        stringEndDate = DateUtils.getFormattedUtilDate(reportCriteria.getOperationEndDate());
    } catch (Exception exe) {

    }
    /* Get report criteria names and descriptions */

    if (reportCriteria.getOffenderId() != null && reportCriteria.getOffenderId() > 0)
        reportCriteria.setOffenderName(this.getPersonName(reportCriteria.getOffenderId()));
    else if (StringUtil.isSet(reportCriteria.getOffenderTRN()))
        reportCriteria.setOffenderName(this.getPersonName(reportCriteria.getOffenderTRN()));

    reportCriteria
            .setOperationCategoryDesc(this.getOperationCategoryDesc(reportCriteria.getOperationCategory()));
    reportCriteria.setRoadOperationName(reportCriteria.getRoadOperationName());

    reportCriteria.setTAOfficeRegionDesc(this.getTAOfficeRegionDescription(reportCriteria.getTAOfficeRegion()));

    if (StringUtil.isSet(reportCriteria.getTAStaffId()))
        reportCriteria.setTAStaffName(this.getTAStaffName(reportCriteria.getTAStaffId()));
    else if (StringUtil.isSet(reportCriteria.getTAStaffTRN()))
        reportCriteria.setTAStaffName(this.getPersonName(reportCriteria.getTAStaffTRN()));

    /*
     * reportCriteria.setRoadOperationDesc(this.getRoadOperationName(
     * reportCriteria.getRoadOperationId()));
     */
    /* __________________________________________ */

    SummonsOutstandingReportBO report = new SummonsOutstandingReportBO(userName, userRegion,
            reportDisplayInformation.applicationName,
            reportDisplayInformation.summonsOutstandingReportTitle + stringStartDate + " TO " + stringEndDate,
            reportCriteria.getOperationStartDate(), reportCriteria.getOperationEndDate(),
            reportCriteria.getSearchCriteriaString(), getTAOfficeRegionDescription(userRegion));

    List<SummonsOutstandingReportResultsBO> summonsOutStReportList = new ArrayList<SummonsOutstandingReportResultsBO>();

    for (SummonsDO summons : (List<SummonsDO>) criteria.list()) {

        String offenderFullName = NameUtil.getName(
                (StringUtil.isSet(summons.getOffender().getFirstName())
                        ? summons.getOffender().getFirstName().trim()
                        : ""),
                (StringUtil.isSet(summons.getOffender().getLastName())
                        ? summons.getOffender().getLastName().trim()
                        : ""));

        String offenceDescription = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getOffence()
                .getDescription();

        String tAStaffFullName = NameUtil.getName(
                (StringUtil.isSet(summons.getTaStaff().getPerson().getFirstName())
                        ? summons.getTaStaff().getPerson().getFirstName().trim()
                        : ""),
                (StringUtil.isSet(summons.getTaStaff().getPerson().getLastName())
                        ? summons.getTaStaff().getPerson().getLastName().trim()
                        : ""));

        VehicleDO vehicle = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getRoadCheck()
                .getCompliance().getVehicle();
        String vehicleDetails = "";
        if (vehicle != null) {
            vehicleDetails = (StringUtil.isSet(vehicle.getModel()) ? vehicle.getModel().trim() : "") + "; "
                    + (StringUtil.isSet(vehicle.getMakeDescription()) ? vehicle.getMakeDescription().trim()
                            : "")
                    + "; Plate #: "
                    + (StringUtil.isSet(vehicle.getPlateRegNo()) ? vehicle.getPlateRegNo().trim() : "");
        }

        String locationOfOffence = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getRoadCheck()
                .getCompliance().getCompliancyArtery().getDescription();

        String tAOfficeRegion = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getRoadCheck()
                .getCompliance().getRoadOperation().getOfficeLocCode();

        String jPFullName = NameUtil.getName(
                (StringUtil.isSet(summons.getJusticeOfPeace().getPerson().getFirstName())
                        ? summons.getJusticeOfPeace().getPerson().getFirstName().trim()
                        : ""),
                (StringUtil.isSet(summons.getJusticeOfPeace().getPerson().getLastName())
                        ? summons.getJusticeOfPeace().getPerson().getLastName()
                        : ""));

        String roadOperationDetails = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getRoadCheck()
                .getCompliance().getRoadOperation().getOperationName();

        /* Get latest trial for the summons */
        Criteria criteriaCourtAppearance = this.hibernateTemplate.getSessionFactory().getCurrentSession()
                .createCriteria(CourtAppearanceDO.class, "CApp");

        criteriaCourtAppearance.createAlias("CApp.courtCase", "CCase");
        criteriaCourtAppearance.createAlias("CCase.summons", "Summ");

        criteriaCourtAppearance.add(Restrictions.eq("Summ.summonsId", summons.getSummonsId()));

        criteriaCourtAppearance.addOrder(Order.asc("CApp.CourtDTime"));
        criteriaCourtAppearance.addOrder(Order.asc("CApp.courtAppearanceId"));

        Integer courtAppListSize = criteriaCourtAppearance.list().size();
        String courtDetails = "";

        if (courtAppListSize > 0) {
            CourtAppearanceDO courtApp = (CourtAppearanceDO) criteriaCourtAppearance.list()
                    .get(courtAppListSize - 1);

            String stringTrialDate = "";
            SimpleDateFormat dt = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
            try {
                stringTrialDate = dt.format(courtApp.getCourtDTime());

            } catch (Exception exe) {

            }

            courtDetails = String.format("Court Appearance Date is %s at %s.", stringTrialDate,
                    courtApp.getCourt().getDescription());
        }
        /* _______________________________ */

        SummonsOutstandingReportResultsBO summonsOutstanding = new SummonsOutstandingReportResultsBO(
                offenderFullName, offenceDescription, tAStaffFullName, vehicleDetails, locationOfOffence,
                tAOfficeRegion, jPFullName, roadOperationDetails, courtDetails,
                getTAOfficeRegionDescription(tAOfficeRegion), summons.getServedOnDate());

        summonsOutStReportList.add(summonsOutstanding);
    }

    report.setResults(summonsOutStReportList);
    return report;
}

From source file:fsl.ta.toms.roms.dao.impl.ReportDAOImpl.java

@Override
public SummonsReportBO summonsReport(SummonsReportCriteriaBO reportCriteria, String userName, String userRegion,
        ReportDisplayInformationDAOImpl reportDisplayInformation) {
    Criteria criteria = this.hibernateTemplate.getSessionFactory().getCurrentSession()
            .createCriteria(SummonsDO.class, "s");
    criteria.createAlias("s.roadOperation", "ro", Criteria.LEFT_JOIN);
    criteria.createAlias("s.offender", "of", Criteria.LEFT_JOIN);
    criteria.createAlias("s.status", "st", Criteria.LEFT_JOIN);
    criteria.createAlias("ro.category", "c", Criteria.LEFT_JOIN);
    criteria.createAlias("s.taStaff", "ta", Criteria.LEFT_JOIN);
    criteria.createAlias("ta.person", "taPerson", Criteria.LEFT_JOIN);

    Criterion mainCriterion = Restrictions.sqlRestriction("1=1");

    if (reportCriteria.getOperationStartDate() != null && reportCriteria.getOperationEndDate() != null) {
        Date reportStartDate = DateUtils.searchDateFormater(reportCriteria.getOperationStartDate(),
                DateUtils.SEARCHDATETYPE.START);
        Date reportEndDate = DateUtils.searchDateFormater(reportCriteria.getOperationEndDate(),
                DateUtils.SEARCHDATETYPE.END);

        Criterion scheduledDate = Restrictions.or(
                Restrictions.between("ro.scheduledStartDtime", reportStartDate, reportEndDate),
                Restrictions.between("ro.scheduledEndDtime", reportStartDate, reportEndDate));

        Criterion actualDate = Restrictions.or(
                Restrictions.between("ro.actualStartDtime", reportStartDate, reportEndDate),
                Restrictions.between("ro.actualEndDtime", reportStartDate, reportEndDate));

        mainCriterion = Restrictions.and(mainCriterion, Restrictions.or(scheduledDate, actualDate));
    }/*from w w  w  .  j a v  a2  s  .c  o  m*/

    if (reportCriteria.getOffenceStartDate() != null && reportCriteria.getOffenceEndDate() != null) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.between("s.offenceDtime",
                        DateUtils.searchDateFormater(reportCriteria.getOffenceStartDate(),
                                DateUtils.SEARCHDATETYPE.START),
                        DateUtils.searchDateFormater(reportCriteria.getOffenceEndDate(),
                                DateUtils.SEARCHDATETYPE.END)));
    }

    if (reportCriteria.getIssuedStartDate() != null && reportCriteria.getIssuedEndDate() != null) {
        mainCriterion = Restrictions.and(mainCriterion, Restrictions.between("s.issueDate",
                DateUtils.searchDateFormater(reportCriteria.getIssuedStartDate(),
                        DateUtils.SEARCHDATETYPE.START),
                DateUtils.searchDateFormater(reportCriteria.getIssuedEndDate(), DateUtils.SEARCHDATETYPE.END)));
    }

    if (reportCriteria.getPrintStartDate() != null && reportCriteria.getPrintEndDate() != null) {
        mainCriterion = Restrictions.and(mainCriterion, Restrictions.between("s.printDtime",
                DateUtils.searchDateFormater(reportCriteria.getPrintStartDate(),
                        DateUtils.SEARCHDATETYPE.START),
                DateUtils.searchDateFormater(reportCriteria.getPrintEndDate(), DateUtils.SEARCHDATETYPE.END)));

    }

    if (reportCriteria.getOffenderId() != null && reportCriteria.getOffenderId() > 0) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("of.personId", reportCriteria.getOffenderId()));
    }

    if (StringUtil.isSet(reportCriteria.getOffenderTRN())) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("of.trnNbr", reportCriteria.getOffenderTRN().trim()));
    }

    if (reportCriteria.getOperationCategory() != null && !reportCriteria.getOperationCategory().isEmpty()) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("c.categoryId", reportCriteria.getOperationCategory().trim()));

    }

    if (reportCriteria.getRoadOperationId() != null && reportCriteria.getRoadOperationId() > 0) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("ro.roadOperationId", reportCriteria.getRoadOperationId()));
    }

    if (reportCriteria.getTAOfficeRegion() != null && !reportCriteria.getTAOfficeRegion().isEmpty()) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("ro.officeLocCode", reportCriteria.getTAOfficeRegion().trim()));
    }

    if (reportCriteria.getTAStaffId() != null && !reportCriteria.getTAStaffId().isEmpty()) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("ta.staffId", reportCriteria.getTAStaffId().trim()));
    }

    if (StringUtil.isSet(reportCriteria.getTAStaffTRN())) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("taPerson.trnNbr", reportCriteria.getTAStaffTRN().trim()));
    }

    if (StringUtil.isSet(reportCriteria.getRoadOperationName())) {
        mainCriterion = Restrictions.and(mainCriterion, Restrictions
                .like("ro.operationName", reportCriteria.getRoadOperationName().trim(), MatchMode.ANYWHERE)
                .ignoreCase());
    }

    if (StringUtil.isSet(reportCriteria.getStatus())) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("s.status.statusId", reportCriteria.getStatus().trim()));
    }

    if (StringUtil.isSet(reportCriteria.getOffenderFirstName())) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions
                        .like("of.firstName", reportCriteria.getOffenderFirstName().trim(), MatchMode.ANYWHERE)
                        .ignoreCase());
    }

    if (StringUtil.isSet(reportCriteria.getOffenderLastName())) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions
                        .like("of.lastName", reportCriteria.getOffenderLastName().trim(), MatchMode.ANYWHERE)
                        .ignoreCase());
    }

    criteria.add(mainCriterion);

    String stringStartDate = "";
    String stringEndDate = "";
    String dateTypeUsed = "";
    Date startDate = null;
    Date endDate = null;
    try {
        if (reportCriteria.getOperationStartDate() != null && reportCriteria.getOperationEndDate() != null) {
            startDate = reportCriteria.getOperationStartDate();
            endDate = reportCriteria.getOperationEndDate();
            stringStartDate = DateUtils.getFormattedUtilDate(reportCriteria.getOperationStartDate());
            stringEndDate = DateUtils.getFormattedUtilDate(reportCriteria.getOperationEndDate());

            dateTypeUsed = "Operation";
        } else if (reportCriteria.getOffenceStartDate() != null && reportCriteria.getOffenceEndDate() != null) {
            startDate = reportCriteria.getOffenceStartDate();
            endDate = reportCriteria.getOffenceEndDate();
            stringStartDate = DateUtils.getFormattedUtilDate(reportCriteria.getOffenceStartDate());
            stringEndDate = DateUtils.getFormattedUtilDate(reportCriteria.getOffenceEndDate());

            dateTypeUsed = "Offence";
        } else if (reportCriteria.getPrintStartDate() != null && reportCriteria.getPrintEndDate() != null) {
            startDate = reportCriteria.getPrintStartDate();
            endDate = reportCriteria.getPrintEndDate();
            stringStartDate = DateUtils.getFormattedUtilDate(reportCriteria.getPrintStartDate());
            stringEndDate = DateUtils.getFormattedUtilDate(reportCriteria.getPrintEndDate());

            dateTypeUsed = "Print";
        } else if (reportCriteria.getIssuedStartDate() != reportCriteria.getIssuedEndDate()) {
            startDate = reportCriteria.getIssuedStartDate();
            endDate = reportCriteria.getIssuedEndDate();
            stringStartDate = DateUtils.getFormattedUtilDate(reportCriteria.getIssuedStartDate());
            stringEndDate = DateUtils.getFormattedUtilDate(reportCriteria.getIssuedEndDate());

            dateTypeUsed = "Issued";
        }
    } catch (Exception exe) {

    }

    /* Get report criteria names and descriptions */
    if (reportCriteria.getOffenderId() != null && reportCriteria.getOffenderId() > 0) {
        reportCriteria.setOffenderName(this.getPersonName(reportCriteria.getOffenderId()));
    } else if (StringUtil.isSet(reportCriteria.getOffenderTRN())) {
        reportCriteria.setOffenderName(this.getPersonName(reportCriteria.getOffenderTRN()));
    }

    reportCriteria
            .setOperationCategoryDesc(this.getOperationCategoryDesc(reportCriteria.getOperationCategory()));
    reportCriteria.setRoadOperationName(reportCriteria.getRoadOperationName());

    reportCriteria.setTAOfficeRegionDesc(this.getTAOfficeRegionDescription(reportCriteria.getTAOfficeRegion()));

    if (StringUtil.isSet(reportCriteria.getTAStaffId()))
        reportCriteria.setTAStaffName(this.getTAStaffName(reportCriteria.getTAStaffId()));
    else if (StringUtil.isSet(reportCriteria.getTAStaffTRN()))
        reportCriteria.setTAStaffName(this.getPersonName(reportCriteria.getTAStaffTRN()));
    /*
     * reportCriteria.setRoadOperationDesc(this.getRoadOperationName(
     * reportCriteria.getRoadOperationId()));
     */
    /* __________________________________________ */

    SummonsReportBO report = new SummonsReportBO(userName, userRegion, reportDisplayInformation.applicationName,
            reportDisplayInformation.summonsReportTitle + "(" + dateTypeUsed + ") " + stringStartDate + " TO "
                    + stringEndDate,
            startDate, endDate, reportCriteria.getSearchCriteriaString(),
            getTAOfficeRegionDescription(userRegion));

    List<SummonsReportResultsBO> summonsReportList = new ArrayList<SummonsReportResultsBO>();

    for (SummonsDO summons : (List<SummonsDO>) criteria.list()) {

        String offenderFullName = NameUtil.getName(
                (StringUtil.isSet(summons.getOffender().getFirstName())
                        ? summons.getOffender().getFirstName().trim()
                        : ""),
                (StringUtil.isSet(summons.getOffender().getLastName())
                        ? summons.getOffender().getLastName().trim()
                        : ""));

        String offenceDescription = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getOffence()
                .getDescription();

        String tAStaffFullName = NameUtil.getName(
                (StringUtil.isSet(summons.getTaStaff().getPerson().getFirstName())
                        ? summons.getTaStaff().getPerson().getFirstName().trim()
                        : ""),
                (StringUtil.isSet(summons.getTaStaff().getPerson().getLastName())
                        ? summons.getTaStaff().getPerson().getLastName().trim()
                        : ""));

        VehicleDO vehicle = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getRoadCheck()
                .getCompliance().getVehicle();
        String vehicleDetails = "";
        if (vehicle != null) {
            vehicleDetails = (StringUtil.isSet(vehicle.getModel()) ? vehicle.getModel().trim() : "") + "; "
                    + (StringUtil.isSet(vehicle.getMakeDescription()) ? vehicle.getMakeDescription().trim()
                            : "")
                    + "; Plate #: "
                    + (StringUtil.isSet(vehicle.getPlateRegNo()) ? vehicle.getPlateRegNo().trim() : "");
        }

        String locationOfOffence = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getRoadCheck()
                .getCompliance().getCompliancyArtery().getDescription();

        String tAOfficeRegion = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getRoadCheck()
                .getCompliance().getRoadOperation().getOfficeLocCode();

        String jPFullName = NameUtil.getName(
                (StringUtil.isSet(summons.getJusticeOfPeace().getPerson().getFirstName())
                        ? summons.getJusticeOfPeace().getPerson().getFirstName().trim()
                        : ""),
                (StringUtil.isSet(summons.getJusticeOfPeace().getPerson().getLastName())
                        ? summons.getJusticeOfPeace().getPerson().getLastName()
                        : ""));

        String roadOperationDetails = summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getRoadCheck()
                .getCompliance().getRoadOperation().getOperationName();

        /* Get latest trial for the summons */
        Criteria criteriaCourtAppearance = this.hibernateTemplate.getSessionFactory().getCurrentSession()
                .createCriteria(CourtAppearanceDO.class, "CApp");

        criteriaCourtAppearance.createAlias("CApp.courtCase", "CCase");
        criteriaCourtAppearance.createAlias("CCase.summons", "Summ");

        criteriaCourtAppearance.add(Restrictions.eq("Summ.summonsId", summons.getSummonsId()));

        criteriaCourtAppearance.addOrder(Order.asc("CApp.CourtDTime"));
        criteriaCourtAppearance.addOrder(Order.asc("CApp.courtAppearanceId"));

        Integer courtAppListSize = criteriaCourtAppearance.list().size();
        String courtDetails = "";

        if (courtAppListSize > 0) {
            CourtAppearanceDO courtApp = (CourtAppearanceDO) criteriaCourtAppearance.list()
                    .get(courtAppListSize - 1);

            String stringTrialDate = "";
            SimpleDateFormat dt = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
            try {
                stringTrialDate = dt.format(courtApp.getCourtDTime());

            } catch (Exception exe) {

            }

            courtDetails = String.format("Court Appearance Date is %s at %s.", stringTrialDate,
                    courtApp.getCourt().getDescription());
        }
        /* _______________________________ */

        SummonsReportResultsBO summonsRptResult = new SummonsReportResultsBO(offenderFullName,
                offenceDescription, tAStaffFullName, vehicleDetails, locationOfOffence, tAOfficeRegion,
                jPFullName, roadOperationDetails, courtDetails, getTAOfficeRegionDescription(tAOfficeRegion),
                summons.getOffenceDtime(), summons.getServedOnDate(), summons.getPrintDtime(),
                summons.getStatus().getStatusId(), summons.getStatus().getDescription(),
                summons.getManualSerialNumber(), summons.getComment(),
                summons.getReason() != null ? summons.getReason().getDescription() : null,
                summons.getReprintDtime());

        summonsReportList.add(summonsRptResult);
    }

    report.setResults(summonsReportList);
    return report;
}

From source file:fsl.ta.toms.roms.dao.impl.ReportDAOImpl.java

@Override
public CourtScheduleReportBO courtScheduleReport(CourtScheduleCriteriaBO reportCriteria, String userName,
        String userRegion, ReportDisplayInformationDAOImpl reportDisplayInformation) {

    Criteria criteria = this.hibernateTemplate.getSessionFactory().getCurrentSession()
            .createCriteria(CourtAppearanceDO.class, "CApp");

    /* Create aliases */
    criteria.createAlias("CApp.status", "st", Criteria.LEFT_JOIN);
    criteria.createAlias("CApp.court", "c", Criteria.LEFT_JOIN);
    criteria.createAlias("CApp.courtCase", "CCase", Criteria.LEFT_JOIN);
    criteria.createAlias("CCase.summons", "su", Criteria.LEFT_JOIN);
    criteria.createAlias("su.offender", "o", Criteria.LEFT_JOIN);
    criteria.createAlias("c.address", "courtAddress", Criteria.LEFT_JOIN);
    criteria.createAlias("courtAddress.parish", "courtParish", Criteria.LEFT_JOIN);
    criteria.createAlias("su.roadCheckOffenceOutcome.roadCheckOffence.roadCheck.compliance.roadOperation", "r",
            Criteria.LEFT_JOIN);//from  w w  w . j a v  a  2 s  .  c  o m
    criteria.createAlias("su.taStaff", "tas", Criteria.LEFT_JOIN);
    criteria.createAlias("tas.person", "taPerson", Criteria.LEFT_JOIN);
    criteria.createAlias("su.roadCheckOffenceOutcome.roadCheckOffence.offence", "off");
    /* _____________________________ */

    Criterion mainCriterion = Restrictions.between("CApp.courtDTime",
            DateUtils.searchDateFormater(reportCriteria.getTrialStartDate(), DateUtils.SEARCHDATETYPE.START),
            DateUtils.searchDateFormater(reportCriteria.getTrialEndDate(), DateUtils.SEARCHDATETYPE.END));

    Criterion subCriterion = Restrictions
            .eq("st.statusId", fsl.ta.toms.roms.constants.Constants.Status.COURT_CASE_OPEN).ignoreCase();

    if (reportCriteria.getCourtId() != null && reportCriteria.getCourtId() > 0) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.eq("c.courtId", reportCriteria.getCourtId()));
    }

    if (reportCriteria.getOffenderId() != null && reportCriteria.getOffenderId() > 0) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.eq("o.personId", reportCriteria.getOffenderId()));
    }

    if (StringUtil.isSet(reportCriteria.getOffenderTRN())) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.eq("o.trnNbr", reportCriteria.getOffenderTRN().trim()));
    }

    if (StringUtil.isSet(reportCriteria.getOffenderFirstName())) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions
                        .like("o.firstName", reportCriteria.getOffenderFirstName().trim(), MatchMode.ANYWHERE)
                        .ignoreCase());
    }

    if (StringUtil.isSet(reportCriteria.getOffenderLastName())) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.like("o.lastName", reportCriteria.getOffenderLastName().trim(), MatchMode.ANYWHERE)
                        .ignoreCase());
    }

    if (reportCriteria.getRoadOperationId() != null && reportCriteria.getRoadOperationId() > 0) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.eq("r.roadOperationId", reportCriteria.getRoadOperationId()));
    }

    //      if (reportCriteria.getTAOfficeRegions() != null
    //            && reportCriteria.getTAOfficeRegions().size() > 0) {
    //         subCriterion = Restrictions.and(
    //               subCriterion,
    //               Restrictions.in("r.officeLocCode",
    //                     reportCriteria.getTAOfficeRegions()));

    /*Region should be filtered by the court appearances*/
    if (reportCriteria.getTAOfficeRegions() != null && reportCriteria.getTAOfficeRegions().size() > 0) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.in("courtParish.officeLocationCode", reportCriteria.getTAOfficeRegions()));
    }

    if (StringUtil.isSet(reportCriteria.getTAStaffId())) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.eq("tas.staffId", reportCriteria.getTAStaffId().trim()));
    }

    if (StringUtil.isSet(reportCriteria.getTAStaffTRN())) {
        subCriterion = Restrictions.and(subCriterion,
                Restrictions.eq("taPerson.trnNbr", reportCriteria.getTAStaffTRN().trim()));
    }

    if (StringUtil.isSet(reportCriteria.getRoadOperationName())) {
        subCriterion = Restrictions.and(subCriterion, Restrictions
                .like("r.operationName", reportCriteria.getRoadOperationName().trim(), MatchMode.ANYWHERE)
                .ignoreCase());
    }

    criteria.add(Restrictions.and(mainCriterion, subCriterion));

    criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);

    //criteria.addOrder(Order.asc("r.officeLocCode"));
    criteria.addOrder(Order.asc("courtParish.officeLocationCode").ignoreCase());
    criteria.addOrder(Order.asc("c.shortDesc").ignoreCase());
    criteria.addOrder(Order.asc("CApp.courtDTime").ignoreCase());
    criteria.addOrder(Order.asc("taPerson.lastName").ignoreCase());
    criteria.addOrder(Order.asc("su.offenceDtime").ignoreCase());
    criteria.addOrder(Order.asc("o.lastName").ignoreCase());
    //criteria.addOrder(Order.asc("o.firstName").ignoreCase());
    //criteria.addOrder(Order.asc("off.description").ignoreCase());
    //criteria.addOrder(Order.asc("r.operationName").ignoreCase());

    List criteriaResults = criteria.list();

    Iterator iterator = criteriaResults.iterator();

    List<CourtScheduleReportResultsBO> results = new ArrayList<CourtScheduleReportResultsBO>();

    String stringStartDate = "";

    String stringEndDate = "";
    try {
        stringStartDate = DateUtils.getFormattedUtilDate(reportCriteria.getTrialStartDate());
        stringEndDate = DateUtils.getFormattedUtilDate(reportCriteria.getTrialEndDate());
    } catch (Exception exe) {

    }

    /* Get report criteria names and descriptions */
    reportCriteria.setTAOfficeDescription(this.getTAOfficeRegionDescription(userRegion));
    reportCriteria.setCourtDescription(this.getCourtDescription(reportCriteria.getCourtId()));

    if (reportCriteria.getOffenderId() != null && reportCriteria.getOffenderId() > 0)
        reportCriteria.setOffenderFullName(this.getPersonName(reportCriteria.getOffenderId()));
    else if (StringUtil.isSet(reportCriteria.getOffenderTRN())) {
        reportCriteria.setOffenderFullName(this.getPersonName(reportCriteria.getOffenderTRN()));
    }

    reportCriteria.setTAOfficeDescription(this.getTAOfficeRegionDescription(userRegion));

    if (StringUtil.isSet(reportCriteria.getTAStaffId()))
        reportCriteria.setTAStaffFullName(this.getTAStaffName(reportCriteria.getTAStaffId()));
    else if (StringUtil.isSet(reportCriteria.getTAStaffTRN())) {
        reportCriteria.setTAStaffFullName(this.getPersonName(reportCriteria.getTAStaffTRN()));
    }

    while (iterator.hasNext()) {
        Map result = (Map) iterator.next();

        /* Map Results to DOs */
        CourtAppearanceDO courtApp = (CourtAppearanceDO) result.get("CApp");
        CourtCaseDO courtCase = (CourtCaseDO) result.get("CCase");
        StatusDO status = (StatusDO) result.get("st");
        CourtDO court = (CourtDO) result.get("c");
        SummonsDO summons = (SummonsDO) result.get("su");
        PersonDO offender = (PersonDO) result.get("o");
        RoadOperationDO roadOp = (RoadOperationDO) result.get("r");
        TAStaffDO taStaff = (TAStaffDO) result.get("tas");
        ParishDO courtParish = (ParishDO) result.get("courtParish");
        /* ____________________________ */

        CourtScheduleReportResultsBO courtSchedule = new CourtScheduleReportResultsBO(
                NameUtil.getName(offender.getFirstName(), offender.getLastName())/* offender Name */,
                NameUtil.getName(taStaff.getPerson().getFirstName(),
                        taStaff.getPerson().getLastName())/* tAStaffFullName */,
                roadOp != null ? roadOp.getOperationName() : "Unscheduled Operation"/* roadOperationName */,
                summons.getRoadCheckOffenceOutcome().getRoadCheckOffence().getOffence()
                        .getDescription()/* offenceDetails */,
                courtParish != null ? courtParish.getOfficeLocationCode() : ""/* tAOfficeRegion */,
                this.getTAOfficeRegionDescription(court != null ? court : null)/* tAOfficeRegionDescription */,
                courtCase.getStatus().getDescription()/* Court Case Status */,
                courtApp.getStatus().getDescription()/*
                                                     * Court Appearance
                                                     * Status
                                                     */, summons.getOffenceDtime()/* offenceDate */,
                courtApp.getCourtDTime()/* courtDate */, new CourtBO(court)/* court */);

        results.add(courtSchedule);

    }

    return new CourtScheduleReportBO(userName, userRegion/* region */,
            reportDisplayInformation.applicationName/* applicationName */,
            reportDisplayInformation.courtScheduleReportTitle + stringStartDate + " TO "
                    + stringEndDate/* reportName */,
            reportCriteria.getTrialStartDate()/* startDate */, reportCriteria.getTrialEndDate()/* endDate */,
            reportCriteria.getSearchCriteriaString()/* searchCriteria */,
            this.getTAOfficeRegionDescription(userRegion)/* regionDescription */, results);
}

From source file:fsl.ta.toms.roms.dao.impl.ReportDAOImpl.java

@SuppressWarnings("unchecked")
@Override/*from  w ww .  j a v  a2 s  .c  om*/
public RoadOperationsStatisticsReportBO performanceSaisticsReport(
        PerformanceStatisticsReportCriteriaBO reportCriteria, String userName, String userRegion,
        ReportDisplayInformationDAOImpl reportDisplayInformation) {
    /* Specify search criteria for report */
    Criteria criteria = this.hibernateTemplate.getSessionFactory().getCurrentSession()
            .createCriteria(RoadOperationDO.class, "roadOp");

    /* List of all aliases used */
    criteria.createAlias("roadOp.category", "category");

    /* _______________________ */

    /* Apply filters to search results */
    Criterion mainCriteron = Restrictions.or(
            Restrictions.between("roadOp.scheduledStartDtime",
                    DateUtils.searchDateFormater(reportCriteria.getStartDate(), DateUtils.SEARCHDATETYPE.START),
                    DateUtils.searchDateFormater(reportCriteria.getEndDate(), DateUtils.SEARCHDATETYPE.END)),
            Restrictions.between("roadOp.scheduledEndDtime",
                    DateUtils.searchDateFormater(reportCriteria.getStartDate(), DateUtils.SEARCHDATETYPE.START),
                    DateUtils.searchDateFormater(reportCriteria.getEndDate(), DateUtils.SEARCHDATETYPE.END)));

    if (StringUtil.isSet(reportCriteria.getTAOfficeRegion())) {
        mainCriteron = Restrictions.and(mainCriteron,
                Restrictions.eq("roadOp.officeLocCode", reportCriteria.getTAOfficeRegion().trim()));
    }

    if (StringUtil.isSet(reportCriteria.getOperationCategory())) {
        mainCriteron = Restrictions.and(mainCriteron,
                Restrictions.eq("category.categoryId", reportCriteria.getOperationCategory().trim()));
    }

    if (reportCriteria.getTeamLeadId() != null && !reportCriteria.getTeamLeadId().isEmpty()) {
        List<Integer> roadOpIds = this.getListOfRoadOpIdsBasedOnTeamLead(reportCriteria.getTeamLeadId());

        if (roadOpIds != null)
            mainCriteron = Restrictions.and(mainCriteron, Restrictions.in("roadOp.roadOperationId", roadOpIds));
    }

    if (StringUtil.isSet(reportCriteria.getTeamLeadTRN())) {
        List<Integer> roadOpIds = this.getListOfRoadOpIdsBasedOnTeamLeadTRN(reportCriteria.getTeamLeadTRN());

        if (roadOpIds != null)
            mainCriteron = Restrictions.and(mainCriteron, Restrictions.in("roadOp.roadOperationId", roadOpIds));
    }

    if (StringUtil.isSet(reportCriteria.getRoadOperationName())) {
        mainCriteron = Restrictions.and(mainCriteron,
                Restrictions
                        .like("roadOp.operationName", reportCriteria.getRoadOperationName(), MatchMode.ANYWHERE)
                        .ignoreCase());
    }

    if (reportCriteria.getRoadOperationId() != null && reportCriteria.getRoadOperationId() > 0) {
        mainCriteron = Restrictions.and(mainCriteron,
                Restrictions.eq("roadOp.roadOperationId", reportCriteria.getRoadOperationId()));
    }

    if (StringUtil.isSet(reportCriteria.getTAStaffId()) || StringUtil.isSet(reportCriteria.getTAStaffTRN())) {
        Criteria criteriaTA = this.hibernateTemplate.getSessionFactory().getCurrentSession()
                .createCriteria(TAStaffDO.class, "ta");

        criteriaTA.createAlias("ta.person", "taPerson");

        if (StringUtil.isSet(reportCriteria.getTAStaffId()))
            criteriaTA.add(Restrictions.eq("ta.staffId", reportCriteria.getTAStaffId().trim()));

        if (StringUtil.isSet(reportCriteria.getTAStaffTRN()))
            criteriaTA.add(Restrictions.eq("taPerson.trnNbr", reportCriteria.getTAStaffTRN().trim()));

        TAStaffDO taStaff = null;

        List<TAStaffDO> staffList = criteriaTA.list();

        if (!staffList.isEmpty())
            taStaff = staffList.get(0);

        if (taStaff != null) {

            /* Get a list of all assigned persons for a road operation. */
            Criteria criteriaAssignedPersons = this.hibernateTemplate.getSessionFactory().getCurrentSession()
                    .createCriteria(AssignedPersonDO.class, "assignedP");

            criteriaAssignedPersons.add(Restrictions.sqlRestriction("{alias}.person_id = ?",
                    taStaff.getPerson().getPersonId(), Hibernate.INTEGER));

            List<Integer> roadOpsWithTAStaff = new ArrayList<Integer>();

            for (AssignedPersonDO assignee : (List<AssignedPersonDO>) criteriaAssignedPersons.list()) {
                roadOpsWithTAStaff
                        .add(assignee.getAssignedPersonKey().getTeam().getRoadOperation().getRoadOperationId());
            }

            mainCriteron = Restrictions.and(mainCriteron,
                    Restrictions.in("roadOp.roadOperationId", roadOpsWithTAStaff));
        } else {
            return null;
        }
    }

    /* ______________________________ */

    /*** Check which road operations employ the strategies selected ****/
    if (reportCriteria.getStrategyIds() != null && !reportCriteria.getStrategyIds().isEmpty()) {
        //
        Criteria criteriaStrategies = this.hibernateTemplate.getSessionFactory().getCurrentSession()
                .createCriteria(OperationStrategyDO.class, "opStrat");

        // criteriaStrategies.createAlias("opStrat.operationStrategyKey.roadOperation",
        // "roadOp");
        // criteriaStrategies.createAlias("opStrat.operationStrategyKey.strategy",
        // "strat");

        criteriaStrategies.setProjection(Projections
                .distinct(Projections.property("opStrat.operationStrategyKey.roadOperation.roadOperationId")));

        criteriaStrategies.add(Restrictions.in("opStrat.operationStrategyKey.strategy.strategyId",
                reportCriteria.getStrategyIds()));

        List<Integer> roadOpWithStratsList = criteriaStrategies.list();

        if (roadOpWithStratsList != null && !roadOpWithStratsList.isEmpty()) {
            mainCriteron = Restrictions.and(mainCriteron,
                    Restrictions.in("roadOp.roadOperationId", roadOpWithStratsList));
        } else {
            return null;
        }
    }
    /* ______________________________________________________________ */

    /*
     * Create Return objects which are going to be filled during report
     * processing.
     */

    String stringStartDate = "";
    String stringEndDate = "";
    try {
        stringStartDate = DateUtils.getFormattedUtilDate(reportCriteria.getStartDate());
        stringEndDate = DateUtils.getFormattedUtilDate(reportCriteria.getEndDate());
    } catch (Exception exe) {

    }

    /* Get report criteria names and descriptions */
    reportCriteria
            .setTAOfficeDescription(this.getTAOfficeRegionDescription(reportCriteria.getTAOfficeRegion()));
    reportCriteria.setOperationCategoryDescription(
            this.getOperationCategoryDesc(reportCriteria.getOperationCategory()));

    if (StringUtil.isSet(reportCriteria.getTAStaffId()))
        reportCriteria.setTAStaffName(this.getTAStaffName(reportCriteria.getTAStaffId()));
    else if (StringUtil.isSet(reportCriteria.getTAStaffTRN()))
        reportCriteria.setTAStaffName(this.getPersonName(reportCriteria.getTAStaffTRN()));

    if (StringUtil.isSet(reportCriteria.getTeamLeadId()))
        reportCriteria.setTeamLeadName(this.getTAStaffName(reportCriteria.getTeamLeadId()));
    else if (StringUtil.isSet(reportCriteria.getTeamLeadTRN()))
        reportCriteria.setTeamLeadName(this.getPersonName(reportCriteria.getTeamLeadTRN()));

    if (reportCriteria.getStrategyIds() != null && !reportCriteria.getStrategyIds().isEmpty()) {
        StringBuilder strategyDescriptions = new StringBuilder("");

        for (Integer strategyId : reportCriteria.getStrategyIds()) {
            StrategyDO strategyDO = this.hibernateTemplate.get(StrategyDO.class, strategyId);

            if (strategyDO != null) {
                if (!strategyDescriptions.toString().isEmpty())
                    strategyDescriptions.append(", ");

                strategyDescriptions.append(strategyDO.getDescription());
            }
        }

        reportCriteria.setStrategyDescriptions(strategyDescriptions.toString());
    }

    RoadOperationsStatisticsReportBO roadOpReportStatsOuput = new RoadOperationsStatisticsReportBO(userName,
            userRegion, reportDisplayInformation.applicationName,
            reportDisplayInformation.getPerformanceStatisticsReportTitle() + stringStartDate + " TO "
                    + stringEndDate,
            reportCriteria.getStartDate(), reportCriteria.getEndDate(),
            reportCriteria.getSearchCriteriaString(), this.getTAOfficeRegionDescription(userRegion));

    List<RegionStatisticsBO> regionStats = new ArrayList<RegionStatisticsBO>();

    RegionStatisticsBO currentRegionStats = null;
    OperationSummaryReportCriteriaBO reportCriteriaForRoadOps = null;

    roadOpReportStatsOuput.setRegionStatistics(regionStats);

    /* ____________________________________ */

    /* Loop through list of road operations and get statistics for persons. */
    criteria.add(mainCriteron);
    criteria.addOrder(Order.asc("roadOp.officeLocCode"));
    criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);

    List criteriaList = criteria.list();

    Iterator iterator = criteriaList.iterator();

    while (iterator.hasNext()) {
        Map map = (Map) iterator.next();

        final RoadOperationDO roadOpDO = (RoadOperationDO) map.get("roadOp");
        // TAStaffDO teamLead = (TAStaffDO)map.get("teamLead");

        if (currentRegionStats == null) {

            /* Create List of RoadOperationSummaryBO */
            reportCriteriaForRoadOps = new OperationSummaryReportCriteriaBO(reportCriteria.getStartDate(),
                    reportCriteria.getEndDate(), new ArrayList<String>() {
                        {
                            add(roadOpDO.getOfficeLocCode());

                        }
                    }, this.getTeamLeadIdsForRoadOp(roadOpDO.getRoadOperationId()),
                    roadOpDO.getCategory().getCategoryId(), roadOpDO.getRoadOperationId());

            currentRegionStats = new RegionStatisticsBO(roadOpDO.getOfficeLocCode(),
                    this.getTAOfficeRegionDescription(roadOpDO.getOfficeLocCode()));

            currentRegionStats.setRoadOpSummary(this.operationSummaryReport(reportCriteriaForRoadOps, userName,
                    userRegion, reportDisplayInformation).getResults());

            List<RoadOperationSummaryResultsBO> roadOpSummary = this.operationSummaryReport(
                    reportCriteriaForRoadOps, userName, userRegion, reportDisplayInformation).getResults();

            currentRegionStats.setRoadOpSummary(roadOpSummary);

            currentRegionStats.setRoadOperationStatistics(new ArrayList<RoadOperationStatisticsBO>());

            roadOpReportStatsOuput.getRegionStatistics().add(currentRegionStats);

        } else if (!currentRegionStats.getOfficeLocCode().equalsIgnoreCase(roadOpDO.getOfficeLocCode())) {

            reportCriteriaForRoadOps = new OperationSummaryReportCriteriaBO(reportCriteria.getStartDate(),
                    reportCriteria.getEndDate(), new ArrayList<String>() {
                        {
                            add(roadOpDO.getOfficeLocCode());

                        }
                    }, null, roadOpDO.getCategory().getCategoryId(), null);

            currentRegionStats = new RegionStatisticsBO(roadOpDO.getOfficeLocCode(),
                    this.getTAOfficeRegionDescription(roadOpDO.getOfficeLocCode()));
            ;

            currentRegionStats.setRoadOpSummary(this.operationSummaryReport(reportCriteriaForRoadOps, userName,
                    userRegion, reportDisplayInformation).getResults());

            List<RoadOperationSummaryResultsBO> roadOpSummary = this.operationSummaryReport(
                    reportCriteriaForRoadOps, userName, userRegion, reportDisplayInformation).getResults();

            currentRegionStats.setRoadOpSummary(roadOpSummary);

            currentRegionStats.setRoadOperationStatistics(new ArrayList<RoadOperationStatisticsBO>());

            roadOpReportStatsOuput.getRegionStatistics().add(currentRegionStats);
        }

        RoadOperationStatisticsBO roadOpStats = new RoadOperationStatisticsBO(
                getListOfTeamLeadNamesBasedOnRoadOpId(roadOpDO.getRoadOperationId()),
                roadOpDO.getOperationName());

        roadOpStats.setITAExaminerSummary(new ArrayList<ITAExaminerStatisticsBO>());
        roadOpStats.setJPSummary(new ArrayList<JPStatisticsBO>());
        roadOpStats.setPoliceOfficerSummary(new ArrayList<PoliceOfficerStatisticsBO>());
        roadOpStats.setTAOfficerSummary(new ArrayList<TAOfficerStatisticsBO>());
        /* Get a list of all assigned persons for a road operation. */
        Criteria criteriaAssignedPersons = this.hibernateTemplate.getSessionFactory().getCurrentSession()
                .createCriteria(AssignedPersonDO.class, "assignedP");

        // criteriaAssignedPersons.add(Restrictions.sqlRestriction("{alias}.road_operation_id = ?",
        // roadOpDO.getRoadOperationId(), Hibernate.INTEGER));

        List<Integer> teamIds = this.getTeamIdsForRoadOp(roadOpDO.getRoadOperationId());

        if (teamIds != null && teamIds.size() > 0)
            criteriaAssignedPersons.add(Restrictions.in("assignedPersonKey.team.teamId", teamIds));

        if (StringUtil.isSet(reportCriteria.getTAStaffId())) {
            TAStaffDO taStaff = (TAStaffDO) this.hibernateTemplate.getSessionFactory().getCurrentSession()
                    .get(TAStaffDO.class, reportCriteria.getTAStaffId().trim());

            if (taStaff != null) {

                criteriaAssignedPersons.add(Restrictions.sqlRestriction("{alias}.person_id = ?",
                        taStaff.getPerson().getPersonId(), Hibernate.INTEGER));
            } else {
                return null;
            }
        }

        for (AssignedPersonDO assignedPerson : (List<AssignedPersonDO>) criteriaAssignedPersons.list()) {
            /* Looping through a list of persons based on road operation id. */

            PersonDO person = assignedPerson.getAssignedPersonKey().getPerson();
            CDPersonTypeDO personType = assignedPerson.getAssignedPersonKey().getPersonType();

            if (personType.getPersonTypeId().toLowerCase().equalsIgnoreCase(Constants.PersonType.JP)) {
                /* Get Statistics for JP Person */
                Criteria criteriaJP = this.hibernateTemplate.getSessionFactory().getCurrentSession()
                        .createCriteria(JPDO.class);
                criteriaJP.add(Restrictions.eq("person.personId", person.getPersonId()));

                JPDO jp = (JPDO) criteriaJP.uniqueResult();

                JPStatisticsBO jpStatsBO = new JPStatisticsBO(
                        NameUtil.getName(person.getFirstName(), person.getLastName())/* fullName */,
                        jp.getRegNumber()/* regNumber */,
                        this.summonsCount(roadOpDO.getRoadOperationId(), person.getPersonId(),
                                Constants.PersonType.JP)/* countSummonsSigned */,
                        assignedPerson.getAttended()/* attended */);

                roadOpStats.getJPSummary().add(jpStatsBO);

            } else if (personType.getPersonTypeId().equalsIgnoreCase(Constants.PersonType.TA_STAFF)) {
                /* Get Statistics for TA Staff. */
                Criteria criteriaTA = this.hibernateTemplate.getSessionFactory().getCurrentSession()
                        .createCriteria(TAStaffDO.class);
                criteriaTA.add(Restrictions.eq("person.personId", person.getPersonId()));
                //System.out.println("Person ID is " + person.getPersonId());
                TAStaffDO ta = (TAStaffDO) criteriaTA.uniqueResult();

                TAOfficerStatisticsBO taStatsBO = new TAOfficerStatisticsBO(
                        NameUtil.getName(person.getFirstName(), person.getLastName())/* fullName */,
                        ta.getStaffTypeCode()/* staffType */,
                        this.complianceCount(roadOpDO.getRoadOperationId(), person.getPersonId(),
                                personType.getPersonTypeId())/* countCompliancyChecks */,
                        this.roadCheckTypeCount(roadOpDO.getRoadOperationId(),
                                Constants.RoadCheckType.MOTOR_VEHICLE, person.getPersonId(),
                                personType.getPersonTypeId())/* countMVChecks */,
                        this.roadCheckTypeCount(roadOpDO.getRoadOperationId(),
                                Constants.RoadCheckType.DRIVERS_LICENCE, person.getPersonId(),
                                personType.getPersonTypeId())/* countDLChecks */,
                        this.roadCheckTypeCount(roadOpDO.getRoadOperationId(), Constants.RoadCheckType.BADGE,
                                person.getPersonId(), personType.getPersonTypeId())/* countBadgeChecks */,
                        this.roadCheckTypeCount(roadOpDO.getRoadOperationId(), Constants.RoadCheckType.CITATION,
                                person.getPersonId(), personType.getPersonTypeId())/* countCitationChecks */,
                        this.roadCheckTypeCount(roadOpDO.getRoadOperationId(),
                                Constants.RoadCheckType.ROAD_LICENCE, person.getPersonId(),
                                personType.getPersonTypeId())/* countRLChecks */,
                        this.roadCheckTypeCount(roadOpDO.getRoadOperationId(), Constants.RoadCheckType.OTHER,
                                person.getPersonId(), personType.getPersonTypeId())/* countOtherChecks */,
                        this.warningNoticeCount(roadOpDO.getRoadOperationId(), person.getPersonId(),
                                personType.getPersonTypeId())/* countWarningNoticesIssued */,
                        this.summonsCount(roadOpDO.getRoadOperationId(), person.getPersonId(),
                                personType.getPersonTypeId())/* countSummonsIssued */,
                        this.roadCheckOutcomeCount(roadOpDO.getRoadOperationId(),
                                Constants.OutcomeType.VEHICLE_SEIZURE, person.getPersonId(),
                                personType.getPersonTypeId())/* countVehiclesSeized */,
                        assignedPerson.getAttended()/* attended */,
                        this.roadCheckOutcomeCount(roadOpDO.getRoadOperationId(),
                                Constants.OutcomeType.REMOVE_PLATES, person.getPersonId(),
                                personType.getPersonTypeId())/* countPlatesRemoved */,
                        this.roadCheckOutcomeCount(roadOpDO.getRoadOperationId(),
                                Constants.OutcomeType.WARNED_FOR_PROSECUTION, person.getPersonId(),
                                personType.getPersonTypeId())/* warningsForProcecution */,
                        this.roadCheckOutcomeCount(roadOpDO.getRoadOperationId(),
                                Constants.OutcomeType.ALL_IN_ORDER, person.getPersonId(),
                                personType.getPersonTypeId())/* allInOrders */,
                        ta.getStaffId()/* staff id */);

                roadOpStats.getTAOfficerSummary().add(taStatsBO);
            } else if (personType.getPersonTypeId().equalsIgnoreCase(Constants.PersonType.ITA_EXAMINER)) {
                /* Get Statistics for ITA Examiner */
                Criteria criteriaITA = this.hibernateTemplate.getSessionFactory().getCurrentSession()
                        .createCriteria(ITAExaminerDO.class);
                criteriaITA.add(Restrictions.eq("person.personId", person.getPersonId()));

                ITAExaminerDO ita = (ITAExaminerDO) criteriaITA.uniqueResult();

                ITAExaminerStatisticsBO itaStats = new ITAExaminerStatisticsBO(
                        NameUtil.getName(person.getFirstName(), person.getLastName()),
                        assignedPerson.getAttended(), ita.getExaminerId());

                roadOpStats.getITAExaminerSummary().add(itaStats);
            } else if (personType.getPersonTypeId().equalsIgnoreCase(Constants.PersonType.POLICE_OFFCER)) {
                /* Get Statistics for Police Officer */
                Criteria criteriaITA = this.hibernateTemplate.getSessionFactory().getCurrentSession()
                        .createCriteria(PoliceOfficerDO.class);
                criteriaITA.add(Restrictions.eq("person.personId", person.getPersonId()));

                PoliceOfficerDO police = (PoliceOfficerDO) criteriaITA.uniqueResult();

                PoliceOfficerStatisticsBO policeStats = new PoliceOfficerStatisticsBO(
                        NameUtil.getName(person.getFirstName(), person.getLastName()),
                        assignedPerson.getAttended(), police.getPolOfficerCompNo());

                roadOpStats.getPoliceOfficerSummary().add(policeStats);
            }

        }
        /* ____________________________________ */

        currentRegionStats.getRoadOperationStatistics().add(roadOpStats);
    }
    /* ________________________________ */

    roadOpReportStatsOuput.setRegionStatistics(regionStats);
    return roadOpReportStatsOuput;
}

From source file:fsl.ta.toms.roms.dao.impl.ReportDAOImpl.java

/**
 * This is a helper function which checks the starting trial date of court
 * cases and returns all court case id as a list of integers based on the
 * start and end date ranges./*from  w  w w .ja v a2s .co m*/
 * 
 * @param startTrialDate
 * @param endTrialDate
 * @return
 */
@SuppressWarnings("unchecked")
private List<Integer> getCourtCasesIdsForTrialDateRange(Date startTrialDate, Date endTrialDate) {
    List<Integer> courtCaseIds = new ArrayList<Integer>();

    Criteria criteria = this.hibernateTemplate.getSessionFactory().getCurrentSession()
            .createCriteria(CourtAppearanceDO.class, "capp");

    criteria.setProjection(Projections.distinct(Projections.property("courtCase.courtCaseId")));

    criteria.add(Restrictions.between("CourtDTime",
            DateUtils.searchDateFormater(startTrialDate, DateUtils.SEARCHDATETYPE.START),
            DateUtils.searchDateFormater(endTrialDate, DateUtils.SEARCHDATETYPE.END)));

    courtCaseIds = criteria.list();

    return courtCaseIds;
}

From source file:fsl.ta.toms.roms.dao.impl.ReportDAOImpl.java

@Override
public WarningNoProsecutionReportBO warningNoProsecutionReport(WarningNoProReportCriteriaBO reportCriteria,
        String userName, String userRegion, ReportDisplayInformationDAOImpl reportDisplayInformation) {
    Criteria criteria = this.hibernateTemplate.getSessionFactory().getCurrentSession()
            .createCriteria(WarningNoProsecutionDO.class, "wnp");

    /* Create aliases */
    criteria.createAlias("wnp.roadOperation", "roadOp");
    criteria.createAlias("wnp.offender", "off");
    criteria.createAlias("wnp.taStaff", "staff");
    criteria.createAlias("wnp.status", "status");
    criteria.createAlias("roadOp.category", "cat");
    criteria.createAlias("staff.person", "taPerson");
    /* _____________ */

    Criterion mainCriterion = Restrictions.sqlRestriction("1=1");

    if (reportCriteria.getOperationStartDate() != null && reportCriteria.getOperationEndDate() != null) {
        Date reportStartDate = DateUtils.searchDateFormater(reportCriteria.getOperationStartDate(),
                DateUtils.SEARCHDATETYPE.START);
        Date reportEndDate = DateUtils.searchDateFormater(reportCriteria.getOperationEndDate(),
                DateUtils.SEARCHDATETYPE.END);

        Criterion scheduledDate = Restrictions.or(
                Restrictions.between("roadOp.scheduledStartDtime", reportStartDate, reportEndDate),
                Restrictions.between("roadOp.scheduledEndDtime", reportStartDate, reportEndDate));

        Criterion actualDate = Restrictions.or(
                Restrictions.between("roadOp.actualStartDtime", reportStartDate, reportEndDate),
                Restrictions.between("roadOp.actualEndDtime", reportStartDate, reportEndDate));

        mainCriterion = Restrictions.and(mainCriterion, Restrictions.or(scheduledDate, actualDate));
    }//w ww .  ja  v  a 2s  .c o m

    if (reportCriteria.getIssuedStartDate() != null && reportCriteria.getIssuedEndDate() != null) {
        Date reportStartDate = DateUtils.searchDateFormater(reportCriteria.getIssuedStartDate(),
                DateUtils.SEARCHDATETYPE.START);
        Date reportEndDate = DateUtils.searchDateFormater(reportCriteria.getIssuedEndDate(),
                DateUtils.SEARCHDATETYPE.END);

        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.between("wnp.issueDate", reportStartDate, reportEndDate));
    }

    if (reportCriteria.getPrintStartDate() != null && reportCriteria.getPrintEndDate() != null) {
        Date reportStartDate = DateUtils.searchDateFormater(reportCriteria.getPrintStartDate(),
                DateUtils.SEARCHDATETYPE.START);
        Date reportEndDate = DateUtils.searchDateFormater(reportCriteria.getPrintEndDate(),
                DateUtils.SEARCHDATETYPE.END);

        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.between("wnp.printDtime", reportStartDate, reportEndDate));
    }

    if (StringUtil.isSet(reportCriteria.getOffenderFirstName())) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions
                        .like("off.firstName", reportCriteria.getOffenderFirstName().trim(), MatchMode.ANYWHERE)
                        .ignoreCase());
    }

    if (reportCriteria.getOffenderId() != null && reportCriteria.getOffenderId() > 0) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("off.personId", reportCriteria.getOffenderId()));
    }

    if (StringUtil.isSet(reportCriteria.getOffenderLastName())) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions
                        .like("off.lastName", reportCriteria.getOffenderLastName().trim(), MatchMode.ANYWHERE)
                        .ignoreCase());
    }

    if (StringUtil.isSet(reportCriteria.getOffenderTRN())) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("off.trnNbr", reportCriteria.getOffenderTRN().trim()));
    }

    if (StringUtil.isSet(reportCriteria.getOperationCategory())) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("cat.categoryId", reportCriteria.getOperationCategory().trim()));
    }

    if (reportCriteria.getRoadOperationId() != null && reportCriteria.getRoadOperationId() > 0) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("roadOp.roadOperationId", reportCriteria.getRoadOperationId()));
    }

    if (StringUtil.isSet(reportCriteria.getRoadOperationName())) {
        mainCriterion = Restrictions.and(mainCriterion, Restrictions
                .like("roadOp.operationName", reportCriteria.getRoadOperationName().trim(), MatchMode.ANYWHERE)
                .ignoreCase());
    }

    if (StringUtil.isSet(reportCriteria.getStatus())) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("status.statusId", reportCriteria.getStatus().trim()));
    }

    if (StringUtil.isSet(reportCriteria.getTAOfficeRegion())) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("roadOp.officeLocCode", reportCriteria.getTAOfficeRegion().trim()));
    }

    if (StringUtil.isSet(reportCriteria.getTAStaffId())) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("staff.staffId", reportCriteria.getTAStaffId().trim()));
    }

    if (StringUtil.isSet(reportCriteria.getTAStaffTRN())) {
        mainCriterion = Restrictions.and(mainCriterion,
                Restrictions.eq("taPerson.trnNbr", reportCriteria.getTAStaffTRN().trim()));
    }

    criteria.add(mainCriterion);

    String stringStartDate = "";
    String stringEndDate = "";
    String dateTypeUsed = "";
    Date startDate = null;
    Date endDate = null;
    try {
        if (reportCriteria.getOperationStartDate() != null && reportCriteria.getOperationEndDate() != null) {
            startDate = reportCriteria.getOperationStartDate();
            endDate = reportCriteria.getOperationEndDate();
            stringStartDate = DateUtils.getFormattedUtilDate(reportCriteria.getOperationStartDate());
            stringEndDate = DateUtils.getFormattedUtilDate(reportCriteria.getOperationEndDate());

            dateTypeUsed = "Operation";
        } else if (reportCriteria.getPrintStartDate() != null && reportCriteria.getPrintEndDate() != null) {
            startDate = reportCriteria.getPrintStartDate();
            endDate = reportCriteria.getPrintEndDate();
            stringStartDate = DateUtils.getFormattedUtilDate(reportCriteria.getPrintStartDate());
            stringEndDate = DateUtils.getFormattedUtilDate(reportCriteria.getPrintEndDate());

            dateTypeUsed = "Print";
        } else if (reportCriteria.getIssuedStartDate() != reportCriteria.getIssuedEndDate()) {
            startDate = reportCriteria.getIssuedStartDate();
            endDate = reportCriteria.getIssuedEndDate();
            stringStartDate = DateUtils.getFormattedUtilDate(reportCriteria.getIssuedStartDate());
            stringEndDate = DateUtils.getFormattedUtilDate(reportCriteria.getIssuedEndDate());

            dateTypeUsed = "Issued";
        }
    } catch (Exception exe) {

    }
    /* Get report criteria names and descriptions */
    if (reportCriteria.getOffenderId() != null && reportCriteria.getOffenderId() > 0) {
        reportCriteria.setOffenderName(this.getPersonName(reportCriteria.getOffenderId()));
    } else if (StringUtil.isSet(reportCriteria.getOffenderTRN())) {
        reportCriteria.setOffenderName(this.getPersonName(reportCriteria.getOffenderTRN()));
    }

    reportCriteria
            .setOperationCategoryDesc(this.getOperationCategoryDesc(reportCriteria.getOperationCategory()));
    reportCriteria.setRoadOperationName(reportCriteria.getRoadOperationName());

    reportCriteria.setTAOfficeRegionDesc(this.getTAOfficeRegionDescription(reportCriteria.getTAOfficeRegion()));

    if (StringUtil.isSet(reportCriteria.getTAStaffId()))
        reportCriteria.setTAStaffName(this.getTAStaffName(reportCriteria.getTAStaffId()));
    else if (StringUtil.isSet(reportCriteria.getTAStaffTRN()))
        reportCriteria.setTAStaffName(this.getPersonName(reportCriteria.getTAStaffTRN()));

    criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);

    Iterator iterator = criteria.list().iterator();

    List<WarningNoProsecutionDetailsBO> warningNoProDetailsList = new ArrayList<WarningNoProsecutionDetailsBO>();

    while (iterator.hasNext()) {
        Map result = (Map) iterator.next();

        RoadOperationDO roadOp = (RoadOperationDO) result.get("roadOp");
        PersonDO offender = (PersonDO) result.get("off");
        TAStaffDO taStaff = (TAStaffDO) result.get("staff");
        StatusDO status = (StatusDO) result.get("status");
        CDCategoryDO category = (CDCategoryDO) result.get("cat");
        WarningNoProsecutionDO warningNoPro = (WarningNoProsecutionDO) result.get("wnp");

        Integer roadCheckId = warningNoPro.getRoadCheckOffenceOutcome().getRoadCheckOffence().getRoadCheck()
                .getRoadCheckId();

        WarningNoProsecutionDetailsBO warningNoProItem = new WarningNoProsecutionDetailsBO(
                this.getPersonName(taStaff.getPerson().getPersonId())/* tAStaffFullName */,
                taStaff.getStaffId()/* tAStaffID */,
                this.getTeamLeadName(roadOp.getRoadOperationId(),
                        taStaff.getPerson().getPersonId())/* tATeamLeadFullName */,
                this.getPersonName(offender.getPersonId())/* offenderFullName */,
                this.getDLNumFromDLCheck(roadCheckId)/* offendersDriverLicence */,
                this.getVehicleDetailsFromMVCheck(roadCheckId)/* offenderVehicleDetials */,
                this.getVehicleOwenersFullNames(roadCheckId)/* vehicleOwnerFullNames */,
                roadOp.getOperationName()/* roadOperationName */,
                warningNoPro.getRoadCheckOffenceOutcome().getRoadCheckOffence().getRoadCheck().getCompliance()
                        .getCompliancyArtery().getShortDescription()/* locationOfOffence */,
                warningNoPro.getOffenceDtime()/* dateOfOffence */,
                warningNoPro.getManualSerialNumber()/* manualSerialNumber */,
                status.getDescription()/* status */,
                warningNoPro.getRoadCheckOffenceOutcome().getRoadCheckOffence().getOffence()
                        .getDescription()/* offenceDescription */,
                warningNoPro.getAllegation()/* allegation */, warningNoPro.getRoadCheckOffenceOutcome()
                        .getRoadCheckOffence().getOffence().getShortDescription()/* offenceShortDescription */);

        warningNoProDetailsList.add(warningNoProItem);
    }

    return new WarningNoProsecutionReportBO(userName, userRegion, reportDisplayInformation.applicationName,
            reportDisplayInformation.warningNoticeNoProsecutionReportTitle + " (" + dateTypeUsed + ") "
                    + stringStartDate + " TO " + stringEndDate,
            startDate, endDate, reportCriteria.getSearchCriteriaString(), userRegion, warningNoProDetailsList);
}

From source file:gov.nih.nci.cma.service.findings.handlers.ClinicalQueryHandler.java

License:BSD License

/**
 * Method that looks at the QueryDTO and creates a criteria to
 * be executed.//from  ww  w  . jav  a  2s. c o  m
 *
 * @param query
 * @return
 */
protected Criteria createCriteria(QueryDTO query) {
    Session s = sessionFactory.getCurrentSession();
    Criteria criteria = s.createCriteria(GBMClinicalFinding.class);
    ProjectQueryDTO clinicalQuery = (ProjectQueryDTO) query;

    for (String key : clinicalQuery.getQueryMap().keySet()) {
        List unknownList = clinicalQuery.getQueryMap().get(key);
        if (unknownList.get(0) instanceof String) {
            logger.info("Query params for " + key + " are Strings");
            criteria.add(Restrictions.in(key + ".value", clinicalQuery.getQueryMap().get(key)));
        } else if (unknownList.get(0) instanceof Double) {
            logger.info("Query params for " + key + " are Doubles");
            criteria.add(Restrictions.between(key + ".absoluteValue",
                    clinicalQuery.getQueryMap().get(key).get(0), clinicalQuery.getQueryMap().get(key).get(1)));
        }
    }

    return criteria;
}

From source file:gov.nih.nci.eagle.service.handlers.EpidemiologicalQueryHandler.java

License:BSD License

private void populateTobaccoConsumptionCrit(TobaccoConsumptionCriterion tobaccoCrit, Criteria targetCrit) {

    if (tobaccoCrit != null) {
        Double lowerIntensity = tobaccoCrit.getIntensityLower();
        Double upperIntensity = tobaccoCrit.getIntensityUpper();
        if (lowerIntensity != null && upperIntensity != null) {
            assert (upperIntensity.compareTo(lowerIntensity) > 0);
            targetCrit.add(Restrictions.between("tc.intensity", lowerIntensity, upperIntensity));
        }//from   w w  w .ja v  a 2 s. c  o  m
        Integer durationLower = tobaccoCrit.getDurationLower();
        Integer durationUpper = tobaccoCrit.getDurationUpper();
        if (durationLower != null && durationUpper != null) {
            assert (durationUpper.compareTo(durationUpper) > 0);
            targetCrit.add(Restrictions.between("tc.duration", durationLower, durationUpper));
        }
        Integer ageLower = tobaccoCrit.getAgeAtInitiationLower();
        Integer ageUpper = tobaccoCrit.getAgeAtInitiationUpper();
        if (ageLower != null && ageUpper != null) {
            assert (ageUpper.compareTo(ageLower) > 0);
            targetCrit.add(Restrictions.between("tc.ageAtInitiation", ageLower, ageUpper));
        }
        Integer quitLower = tobaccoCrit.getYearsSinceQuittingLower();
        Integer quitUpper = tobaccoCrit.getYearsSinceQuittingUpper();
        if (quitLower != null && quitUpper != null) {
            assert (quitUpper.compareTo(quitLower) > 0);
            Integer currentYear = Calendar.getInstance().get(Calendar.YEAR);
            targetCrit.add(Restrictions.between("tc.yearsSinceQuitting", (currentYear - quitUpper),
                    (currentYear - quitLower)));
        }

        SmokingStatus smokeStatus = tobaccoCrit.getSmokingStatus();
        if (smokeStatus != null)
            targetCrit.add(Expression.eq("tc.smokingStatus", new Integer(smokeStatus.getValue()).toString()));

    }
}

From source file:gov.nih.nci.eagle.service.handlers.EpidemiologicalQueryHandler.java

License:BSD License

private void pupulatePatientAttributesCriterion(PatientCharacteristicsCriterion patCharacterCrit,
        Criteria targetCrit) {/*from  www . j a  v a  2  s .c  om*/
    Double lowerAgeLimit = patCharacterCrit.getAgeLowerLimit();
    Double upperAgeLimit = patCharacterCrit.getAgeUpperLimit();
    if ((lowerAgeLimit != null && lowerAgeLimit != 0) && (upperAgeLimit != null && upperAgeLimit != 0))
        targetCrit.add(Restrictions.between("ageAtDiagnosis.absoluteValue", lowerAgeLimit, upperAgeLimit));

    Gender gender = patCharacterCrit.getSelfReportedgender();
    if (gender != null)
        targetCrit.add(Restrictions.eq("administrativeGenderCode", gender.getName().toUpperCase()));

    Double lowerWtLimit = patCharacterCrit.getWeightLowerLimit();
    Double upperWtLimit = patCharacterCrit.getWeightUpperLimit();
    if ((lowerWtLimit != null && lowerWtLimit != 0) && (upperWtLimit != null && upperWtLimit != 0))
        targetCrit.add(Restrictions.between("weight", lowerWtLimit, upperWtLimit));

    Double lowerHtLimit = patCharacterCrit.getHeightLowerLimit();
    Double upperHtLimit = patCharacterCrit.getHeightUpperLimit();
    if ((lowerHtLimit != null && lowerHtLimit != 0) && (upperHtLimit != null && upperHtLimit != 0))
        targetCrit.add(Restrictions.between("height", lowerHtLimit, upperHtLimit));

    Double lowerWaistLimit = patCharacterCrit.getWaistLowerLimit();
    Double upperWaistLimit = patCharacterCrit.getWaisUpperLimit();
    if ((lowerWaistLimit != null && lowerWaistLimit != 0) && (upperWaistLimit != null && upperWaistLimit != 0))
        targetCrit.add(Restrictions.between("waistCircumference", lowerWaistLimit, upperWaistLimit));
}