Skip to content
Snippets Groups Projects
Commit 818d2e9a authored by Felix Reichenbach's avatar Felix Reichenbach
Browse files

OZG-7515 refactor M014_AddItemNameBescheidToPatchAttachedItemCommand

parent f782963c
No related branches found
No related tags found
1 merge request!11Ozg 7515 migrate patch item command
......@@ -39,6 +39,7 @@ import io.mongock.api.annotations.RollbackExecution;
@ChangeUnit(id = "2025-01-17 16:00:00 OZG-7515", order = "M014", author = "freichenbach", runAlways = true)
public class M014_AddItemNameBescheidToPatchAttachedItemCommand { // NOSONAR
private static final String ID_FIELD = "_id";
private static final String COMMAND_COLLECTION_NAME = "command";
private static final String ORDER_FIELD = "order";
private static final String SEND_BESCHEID_ORDER = "SEND_BESCHEID";
......@@ -53,19 +54,23 @@ public class M014_AddItemNameBescheidToPatchAttachedItemCommand { // NOSONAR
updateDocuments(mongoOperations, parentIds);
}
List<String> getSendBescheidCommandIds(MongoOperations mongoOperations) {
List<ObjectId> getSendBescheidCommandIds(MongoOperations mongoOperations) {
var commands = mongoOperations.find(Query.query(Criteria.where(ORDER_FIELD).is(SEND_BESCHEID_ORDER)), Document.class,
COMMAND_COLLECTION_NAME);
return commands.stream().map(command -> command.getObjectId("_id")).map(ObjectId::toString).toList();
return commands.stream().map(command -> command.getObjectId(ID_FIELD)).toList();
}
private void updateDocuments(MongoOperations mongoOperations, List<String> parentIds) {
var query = new Query().addCriteria(new Criteria().andOperator(
void updateDocuments(MongoOperations mongoOperations, List<ObjectId> parentIds) {
var query = buildQuery(parentIds);
var update = new Update().set(ITEM_NAME_FILED, BESCHEID_ITEM_NAME);
mongoOperations.updateMulti(query, update, COMMAND_COLLECTION_NAME);
}
Query buildQuery(List<ObjectId> parentIds) {
return new Query().addCriteria(new Criteria().andOperator(
Criteria.where(PARENT_ID_FIELD).in(parentIds),
Criteria.where(ORDER_FIELD).is(PATCH_ATTACHED_ITEM_ORDER),
Criteria.where(ITEM_NAME_FILED).exists(false)));
var update = new Update().set(ITEM_NAME_FILED, BESCHEID_ITEM_NAME);
mongoOperations.updateMulti(query, update, COMMAND_COLLECTION_NAME);
}
@RollbackExecution
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment