Fix Repair Indexing to consider subtasks
All checks were successful
Java CI with Maven / build-and-push-frontend (push) Successful in 8s
Java CI with Maven / build-and-push-backend (push) Successful in 7s

This commit is contained in:
Sebastian Böckelmann 2024-03-17 08:42:58 +01:00
parent 7336daddb1
commit 56d75fead9

View File

@ -141,21 +141,19 @@ public class TaskSeriesService {
taskSerie.getTasks().clear();
taskSeriesRepository.delete(taskSerie);
} else {
repearIndexing(taskSerie);
repearIndexing(taskSerie, item.getSeriesIndex());
}
}
private void repearIndexing(TaskSerie taskSerie) {
private void repearIndexing(TaskSerie taskSerie, int deletedIndex) {
taskSerie.getTasks().sort(Comparator.comparingInt(TaskSerieItem::getSeriesIndex));
List<TaskSerieItem> updatedItems = new ArrayList<>();
int currentIndex = 1;
for(TaskSerieItem taskSerieItem : taskSerie.getTasks()) {
if(taskSerieItem.getSeriesIndex() != currentIndex) {
taskSerieItem.setSeriesIndex(currentIndex);
if(taskSerieItem.getSeriesIndex() > deletedIndex) {
taskSerieItem.setSeriesIndex(taskSerieItem.getSeriesIndex() -1);
updatedItems.add(taskSerieItem);
}
currentIndex++;
}
taskSerieItemRepository.saveAll(updatedItems);