Produced by Araxis Merge on 12/13/2018 10:35:23 AM Eastern Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
| # | Location | File | Last Modified |
|---|---|---|---|
| 1 | v12.5_iter_7_build 51.zip\TRM_Upgrade\src\main\java\gov\va\med\ccht\persistent\hibernate | PssDistributionReportDAOImpl.java | Fri Dec 7 17:36:32 2018 UTC |
| 2 | v12.5_iter_7_build 51.zip\TRM_Upgrade\src\main\java\gov\va\med\ccht\persistent\hibernate | PssDistributionReportDAOImpl.java | Wed Dec 12 19:45:44 2018 UTC |
| Description | Between Files 1 and 2 |
|
|---|---|---|
| Text Blocks | Lines | |
| Unchanged | 2 | 710 |
| Changed | 1 | 2 |
| Inserted | 0 | 0 |
| Removed | 0 | 0 |
| Whitespace | |
|---|---|
| Character case | Differences in character case are significant |
| Line endings | Differences in line endings (CR and LF characters) are ignored |
| CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
| 1 | package go v.va.med.c cht.persis tent.hiber nate; | |
| 2 | ||
| 3 | import jav a.text.Sim pleDateFor mat; | |
| 4 | import jav a.util.Arr ayList; | |
| 5 | import jav a.util.Cal endar; | |
| 6 | import jav a.util.Dat e; | |
| 7 | import jav a.util.Lis t; | |
| 8 | ||
| 9 | import jav ax.persist ence.Query ; | |
| 10 | import jav ax.transac tion.Trans actional; | |
| 11 | ||
| 12 | import org .hibernate .Session; | |
| 13 | import org .hibernate .SessionFa ctory; | |
| 14 | import org .springfra mework.bea ns.factory .annotatio n.Autowire d; | |
| 15 | import org .springfra mework.ste reotype.Re pository; | |
| 16 | ||
| 17 | import gov .va.med.cc ht.model.p ssreport.D istributio nOfSurveys Report; | |
| 18 | import gov .va.med.cc ht.persist ent.PssDis tributionR eportDAO; | |
| 19 | import gov .va.med.cc ht.ui.mode l.PSSRepor tForm; | |
| 20 | ||
| 21 | /** | |
| 22 | * | |
| 23 | * @author D N S | |
| 24 | * | |
| 25 | */ | |
| 26 | ||
| 27 | @Repositor y | |
| 28 | @Transacti onal | |
| 29 | public cla ss PssDist ributionRe portDAOImp l impleme nts PssDis tributionR eportDAO{ | |
| 30 | ||
| 31 | pr ivate stat ic final i nt ALL_SUR VEYS = 1; | |
| 32 | pr ivate stat ic final i nt PSS_V1 = 2; | |
| 33 | pr ivate stat ic final i nt PSS_V2 = 3; | |
| 34 | ||
| 35 | pu blic stati c final in t NATIONAL _SELECTION = 1; | |
| 36 | pu blic stati c final in t VISN_SEL ECTION = 2 ; | |
| 37 | pu blic stati c final in t FACILITY _SELECTION = 3; | |
| 38 | ||
| 39 | pr ivate stat ic final S tring DO_N OT_INCLUDE = "-2"; | |
| 40 | pr ivate stat ic final S tring ALL_ MODALITIES = "-1"; | |
| 41 | pr ivate stat ic final S tring BROW SER = "115 03"; | |
| 42 | pr ivate stat ic final S tring IVR = "11502"; | |
| 43 | pr ivate stat ic final S tring HOME _DEVICE = "11501"; | |
| 44 | ||
| 45 | pr ivate stat ic final S tring BROW SER_DATA = "Browser" ; | |
| 46 | pr ivate stat ic final S tring IVR_ DATA = "IV R"; | |
| 47 | pr ivate stat ic final S tring HOME _DEVICE_DA TA = "Home Device"; | |
| 48 | ||
| 49 | pr ivate stat ic final S tring ALL_ VISNS = "- 1"; | |
| 50 | pr ivate stat ic final S tring ALL_ FACILITIES = "-1"; | |
| 51 | ||
| 52 | pr ivate stat ic final i nt BREAKOU T_COL = 0; | |
| 53 | pr ivate stat ic final i nt VENDOR_ NAME = 1; | |
| 54 | pr ivate stat ic final i nt NUM_OF_ SURVEYS = 2; | |
| 55 | pr ivate stat ic final i nt MODALIT Y = 3; | |
| 56 | ||
| 57 | pr ivate stat ic final i nt NATIONA L = 1; | |
| 58 | pr ivate stat ic final i nt VISN = 2; | |
| 59 | pr ivate stat ic final i nt FACILIT Y = 3; | |
| 60 | ||
| 61 | @A utowired | |
| 62 | pr ivate Sess ionFactory sessionFa ctory; | |
| 63 | ||
| 64 | pu blic PssDi stribution ReportDAOI mpl() { | |
| 65 | } | |
| 66 | ||
| 67 | pu blic PssDi stribution ReportDAOI mpl(Sessio nFactory f actory) { | |
| 68 | sess ionFactory = factory ; | |
| 69 | } | |
| 70 | ||
| 71 | pr otected Se ssion getS ession() { | |
| 72 | retu rn this.se ssionFacto ry.getCurr entSession (); | |
| 73 | } | |
| 74 | ||
| 75 | @O verride | |
| 76 | public Distribut ionOfSurve ysReport g etNational Report(PSS ReportForm form) | |
| 77 | { | |
| 78 | Stri ngBuilder sql = new StringBuil der(); | |
| 79 | ||
| 80 | sql. append("SE LECT 'na' AS [Breako ut], "); | |
| 81 | sql. append("v. vendor_nam e, COUNT(* ) AS [NumS urveys] ") ; | |
| 82 | ||
| 83 | if(f orm.getMod alityName( ).equals(A LL_MODALIT IES)) { | |
| 84 | sql.ap pend(addMo dalityBrea kout()); | |
| 85 | } | |
| 86 | ||
| 87 | sql. append("FR OM Surveye d_Activity AS sa "); | |
| 88 | sql. append("IN NER JOIN S urveyed_Ac tivity_Res ponse AS s ar ON sa.S urveyed_Ac tivity_ID = sar.Surv eyed_Activ ity_ID "); | |
| 89 | sql. append("IN NER JOIN V endor AS v ON sa.Ven dor_ID = v .Vendor_ID "); | |
| 90 | sql. append("IN NER JOIN D evice ON s a.Device_I D = Device .Device_ID "); | |
| 91 | ||
| 92 | Simp leDateForm at df = ne w SimpleDa teFormat(" MM/dd/yyyy "); | |
| 93 | sql. append("WH ERE sar.co mpleted_da te >= '" + df.forma t(form.get ReportFrom Date()) + " 12:00:00 AM' "); | |
| 94 | sql. append("AN D sar.comp leted_date <= '" + d f.format(f orm.getRep ortToDate( )) + " 11: 59:59 PM' "); | |
| 95 | ||
| 96 | sql. append("AN D sar.surv ey_accepte d_status = 1 "); | |
| 97 | sql. append(add ReportVers ion(form.g etReportVe rsionButto nSelection ())); | |
| 98 | sq l.append(a ddModality ((form.get ModalityNa me()))); | |
| 99 | sql. append("GR OUP BY v.v endor_name "); | |
| 100 | ||
| 101 | if(f orm.getMod alityName( ).equals(A LL_MODALIT IES)) { | |
| 102 | sql.ap pend(addMo dalityBrea kout()); | |
| 103 | } | |
| 104 | ||
| 105 | sql. append("OR DER BY v.v endor_name ASC"); | |
| 106 | ||
| 107 | fina l Query qu ery = getS ession().c reateNativ eQuery(sql .toString( )); | |
| 108 | ||
| 109 | retu rn generat eReport(qu ery, NATIO NAL_SELECT ION, form) ; | |
| 110 | ||
| 111 | } | |
| 112 | ||
| 113 | @O verride | |
| 114 | public Distribut ionOfSurve ysReport g etVisnRepo rt(PSSRepo rtForm for m) | |
| 115 | { | |
| 116 | Stri ngBuilder sql = new StringBuil der(); | |
| 117 | ||
| 118 | sql. append("SE LECT sa.VI SN_ID AS [ Breakout], "); | |
| 119 | sql. append("v. vendor_nam e, COUNT(* ) AS [NumS urveys] ") ; | |
| 120 | ||
| 121 | if(f orm.getMod alityName( ).equals(A LL_MODALIT IES)) { | |
| 122 | sql.ap pend(addMo dalityBrea kout()); | |
| 123 | } | |
| 124 | ||
| 125 | sql. append("FR OM Surveye d_Activity AS sa "); | |
| 126 | sql. append("IN NER JOIN S urveyed_Ac tivity_Res ponse AS s ar ON sa.S urveyed_Ac tivity_ID = sar.Surv eyed_Activ ity_ID "); | |
| 127 | sql. append("IN NER JOIN V endor AS v ON sa.Ven dor_ID = v .Vendor_ID "); | |
| 128 | sql. append("IN NER JOIN D evice ON s a.Device_I D = Device .Device_ID "); | |
| 129 | ||
| 130 | Simp leDateForm at df = ne w SimpleDa teFormat(" MM/dd/yyyy "); | |
| 131 | sql. append("WH ERE sar.co mpleted_da te >= '" + df.forma t(form.get ReportFrom Date()) + " 12:00:00 AM' "); | |
| 132 | sql. append("AN D sar.comp leted_date <= '" + d f.format(f orm.getRep ortToDate( )) + " 11: 59:59 PM' "); | |
| 133 | sql. append("AN D sar.surv ey_accepte d_status = 1 "); | |
| 134 | ||
| 135 | if(! form.getVi snId().equ als(ALL_VI SNS)) { | |
| 136 | ||
| 137 | sql.ap pend("AND sa.VISN_ID = " + for m.getVisnI d()); | |
| 138 | } | |
| 139 | ||
| 140 | sql. append(add ReportVers ion(form.g etReportVe rsionButto nSelection ())); | |
| 141 | sql. append(add Modality(( form.getMo dalityName ()))); | |
| 142 | sql. append("GR OUP BY sa. VISN_ID, v .vendor_na me "); | |
| 143 | ||
| 144 | if(f orm.getMod alityName( ).equals(A LL_MODALIT IES)) { | |
| 145 | sql.ap pend(addMo dalityBrea kout()); | |
| 146 | } | |
| 147 | ||
| 148 | sql. append("OR DER BY sa. VISN_ID, v .vendor_na me ASC"); | |
| 149 | ||
| 150 | fina l Query qu ery = getS ession().c reateNativ eQuery(sql .toString( )); | |
| 151 | ||
| 152 | retu rn generat eReport(qu ery, VISN_ SELECTION, form); | |
| 153 | } | |
| 154 | ||
| 155 | @O verride | |
| 156 | public Distribut ionOfSurve ysReport g etFacility Report(PSS ReportForm form) | |
| 157 | { | |
| 158 | Stri ngBuilder sql = new StringBuil der(); | |
| 159 | ||
| 160 | sql. append("SE LECT f.fac ility_id + ' ' + f.f acility_na me AS [Bre akout], v. vendor_nam e, COUNT(* ) AS [NumS urveys] ") ; | |
| 161 | ||
| 162 | if(f orm.getMod alityName( ).equals(A LL_MODALIT IES)) { | |
| 163 | sql.ap pend(addMo dalityBrea kout()); | |
| 164 | } | |
| 165 | ||
| 166 | sql. append("FR OM Surveye d_Activity AS sa "); | |
| 167 | sql. append("IN NER JOIN S urveyed_Ac tivity_Res ponse AS s ar ON sa.S urveyed_Ac tivity_ID = sar.Surv eyed_Activ ity_ID "); | |
| 168 | sql. append("IN NER JOIN V endor AS v ON sa.Ven dor_ID = v .Vendor_ID "); | |
| 169 | sql. append("IN NER JOIN D evice ON s a.Device_I D = Device .Device_ID "); | |
| 170 | sql. append("IN NER JOIN F acilities as f ON f. ID = sa.fa cility_ID "); | |
| 171 | ||
| 172 | Simp leDateForm at df = ne w SimpleDa teFormat(" MM/dd/yyyy "); | |
| 173 | sql. append("WH ERE sar.co mpleted_da te >= '" + df.forma t(form.get ReportFrom Date()) + " 12:00:00 AM' "); | |
| 174 | sql. append("AN D sar.comp leted_date <= '" + d f.format(f orm.getRep ortToDate( )) + " 11: 59:59 PM' "); | |
| 175 | sql. append("AN D sar.surv ey_accepte d_status = 1 "); | |
| 176 | ||
| 177 | if(! form.getFa cilityId() .equals(AL L_FACILITI ES)) { | |
| 178 | sql.ap pend("AND f.facility _id = '" + form.getF acilityId( ) + "' "); | |
| 179 | } | |
| 180 | ||
| 181 | sql. append(add ReportVers ion(form.g etReportVe rsionButto nSelection ())); | |
| 182 | sql. append(add Modality(( form.getMo dalityName ()))); | |
| 183 | sql. append("GR OUP BY f.f acility_id , f.facili ty_name, v .vendor_na me "); | |
| 184 | ||
| 185 | if(f orm.getMod alityName( ).equals(A LL_MODALIT IES)) { | |
| 186 | sql.ap pend(addMo dalityBrea kout()); | |
| 187 | } | |
| 188 | ||
| 189 | sql. append("OR DER BY f.f acility_id , f.facili ty_name, v .vendor_na me ASC"); | |
| 190 | ||
| 191 | fina l Query qu ery = getS ession().c reateNativ eQuery(sql .toString( )); | |
| 192 | ||
| 193 | retu rn generat eReport(qu ery, FACIL ITY_SELECT ION, form) ; | |
| 194 | } | |
| 195 | ||
| 196 | pr ivate Dist ributionOf SurveysRep ort genera teReport(Q uery repor tQuery, in t typeOfRe port, PSSR eportForm form) { | |
| 197 | ||
| 198 | List <Object[]> reportDat a = report Query.getR esultList( ); | |
| 199 | ||
| 200 | Dist ributionOf SurveysRep ort report = new Dis tributionO fSurveysRe port(); | |
| 201 | Stri ng modalit y = form.g etModality Name(); | |
| 202 | ||
| 203 | if ( reportData .isEmpty() ) { | |
| 204 | return report; | |
| 205 | } | |
| 206 | if(! modality.e quals(ALL_ MODALITIES )){ | |
| 207 | for(Ob ject[] rep ortRow : r eportData) { | |
| 208 | ||
| 209 | report.a ddRow(repo rtRow, typ eOfReport, form); | |
| 210 | } | |
| 211 | } el se { | |
| 212 | String vendor = ""; | |
| 213 | String facility = ""; | |
| 214 | String previousF acility = ""; | |
| 215 | // get vendor na me of firs t entry in data set. | |
| 216 | String previousV endor = (S tring) rep ortData.ge t(0)[VENDO R_NAME]; | |
| 217 | if(typ eOfReport == FACILIT Y) { | |
| 218 | previo usFacility = String .valueOf(r eportData. get(0)[BRE AKOUT_COL] ); | |
| 219 | } | |
| 220 | String row[] = n ew String[ 6]; | |
| 221 | row[2] = "0"; | |
| 222 | row[3] = "0"; | |
| 223 | row[4] = "0"; | |
| 224 | row[5] = "0"; | |
| 225 | ArrayL ist<String []> report Builder = new ArrayL ist<String []>(); | |
| 226 | int to talNumSurv eysPerVend or = 0; | |
| 227 | for(Ob ject[] rep ortRow : r eportData) { | |
| 228 | vendor = (String) reportRow[ VENDOR_NAM E]; | |
| 229 | facility = String. valueOf(re portRow[BR EAKOUT_COL ]); | |
| 230 | if(!vend or.equals( previousVe ndor) && t ypeOfRepor t != FACIL ITY) { | |
| 231 | reportBuil der.add(ro w); | |
| 232 | totalNumSu rveysPerVe ndor = 0; | |
| 233 | row = new String[6]; | |
| 234 | row[2] = " 0"; | |
| 235 | row[3] = " 0"; | |
| 236 | row[4] = " 0"; | |
| 237 | row[5] = " 0"; | |
| 238 | } | |
| 239 | else if( (!vendor.e quals(prev iousVendor ) || !faci lity.equal s(previous Facility)) && typeOf Report == FACILITY) { | |
| 240 | reportBuil der.add(ro w); | |
| 241 | totalNumSu rveysPerVe ndor = 0; | |
| 242 | row = new String[6]; | |
| 243 | row[2] = " 0"; | |
| 244 | row[3] = " 0"; | |
| 245 | row[4] = " 0"; | |
| 246 | row[5] = " 0"; | |
| 247 | } | |
| 248 | switch(typ eOfReport) { | |
| 249 | ca se NATIONA L: | |
| 250 | brea k; | |
| 251 | ca se VISN: | |
| 252 | row[ 0] = "VISN " + Strin g.valueOf( reportRow[ BREAKOUT_C OL]); | |
| 253 | brea k; | |
| 254 | ca se FACILIT Y: | |
| 255 | row[ 0] = "Faci lity " + S tring.valu eOf(report Row[BREAKO UT_COL]); | |
| 256 | brea k; | |
| 257 | } // end s witch | |
| 258 | ||
| 259 | row[1] = ( String)rep ortRow[VEN DOR_NAME]; | |
| 260 | totalNumSu rveysPerVe ndor += (i nt) report Row[NUM_OF _SURVEYS]; | |
| 261 | row[2] = I nteger.toS tring(tota lNumSurvey sPerVendor ); | |
| 262 | ||
| 263 | String mod alityType = (String) reportRow [MODALITY] ; | |
| 264 | ||
| 265 | switch(mod alityType) { | |
| 266 | // not all c ases will be hit, so rows also set to ze ro above. | |
| 267 | ca se IVR_DAT A: | |
| 268 | row[ 3] = Integ er.toStrin g((int)rep ortRow[NUM _OF_SURVEY S]); | |
| 269 | brea k; | |
| 270 | ca se BROWSER _DATA: | |
| 271 | row[ 4] = Integ er.toStrin g((int)rep ortRow[NUM _OF_SURVEY S]); | |
| 272 | brea k; | |
| 273 | ca se HOME_DE VICE_DATA: | |
| 274 | row[ 5] = Integ er.toStrin g((int)rep ortRow[NUM _OF_SURVEY S]); | |
| 275 | brea k; | |
| 276 | } | |
| 277 | ||
| 278 | previous Vendor = v endor; | |
| 279 | previous Facility = facility; | |
| 280 | } // e nd for | |
| 281 | report Builder.ad d(row); | |
| 282 | report .setReport (reportBui lder); | |
| 283 | // onc e all rows are added , create t otals row. | |
| 284 | report .createTot alsRow(6); | |
| 285 | return report; | |
| 286 | } // end else | |
| 287 | // o nce all ro ws are add ed, create totals ro w. | |
| 288 | repo rt.createT otalsRow(3 ); | |
| 289 | ||
| 290 | retu rn report; | |
| 291 | } | |
| 292 | ||
| 293 | // pr ivate void addRowAnd Reset() { | |
| 294 | // repo rtBuilder. add(row); | |
| 295 | // tota lNumSurvey sPerVendor = 0; | |
| 296 | // row = new Stri ng[6]; | |
| 297 | // row[ 2] = "0"; | |
| 298 | // row[ 3] = "0"; | |
| 299 | // row[ 4] = "0"; | |
| 300 | // row[ 5] = "0"; | |
| 301 | // } | |
| 302 | ||
| 303 | pr ivate Stri ng addRepo rtVersion( int report Selection) { | |
| 304 | ||
| 305 | Stri ng sql = " "; | |
| 306 | ||
| 307 | swit ch (report Selection) | |
| 308 | { | |
| 309 | case ALL _SURVEYS: | |
| 310 | //sq l set up t o not incl ude vr-12 data | |
| 311 | sql = "AND sar .survey_id != 1 "; | |
| 312 | brea k; | |
| 313 | case PSS _V1: | |
| 314 | sql = "AND sar .survey_id = 2 "; | |
| 315 | brea k; | |
| 316 | case PSS _V2: | |
| 317 | sql = "AND sar .survey_id = 3 "; | |
| 318 | brea k; | |
| 319 | default: | |
| 320 | sql = "AND sar .survey_id != 1 "; | |
| 321 | brea k; | |
| 322 | } | |
| 323 | retu rn sql; | |
| 324 | } | |
| 325 | ||
| 326 | pr ivate Stri ng addModa lity(Strin g selected Modality) { | |
| 327 | ||
| 328 | Stri ng sql = " "; | |
| 329 | ||
| 330 | swit ch (select edModality ) | |
| 331 | { | |
| 332 | case BROWSER: | |
| 333 | sql = "AND devic e_name = ' BROWSER' " ; | |
| 334 | break; | |
| 335 | case IVR: | |
| 336 | sql = "AND devic e_name = ' IVR' "; | |
| 337 | break; | |
| 338 | case HOME_DEVI CE: | |
| 339 | sql = "AND devic e_name NOT IN ('IVR' , 'BROWSER ') "; | |
| 340 | break; | |
| 341 | case DO_ NOT_INCLUD E: | |
| 342 | brea k; | |
| 343 | case ALL _MODALITIE S: | |
| 344 | sql = "AND dev ice_name I S NOT NULL "; | |
| 345 | brea k; | |
| 346 | } | |
| 347 | retu rn sql; | |
| 348 | } | |
| 349 | ||
| 350 | pr ivate Stri ng addModa lityBreako ut() { | |
| 351 | ||
| 352 | retu rn ",CASE Device.dev ice_name W HEN 'IVR' THEN Devic e.device_n ame " + | |
| 353 | "WH EN 'BROWSE R' THEN De vice.devic e_name " + | |
| 354 | "EL SE 'Home D evice' END "; | |
| 355 | } | |
| 356 | } |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.