Index: trunk/grails-app/services/com/lemans/ds/fitment/PartFitmentManagerService.groovy =================================================================== diff -u -r10003 -r10020 --- trunk/grails-app/services/com/lemans/ds/fitment/PartFitmentManagerService.groovy (.../PartFitmentManagerService.groovy) (revision 10003) +++ trunk/grails-app/services/com/lemans/ds/fitment/PartFitmentManagerService.groovy (.../PartFitmentManagerService.groovy) (revision 10020) @@ -4,6 +4,7 @@ import grails.transaction.Transactional import java.sql.Timestamp +import java.util.stream.Collectors /** * Created by vramisetti on 6/12/2017. @@ -28,8 +29,9 @@ Map createFitments(Map values, String username) { List errors = [] String partNumber = values.partNumber - List modelYearIds = values.modelYearIds.unique() - List invalidModelYearIds = modelYearIds - modelYearService.findValidModelYearIds(modelYearIds)?.modelYearId + List modelYearIds = ((List) values.modelYearIds).parallelStream().distinct().collect(Collectors.toList()) + List validModelYears = modelYearService.findValidModelYearIds(modelYearIds)?.modelYearId + List invalidModelYearIds = modelYearIds.parallelStream().filter { s -> !validModelYears.contains(s) }.collect(Collectors.toList()) if (invalidModelYearIds) { errors << "Invalid model year's found $invalidModelYearIds" } if (!partService.partWithPartNumberExists(partNumber)) { errors << 'Invalid part' } if (!errors) { @@ -47,7 +49,9 @@ private List modelIdsToBeCreated(String partNumber, List modelYearIds) { List existingModelYearIds = partFitmentService.findFitmentsByPartNumberAndModelYearIds(partNumber, modelYearIds, 'modelYearId')*.modelYearId - modelYearIds - existingModelYearIds + modelYearIds.parallelStream() + .filter { s -> !existingModelYearIds.contains(s) } + .collect(Collectors.toList()) } /**