@@ -244,17 +244,17 @@ public class TopTaskController {
244244 institutionMappings .put (
245245 "HC" , Arrays .asList ("HC" , "SC" , "HEALTH CANADA" , "SANTÉ CANADA" , "HC / SC" ));
246246 institutionMappings .put (
247- "HICC " ,
247+ "INFC " ,
248248 Arrays .asList (
249249 "HICC" ,
250250 "LICC" ,
251251 "HOUSING, INFRASTRUCTURE AND COMMUNITIES CANADA" ,
252252 "LOGEMENT, INFRASTRUCTURES ET COLLECTIVITÉS CANADA" ,
253+ "INFC / INFC" ,
254+ "INFC" ,
255+ "INFRASTRUCTURE CANADA" ,
256+ "INFRASTRUCTURE CANADA" ,
253257 "HICC / LICC" ));
254- institutionMappings .put (
255- "INFC" ,
256- Arrays .asList (
257- "INFC" , "INFC" , "INFRASTRUCTURE CANADA" , "INFRASTRUCTURE CANADA" , "INFC / INFC" ));
258258 institutionMappings .put (
259259 "IOGC" ,
260260 Arrays .asList (
@@ -1112,9 +1112,25 @@ public ResponseEntity<?> getProblemsJson(
11121112 }
11131113
11141114 private Criteria applyDepartmentFilter (Criteria criteria , String department ) {
1115- // First try direct case-insensitive match for exact database values
1115+ List <String > variations = new ArrayList <>();
1116+ for (Map .Entry <String , List <String >> entry : institutionMappings .entrySet ()) {
1117+ List <String > mappingValues = entry .getValue ();
1118+ if (mappingValues .stream ().anyMatch (v -> v .equalsIgnoreCase (department ))) {
1119+ variations .addAll (mappingValues );
1120+ break ;
1121+ }
1122+ }
1123+ if (variations .isEmpty ()) {
11161124 criteria .and ("dept" ).regex ("^" + Pattern .quote (department ) + "$" , "i" );
1117- return criteria ;
1125+ } else {
1126+ List <Criteria > deptCriteria = new ArrayList <>();
1127+ for (String variation : variations ) {
1128+ deptCriteria .add (Criteria .where ("dept" ).regex ("^" + Pattern .quote (variation ) + "$" , "i" ));
1129+ }
1130+ criteria .orOperator (deptCriteria .toArray (new Criteria [0 ]));
1131+ }
1132+
1133+ return criteria ;
11181134 }
11191135
11201136 @ GetMapping (value = "/topTaskSurvey" )
0 commit comments