reports-service http://jira.mfd.msk:8088/browse/CLS-497 поправил временные зоны
This commit is contained in:
parent
796f247fec
commit
37885e9879
15 changed files with 81 additions and 28 deletions
|
|
@ -8,6 +8,7 @@ import ru.clearing.classes.statics.data.company.Company;
|
|||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
||||
import ru.spcex.platform.enumeration.CompanySymbol;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
|
@ -16,7 +17,6 @@ import java.io.File;
|
|||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
@ -65,7 +65,7 @@ public class NTCRNotificationBuilder extends NotificationBuilder {
|
|||
|
||||
Map<String, String> valuesForTemplate = new HashMap<>();
|
||||
|
||||
valuesForTemplate.put("${createdAt}", dateFormatter.format(createdAt.atZone(ZoneId.systemDefault()).toLocalDate()));
|
||||
valuesForTemplate.put("${createdAt}", dateFormatter.format(createdAt.atZone(TimeUtil.getReportTimeZone()).toLocalDate()));
|
||||
valuesForTemplate.put("${date}", LocalDate.now().format(dateFormatterYYMMDD));
|
||||
valuesForTemplate.put("${TCRCode}", getNotNull(tradingClearingRegistry.getCode()));
|
||||
valuesForTemplate.put("${companyFullName}", getNotNull(company.getFullName()));
|
||||
|
|
|
|||
|
|
@ -9,15 +9,13 @@ import ru.clearing.classes.statics.data.company.Company;
|
|||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||
import ru.clearing.classes.statics.data.company.relation.Relation;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.TextStyle;
|
||||
import java.util.*;
|
||||
|
||||
@Component
|
||||
|
|
@ -79,7 +77,7 @@ public class ROOT_ACTV_NotificationBuilder extends NotificationBuilder {
|
|||
valuesForTemplate.put("${companyFullName}", company.getFullName());
|
||||
valuesForTemplate.put("${companySymbolsINN}", companySymbols.getCompanySymbolValue());
|
||||
valuesForTemplate.put("${companyClearingCode}", companyClearingCode);
|
||||
valuesForTemplate.put("${relationUpdatedAt}", dateFormatter.format(updatedAt.atZone(ZoneId.systemDefault()).toLocalDate()));
|
||||
valuesForTemplate.put("${relationUpdatedAt}", dateFormatter.format(updatedAt.atZone(TimeUtil.getReportTimeZone()).toLocalDate()));
|
||||
|
||||
String outputFilename = "ROOT.ACTV.%s.%s.docx".formatted(companyClearingCode, filenameDateTimeFormatter.format(LocalDateTime.now()));
|
||||
outputFilename = normalizeFilenameForOS(outputFilename);
|
||||
|
|
|
|||
|
|
@ -9,15 +9,13 @@ import ru.clearing.classes.statics.data.company.Company;
|
|||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||
import ru.clearing.classes.statics.data.company.relation.Relation;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.TextStyle;
|
||||
import java.util.*;
|
||||
|
||||
@Component
|
||||
|
|
@ -79,7 +77,7 @@ public class ROOT_BLKD_NotificationBuilder extends NotificationBuilder {
|
|||
valuesForTemplate.put("${companyFullName}", company.getFullName());
|
||||
valuesForTemplate.put("${companySymbolsINN}", companySymbols.getCompanySymbolValue());
|
||||
valuesForTemplate.put("${companyClearingCode}", companyClearingCode);
|
||||
valuesForTemplate.put("${relationUpdatedAt}", dateFormatter.format(updatedAt.atZone(ZoneId.systemDefault()).toLocalDate()));
|
||||
valuesForTemplate.put("${relationUpdatedAt}", dateFormatter.format(updatedAt.atZone(TimeUtil.getReportTimeZone()).toLocalDate()));
|
||||
|
||||
String outputFilename = "ROOT.BLKD.%s.%s.docx".formatted(companyClearingCode, filenameDateTimeFormatter.format(LocalDateTime.now()));
|
||||
outputFilename = normalizeFilenameForOS(outputFilename);
|
||||
|
|
|
|||
|
|
@ -9,14 +9,13 @@ import ru.clearing.classes.statics.data.company.Company;
|
|||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||
import ru.clearing.classes.statics.data.company.relation.Relation;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.TextStyle;
|
||||
import java.util.*;
|
||||
|
||||
@Component
|
||||
|
|
@ -78,7 +77,7 @@ public class ROOT_SSPD_NotificationBuilder extends NotificationBuilder {
|
|||
valuesForTemplate.put("${companyFullName}", company.getFullName());
|
||||
valuesForTemplate.put("${companySymbolsINN}", companySymbols.getCompanySymbolValue());
|
||||
valuesForTemplate.put("${companyClearingCode}", companyClearingCode);
|
||||
valuesForTemplate.put("${relationUpdatedAt}", dateFormatter.format(updatedAt.atZone(ZoneId.systemDefault()).toLocalDate()));
|
||||
valuesForTemplate.put("${relationUpdatedAt}", dateFormatter.format(updatedAt.atZone(TimeUtil.getReportTimeZone()).toLocalDate()));
|
||||
|
||||
String outputFilename = "ROOT.SSPD.%s.%s.docx".formatted(companyClearingCode, filenameDateTimeFormatter.format(LocalDateTime.now()));
|
||||
outputFilename = normalizeFilenameForOS(outputFilename);
|
||||
|
|
|
|||
|
|
@ -9,14 +9,13 @@ import ru.clearing.classes.statics.data.company.Company;
|
|||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||
import ru.clearing.classes.statics.data.company.relation.Relation;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.TextStyle;
|
||||
import java.util.*;
|
||||
|
||||
@Component
|
||||
|
|
@ -76,7 +75,7 @@ public class RRPCNotificationBuilder extends NotificationBuilder {
|
|||
Map<String, String> valuesForTemplate = new HashMap<>();
|
||||
fillHeaderValues(valuesForTemplate, notificationId);
|
||||
|
||||
valuesForTemplate.put("${relationUpdatedAt}", dateFormatter.format(updatedAt.atZone(ZoneId.systemDefault()).toLocalDate()));
|
||||
valuesForTemplate.put("${relationUpdatedAt}", dateFormatter.format(updatedAt.atZone(TimeUtil.getReportTimeZone()).toLocalDate()));
|
||||
valuesForTemplate.put("${companyFullName}", company.getFullName());
|
||||
valuesForTemplate.put("${companyShortName}", company.getShortName());
|
||||
valuesForTemplate.put("${companySymbolsINN}", companySymbols.getCompanySymbolValue());
|
||||
|
|
|
|||
|
|
@ -159,8 +159,14 @@ public abstract class CSVReportBuilder<P, R> {
|
|||
String[] headers = new String[this.getFieldMap().values().size()];
|
||||
for (BeanField<T, Integer> field : this.getFieldMap().values()) {
|
||||
CsvBindByPosition positionAnnotation = field.getField().getAnnotation(CsvBindByPosition.class);
|
||||
CsvCustomBindByPosition positionAnnotation2 = field.getField().getAnnotation(CsvCustomBindByPosition.class);
|
||||
CsvBindByName nameAnnotation = field.getField().getAnnotation(CsvBindByName.class);
|
||||
headers[positionAnnotation.position()] = nameAnnotation.column();
|
||||
if (positionAnnotation != null) {
|
||||
headers[positionAnnotation.position()] = nameAnnotation.column();
|
||||
}
|
||||
if (positionAnnotation2 != null) {
|
||||
headers[positionAnnotation2.position()] = nameAnnotation.column();
|
||||
}
|
||||
}
|
||||
return headers;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
package ru.spcex.clearing.reports.reports.bean.converter;
|
||||
|
||||
import com.opencsv.bean.AbstractBeanField;
|
||||
import com.opencsv.exceptions.CsvConstraintViolationException;
|
||||
import com.opencsv.exceptions.CsvDataTypeMismatchException;
|
||||
import com.opencsv.exceptions.CsvRequiredFieldEmptyException;
|
||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* see @CsvCustomBindByPosition(position = 5, converter = LocalTimeConverter.class)
|
||||
* see @CsvDate(value = "dd.MM.yyyy'T'HH:mm:ss")
|
||||
* dd.MM.yyyy'T'HH:mm:ss
|
||||
*/
|
||||
public class InstantDateTimeDConverter extends AbstractBeanField {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy'T'HH:mm:ss")
|
||||
.withLocale(Locale.getDefault())
|
||||
.withZone(TimeUtil.getReportTimeZone());
|
||||
|
||||
@Override
|
||||
protected Object convert(String s) throws CsvDataTypeMismatchException, CsvConstraintViolationException {
|
||||
Instant parse = Instant.from(formatter.parse(s)); // not tested
|
||||
return parse;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String convertToWrite(Object value) throws CsvDataTypeMismatchException, CsvRequiredFieldEmptyException {
|
||||
if (value == null) return "";
|
||||
return formatter.format((Instant) value);
|
||||
}
|
||||
}
|
||||
|
|
@ -7,6 +7,7 @@ import ru.clearing.classes.statics.data.misc.Session;
|
|||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
||||
import ru.spcex.clearing.reports.reports.bean.ExecutedDealReport;
|
||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
||||
import ru.spcex.platform.enumeration.ReportBuilderType;
|
||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
|
|
@ -79,7 +80,7 @@ public abstract class ExecutedDealReportBuilderCommon<P> extends CSVReportBuilde
|
|||
executedDealReport.setTradeDate(executionFond.getTradingDate());
|
||||
|
||||
if (executionFond.getExchangeExecutionTime() != null)
|
||||
executedDealReport.setTradeTime(LocalDateTime.ofInstant(executionFond.getExchangeExecutionTime(), ZoneId.systemDefault()));
|
||||
executedDealReport.setTradeTime(LocalDateTime.ofInstant(executionFond.getExchangeExecutionTime(), TimeUtil.getReportTimeZone()));
|
||||
|
||||
executedDealReport.setSettleDate(executionFond.getSettlementDate());
|
||||
executedDealReport.setSettleCode(executionFond.getSettlementCode());
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
|||
import ru.spcex.clearing.reports.reports.PairRegistryId;
|
||||
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
||||
import ru.spcex.clearing.reports.reports.bean.KSRepCashNettoReport;
|
||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
||||
import ru.spcex.platform.enumeration.*;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
|
@ -135,7 +136,7 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder<SessionIdParam
|
|||
ksRepCashNettoReport.setSessionId(registry.getSessionId());
|
||||
|
||||
if (session != null && session.getCreated() != null)
|
||||
ksRepCashNettoReport.setSessionDate(LocalDateTime.ofInstant(session.getCreated(), ZoneId.systemDefault()));
|
||||
ksRepCashNettoReport.setSessionDate(LocalDateTime.ofInstant(session.getCreated(), TimeUtil.getReportTimeZone()));
|
||||
|
||||
ksRepCashNettoReport.setAccount(registry.getAccount());
|
||||
ksRepCashNettoReport.setDate(nowDate);
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
|||
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
||||
import ru.spcex.clearing.reports.reports.EmptyParams;
|
||||
import ru.spcex.clearing.reports.reports.bean.KSRepCashRegisterSumsReport;
|
||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
||||
import ru.spcex.platform.enumeration.*;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
|
@ -19,7 +20,6 @@ import ru.spcex.platform.utils.enumeration.IEnumKey;
|
|||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
|
@ -123,7 +123,7 @@ public class KSRepCashRegisterSumsReportBuilder extends CSVReportBuilder<EmptyPa
|
|||
ksRepCashRegisterSumsReport.setTkr(registry.getTradingClearingRegistry());
|
||||
ksRepCashRegisterSumsReport.setRegisterCode(registry.getRegistryCode());
|
||||
ksRepCashRegisterSumsReport.setAddDate(nowDate);
|
||||
ksRepCashRegisterSumsReport.setAddTime(LocalTime.ofInstant(statement.getUpdated(), ZoneId.systemDefault()));
|
||||
ksRepCashRegisterSumsReport.setAddTime(LocalTime.ofInstant(statement.getUpdated(), TimeUtil.getReportTimeZone()));
|
||||
|
||||
InOutDirection inOutDirection = IEnumKey.getEnumByKey(InOutDirection.class, statement.getInOutDirection());
|
||||
if (inOutDirection == InOutDirection.in) {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
|||
import ru.spcex.clearing.reports.reports.PairRegistryId;
|
||||
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
||||
import ru.spcex.clearing.reports.reports.bean.KSRepDepoNettoReport;
|
||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
||||
import ru.spcex.platform.enumeration.*;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
|
@ -134,7 +135,7 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder<SessionIdParam
|
|||
|
||||
Session session = sessionImdg.getSingleObjectByID(registry.getSessionId());
|
||||
if (session != null && session.getCreated() != null)
|
||||
ksRepDepoNettoReport.setSessionDate(LocalDateTime.ofInstant(session.getCreated(), ZoneId.systemDefault()));
|
||||
ksRepDepoNettoReport.setSessionDate(LocalDateTime.ofInstant(session.getCreated(), TimeUtil.getReportTimeZone()));
|
||||
|
||||
BigDecimal tstBalance = BigDecimal.ZERO;
|
||||
BigDecimal ostBalance = BigDecimal.ZERO;
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
|||
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
||||
import ru.spcex.clearing.reports.reports.EmptyParams;
|
||||
import ru.spcex.clearing.reports.reports.bean.KSRepDepoRegisterQuantitiesReport;
|
||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
||||
import ru.spcex.platform.enumeration.*;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
|
@ -23,7 +24,6 @@ import ru.spcex.platform.utils.enumeration.IEnumKey;
|
|||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
|
@ -145,7 +145,7 @@ public class KSRepDepoRegisterQuantitiesReportBuilder extends CSVReportBuilder<E
|
|||
ksRepDepoRegisterQuantitiesReport.setSecurityId(security.getSecuritySymbol());
|
||||
ksRepDepoRegisterQuantitiesReport.setRegisterCode(registry.getRegistryCode());
|
||||
ksRepDepoRegisterQuantitiesReport.setAddDate(nowDate);
|
||||
ksRepDepoRegisterQuantitiesReport.setAddTime(LocalTime.ofInstant(statement.getUpdated(), ZoneId.systemDefault()));
|
||||
ksRepDepoRegisterQuantitiesReport.setAddTime(LocalTime.ofInstant(statement.getUpdated(), TimeUtil.getReportTimeZone()));
|
||||
|
||||
InOutDirection inOutDirection = IEnumKey.getEnumByKey(InOutDirection.class, statement.getInOutDirection());
|
||||
if (inOutDirection == InOutDirection.in) {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
|||
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
||||
import ru.spcex.clearing.reports.reports.EmptyParams;
|
||||
import ru.spcex.clearing.reports.reports.bean.KSRepTradesReport;
|
||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
||||
import ru.spcex.platform.enumeration.*;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
|
@ -121,7 +122,7 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSRe
|
|||
if (execution.getSessionId() != null) {
|
||||
Session session = sessionImdg.getSingleObjectByID(execution.getSessionId());
|
||||
if (session != null && session.getCreated() != null)
|
||||
ksRepTradesReport.setSessionDate(LocalDateTime.ofInstant(session.getCreated(), ZoneId.systemDefault()));
|
||||
ksRepTradesReport.setSessionDate(LocalDateTime.ofInstant(session.getCreated(), TimeUtil.getReportTimeZone()));
|
||||
} else {
|
||||
log.info("Execution id = {} was skipped: session_id is null", execution.getId());
|
||||
continue;
|
||||
|
|
@ -141,7 +142,7 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSRe
|
|||
ksRepTradesReport.setClassCode(execution.getMarket());
|
||||
|
||||
if (execution.getExchangeExecutionTime() != null)
|
||||
ksRepTradesReport.setTradeDate(LocalDateTime.ofInstant(execution.getExchangeExecutionTime(), ZoneId.systemDefault()));
|
||||
ksRepTradesReport.setTradeDate(LocalDateTime.ofInstant(execution.getExchangeExecutionTime(), TimeUtil.getReportTimeZone()));
|
||||
|
||||
String status = "0";
|
||||
if (execution.getCoverageStatus() != null) {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
|||
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
||||
import ru.spcex.clearing.reports.reports.EmptyParams;
|
||||
import ru.spcex.clearing.reports.reports.bean.KSSessionListReport;
|
||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
||||
import ru.spcex.platform.enumeration.ReportBuilderType;
|
||||
import ru.spcex.platform.enumeration.ReportKeys;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
|
|
@ -63,9 +64,9 @@ public class KSSessionListReportBuilder extends CSVReportBuilder<EmptyParams, KS
|
|||
KSSessionListReport ksSessionListReport = new KSSessionListReport();
|
||||
ksSessionListReport.setId(session.getId());
|
||||
if (session.getCreated() != null)
|
||||
ksSessionListReport.setCreatedAt(LocalDateTime.ofInstant(session.getCreated(), ZoneId.systemDefault()));
|
||||
ksSessionListReport.setCreatedAt(LocalDateTime.ofInstant(session.getCreated(), TimeUtil.getReportTimeZone()));
|
||||
if (session.getUpdated() != null)
|
||||
ksSessionListReport.setUpdatedAt(LocalDateTime.ofInstant(session.getUpdated(), ZoneId.systemDefault()));
|
||||
ksSessionListReport.setUpdatedAt(LocalDateTime.ofInstant(session.getUpdated(), TimeUtil.getReportTimeZone()));
|
||||
ksSessionListReport.setSection(session.getSection());
|
||||
ksSessionListReport.setSessionType(session.getSessionType());
|
||||
ksSessionListReport.setWorkflowStatus(session.getWorkflowStatus());
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
package ru.spcex.clearing.reports.util;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.util.Locale;
|
||||
|
||||
public class TimeUtil {
|
||||
public static Locale getLocale() {
|
||||
return Locale.getDefault();
|
||||
}
|
||||
|
||||
public static ZoneId getReportTimeZone() {
|
||||
return ZoneId.of("Europe/Moscow"); // В Петербурге используется часовой пояс Europe/Moscow UTC+3
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue