http://jira.mfd.msk:8088/browse/CLS-497 zone id fix
This commit is contained in:
parent
37885e9879
commit
54d2183b45
17 changed files with 41 additions and 99 deletions
|
|
@ -8,7 +8,6 @@ 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;
|
||||
|
|
@ -65,7 +64,7 @@ public class NTCRNotificationBuilder extends NotificationBuilder {
|
|||
|
||||
Map<String, String> valuesForTemplate = new HashMap<>();
|
||||
|
||||
valuesForTemplate.put("${createdAt}", dateFormatter.format(createdAt.atZone(TimeUtil.getReportTimeZone()).toLocalDate()));
|
||||
valuesForTemplate.put("${createdAt}", dateFormatter.format(createdAt.atZone(getNotificationZoneId()).toLocalDate()));
|
||||
valuesForTemplate.put("${date}", LocalDate.now().format(dateFormatterYYMMDD));
|
||||
valuesForTemplate.put("${TCRCode}", getNotNull(tradingClearingRegistry.getCode()));
|
||||
valuesForTemplate.put("${companyFullName}", getNotNull(company.getFullName()));
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import ru.spcex.platform.imdg.api.Imdg;
|
|||
import java.io.File;
|
||||
import java.net.URL;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.TextStyle;
|
||||
import java.util.Collection;
|
||||
|
|
@ -37,6 +38,10 @@ public abstract class NotificationBuilder {
|
|||
return buildNotification(consumerId);
|
||||
}
|
||||
|
||||
protected ZoneId getNotificationZoneId() {
|
||||
return ZoneId.of("Europe/Moscow");
|
||||
}
|
||||
|
||||
protected void fillHeaderValues(Map<String, String> valuesMap, Long notificationId) {
|
||||
LocalDate notificationDate = LocalDate.now();
|
||||
int day = notificationDate.getDayOfMonth();
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ 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;
|
||||
|
||||
|
|
@ -77,7 +76,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(TimeUtil.getReportTimeZone()).toLocalDate()));
|
||||
valuesForTemplate.put("${relationUpdatedAt}", dateFormatter.format(updatedAt.atZone(getNotificationZoneId()).toLocalDate()));
|
||||
|
||||
String outputFilename = "ROOT.ACTV.%s.%s.docx".formatted(companyClearingCode, filenameDateTimeFormatter.format(LocalDateTime.now()));
|
||||
outputFilename = normalizeFilenameForOS(outputFilename);
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ 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;
|
||||
|
||||
|
|
@ -77,7 +76,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(TimeUtil.getReportTimeZone()).toLocalDate()));
|
||||
valuesForTemplate.put("${relationUpdatedAt}", dateFormatter.format(updatedAt.atZone(getNotificationZoneId()).toLocalDate()));
|
||||
|
||||
String outputFilename = "ROOT.BLKD.%s.%s.docx".formatted(companyClearingCode, filenameDateTimeFormatter.format(LocalDateTime.now()));
|
||||
outputFilename = normalizeFilenameForOS(outputFilename);
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ 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;
|
||||
|
||||
|
|
@ -77,7 +76,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(TimeUtil.getReportTimeZone()).toLocalDate()));
|
||||
valuesForTemplate.put("${relationUpdatedAt}", dateFormatter.format(updatedAt.atZone(getNotificationZoneId()).toLocalDate()));
|
||||
|
||||
String outputFilename = "ROOT.SSPD.%s.%s.docx".formatted(companyClearingCode, filenameDateTimeFormatter.format(LocalDateTime.now()));
|
||||
outputFilename = normalizeFilenameForOS(outputFilename);
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ 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;
|
||||
|
||||
|
|
@ -75,7 +74,7 @@ public class RRPCNotificationBuilder extends NotificationBuilder {
|
|||
Map<String, String> valuesForTemplate = new HashMap<>();
|
||||
fillHeaderValues(valuesForTemplate, notificationId);
|
||||
|
||||
valuesForTemplate.put("${relationUpdatedAt}", dateFormatter.format(updatedAt.atZone(TimeUtil.getReportTimeZone()).toLocalDate()));
|
||||
valuesForTemplate.put("${relationUpdatedAt}", dateFormatter.format(updatedAt.atZone(getNotificationZoneId()).toLocalDate()));
|
||||
valuesForTemplate.put("${companyFullName}", company.getFullName());
|
||||
valuesForTemplate.put("${companyShortName}", company.getShortName());
|
||||
valuesForTemplate.put("${companySymbolsINN}", companySymbols.getCompanySymbolValue());
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import java.lang.reflect.Field;
|
|||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
|
@ -43,6 +44,13 @@ public abstract class CSVReportBuilder<P, R> {
|
|||
*/
|
||||
protected abstract List<R> getRows();
|
||||
|
||||
/**
|
||||
* Временной пояс для отчета
|
||||
*/
|
||||
protected ZoneId getReportZoneId() {
|
||||
return ZoneId.of("Europe/Moscow");
|
||||
}
|
||||
|
||||
/**
|
||||
* Название отчета, используется для формирования имени отчета (без указания формата)
|
||||
*
|
||||
|
|
@ -79,7 +87,7 @@ public abstract class CSVReportBuilder<P, R> {
|
|||
/**
|
||||
* Формирование отчета на основе параметров
|
||||
*
|
||||
* @param params Параметры формирования отчета
|
||||
* @param params Параметры формирования отчета
|
||||
*/
|
||||
protected abstract void collect(P params);
|
||||
|
||||
|
|
@ -88,7 +96,7 @@ public abstract class CSVReportBuilder<P, R> {
|
|||
*
|
||||
* @param file Файл отчета
|
||||
* @return Созданный CSVWriter
|
||||
*
|
||||
* <p>
|
||||
* todo check it
|
||||
*/
|
||||
protected ICSVWriter createCsvWriter(File file) throws IOException {
|
||||
|
|
@ -153,20 +161,13 @@ public abstract class CSVReportBuilder<P, R> {
|
|||
}
|
||||
|
||||
static class CustomStrategy<T> extends ColumnPositionMappingStrategy<T> {
|
||||
@Override
|
||||
public String[] generateHeader(T bean) throws CsvRequiredFieldEmptyException {
|
||||
super.generateHeader(bean);
|
||||
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);
|
||||
if (positionAnnotation != null) {
|
||||
headers[positionAnnotation.position()] = nameAnnotation.column();
|
||||
}
|
||||
if (positionAnnotation2 != null) {
|
||||
headers[positionAnnotation2.position()] = nameAnnotation.column();
|
||||
}
|
||||
headers[positionAnnotation.position()] = nameAnnotation.column();
|
||||
}
|
||||
return headers;
|
||||
}
|
||||
|
|
@ -190,7 +191,7 @@ public abstract class CSVReportBuilder<P, R> {
|
|||
formatValue,
|
||||
writeFormat);
|
||||
}
|
||||
return csvConverter;
|
||||
return csvConverter;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,34 +0,0 @@
|
|||
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,7 +7,6 @@ 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;
|
||||
|
|
@ -15,7 +14,6 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
|
@ -80,7 +78,7 @@ public abstract class ExecutedDealReportBuilderCommon<P> extends CSVReportBuilde
|
|||
executedDealReport.setTradeDate(executionFond.getTradingDate());
|
||||
|
||||
if (executionFond.getExchangeExecutionTime() != null)
|
||||
executedDealReport.setTradeTime(LocalDateTime.ofInstant(executionFond.getExchangeExecutionTime(), TimeUtil.getReportTimeZone()));
|
||||
executedDealReport.setTradeTime(LocalDateTime.ofInstant(executionFond.getExchangeExecutionTime(), getReportZoneId()));
|
||||
|
||||
executedDealReport.setSettleDate(executionFond.getSettlementDate());
|
||||
executedDealReport.setSettleCode(executionFond.getSettlementCode());
|
||||
|
|
|
|||
|
|
@ -158,19 +158,20 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
continue;
|
||||
}
|
||||
|
||||
String tradeNum = extractPartAgreementNumber(String.valueOf(omtRegistry.getGroupId()));
|
||||
if (tradeNum == null) {
|
||||
log.warn("Can't extract ExchangeExecutionId from GroupId (groupId = {} for OM_T registry id = {}). " +
|
||||
"Registry id = {} skipped",
|
||||
omtRegistry.getGroupId(),
|
||||
omtRegistry.getId(),
|
||||
registry.getId());
|
||||
continue;
|
||||
}
|
||||
// String tradeNum = extractPartAgreementNumber(String.valueOf(omtRegistry.getGroupId()));
|
||||
// if (tradeNum == null) {
|
||||
// log.warn("Can't extract TradeNum from GroupId (groupId = {} for OM_T registry id = {}). " +
|
||||
// "Registry id = {} skipped",
|
||||
// omtRegistry.getGroupId(),
|
||||
// omtRegistry.getId(),
|
||||
// registry.getId());
|
||||
// continue;
|
||||
// }
|
||||
|
||||
String agreementNumber = registry.getContract();
|
||||
if (agreementNumber != null && agreementNumber.contains("~"))
|
||||
agreementNumber = agreementNumber.substring(0, agreementNumber.indexOf("~"));
|
||||
|
||||
String agreementNumberPostfix = registry.getContract();
|
||||
if (agreementNumberPostfix != null && !agreementNumberPostfix.contains("~"))
|
||||
agreementNumberPostfix = "";
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ 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;
|
||||
|
|
@ -19,7 +18,6 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
|||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
|
@ -136,7 +134,7 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder<SessionIdParam
|
|||
ksRepCashNettoReport.setSessionId(registry.getSessionId());
|
||||
|
||||
if (session != null && session.getCreated() != null)
|
||||
ksRepCashNettoReport.setSessionDate(LocalDateTime.ofInstant(session.getCreated(), TimeUtil.getReportTimeZone()));
|
||||
ksRepCashNettoReport.setSessionDate(LocalDateTime.ofInstant(session.getCreated(), getReportZoneId()));
|
||||
|
||||
ksRepCashNettoReport.setAccount(registry.getAccount());
|
||||
ksRepCashNettoReport.setDate(nowDate);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ 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;
|
||||
|
|
@ -123,7 +122,7 @@ public class KSRepCashRegisterSumsReportBuilder extends CSVReportBuilder<EmptyPa
|
|||
ksRepCashRegisterSumsReport.setTkr(registry.getTradingClearingRegistry());
|
||||
ksRepCashRegisterSumsReport.setRegisterCode(registry.getRegistryCode());
|
||||
ksRepCashRegisterSumsReport.setAddDate(nowDate);
|
||||
ksRepCashRegisterSumsReport.setAddTime(LocalTime.ofInstant(statement.getUpdated(), TimeUtil.getReportTimeZone()));
|
||||
ksRepCashRegisterSumsReport.setAddTime(LocalTime.ofInstant(statement.getUpdated(), getReportZoneId()));
|
||||
|
||||
InOutDirection inOutDirection = IEnumKey.getEnumByKey(InOutDirection.class, statement.getInOutDirection());
|
||||
if (inOutDirection == InOutDirection.in) {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ 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;
|
||||
|
|
@ -19,7 +18,6 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
|||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
|
@ -135,7 +133,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(), TimeUtil.getReportTimeZone()));
|
||||
ksRepDepoNettoReport.setSessionDate(LocalDateTime.ofInstant(session.getCreated(), getReportZoneId()));
|
||||
|
||||
BigDecimal tstBalance = BigDecimal.ZERO;
|
||||
BigDecimal ostBalance = BigDecimal.ZERO;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ 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;
|
||||
|
|
@ -145,7 +144,7 @@ public class KSRepDepoRegisterQuantitiesReportBuilder extends CSVReportBuilder<E
|
|||
ksRepDepoRegisterQuantitiesReport.setSecurityId(security.getSecuritySymbol());
|
||||
ksRepDepoRegisterQuantitiesReport.setRegisterCode(registry.getRegistryCode());
|
||||
ksRepDepoRegisterQuantitiesReport.setAddDate(nowDate);
|
||||
ksRepDepoRegisterQuantitiesReport.setAddTime(LocalTime.ofInstant(statement.getUpdated(), TimeUtil.getReportTimeZone()));
|
||||
ksRepDepoRegisterQuantitiesReport.setAddTime(LocalTime.ofInstant(statement.getUpdated(), getReportZoneId()));
|
||||
|
||||
InOutDirection inOutDirection = IEnumKey.getEnumByKey(InOutDirection.class, statement.getInOutDirection());
|
||||
if (inOutDirection == InOutDirection.in) {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ 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;
|
||||
|
|
@ -24,7 +23,6 @@ import ru.spcex.platform.utils.enumeration.IEnumKey;
|
|||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
|
@ -122,7 +120,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(), TimeUtil.getReportTimeZone()));
|
||||
ksRepTradesReport.setSessionDate(LocalDateTime.ofInstant(session.getCreated(), getReportZoneId()));
|
||||
} else {
|
||||
log.info("Execution id = {} was skipped: session_id is null", execution.getId());
|
||||
continue;
|
||||
|
|
@ -142,7 +140,7 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSRe
|
|||
ksRepTradesReport.setClassCode(execution.getMarket());
|
||||
|
||||
if (execution.getExchangeExecutionTime() != null)
|
||||
ksRepTradesReport.setTradeDate(LocalDateTime.ofInstant(execution.getExchangeExecutionTime(), TimeUtil.getReportTimeZone()));
|
||||
ksRepTradesReport.setTradeDate(LocalDateTime.ofInstant(execution.getExchangeExecutionTime(), getReportZoneId()));
|
||||
|
||||
String status = "0";
|
||||
if (execution.getCoverageStatus() != null) {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ 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;
|
||||
|
|
@ -14,7 +13,6 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
|
|||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
|
@ -64,9 +62,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(), TimeUtil.getReportTimeZone()));
|
||||
ksSessionListReport.setCreatedAt(LocalDateTime.ofInstant(session.getCreated(), getReportZoneId()));
|
||||
if (session.getUpdated() != null)
|
||||
ksSessionListReport.setUpdatedAt(LocalDateTime.ofInstant(session.getUpdated(), TimeUtil.getReportTimeZone()));
|
||||
ksSessionListReport.setUpdatedAt(LocalDateTime.ofInstant(session.getUpdated(), getReportZoneId()));
|
||||
ksSessionListReport.setSection(session.getSection());
|
||||
ksSessionListReport.setSessionType(session.getSessionType());
|
||||
ksSessionListReport.setWorkflowStatus(session.getWorkflowStatus());
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
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