1717 *******************************************************************************/
1818package de .symeda .sormas .backend .person ;
1919
20- import java .sql .Timestamp ;
21- import java .util .Collections ;
22- import java .util .Comparator ;
23- import java .util .Date ;
24- import java .util .HashSet ;
25- import java .util .List ;
26- import java .util .Set ;
27- import java .util .stream .Collectors ;
28- import java .util .stream .Stream ;
29-
30- import javax .ejb .EJB ;
31- import javax .ejb .LocalBean ;
32- import javax .ejb .Stateless ;
33- import javax .persistence .criteria .CriteriaBuilder ;
34- import javax .persistence .criteria .CriteriaQuery ;
35- import javax .persistence .criteria .Expression ;
36- import javax .persistence .criteria .From ;
37- import javax .persistence .criteria .Join ;
38- import javax .persistence .criteria .JoinType ;
39- import javax .persistence .criteria .Path ;
40- import javax .persistence .criteria .Predicate ;
41- import javax .persistence .criteria .Root ;
42- import javax .persistence .criteria .Subquery ;
43-
4420import de .symeda .sormas .api .Disease ;
4521import de .symeda .sormas .api .caze .CaseClassification ;
4622import de .symeda .sormas .api .person .PersonNameDto ;
6137import de .symeda .sormas .backend .location .Location ;
6238import de .symeda .sormas .backend .region .District ;
6339import de .symeda .sormas .backend .user .User ;
40+ import org .apache .commons .lang3 .StringUtils ;
41+
42+ import javax .ejb .EJB ;
43+ import javax .ejb .LocalBean ;
44+ import javax .ejb .Stateless ;
45+ import javax .persistence .criteria .CriteriaBuilder ;
46+ import javax .persistence .criteria .CriteriaQuery ;
47+ import javax .persistence .criteria .Expression ;
48+ import javax .persistence .criteria .From ;
49+ import javax .persistence .criteria .Join ;
50+ import javax .persistence .criteria .JoinType ;
51+ import javax .persistence .criteria .Path ;
52+ import javax .persistence .criteria .Predicate ;
53+ import javax .persistence .criteria .Root ;
54+ import javax .persistence .criteria .Subquery ;
55+ import java .sql .Timestamp ;
56+ import java .util .Collections ;
57+ import java .util .Comparator ;
58+ import java .util .Date ;
59+ import java .util .HashSet ;
60+ import java .util .List ;
61+ import java .util .Set ;
62+ import java .util .stream .Collectors ;
63+ import java .util .stream .Stream ;
6464
6565@ Stateless
6666@ LocalBean
@@ -402,17 +402,14 @@ public Predicate buildSimilarityCriteriaFilter(PersonSimilarityCriteria criteria
402402
403403 Predicate filter = null ;
404404
405- if (criteria .getFirstName () != null && criteria .getLastName () != null ) {
405+ if (! StringUtils . isBlank ( criteria .getFirstName ()) && ! StringUtils . isBlank ( criteria .getLastName ()) ) {
406406 Expression <String > nameExpr = cb .concat (personFrom .get (Person .FIRST_NAME ), " " );
407407 nameExpr = cb .concat (nameExpr , personFrom .get (Person .LAST_NAME ));
408408
409409 String name = criteria .getFirstName () + " " + criteria .getLastName ();
410410
411411 double nameSimilarityThreshold = configFacade .getNameSimilarityThreshold ();
412- filter = and (
413- cb ,
414- filter ,
415- cb .gt (cb .function ("similarity" , double .class , nameExpr , cb .literal (name )), nameSimilarityThreshold ));
412+ filter = and (cb , filter , cb .gt (cb .function ("similarity" , double .class , nameExpr , cb .literal (name )), nameSimilarityThreshold ));
416413 }
417414
418415 if (criteria .getSex () != null ) {
@@ -438,15 +435,15 @@ public Predicate buildSimilarityCriteriaFilter(PersonSimilarityCriteria criteria
438435 filter ,
439436 cb .or (cb .isNull (personFrom .get (Person .BIRTHDATE_DD )), cb .equal (personFrom .get (Person .BIRTHDATE_DD ), criteria .getBirthdateDD ())));
440437 }
441- if (criteria .getNationalHealthId () != null ) {
438+ if (! StringUtils . isBlank ( criteria .getNationalHealthId ()) ) {
442439 filter = and (
443440 cb ,
444441 filter ,
445442 cb .or (
446443 cb .isNull (personFrom .get (Person .NATIONAL_HEALTH_ID )),
447444 cb .equal (personFrom .get (Person .NATIONAL_HEALTH_ID ), criteria .getNationalHealthId ())));
448445 }
449- if (criteria .getPassportNumber () != null ) {
446+ if (! StringUtils . isBlank ( criteria .getPassportNumber ()) ) {
450447 filter = or (cb , filter , cb .equal (personFrom .get (Person .PASSPORT_NUMBER ), criteria .getPassportNumber ()));
451448 }
452449
0 commit comments