BP-772 pull calculation steps apart for better analysis on performance
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 92bc1e1..6b0d257 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
@@ -12,6 +12,8 @@
********************************************************************************/
package org.eclipse.openk.sp.controller;
+import java.util.Date;
+
import org.apache.log4j.Logger;
import org.eclipse.openk.sp.controller.planning.BodyDataCopyController;
import org.eclipse.openk.sp.controller.planning.PlannedDataController;
@@ -59,7 +61,11 @@
public StandbyScheduleDto getFilteredPlanByStatusId(StandbyScheduleFilterDto standbyScheduleFilterDto,
Long statusId) throws SpException {
- return plannedDataController.getFilteredPlanByStatus(standbyScheduleFilterDto, statusId);
+ LOGGER.debug(new Date());
+ StandbyScheduleDto plan = plannedDataController.getFilteredPlanByStatus(standbyScheduleFilterDto, statusId);
+ LOGGER.debug(new Date() + " for count day's " + plan.getListPlanRows().size());
+
+ return plan;
}
public PlanningMsgResponseDto calculatePlan(StandbyScheduleBlueprintDto standbyBlueprintDto, String username)
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlannedDataController.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlannedDataController.java
index 5171b7f..57efac7 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlannedDataController.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlannedDataController.java
@@ -17,7 +17,6 @@
import java.util.List;
import org.apache.log4j.Logger;
-import org.dozer.DozerBeanMapper;
import org.eclipse.openk.sp.controller.AbstractController;
import org.eclipse.openk.sp.controller.CalendarController;
import org.eclipse.openk.sp.db.converter.EntityConverter;
@@ -67,10 +66,6 @@
@Autowired
CalendarController calendarController;
- /** dozer mapping API. */
- @Autowired
- private DozerBeanMapper mapper;
-
public StandbyScheduleDto getFilteredPlanByStatus(StandbyScheduleFilterDto standbyScheduleFilterDto, Long statusId)
throws SpException {
@@ -103,9 +98,7 @@
throw spE;
}
- List<StandbyGroupSelectionDto> listStandbyGroupDto = new ArrayList<>();
- listStandbyGroupDto = entityConverter.convertEntityToDtoList(standbyList.getLsStandbyGroups(),
- listStandbyGroupDto, StandbyGroupSelectionDto.class);
+ List<StandbyGroupSelectionDto> listStandbyGroupDto = mapGroupDto(standbyList.getLsStandbyGroups());
Date startDate = DateHelper.getStartOfDay(standbyScheduleFilterDto.getValidFrom());
Date endDate = DateHelper.getEndOfDay(standbyScheduleFilterDto.getValidTo());
@@ -130,26 +123,37 @@
List<StandbyScheduleBody> listBodyMatrix = matrixOfPlannedBodysByStatus(groupIds, startDate, endDate,
statusId);
- for (StandbyScheduleBody standbyScheduleBody : listBodyMatrix) {
+ LOGGER.info("query for " + listBodyMatrix.size() + " bodies");
- StandbyScheduleBodySelectionDto standbyScheduleBodySelectionDto = (StandbyScheduleBodySelectionDto) entityConverter
- .convertEntityToDto(standbyScheduleBody, new StandbyScheduleBodySelectionDto());
+ // convert to dto
+ List<StandbyScheduleBodySelectionDto> listBodyDto = new ArrayList<>();
+ listBodyDto = entityConverter.convertEntityToDtoList(listBodyMatrix, listBodyDto,
+ StandbyScheduleBodySelectionDto.class);
- Date date = DateHelper.getStartOfDay(standbyScheduleBodySelectionDto.getValidFrom());
+ LOGGER.info("convertetd " + listBodyDto.size() + " bodies");
+
+ for (StandbyScheduleBodySelectionDto standbyScheduleBody : listBodyDto) {
+
+ Date date = DateHelper.getStartOfDay(standbyScheduleBody.getValidFrom());
PlanRowsDto row = plan.getRow(date);
if (row != null) {
- setStyle(row, date);
+ row.addStandbyBody(standbyScheduleBody);
- row.addStandbyBody(standbyScheduleBodySelectionDto);
-
- plan.count(standbyScheduleBodySelectionDto);
+ plan.count(standbyScheduleBody);
} else {
LOGGER.info("no row for that date found (" + date + ")");
}
}
+ LOGGER.info("set style for " + plan.getListPlanRows().size() + " row's.");
+ // set style
+ for (PlanRowsDto row : plan.getListPlanRows()) {
+ Date date = DateHelper.getDateFromLabel(row.getLabel());
+ setStyle(row, date);
+ }
+
return plan;
} catch (SpException e) {
@@ -164,6 +168,13 @@
}
+ public List<StandbyGroupSelectionDto> mapGroupDto(List<StandbyGroup> lsStandbyGroups) {
+ List<StandbyGroupSelectionDto> listStandbyGroupDto = new ArrayList<>();
+ listStandbyGroupDto = entityConverter.convertEntityToDtoList(lsStandbyGroups, listStandbyGroupDto,
+ StandbyGroupSelectionDto.class);
+ return listStandbyGroupDto;
+ }
+
@SuppressWarnings("unchecked")
public StandbyScheduleArchiveDto createPlan(StandbyScheduleFilterDto standbyScheduleFilterDto,
PlanHeaderDto planHeader, Long statusId) throws SpException {
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/reports/ReportController.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/reports/ReportController.java
index 2cbeeff..7b1e4cd 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/reports/ReportController.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/reports/ReportController.java
@@ -351,11 +351,8 @@
LOGGER.debug("from " + groupList.size() + " in " + reportInputDataSet.size());
compressResultLevel1(reportInputDataSet, reportDto, groupList);
-
}
-
return reportInputDataSet;
-
}
private void calcReportStartDate(StandbyScheduleBody body) {
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/mail/MailRequest.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/mail/MailRequest.java
index 397a2c0..4e75430 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/mail/MailRequest.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/mail/MailRequest.java
@@ -28,6 +28,7 @@
import org.eclipse.openk.sp.db.model.User;
import org.eclipse.openk.sp.dto.planning.StandbyScheduleActionDto;
import org.eclipse.openk.sp.exceptions.SpException;
+import org.eclipse.openk.sp.util.DateHelper;
import org.eclipse.openk.sp.util.FileHelper;
import org.eclipse.openk.sp.util.SpMsg;
import org.springframework.beans.factory.annotation.Autowired;
@@ -95,9 +96,13 @@
String link = property.getProperty(Globals.LINK_DASHBOARD);
logger.info("read link from properties: " + link);
- String body = generateHTML(template, standbyBody.getStandbyGroup().getTitle(), standbyBody.getValidFrom(),
- standbyBody.getValidTo(), targetGroup.getTitle(), actionDto.getValidFrom(), actionDto.getValidTo(),
- link);
+ String strSBFrom = DateHelper.convertToLocalString(standbyBody.getValidFrom(), "EE. dd.MM.yy HH:mm");
+ String strSBTo = DateHelper.convertToLocalString(standbyBody.getValidTo(), "EE. dd.MM.yy HH:mm");
+ String strAcFrom = DateHelper.convertToLocalString(actionDto.getValidFrom(), "EE. dd.MM.yy HH:mm");
+ String strAcTo = DateHelper.convertToLocalString(actionDto.getValidTo(), "EE. dd.MM.yy HH:mm");
+
+ String body = generateHTML(template, standbyBody.getStandbyGroup().getTitle(), strSBFrom, strSBTo,
+ targetGroup.getTitle(), strAcFrom, strAcTo, link);
email = calcMail(subject, standbyBody.getUser().getBusinessContactData().getEmail(), property, body);
@@ -141,8 +146,10 @@
String userName = newUser.getFirstname() + " " + newUser.getLastname();
String link = property.getProperty(Globals.LINK_DASHBOARD);
- String body = generateHTML(template, standbyGroup.getTitle(), actionDto.getValidFrom(),
- actionDto.getValidTo(), userName, link);
+ String strAcFrom = DateHelper.convertToLocalString(actionDto.getValidFrom(), "EE. dd.MM.yy HH:mm");
+ String strAcTo = DateHelper.convertToLocalString(actionDto.getValidTo(), "EE. dd.MM.yy HH:mm");
+
+ String body = generateHTML(template, standbyGroup.getTitle(), strAcFrom, strAcTo, userName, link);
email = calcMail(subject, oldUser.getBusinessContactData().getEmail(), property, body);
@@ -178,8 +185,10 @@
String userName = oldUser.getFirstname() + " " + oldUser.getLastname();
String link = property.getProperty(Globals.LINK_DASHBOARD);
- String body = generateHTML(template, standbyGroup.getTitle(), userName, actionDto.getValidFrom(),
- actionDto.getValidTo(), link);
+ String strAcFrom = DateHelper.convertToLocalString(actionDto.getValidFrom(), "EE. dd.MM.yy HH:mm");
+ String strAcTo = DateHelper.convertToLocalString(actionDto.getValidTo(), "EE. dd.MM.yy HH:mm");
+
+ String body = generateHTML(template, standbyGroup.getTitle(), userName, strAcFrom, strAcTo, link);
email = calcMail(subject, newUser.getBusinessContactData().getEmail(), property, body);
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/GsonTypeHelper.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/GsonTypeHelper.java
index 150fd93..da695da 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/GsonTypeHelper.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/GsonTypeHelper.java
@@ -37,6 +37,7 @@
import org.eclipse.openk.sp.dto.StandbyGroupDto;
import org.eclipse.openk.sp.dto.StandbyListDto;
import org.eclipse.openk.sp.dto.StandbyScheduleBodyDto;
+import org.eclipse.openk.sp.dto.StandbyScheduleBodySelectionDto;
import org.eclipse.openk.sp.dto.UserDto;
import org.eclipse.openk.sp.dto.UserFunctionDto;
import org.eclipse.openk.sp.dto.UserInStandbyGroupDto;
@@ -139,6 +140,9 @@
public static final Type JSON_TYPE_STANDBYBODY_DTO_ARRAY_LIST = new TypeToken<ArrayList<StandbyScheduleBodyDto>>() {
}.getType();
+ public static final Type JSON_TYPE_STANDBYBODY_SELECTION_DTO_ARRAY_LIST = new TypeToken<ArrayList<StandbyScheduleBodySelectionDto>>() {
+ }.getType();
+
/**
* StandbyDuration
*/
diff --git a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/StandbyListControllerTest.java b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/StandbyListControllerTest.java
index da479bd..cacd7a9 100644
--- a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/StandbyListControllerTest.java
+++ b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/StandbyListControllerTest.java
@@ -508,8 +508,8 @@
when(entityConverter.convertEntityToDtoList((List<AbstractEntity>) any(), (List<AbstractDto>) any(), any()))
.thenReturn(lsStandbyListHasStandbyGroupDto);
- when(entityConverter.convertEntityToDtoList((List<AbstractEntity>) any(), (List<AbstractDto>) any(), any()))
- .thenReturn(lsStandbyListHasStandbyGroupDto);
+// when(entityConverter.convertEntityToDtoList((List<AbstractEntity>) any(), (List<AbstractDto>) any(), any()))
+// .thenReturn(lsStandbyListHasStandbyGroupDto);
// when(entityConverter.convertDtoToEntity((AbstractDto) any(), (AbstractEntity)
// any()))
// .thenReturn(standbyGroup.getLsUserInStandbyGroups().get(0));
diff --git a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/planning/PlannedDataControllerTest.java b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/planning/PlannedDataControllerTest.java
index a3b12b9..7a09078 100644
--- a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/planning/PlannedDataControllerTest.java
+++ b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/planning/PlannedDataControllerTest.java
@@ -51,6 +51,7 @@
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
+import org.mockito.Spy;
import org.mockito.runners.MockitoJUnitRunner;
import com.google.gson.Gson;
@@ -75,6 +76,7 @@
@Mock
private StandbyGroupRepository standbyGroupRepository;
+ @Spy
@InjectMocks
PlannedDataController plannedDataController;
@@ -265,6 +267,9 @@
List<StandbyScheduleBody> lsStandbyScheduleBody = (List<StandbyScheduleBody>) new Gson().fromJson(json,
GsonTypeHelper.JSON_TYPE_STANDBYBODY_ARRAY_LIST);
+ List<StandbyScheduleBodySelectionDto> listBodyDto = (List<StandbyScheduleBodySelectionDto>) new Gson()
+ .fromJson(json, GsonTypeHelper.JSON_TYPE_STANDBYBODY_SELECTION_DTO_ARRAY_LIST);
+
json = fh.loadStringFromResource("testStandbyGroup.json");
StandbyGroupSelectionDto standbyGroupSelectionDto = (StandbyGroupSelectionDto) new Gson().fromJson(json,
StandbyGroupSelectionDto.class);
@@ -282,8 +287,13 @@
Mockito.when(standbyListRepository.findOne(Mockito.anyLong())).thenReturn(standbyList);
when(entityConverter.convertEntityToDto((AbstractEntity) any(), (AbstractDto) any()))
.thenReturn((AbstractDto) bodyDto);
+// when(entityConverter.convertEntityToDtoList((List<StandbyListHasStandbyGroup>) any(), (List<AbstractDto>) any(),
+// StandbyGroupSelectionDto.class)).thenReturn(listGroupDto);
+
+ Mockito.doReturn(listGroupDto).when(plannedDataController).mapGroupDto(any());
+
when(entityConverter.convertEntityToDtoList((List<AbstractEntity>) any(), (List<AbstractDto>) any(), any()))
- .thenReturn(listGroupDto);
+ .thenReturn(listBodyDto);
when(standbyGroupRepository.findOne(Mockito.anyLong())).thenReturn(standbyGroup);