diff --git a/backend/src/main/java/ru/micord/ervu/journal/mapper/JournalDtoMapper.java b/backend/src/main/java/ru/micord/ervu/journal/mapper/JournalDtoMapper.java
index b2dfbafa..f23b7fb4 100644
--- a/backend/src/main/java/ru/micord/ervu/journal/mapper/JournalDtoMapper.java
+++ b/backend/src/main/java/ru/micord/ervu/journal/mapper/JournalDtoMapper.java
@@ -1,8 +1,9 @@
package ru.micord.ervu.journal.mapper;
-import java.time.OffsetDateTime;
+import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
import ervu_lkrp_ul.ervu_lkrp_ul.db_beans.public_.tables.records.InteractionLogRecord;
import ru.micord.ervu.journal.JournalDto;
@@ -16,11 +17,9 @@ public class JournalDtoMapper {
public static JournalDto mapToJournalDto(JournalFileInfo journalFileInfo,
JournalFileInfo.JournalFileDetails journalFileDetails) {
SenderInfo senderInfo = journalFileInfo.getSenderInfo();
- OffsetDateTime utcZoned = journalFileDetails.getDepartureDateTime()
- .atOffset(ZoneOffset.of(journalFileDetails.getTimeZone()));
return new JournalDto()
.setFileId(journalFileDetails.getFileId())
- .setDepartureDateTime(utcZoned.toString())
+ .setDepartureDateTime(parseDateTime(journalFileDetails.getDepartureDateTime(), journalFileDetails.getTimeZone()))
.setFileName(journalFileDetails.getFileName())
.setFilePatternCode(journalFileDetails.getFilePatternCode())
.setSenderFio(convertToFio(senderInfo.getFirstName(), senderInfo.getMiddleName(),
@@ -34,15 +33,9 @@ public class JournalDtoMapper {
}
public static JournalDto mapToJournalDto(InteractionLogRecord record) {
- OffsetDateTime utcZoned;
- if (record.getOffset() != null) {
- utcZoned = record.getSentDate().toInstant().atOffset(ZoneOffset.of(record.getOffset()));
- }
- else {
- utcZoned = record.getSentDate().toInstant().atOffset(ZoneOffset.UTC);
- }
return new JournalDto()
- .setDepartureDateTime(utcZoned.toString())
+ .setDepartureDateTime(
+ parseDateTime(record.getSentDate().toLocalDateTime(), record.getOffset()))
.setFileName(record.getFileName())
.setFilePatternCode(Integer.valueOf(record.getForm()))
.setSenderFio(record.getSender())
@@ -52,4 +45,15 @@ public class JournalDtoMapper {
.setRowsError(0)
.setFileId(record.getFileId());
}
+
+ private static String parseDateTime(LocalDateTime dateTime, String timeZone) {
+ if (timeZone == null) {
+ timeZone = "+00:00";
+ }
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
+ ZonedDateTime utcZoned = dateTime.atZone(ZoneOffset.UTC);
+ ZoneOffset offset = ZoneOffset.of(timeZone);
+ ZonedDateTime zonedDateTime = utcZoned.withZoneSameInstant(offset);
+ return zonedDateTime.format(formatter) + " (" + timeZone + ")";
+ }
}
diff --git a/resources/src/main/resources/business-model/Журнал взаимодействия.page b/resources/src/main/resources/business-model/Журнал взаимодействия.page
index 8ee5bfee..cebeb9fd 100644
--- a/resources/src/main/resources/business-model/Журнал взаимодействия.page
+++ b/resources/src/main/resources/business-model/Журнал взаимодействия.page
@@ -1094,10 +1094,7 @@
valueFormatter
-
- ZoneDateTimeFormatter
- ervu.component.grid.formatter
-
+
@@ -1147,7 +1144,7 @@
type
- "java.time.OffsetDateTime"
+ "java.time.ZonedDateTime"
@@ -1174,13 +1171,13 @@
width
-140
+300
widthFixed
-null
+true