diff --git a/backend/src/main/java/ervu/service/fileupload/EmployeeInfoFileUploadService.java b/backend/src/main/java/ervu/service/fileupload/EmployeeInfoFileUploadService.java index bb2c4dec..35b65edf 100644 --- a/backend/src/main/java/ervu/service/fileupload/EmployeeInfoFileUploadService.java +++ b/backend/src/main/java/ervu/service/fileupload/EmployeeInfoFileUploadService.java @@ -182,7 +182,7 @@ public class EmployeeInfoFileUploadService { fileStatus.setStatus(uploadSuccess ? "Загрузка" : "Невозможно проверить файл ЛК РП"); interactionService.setStatus(fileInfo.getFileId(), fileStatus.getStatus(), multipartFile.getOriginalFilename(), employeeInfoFileFormType.getFilePatternCode(), - Timestamp.valueOf(now), fio, ervuId + Timestamp.valueOf(now), fio, ervuId, offset ); fileInfo.setFileStatus(fileStatus); 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 f76f0941..0b60d816 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,6 +1,8 @@ package ru.micord.ervu.journal.mapper; import java.sql.Timestamp; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; import ervu_lkrp_ul.ervu_lkrp_ul.db_beans.public_.tables.records.InteractionLogRecord; import ru.micord.ervu.journal.JournalDto; @@ -14,9 +16,12 @@ public class JournalDtoMapper { public static JournalDto mapToJournalDto(JournalFileInfo journalFileInfo, JournalFileInfo.JournalFileDetails journalFileDetails) { SenderInfo senderInfo = journalFileInfo.getSenderInfo(); + ZonedDateTime utcZoned = journalFileDetails.getDepartureDateTime().atZone(ZoneOffset.UTC); + ZoneOffset offset = ZoneOffset.of(journalFileDetails.getTimeZone()); + ZonedDateTime zonedDateTime = utcZoned.withZoneSameInstant(offset); return new JournalDto() .setFileId(journalFileDetails.getFileId()) - .setDepartureDateTime(Timestamp.valueOf(journalFileDetails.getDepartureDateTime()).toString()) + .setDepartureDateTime(zonedDateTime.toString()) .setFileName(journalFileDetails.getFileName()) .setFilePatternCode(journalFileDetails.getFilePatternCode()) .setSenderFio(convertToFio(senderInfo.getFirstName(), senderInfo.getMiddleName(), @@ -30,8 +35,12 @@ public class JournalDtoMapper { } public static JournalDto mapToJournalDto(InteractionLogRecord record) { + ZonedDateTime utcZoned = record.getSentDate().toInstant().atZone(ZoneOffset.UTC); + //заменит на offset после обновления бинов + ZoneOffset offset = ZoneOffset.of(record.getStatus()); + ZonedDateTime zonedDateTime = utcZoned.withZoneSameInstant(offset); return new JournalDto() - .setDepartureDateTime(record.getSentDate().toString()) + .setDepartureDateTime(zonedDateTime.toString()) .setFileName(record.getFileName()) .setFilePatternCode(Integer.valueOf(record.getForm())) .setSenderFio(record.getSender()) diff --git a/backend/src/main/java/ru/micord/ervu/service/InteractionService.java b/backend/src/main/java/ru/micord/ervu/service/InteractionService.java index 3218f9a6..fd46dc2d 100644 --- a/backend/src/main/java/ru/micord/ervu/service/InteractionService.java +++ b/backend/src/main/java/ru/micord/ervu/service/InteractionService.java @@ -12,7 +12,7 @@ public interface InteractionService { List get(String ervuId, String[] excludedStatuses); - void setStatus(String fileId, String status, String fileName, String form, Timestamp timestamp, String sender, String ervuId); + void setStatus(String fileId, String status, String fileName, String form, Timestamp timestamp, String sender, String ervuId, String offset); void updateStatus(String fileId, String status, String ervuId); diff --git a/backend/src/main/java/ru/micord/ervu/service/InteractionServiceImpl.java b/backend/src/main/java/ru/micord/ervu/service/InteractionServiceImpl.java index b02c9e2c..5a345458 100644 --- a/backend/src/main/java/ru/micord/ervu/service/InteractionServiceImpl.java +++ b/backend/src/main/java/ru/micord/ervu/service/InteractionServiceImpl.java @@ -33,7 +33,7 @@ public class InteractionServiceImpl implements InteractionService { } public void setStatus(String fileId, String status, String fileName, String form, - Timestamp timestamp, String sender, String ervuId) { + Timestamp timestamp, String sender, String ervuId, String offset) { dslContext.insertInto(INTERACTION_LOG) .set(INTERACTION_LOG.FILE_ID, fileId) .set(INTERACTION_LOG.STATUS, status) @@ -42,6 +42,7 @@ public class InteractionServiceImpl implements InteractionService { .set(INTERACTION_LOG.SENDER, sender) .set(INTERACTION_LOG.FILE_NAME, fileName) .set(INTERACTION_LOG.ERVU_ID, ervuId) + //.set(INTERACTION_LOG.OFFSET, offset) .execute(); } diff --git a/backend/src/main/resources/config/v_1.0/2025-10-20-create-offset-column.xml b/backend/src/main/resources/config/v_1.0/2025-10-20-create-offset-column.xml new file mode 100644 index 00000000..18fd16ca --- /dev/null +++ b/backend/src/main/resources/config/v_1.0/2025-10-20-create-offset-column.xml @@ -0,0 +1,13 @@ + + + + + create offset column in interaction_log table + + + + + \ No newline at end of file diff --git a/backend/src/main/resources/config/v_1.0/changelog-v_1.0.xml b/backend/src/main/resources/config/v_1.0/changelog-v_1.0.xml index 21dee61d..a65cf67e 100644 --- a/backend/src/main/resources/config/v_1.0/changelog-v_1.0.xml +++ b/backend/src/main/resources/config/v_1.0/changelog-v_1.0.xml @@ -8,5 +8,7 @@ + + \ No newline at end of file diff --git a/resources/src/main/resources/business-model/Журнал взаимодействия.page b/resources/src/main/resources/business-model/Журнал взаимодействия.page index bc3489a5..55f09c32 100644 --- a/resources/src/main/resources/business-model/Журнал взаимодействия.page +++ b/resources/src/main/resources/business-model/Журнал взаимодействия.page @@ -1094,9 +1094,17 @@ valueFormatter + + + dateFormat + + "DD.MM.YYYY HH:mm:ss (Z)" + + + - ClientDateTimeFormatter - ervu.component.grid.formatter + DateFormatter + component.grid.formatters @@ -1113,10 +1121,7 @@ dataConverter - - LocalDateTimeConverter - component.field.dataconvert - + @@ -1150,7 +1155,7 @@ type - "java.sql.Timestamp" + "java.time.ZonedDateTime" @@ -1177,7 +1182,7 @@ width -120 +140