SUPPORT-9484: Fix

This commit is contained in:
Eduard Tihomiorv 2025-10-20 19:19:55 +03:00
parent 11d9eb2afd
commit 302a0798a3
2 changed files with 20 additions and 19 deletions

View file

@ -1,8 +1,9 @@
package ru.micord.ervu.journal.mapper; package ru.micord.ervu.journal.mapper;
import java.time.OffsetDateTime; import java.time.LocalDateTime;
import java.time.ZoneOffset; import java.time.ZoneOffset;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import ervu_lkrp_ul.ervu_lkrp_ul.db_beans.public_.tables.records.InteractionLogRecord; import ervu_lkrp_ul.ervu_lkrp_ul.db_beans.public_.tables.records.InteractionLogRecord;
import ru.micord.ervu.journal.JournalDto; import ru.micord.ervu.journal.JournalDto;
@ -16,11 +17,9 @@ public class JournalDtoMapper {
public static JournalDto mapToJournalDto(JournalFileInfo journalFileInfo, public static JournalDto mapToJournalDto(JournalFileInfo journalFileInfo,
JournalFileInfo.JournalFileDetails journalFileDetails) { JournalFileInfo.JournalFileDetails journalFileDetails) {
SenderInfo senderInfo = journalFileInfo.getSenderInfo(); SenderInfo senderInfo = journalFileInfo.getSenderInfo();
OffsetDateTime utcZoned = journalFileDetails.getDepartureDateTime()
.atOffset(ZoneOffset.of(journalFileDetails.getTimeZone()));
return new JournalDto() return new JournalDto()
.setFileId(journalFileDetails.getFileId()) .setFileId(journalFileDetails.getFileId())
.setDepartureDateTime(utcZoned.toString()) .setDepartureDateTime(parseDateTime(journalFileDetails.getDepartureDateTime(), journalFileDetails.getTimeZone()))
.setFileName(journalFileDetails.getFileName()) .setFileName(journalFileDetails.getFileName())
.setFilePatternCode(journalFileDetails.getFilePatternCode()) .setFilePatternCode(journalFileDetails.getFilePatternCode())
.setSenderFio(convertToFio(senderInfo.getFirstName(), senderInfo.getMiddleName(), .setSenderFio(convertToFio(senderInfo.getFirstName(), senderInfo.getMiddleName(),
@ -34,15 +33,9 @@ public class JournalDtoMapper {
} }
public static JournalDto mapToJournalDto(InteractionLogRecord record) { 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() return new JournalDto()
.setDepartureDateTime(utcZoned.toString()) .setDepartureDateTime(
parseDateTime(record.getSentDate().toLocalDateTime(), record.getOffset()))
.setFileName(record.getFileName()) .setFileName(record.getFileName())
.setFilePatternCode(Integer.valueOf(record.getForm())) .setFilePatternCode(Integer.valueOf(record.getForm()))
.setSenderFio(record.getSender()) .setSenderFio(record.getSender())
@ -52,4 +45,15 @@ public class JournalDtoMapper {
.setRowsError(0) .setRowsError(0)
.setFileId(record.getFileId()); .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 + ")";
}
} }

View file

@ -1094,10 +1094,7 @@
<entry> <entry>
<key>valueFormatter</key> <key>valueFormatter</key>
<value> <value>
<implRef type="TS"> <implRef/>
<className>ZoneDateTimeFormatter</className>
<packageName>ervu.component.grid.formatter</packageName>
</implRef>
</value> </value>
</entry> </entry>
</properties> </properties>
@ -1147,7 +1144,7 @@
<entry> <entry>
<key>type</key> <key>type</key>
<value> <value>
<simple>"java.time.OffsetDateTime"</simple> <simple>"java.time.ZonedDateTime"</simple>
</value> </value>
</entry> </entry>
</complex> </complex>
@ -1174,13 +1171,13 @@
<entry> <entry>
<key>width</key> <key>width</key>
<value> <value>
<simple>140</simple> <simple>300</simple>
</value> </value>
</entry> </entry>
<entry> <entry>
<key>widthFixed</key> <key>widthFixed</key>
<value> <value>
<simple>null</simple> <simple>true</simple>
</value> </value>
</entry> </entry>
</properties> </properties>