BP-839 fix wrong time in report (for different timzones)
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 de4c8ea..86de489 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
@@ -544,21 +544,21 @@
} else {
task.setParameterValue("liste", "--");
}
- if (reportDto.getValidFrom() != null) {
+ if (reportDto.getValidFromDate() != null) {
String pattern = (reportDto.getReportName().equals(ReportController.REPORT_MAX10_GROUPS_ONLY_NAMES))
? shortDatePattern
: null;
- task.setParameterValue("von", DateHelper.convertToLocalString(reportDto.getValidFrom(), pattern));
+ task.setParameterValue("von", DateHelper.convertToLocalString(reportDto.getValidFromDate(), pattern));
}
- if (reportDto.getValidTo() != null) {
+ if (reportDto.getValidToDate() != null) {
String pattern = (reportDto.getReportName().equals(ReportController.REPORT_MAX10_GROUPS_ONLY_NAMES))
? shortDatePattern
: null;
- task.setParameterValue("bis", DateHelper.convertToLocalString(reportDto.getValidTo(), pattern));
+ task.setParameterValue("bis", DateHelper.convertToLocalString(reportDto.getValidToDate(), pattern));
}
if (reportDto.getStatusId() != null && standbyStatusRepository.exists(reportDto.getStatusId())) {
StandbyStatus status = standbyStatusRepository.findOne(reportDto.getStatusId());
@@ -597,8 +597,8 @@
Long[] groupIds = null;
- Date validFrom = (reportDto.getValidFrom());
- Date validTo = (reportDto.getValidTo());
+ Date validFrom = (reportDto.getValidFromDate());
+ Date validTo = (reportDto.getValidToDate());
List<StandbyScheduleBody> result = null;
Long reportLevel = reportDto.getStatusId();
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/report/ReportDto.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/report/ReportDto.java
index 63ecc74..7b0abce 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/report/ReportDto.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/dto/report/ReportDto.java
@@ -17,9 +17,15 @@
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlRootElement;
+import org.apache.log4j.Logger;
+import org.eclipse.openk.common.Globals;
import org.eclipse.openk.sp.abstracts.AbstractDto;
import org.eclipse.openk.sp.db.model.StandbyGroup;
import org.eclipse.openk.sp.db.model.StandbyList;
+import org.eclipse.openk.sp.exceptions.SpErrorEntry;
+import org.eclipse.openk.sp.exceptions.SpException;
+import org.eclipse.openk.sp.exceptions.SpExceptionEnum;
+import org.eclipse.openk.sp.util.DateHelper;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
@@ -46,8 +52,10 @@
private StandbyList standByList;
private Long userId;
private Long statusId;
- private Date validFrom;
- private Date validTo;
+ private String validFrom;
+ private String validTo;
+ private Date validFromDate;
+ private Date validToDate;
private Integer defaultDayRange;
@NotNull(message = "Ebene muss angegeben werden")
private String reportLevel;
@@ -72,24 +80,20 @@
}
}
- public Date getValidFrom() {
- return validFrom;
+ public Date getValidFromDate() {
+ return validFromDate;
}
- public void setValidFrom(Date from) {
- this.validFrom = from;
+ public void setValidFromDate(Date from) {
+ this.validFromDate = from;
}
- public Date getValidTo() {
- return validTo;
+ public Date getValidToDate() {
+ return validToDate;
}
-// public void setValidTo(String to) throws ParseException {
-// this.validTo = DateHelper.getDateFromString(to, "yyyy-MM-dd HH:mm:ss");
-// }
-
- public void setValidTo(Date to) {
- this.validTo = to;
+ public void setValidToDate(Date to) {
+ this.validToDate = to;
}
public Long getUserId() {
@@ -195,4 +199,48 @@
public void setCurrentDate(String currentDate) {
this.currentDate = currentDate;
}
+
+ /**
+ * @return the validFrom
+ */
+ public String getValidFrom() {
+ return validFrom;
+ }
+
+ /**
+ * @param validFrom the validFrom to set
+ */
+ public void setValidFrom(String validFrom) {
+ this.validFrom = validFrom;
+ }
+
+ /**
+ * @return the validTo
+ */
+ public String getValidTo() {
+ return validTo;
+ }
+
+ /**
+ * @param validTo the validTo to set
+ */
+ public void setValidTo(String validTo) {
+ this.validTo = validTo;
+ }
+
+ public void createDatesFromStrings() throws SpException {
+ try {
+ if (this.getValidFrom() != null) {
+ this.setValidFromDate(DateHelper.getDateFromString(this.getValidFrom(), Globals.DATE_TIME_FORMAT));
+ }
+ if (this.getValidTo() != null) {
+ this.setValidToDate(DateHelper.getDateFromString(this.getValidTo(), Globals.DATE_TIME_FORMAT));
+ }
+ } catch (Exception e) {
+ Logger.getLogger(ReportDto.class).error(e, e);
+ SpErrorEntry ee = SpExceptionEnum.DEFAULT_EXCEPTION.getEntry();
+ ee.setE(e);
+ throw new SpException(ee);
+ }
+ }
}
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/reports/ReportRestService.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/reports/ReportRestService.java
index 605c2e0..58c6cc4 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/reports/ReportRestService.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/rest/reports/ReportRestService.java
@@ -102,8 +102,8 @@
reportDto.setUserId(userId);
reportDto.setReportLevel(reportLevel);
- reportDto.setValidFrom(fromDate);
- reportDto.setValidTo(toDate);
+ reportDto.setValidFromDate(fromDate);
+ reportDto.setValidToDate(toDate);
try {
File reportFile = reportController.generateReport(reportDto);
@@ -128,6 +128,7 @@
ReportDto reportDto) throws IOException {
try {
+ reportDto.createDatesFromStrings();
File reportFile = reportController.generateReport(reportDto);
@@ -176,8 +177,8 @@
reportDto.setReportName(reportName);
reportDto.setStandByListId(Long.parseLong(standByListId));
reportDto.setStatusId(Long.parseLong(statusId));
- reportDto.setValidFrom(new DateTime(validFrom).toDate());
- reportDto.setValidTo(new DateTime(validTo).toDate());
+ reportDto.setValidFromDate(new DateTime(validFrom).toDate());
+ reportDto.setValidToDate(new DateTime(validTo).toDate());
File reportFile = reportController.generateReport(reportDto);
ModifyingInvokable<File> invokable = modusr -> reportFile;
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/ReportGroupDtoConverter.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/ReportGroupDtoConverter.java
index e40ab3b..d4fb38a 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/ReportGroupDtoConverter.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/ReportGroupDtoConverter.java
@@ -61,8 +61,8 @@
StandbyScheduleFilterDto standbyScheduleFilterDto = new StandbyScheduleFilterDto();
standbyScheduleFilterDto.setStandbyListId(reportDto.getStandByListId());
- standbyScheduleFilterDto.setValidFrom(reportDto.getValidFrom());
- standbyScheduleFilterDto.setValidTo(reportDto.getValidTo());
+ standbyScheduleFilterDto.setValidFrom(reportDto.getValidFromDate());
+ standbyScheduleFilterDto.setValidTo(reportDto.getValidToDate());
boolean allDaySearch = false;
Long statusId = reportDto.getStatusId();
@@ -87,9 +87,9 @@
Map<Long, StandbyScheduleBodySelectionDto> lastBodyMap = new HashMap<>();
// convert to rows
- Date dateIndex = DateHelper.getStartOfDay(reportDto.getValidFrom());
+ Date dateIndex = DateHelper.getStartOfDay(reportDto.getValidFromDate());
- while (DateHelper.isDateBefore(dateIndex, reportDto.getValidTo())) {
+ while (DateHelper.isDateBefore(dateIndex, reportDto.getValidToDate())) {
// fill groups from 1 to 10
// only groups that are not empty in the interval of time
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/ReportGroupNameDtoConverter.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/ReportGroupNameDtoConverter.java
index 46e0c98..9aff6d3 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/ReportGroupNameDtoConverter.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/ReportGroupNameDtoConverter.java
@@ -62,8 +62,8 @@
StandbyScheduleFilterDto standbyScheduleFilterDto = new StandbyScheduleFilterDto();
standbyScheduleFilterDto.setStandbyListId(reportDto.getStandByListId());
- standbyScheduleFilterDto.setValidFrom(reportDto.getValidFrom());
- standbyScheduleFilterDto.setValidTo(reportDto.getValidTo());
+ standbyScheduleFilterDto.setValidFrom(reportDto.getValidFromDate());
+ standbyScheduleFilterDto.setValidTo(reportDto.getValidToDate());
boolean allDaySearch = true;
Long statusId = reportDto.getStatusId();
@@ -89,9 +89,9 @@
Map<Long, StandbyScheduleBodySelectionDto> lastBodyMap = new HashMap<>();
// convert to rows
- Date dateIndex = DateHelper.getStartOfDay(reportDto.getValidFrom());
+ Date dateIndex = DateHelper.getStartOfDay(reportDto.getValidFromDate());
- while (DateHelper.isDateBefore(dateIndex, reportDto.getValidTo())) {
+ while (DateHelper.isDateBefore(dateIndex, reportDto.getValidToDate())) {
// fill groups from 1 to MAX_ROWS
// only groups that are not empty in the interval of time
diff --git a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/reports/ReportControllerTest.java b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/reports/ReportControllerTest.java
index ea0ba91..8f1cbc1 100644
--- a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/reports/ReportControllerTest.java
+++ b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/reports/ReportControllerTest.java
@@ -96,8 +96,8 @@
standbyList.setTitle("Elektriker");
reportDto.setStandByList(standbyList);
reportDto.setReportLevel("Plan-Ebene");
- reportDto.setValidFrom(new Date());
- reportDto.setValidTo(new Date());
+ reportDto.setValidFromDate(new Date());
+ reportDto.setValidToDate(new Date());
StandbyGroup standbyGroup = new StandbyGroup();
standbyGroup.setId(1L);
@@ -336,8 +336,8 @@
assertEquals(true, result);
reportDto.setReportName(text);
- reportDto.setValidTo(dateStr);
- reportDto.setValidFrom(dateStr);
+ reportDto.setValidToDate(dateStr);
+ reportDto.setValidFromDate(dateStr);
reportDto.setReportLevel("Plan-Ebene");
reportDto.setPrintFormat("PDF");
reportDto.setUserId(1L);
diff --git a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/dto/report/ReportDtoTest.java b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/dto/report/ReportDtoTest.java
index a611f29..83c6fae 100644
--- a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/dto/report/ReportDtoTest.java
+++ b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/dto/report/ReportDtoTest.java
@@ -48,11 +48,11 @@
Date validationDate = new Date();
- report.setValidFrom(validationDate);
- assertEquals(validationDate.getTime(), report.getValidFrom().getTime());
+ report.setValidFromDate(validationDate);
+ assertEquals(validationDate.getTime(), report.getValidFromDate().getTime());
- report.setValidTo(new Date());
- assertEquals(validationDate.getTime(), report.getValidTo().getTime());
+ report.setValidToDate(new Date());
+ assertEquals(validationDate.getTime(), report.getValidToDate().getTime());
report.setStandByGroup(new StandbyGroup());
assertNotNull(report.getStandByGroup());
diff --git a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/rest/reports/ReportRestServiceTest.java b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/rest/reports/ReportRestServiceTest.java
index c54cb2b..b2fab9e 100644
--- a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/rest/reports/ReportRestServiceTest.java
+++ b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/rest/reports/ReportRestServiceTest.java
@@ -114,8 +114,8 @@
Date date2 = DateHelper.getDate(2018, 10, 11, 12, 00, 00);
ReportDto reportDto = new ReportDto();
- reportDto.setValidFrom(date1);
- reportDto.setValidTo(date2);
+ reportDto.setValidFromDate(date1);
+ reportDto.setValidToDate(date2);
reportDto.setStandByList(standbyList);
reportDto.setStatusId(1L);
diff --git a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupDtoConverterTest.java b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupDtoConverterTest.java
index 9ceb5bb..479c550 100644
--- a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupDtoConverterTest.java
+++ b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupDtoConverterTest.java
@@ -67,8 +67,8 @@
report.setReportName("Monatsübersicht");
report.setPrintFormat("pdf");
report.setUserId(1L);
- report.setValidFrom(new Date());
- report.setValidTo(new Date());
+ report.setValidFromDate(new Date());
+ report.setValidToDate(new Date());
report.setStandByGroup(new StandbyGroup());
report.setStandByList(new StandbyList());
report.setDefaultDayRange(5);
@@ -219,8 +219,8 @@
StandbyGroupSelectionDto.class);
ReportDto reportDto = getReport();
- reportDto.setValidFrom(new Date());
- reportDto.setValidTo(new Date());
+ reportDto.setValidFromDate(new Date());
+ reportDto.setValidToDate(new Date());
reportDto.setStandByList(new StandbyList(plan.getFilter().getStandbyListId()));
Mockito.when(
diff --git a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupNameDtoConverterTest.java b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupNameDtoConverterTest.java
index 30424cb..0a28759 100644
--- a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupNameDtoConverterTest.java
+++ b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupNameDtoConverterTest.java
@@ -69,8 +69,8 @@
report.setReportName("Monatsübersicht");
report.setPrintFormat("pdf");
report.setUserId(1L);
- report.setValidFrom(new Date());
- report.setValidTo(new Date());
+ report.setValidFromDate(new Date());
+ report.setValidToDate(new Date());
report.setStandByGroup(new StandbyGroup());
report.setStandByList(new StandbyList());
report.setDefaultDayRange(5);
@@ -218,8 +218,8 @@
StandbyGroupSelectionDto.class);
ReportDto reportDto = getReport();
- reportDto.setValidFrom(new Date());
- reportDto.setValidTo(new Date());
+ reportDto.setValidFromDate(new Date());
+ reportDto.setValidToDate(new Date());
reportDto.setStandByList(new StandbyList(plan.getFilter().getStandbyListId()));
Mockito.when(