@@ -1350,7 +1350,12 @@ public List<CaseIndexDto[]> getCasesForDuplicateMerging(CaseCriteria criteria, b
13501350 cb .function ("date_part" , Long .class , cb .parameter (String .class , "date_type" ), symptoms2 .get (Symptoms .ONSET_DATE )))),
13511351 new Long (30 * 24 * 60 * 60 ) // 30 days
13521352 ));
1353- Predicate creationDateFilter = cb .lessThan (root .get (Case .CREATION_DATE ), root2 .get (Case .CREATION_DATE ));
1353+
1354+ Predicate creationDateFilter = cb .or (
1355+ cb .lessThan (root .get (Case .CREATION_DATE ), root2 .get (Case .CREATION_DATE )),
1356+ cb .or (
1357+ cb .lessThan (root2 .get (Case .CREATION_DATE ), DateHelper .getEndOfDay (criteria .getCreationDateFrom ())),
1358+ cb .greaterThan (root2 .get (Case .CREATION_DATE ), DateHelper .getStartOfDay (criteria .getCreationDateTo ()))));
13541359
13551360 Predicate filter = cb .and (caseService .createDefaultFilter (cb , root ), caseService .createDefaultFilter (cb , root2 ));
13561361 if (userFilter != null ) {
@@ -1376,6 +1381,7 @@ public List<CaseIndexDto[]> getCasesForDuplicateMerging(CaseCriteria criteria, b
13761381 filter = cb .and (filter , cb .or (sexFilter , birthDateFilter ));
13771382 filter = cb .and (filter , onsetDateFilter );
13781383 filter = cb .and (filter , creationDateFilter );
1384+ filter = cb .and (filter , cb .notEqual (root .get (Case .ID ), root2 .get (Case .ID )));
13791385
13801386 cq .where (filter );
13811387 cq .multiselect (root .get (Case .ID ), root2 .get (Case .ID ), root .get (Case .CREATION_DATE ));
0 commit comments