parent
a134a96b27
commit
ece8b20c38
4 changed files with 18 additions and 45 deletions
|
|
@ -1,13 +1,10 @@
|
|||
package ru.micord.ervu.journal;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
public class JournalDto {
|
||||
|
||||
private Integer documentNumber;
|
||||
private String fileId;
|
||||
private String departureDateTime;
|
||||
private Instant departureInstant;
|
||||
private String fileName;
|
||||
private Integer filePatternCode;
|
||||
private String senderFio;
|
||||
|
|
@ -27,15 +24,6 @@ public class JournalDto {
|
|||
return this;
|
||||
}
|
||||
|
||||
public Instant getDepartureInstant() {
|
||||
return departureInstant;
|
||||
}
|
||||
|
||||
public JournalDto setDepartureInstant(Instant departureInstant) {
|
||||
this.departureInstant = departureInstant;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFileId() {
|
||||
return fileId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
package ru.micord.ervu.journal.mapper;
|
||||
|
||||
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;
|
||||
import ru.micord.ervu.journal.JournalFileInfo;
|
||||
import ru.micord.ervu.journal.SenderInfo;
|
||||
import ru.micord.ervu.util.DateUtils;
|
||||
|
||||
import static ru.micord.ervu.util.StringUtils.convertToFio;
|
||||
|
||||
|
|
@ -15,15 +17,9 @@ public class JournalDtoMapper {
|
|||
public static JournalDto mapToJournalDto(JournalFileInfo journalFileInfo,
|
||||
JournalFileInfo.JournalFileDetails journalFileDetails) {
|
||||
SenderInfo senderInfo = journalFileInfo.getSenderInfo();
|
||||
ZonedDateTime zonedDateTime = DateUtils.changeTimeZoneKeepingInstant(
|
||||
journalFileDetails.getDepartureDateTime(),
|
||||
journalFileDetails.getTimeZone()
|
||||
);
|
||||
|
||||
return new JournalDto()
|
||||
.setFileId(journalFileDetails.getFileId())
|
||||
.setDepartureDateTime(DateUtils.formatWithBracketsTimezone(zonedDateTime))
|
||||
.setDepartureInstant(zonedDateTime.toInstant())
|
||||
.setDepartureDateTime(parseDateTime(journalFileDetails.getDepartureDateTime(), journalFileDetails.getTimeZone()))
|
||||
.setFileName(journalFileDetails.getFileName())
|
||||
.setFilePatternCode(journalFileDetails.getFilePatternCode())
|
||||
.setSenderFio(convertToFio(senderInfo.getFirstName(), senderInfo.getMiddleName(),
|
||||
|
|
@ -37,14 +33,9 @@ public class JournalDtoMapper {
|
|||
}
|
||||
|
||||
public static JournalDto mapToJournalDto(InteractionLogRecord record) {
|
||||
ZonedDateTime zonedDateTime = DateUtils.changeTimeZoneKeepingInstant(
|
||||
record.getSentDate().toLocalDateTime(),
|
||||
record.getOffset()
|
||||
);
|
||||
|
||||
return new JournalDto()
|
||||
.setDepartureDateTime(DateUtils.formatWithBracketsTimezone(zonedDateTime))
|
||||
.setDepartureInstant(zonedDateTime.toInstant())
|
||||
.setDepartureDateTime(
|
||||
parseDateTime(record.getSentDate().toLocalDateTime(), record.getOffset()))
|
||||
.setFileName(record.getFileName())
|
||||
.setFilePatternCode(Integer.valueOf(record.getForm()))
|
||||
.setSenderFio(record.getSender())
|
||||
|
|
@ -54,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 + ")";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package ru.micord.ervu.service.grid.impl;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
|
@ -86,7 +85,7 @@ public class JournalInMemoryStaticGridLoadService implements
|
|||
HashSet<String> seenFileIds = new HashSet<>();
|
||||
return Stream.concat(dbJournalList.stream(), ervuJournalList.stream())
|
||||
.filter(journal -> seenFileIds.add(journal.getFileId()))
|
||||
.sorted(Comparator.comparing(JournalDto::getDepartureInstant).reversed())
|
||||
.sorted(Comparator.comparing(JournalDto::getDepartureDateTime).reversed())
|
||||
.map(journal ->
|
||||
journal
|
||||
.setDocumentNumber(counter.getAndIncrement())
|
||||
|
|
|
|||
|
|
@ -17,26 +17,10 @@ public final class DateUtils {
|
|||
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
|
||||
private static final DateTimeFormatter DATE_TIME_WITH_TIMEZONE_FORMATTER = DateTimeFormatter.ofPattern(
|
||||
"yyyy-MM-dd'T'HH:mm:ss.SSSX");
|
||||
private static final DateTimeFormatter DATE_TIME_WITH_TIMEZONE_IN_BRACKETS = DateTimeFormatter.ofPattern(
|
||||
"dd.MM.yyyy HH:mm:ss (XXX)");
|
||||
|
||||
private DateUtils() {
|
||||
}
|
||||
|
||||
public static ZonedDateTime changeTimeZoneKeepingInstant(LocalDateTime dateTime, String timeZone) {
|
||||
if (timeZone == null) {
|
||||
timeZone = "+00:00";
|
||||
}
|
||||
|
||||
ZonedDateTime utcZoned = dateTime.atZone(ZoneOffset.UTC);
|
||||
ZoneOffset offset = ZoneOffset.of(timeZone);
|
||||
return utcZoned.withZoneSameInstant(offset);
|
||||
}
|
||||
|
||||
public static String formatWithBracketsTimezone(ZonedDateTime zonedDateTime) {
|
||||
return zonedDateTime.format(DATE_TIME_WITH_TIMEZONE_IN_BRACKETS);
|
||||
}
|
||||
|
||||
public static String getCurrentFormattedDateTimeWithZone(){
|
||||
ZonedDateTime now = ZonedDateTime.now();
|
||||
return now.format(DATE_TIME_WITH_TIMEZONE_FORMATTER);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue