@@ -193,6 +193,18 @@ private static List<?> search(List<?> data, SearchRequest searchRequest, Abstrac
193193 .collect (Collectors .toList ());
194194 }
195195
196+ //To enable checking for the case of Germplasm Search when the filter is accessionNumber or list entry number and thereby needs to do exact match
197+ String accessionNumFilter ;
198+ if (mapper .exists ("accessionNumber" )) accessionNumFilter = mapper .getField ("accessionNumber" ).toString ();
199+ else {
200+ accessionNumFilter = "" ;
201+ }
202+ String entryNumFilter ;
203+ if (mapper .exists ("importEntryNumber" )) entryNumFilter = mapper .getField ("importEntryNumber" ).toString ();
204+ else {
205+ entryNumFilter = "" ;
206+ }
207+
196208 if (filterFields .size () > 0 ){
197209 // Apply filters
198210 List <FilterField > finalFilterFields = filterFields ;
@@ -211,6 +223,16 @@ private static List<?> search(List<?> data, SearchRequest searchRequest, Abstrac
211223 return recordList .stream ()
212224 .anyMatch (listValue ->
213225 listValue .toString ().toLowerCase ().contains (filterField .getValue ().toLowerCase ()));
226+ }
227+ else if (!accessionNumFilter .isEmpty () && filterField .getField ().toString ().equals (accessionNumFilter )) {
228+ //enable exact match in case of GID
229+ return filterField .getField ().apply (record ).toString ()
230+ .toLowerCase ().equalsIgnoreCase (filterField .getValue ().toLowerCase ());
231+ }
232+ else if (!entryNumFilter .isEmpty () && filterField .getField ().toString ().equals (entryNumFilter )) {
233+ //enable exact match in case of entry number
234+ return filterField .getField ().apply (record ).toString ()
235+ .toLowerCase ().equalsIgnoreCase (filterField .getValue ().toLowerCase ());
214236 } else {
215237 return filterField .getField ().apply (record ).toString ()
216238 .toLowerCase ().contains (filterField .getValue ().toLowerCase ());
0 commit comments