BP-816, cut log to 200 warnings
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/StandbyScheduleController.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/StandbyScheduleController.java
index cca45d3..4b82835 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/StandbyScheduleController.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/StandbyScheduleController.java
@@ -80,6 +80,7 @@
public PlanningMsgResponseDto deleteBodyData(StandbyScheduleCopyDto standbyScheduleCopyDto, String modUserName)
throws SpException {
+ planningController.startWithNewList();
return bodyDataCopyController.deleteByGroups(standbyScheduleCopyDto, modUserName);
}
}
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlanningController.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlanningController.java
index 6c7fd0c..c6c86b5 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlanningController.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlanningController.java
@@ -67,6 +67,7 @@
public static final String TXT_AUTOMATIC_PLANNING_HOLIDAY = "autom. Planung (Dienstfrei)";
public static final String TXT_AUTOMATIC_CHANGE = "autom. Änderung";
public static final String TXT_MANUAL_CHANGE = "manuelle Änderung";
+ public static final String TXT_AND_MORE = "und weitere";
@Autowired
private StandbyGroupRepository standbyGroupRepository;
@@ -102,12 +103,15 @@
private MailRequest mailing;
private List<PlanningMsgDto> lsPlanningMsg = new ArrayList<>();
+ private int warningCounter = 0;
public PlanningMsgResponseDto startPlanning(StandbyScheduleBlueprintDto standbyBlueprintDto, String username)
throws SpException {
PlanningMsgResponseDto responseDto = new PlanningMsgResponseDto();
try {
lsPlanningMsg = new ArrayList<>();
+ warningCounter = 0;
+
// check if input is valid
if (this.validateInputForPlanCalculation(standbyBlueprintDto)) {
standbyBlueprintDto.setValidTo(DateHelper.getEndOfDay(standbyBlueprintDto.getValidTo()));
@@ -146,9 +150,9 @@
List<StandbyGroup> lsStandbyGroups = new ArrayList<>();
lsStandbyGroups.add(standbyGroupRepository.findOne(standbyBlueprintDto.getStandbyGroupId()));
- lsPlanningMsg.addAll(validatonController.startValidation(standbyBlueprintDto.getValidFrom(),
+ validatonController.startValidation(standbyBlueprintDto.getValidFrom(),
standbyBlueprintDto.getValidTo(), lsStandbyGroups, lsValidationBeanNames,
- standbyBlueprintDto.getStatusId(), null));
+ standbyBlueprintDto.getStatusId(), null);
responseDto.setLsMsg(lsPlanningMsg);
}
return responseDto;
@@ -294,7 +298,7 @@
tmpDate = planningBodyResultDto.getTempDate();
currentPosition = planningBodyResultDto.getNewPosition();
lastStartUserId = planningBodyResultDto.getLastStartUserId();
- lsPlanningMsg.addAll(planningBodyResultDto.getLsMsg());
+ this.addMessagesToList(planningBodyResultDto.getLsMsg());
}
} catch (Exception e) {
LOGGER.error(e, e);
@@ -564,7 +568,7 @@
String warning = "Für das Datum (" + currentDate
+ ") wird der Eintrag nur bis zum Tages-Ende geplant, da der Folgetag den definierten Zeitraum der Phase überschreitet.";
- lsPlanningMsg.add(new PlanningMsgDto(warning, PlanningMsgDto.INFO, PlanningMsgDto.CSS_INFO));
+ this.addMessageToList((new PlanningMsgDto(warning, PlanningMsgDto.INFO, PlanningMsgDto.CSS_INFO)));
resultObj.setNewPosition(currentPosition);
return resultObj;
@@ -597,7 +601,7 @@
+ " wurde für den Zeitraum vom (" + stbyBody.getValidFrom() + ") bis zum (" + stbyBody.getValidTo()
+ ") eingeplant.";
PlanningMsgDto dto = new PlanningMsgDto(info, PlanningMsgDto.INFO, PlanningMsgDto.CSS_INFO_ML3);
- lsPlanningMsg.add(dto);
+ this.addMessageToList(dto);
return dto;
}
@@ -620,7 +624,7 @@
}
PlanningMsgDto dto = new PlanningMsgDto(strBuilder.toString(), PlanningMsgDto.INFO, PlanningMsgDto.CSS_INFO);
- lsPlanningMsg.add(dto);
+ this.addMessageToList(dto);
return dto;
}
@@ -635,7 +639,7 @@
+ ") wurde keine beginnende Duration für folgenden Tag gefunden: (" + currentDate + ")";
LOGGER.warn(warning);
PlanningMsgDto dto = new PlanningMsgDto(warning, PlanningMsgDto.WARN, PlanningMsgDto.CSS_WARN);
- lsPlanningMsg.add(dto);
+ this.addMessageToList(dto);
return dto;
}
@@ -656,18 +660,18 @@
+ " bis " + blueprintDto.getValidTo() + ", konnte keine Bereitschaftsphase generiert werden.";
LOGGER.info(info);
PlanningMsgDto dto = new PlanningMsgDto(info, PlanningMsgDto.WARN, PlanningMsgDto.CSS_WARN);
- lsPlanningMsg.add(dto);
+ this.addMessageToList(dto);
return dto;
} else {
// search missing phase slots
- lsPlanningMsg.addAll(this.createMsgMissingPhasesFound(map, blueprintDto));
+ this.addMessagesToList(this.createMsgMissingPhasesFound(map, blueprintDto));
info = "Durch wechselnde Gruppenmitglieder wurde(n) " + map.size()
+ " Bereitschaftsphase(n) für den angegebenen Zeitraum , vom " + blueprintDto.getValidFrom()
+ " bis " + blueprintDto.getValidTo() + ", erkannt.";
LOGGER.info(info);
PlanningMsgDto dto = new PlanningMsgDto(info, PlanningMsgDto.INFO, PlanningMsgDto.CSS_INFO);
- lsPlanningMsg.add(dto);
+ this.addMessageToList(dto);
return dto;
}
@@ -681,7 +685,7 @@
+ DateHelper.getStartOfDay(phase.getEndDate()) + ") berechnet";
LOGGER.info(info);
PlanningMsgDto dto = new PlanningMsgDto(info, PlanningMsgDto.INFO, PlanningMsgDto.CSS_INFO);
- lsPlanningMsg.add(dto);
+ this.addMessageToList(dto);
lsMsgDto.add(dto);
StringBuilder builder = new StringBuilder();
@@ -697,7 +701,7 @@
info = "Folgende Bereitschaftende werden verplant: " + builder.toString();
LOGGER.info(info);
dto = new PlanningMsgDto(info, PlanningMsgDto.INFO, PlanningMsgDto.CSS_INFO);
- lsPlanningMsg.add(dto);
+ this.addMessageToList(dto);
lsMsgDto.add(dto);
return lsMsgDto;
@@ -752,7 +756,7 @@
String info = "Die Berechnung der Bereitschaftsphase (" + phasenId + ") wurde abgeschlossen";
LOGGER.info(info);
PlanningMsgDto dto = new PlanningMsgDto(info, PlanningMsgDto.INFO, PlanningMsgDto.CSS_INFO);
- lsPlanningMsg.add(dto);
+ this.addMessageToList(dto);
return dto;
}
@@ -767,7 +771,7 @@
String info = "Der letzte Starter wurde aufgrund des aktivierten Vorschubs übersprungen.";
LOGGER.info(info);
PlanningMsgDto dto = new PlanningMsgDto(info, PlanningMsgDto.INFO, PlanningMsgDto.CSS_INFO);
- lsPlanningMsg.add(dto);
+ this.addMessageToList(dto);
return dto;
}
@@ -783,7 +787,7 @@
+ " ältere Bereitschaften für den angegebenen Zeitraum entfernt.";
LOGGER.info(warning);
PlanningMsgDto dto = new PlanningMsgDto(warning, PlanningMsgDto.WARN, PlanningMsgDto.CSS_WARN);
- lsPlanningMsg.add(dto);
+ this.addMessageToList(dto);
return dto;
}
@@ -801,7 +805,7 @@
+ nextUser.getLastname() + ") begonnen.";
LOGGER.info(warning);
PlanningMsgDto dto = new PlanningMsgDto(warning, PlanningMsgDto.WARN, PlanningMsgDto.CSS_WARN);
- lsPlanningMsg.add(dto);
+ this.addMessageToList(dto);
return dto;
}
@@ -1118,6 +1122,7 @@
public PlanningMsgResponseDto replaceUserInPlan(StandbyScheduleActionDto actionDto, String username)
throws SpException {
PlanningMsgResponseDto responseDto = new PlanningMsgResponseDto();
+ this.startWithNewList();
// check input values
List<Object> lsInputParams = new ArrayList<>();
@@ -1317,6 +1322,7 @@
public PlanningMsgResponseDto moveUserInPlan(StandbyScheduleActionDto actionDto, String username)
throws SpException {
PlanningMsgResponseDto responseDto = new PlanningMsgResponseDto();
+ this.startWithNewList();
// check input values
List<Object> lsInputParams = new ArrayList<>();
@@ -1456,4 +1462,46 @@
}
return lsFittingDurations;
}
+
+ /**
+ * Method to add PlanningMsgDtos to list and stop filling the list at an amount
+ * bigger then 200 entries.
+ */
+ public void addMessagesToList(List<PlanningMsgDto> lsMsg) {
+ for (PlanningMsgDto dto : lsMsg) {
+ if (dto.getType().equals(PlanningMsgDto.INFO)) {
+ lsPlanningMsg.add(dto);
+ } else if (warningCounter < 200) {
+ lsPlanningMsg.add(dto);
+ warningCounter++;
+ } else {
+ PlanningMsgDto lastDto = lsPlanningMsg.get(lsPlanningMsg.size() - 1);
+ if (!lastDto.getMsg().equals(TXT_AND_MORE)) {
+ lsPlanningMsg.add(new PlanningMsgDto(TXT_AND_MORE, PlanningMsgDto.WARN, PlanningMsgDto.CSS_WARN));
+ }
+ }
+ }
+ }
+
+ /**
+ * Method to add a PlanningMsgDto to list.
+ */
+ public void addMessageToList(PlanningMsgDto msg) {
+ List<PlanningMsgDto> lsMsg = new ArrayList<>();
+ lsMsg.add(msg);
+ this.addMessagesToList(lsMsg);
+ }
+
+ public List<PlanningMsgDto> getLsMsgDto() {
+ return lsPlanningMsg;
+ }
+
+ public void startWithNewList() {
+ lsPlanningMsg = new ArrayList<>();
+ warningCounter = 0;
+ }
+
+ public int getWarningCounter() {
+ return warningCounter;
+ }
}
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/validation/ValidationController.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/validation/ValidationController.java
index 11e53eb..27f1037 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/validation/ValidationController.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/validation/ValidationController.java
@@ -20,6 +20,7 @@
import org.eclipse.openk.sp.controller.AbstractController;
import org.eclipse.openk.sp.controller.UserController;
import org.eclipse.openk.sp.controller.msg.ValidationMsgController;
+import org.eclipse.openk.sp.controller.planning.PlanningController;
import org.eclipse.openk.sp.db.dao.StandbyGroupRepository;
import org.eclipse.openk.sp.db.dao.StandbyListRepository;
import org.eclipse.openk.sp.db.dao.StandbyStatusRepository;
@@ -67,32 +68,37 @@
@Autowired
private StandbyStatusRepository standbyStatusRepository;
+ @Autowired
+ private PlanningController planningController;
+
public List<PlanningMsgDto> startValidation(Date from, Date till, List<StandbyGroup> lsStandbyGroups,
List<String> lsValidationBeanNames, Long statusId, Long userId) throws SpException {
List<PlanningMsgDto> lsMsgDto = new ArrayList<>();
try {
- lsMsgDto.addAll(ValidationMsgController.createMsgStartValidation(from, till, lsStandbyGroups));
+
+ planningController
+ .addMessagesToList(ValidationMsgController.createMsgStartValidation(from, till, lsStandbyGroups));
for (StandbyGroup group : lsStandbyGroups) {
for (String beanName : lsValidationBeanNames) {
- if (appContext.containsBean(beanName)) {
+ if (appContext.containsBean(beanName) && planningController.getWarningCounter() < 200) {
if (statusId == null) {
// check for every status in DB
for (StandbyStatus stbyStatus : standbyStatusRepository.findAll()) {
// check for given status
- lsMsgDto.addAll(((IValidator) appContext.getBean(beanName)).execute(from, till, group,
- lsStandbyGroups, stbyStatus.getId(), userId));
+ planningController.addMessagesToList(((IValidator) appContext.getBean(beanName))
+ .execute(from, till, group, lsStandbyGroups, stbyStatus.getId(), userId));
}
} else {
// check for given status
- lsMsgDto.addAll(((IValidator) appContext.getBean(beanName)).execute(from, till, group,
- lsStandbyGroups, statusId, userId));
+ planningController.addMessagesToList(((IValidator) appContext.getBean(beanName))
+ .execute(from, till, group, lsStandbyGroups, statusId, userId));
}
}
}
}
- lsMsgDto.addAll(ValidationMsgController.createMsgEndValidation(lsMsgDto));
+ ValidationMsgController.createMsgEndValidation(planningController.getLsMsgDto());
- return lsMsgDto;
+ return planningController.getLsMsgDto();
} catch (Exception e) {
LOGGER.error(e, e);
SpErrorEntry ee = SpExceptionEnum.DEFAULT_EXCEPTION.getEntry();
@@ -103,8 +109,8 @@
public PlanningMsgResponseDto startValidation(ValidationDto validatonDto) throws SpException {
PlanningMsgResponseDto responseDto = new PlanningMsgResponseDto();
+ planningController.startWithNewList();
try {
-
// check if to validate groups or list
List<StandbyGroup> lsStandbyGroups = null;
if (validatonDto.getStandbyListId() != null) {
@@ -123,8 +129,9 @@
lsValidationBeanNames.add(ValidationController.BEAN_GROUP_COVERAGE_VALIDATOR);
lsValidationBeanNames.add(ValidationController.BEAN_DOUBLE_PLANNED_VALIDATOR);
lsValidationBeanNames.add(ValidationController.BEAN_PLACEHOLDER_STANDBY_USER_VALIDATOR);
- responseDto.getLsMsg().addAll(this.startValidation(validatonDto.getValidFrom(), validatonDto.getValidTo(),
- lsStandbyGroups, lsValidationBeanNames, validatonDto.getStatusId(), validatonDto.getNewUserId()));
+ this.startValidation(validatonDto.getValidFrom(), validatonDto.getValidTo(), lsStandbyGroups,
+ lsValidationBeanNames, validatonDto.getStatusId(), validatonDto.getNewUserId());
+ responseDto.getLsMsg().addAll(planningController.getLsMsgDto());
return responseDto;
} catch (SpException e) {
throw e;
diff --git a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/validation/ValidationControllerTest.java b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/validation/ValidationControllerTest.java
index d831272..224a656 100644
--- a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/validation/ValidationControllerTest.java
+++ b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/validation/ValidationControllerTest.java
@@ -21,6 +21,7 @@
import org.apache.log4j.Logger;
import org.eclipse.openk.sp.controller.UserController;
+import org.eclipse.openk.sp.controller.planning.PlanningController;
import org.eclipse.openk.sp.controller.validation.validator.GroupCoverageValidator;
import org.eclipse.openk.sp.db.dao.StandbyGroupRepository;
import org.eclipse.openk.sp.db.dao.StandbyListRepository;
@@ -65,6 +66,9 @@
@Mock
private UserRepository userRepository;
+ @Mock
+ private PlanningController planningController;
+
@InjectMocks
ValidationController validatonController;
@@ -145,6 +149,8 @@
validationDto.setValidFrom(DateHelper.getDate(2018, 10, 01));
validationDto.setValidTo(DateHelper.getDate(2018, 10, 03));
+ List<PlanningMsgDto> lsPlanningList = new ArrayList<>();
+
Mockito.when(standbyListRepository.findOne(Mockito.anyLong())).thenReturn(sbList);
Mockito.when(standbyGroupRepository.findOne(Mockito.anyLong())).thenReturn(group);
PlanningMsgResponseDto dto = null;