diff --git a/assertion-service/src/main/java/org/orcid/memberportal/service/assertion/repository/impl/AssertionRepositoryCustomImpl.java b/assertion-service/src/main/java/org/orcid/memberportal/service/assertion/repository/impl/AssertionRepositoryCustomImpl.java index eb23af590..41b576362 100644 --- a/assertion-service/src/main/java/org/orcid/memberportal/service/assertion/repository/impl/AssertionRepositoryCustomImpl.java +++ b/assertion-service/src/main/java/org/orcid/memberportal/service/assertion/repository/impl/AssertionRepositoryCustomImpl.java @@ -25,6 +25,7 @@ import com.mongodb.client.DistinctIterable; import com.mongodb.client.model.Filters; +import org.springframework.util.Assert; @Repository public class AssertionRepositoryCustomImpl implements AssertionRepositoryCustom { @@ -60,7 +61,13 @@ public List findAllToUpdateInOrcidRegistry(Pageable pageable) { Criteria needsUpdatingInOrcid = new Criteria(); needsUpdatingInOrcid.orOperator(modifiedAfterUpdateInOrcid, modifiedAfterAddingToOrcidAndUpdateInOrcidNotSet); - MatchOperation matchUpdatedAfterSync = Aggregation.match(needsUpdatingInOrcid); + Criteria notDeprecatedOrDeactivated = new Criteria(); + notDeprecatedOrDeactivated.andOperator(Criteria.where("status").ne(AssertionStatus.RECORD_DEACTIVATED_OR_DEPRECATED.name())); + + Criteria needsUpdatingInOrcidAndNotDeprecatedOrDeactivated = new Criteria(); + needsUpdatingInOrcidAndNotDeprecatedOrDeactivated.andOperator(needsUpdatingInOrcid, notDeprecatedOrDeactivated); + + MatchOperation matchUpdatedAfterSync = Aggregation.match(needsUpdatingInOrcidAndNotDeprecatedOrDeactivated); // pagination aggregation operations SortOperation sort = new SortOperation(pageable.getSort()); @@ -85,9 +92,16 @@ public List getMemberAssertionStatusCounts() { @Override public List findAllToCreateInOrcidRegistry(Pageable pageable) { - Criteria criteria = new Criteria(); - criteria.orOperator(Criteria.where("added_to_orcid").exists(false), Criteria.where("added_to_orcid").is(null)); - Query query = new Query(criteria); + Criteria notAddedToOrcid = new Criteria(); + notAddedToOrcid.orOperator(Criteria.where("added_to_orcid").exists(false), Criteria.where("added_to_orcid").is(null)); + + Criteria notDeprecatedOrDeactivated = new Criteria(); + notDeprecatedOrDeactivated.andOperator(Criteria.where("status").ne(AssertionStatus.RECORD_DEACTIVATED_OR_DEPRECATED.name())); + + Criteria notAddedToOrcidAndNotDeprecatedOrDeactivated = new Criteria(); + notAddedToOrcidAndNotDeprecatedOrDeactivated.andOperator(notAddedToOrcid, notDeprecatedOrDeactivated); + + Query query = new Query(notAddedToOrcidAndNotDeprecatedOrDeactivated); query.with(pageable); return mongoTemplate.find(query, Assertion.class); }