GNM-1032 Beim Speichern die Sortorder der Einzelmaßnahmen nach Beginn der geplanten Einzelmaßnahme sortieren
diff --git a/src/main/java/org/eclipse/openk/core/controller/GridMeasureBackendController.java b/src/main/java/org/eclipse/openk/core/controller/GridMeasureBackendController.java
index 3510ff0..0ab13fa 100644
--- a/src/main/java/org/eclipse/openk/core/controller/GridMeasureBackendController.java
+++ b/src/main/java/org/eclipse/openk/core/controller/GridMeasureBackendController.java
@@ -43,6 +43,9 @@
ProcessState stateInDb = getDbProcessState( newMeasure.getId() );
PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(newMeasure, changeuser);
+ if (newMeasure.getListSingleGridmeasures() != null) {
+ sortSingleGridMeasuresForDate(newMeasure);
+ }
assertIsUserAllowedToStore(token, newMeasure, changeuser);
subject.setStateInDb( stateInDb );
@@ -65,6 +68,24 @@
}
}
+ private GridMeasure sortSingleGridMeasuresForDate(GridMeasure gridMeasure) {
+ List<SingleGridmeasure> singleGridmeasures = gridMeasure.getListSingleGridmeasures();
+
+ Collections.sort(singleGridmeasures, new Comparator<SingleGridmeasure>() {
+ public int compare(SingleGridmeasure sgm1, SingleGridmeasure sgm2) {
+ if (sgm1.getPlannedStarttimeSinglemeasure() == null || sgm2.getPlannedStarttimeSinglemeasure() == null)
+ return 0;
+ return sgm1.getPlannedStarttimeSinglemeasure().compareTo(sgm2.getPlannedStarttimeSinglemeasure());
+ }
+ });
+ for (SingleGridmeasure sgm: singleGridmeasures) {
+ sgm.setSortorder(singleGridmeasures.indexOf(sgm) + 1);
+ }
+
+ gridMeasure.setListSingleGridmeasures(singleGridmeasures);
+ return gridMeasure;
+ }
+
public List<GridMeasure> getGridMeasures(String username, FilterObject filterObject) {
List<GridMeasure> vmList = new java.util.ArrayList<>();