Skip to content

Commit 81a18b3

Browse files
committed
fix: get interrogationIds
1 parent cf092a6 commit 81a18b3

File tree

2 files changed

+24
-3
lines changed

2 files changed

+24
-3
lines changed

src/main/java/fr/insee/genesis/infrastructure/adapter/LunaticJsonRawDataMongoAdapter.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,12 @@ public List<GroupedInterrogation> findUnprocessedIds() {
9999

100100
@Override
101101
public Set<String> findUnprocessedInterrogationIdsByQuestionnaire(String questionnaireId) {
102-
return new HashSet<>(repository.getUnprocessedInterrogationIds(questionnaireId));
102+
Set<String> interrogationIds = new HashSet<>();
103+
104+
repository.aggregateRawGroupedWithNullProcessDate(questionnaireId).forEach(
105+
groupedInterrogationDocument -> interrogationIds.addAll(groupedInterrogationDocument.getInterrogationIds())
106+
);
107+
108+
return interrogationIds;
103109
}
104110
}

src/main/java/fr/insee/genesis/infrastructure/repository/LunaticJsonMongoDBRepository.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,21 @@ public interface LunaticJsonMongoDBRepository extends MongoRepository<LunaticJso
6464
})
6565
List<GroupedInterrogationDocument> aggregateRawGroupedWithNullProcessDate();
6666

67-
@Query(value = "{ 'questionnaireId' : ?0, 'processDate': null}", fields = "{ 'interrogationId' : 1 }")
68-
List<String> getUnprocessedInterrogationIds(String questionnaireId);
67+
@Aggregation(pipeline = {
68+
"{ '$match': {'questionnaireId': ?0 ,'processDate': null } }",
69+
"{ '$group': { " +
70+
"'_id': { " +
71+
"'questionnaireId': '$questionnaireId', " +
72+
"'partitionOrCampaignId': { '$ifNull': ['$partitionId', '$campaignId'] } " +
73+
"}, " +
74+
"'interrogationIds': { '$addToSet': '$interrogationId' } " +
75+
"} }",
76+
"{ '$project': { " +
77+
"'questionnaireId': '$_id.questionnaireId', " +
78+
"'partitionOrCampaignId': '$_id.partitionOrCampaignId', " +
79+
"'interrogationIds': 1, " +
80+
"'_id': 0 " +
81+
"} }"
82+
})
83+
List<GroupedInterrogationDocument> aggregateRawGroupedWithNullProcessDate(String questionnaireId);
6984
}

0 commit comments

Comments
 (0)