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.company.CompanySymbols;
|
||||||
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
|
||||||
import ru.spcex.platform.enumeration.CompanySymbol;
|
import ru.spcex.platform.enumeration.CompanySymbol;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
@ -65,7 +64,7 @@ public class NTCRNotificationBuilder extends NotificationBuilder {
|
||||||
|
|
||||||
Map<String, String> valuesForTemplate = new HashMap<>();
|
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("${date}", LocalDate.now().format(dateFormatterYYMMDD));
|
||||||
valuesForTemplate.put("${TCRCode}", getNotNull(tradingClearingRegistry.getCode()));
|
valuesForTemplate.put("${TCRCode}", getNotNull(tradingClearingRegistry.getCode()));
|
||||||
valuesForTemplate.put("${companyFullName}", getNotNull(company.getFullName()));
|
valuesForTemplate.put("${companyFullName}", getNotNull(company.getFullName()));
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.time.ZoneId;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.format.TextStyle;
|
import java.time.format.TextStyle;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
@ -37,6 +38,10 @@ public abstract class NotificationBuilder {
|
||||||
return buildNotification(consumerId);
|
return buildNotification(consumerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected ZoneId getNotificationZoneId() {
|
||||||
|
return ZoneId.of("Europe/Moscow");
|
||||||
|
}
|
||||||
|
|
||||||
protected void fillHeaderValues(Map<String, String> valuesMap, Long notificationId) {
|
protected void fillHeaderValues(Map<String, String> valuesMap, Long notificationId) {
|
||||||
LocalDate notificationDate = LocalDate.now();
|
LocalDate notificationDate = LocalDate.now();
|
||||||
int day = notificationDate.getDayOfMonth();
|
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.CompanySymbols;
|
||||||
import ru.clearing.classes.statics.data.company.relation.Relation;
|
import ru.clearing.classes.statics.data.company.relation.Relation;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
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.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
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("${companyFullName}", company.getFullName());
|
||||||
valuesForTemplate.put("${companySymbolsINN}", companySymbols.getCompanySymbolValue());
|
valuesForTemplate.put("${companySymbolsINN}", companySymbols.getCompanySymbolValue());
|
||||||
valuesForTemplate.put("${companyClearingCode}", companyClearingCode);
|
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()));
|
String outputFilename = "ROOT.ACTV.%s.%s.docx".formatted(companyClearingCode, filenameDateTimeFormatter.format(LocalDateTime.now()));
|
||||||
outputFilename = normalizeFilenameForOS(outputFilename);
|
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.CompanySymbols;
|
||||||
import ru.clearing.classes.statics.data.company.relation.Relation;
|
import ru.clearing.classes.statics.data.company.relation.Relation;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
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.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
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("${companyFullName}", company.getFullName());
|
||||||
valuesForTemplate.put("${companySymbolsINN}", companySymbols.getCompanySymbolValue());
|
valuesForTemplate.put("${companySymbolsINN}", companySymbols.getCompanySymbolValue());
|
||||||
valuesForTemplate.put("${companyClearingCode}", companyClearingCode);
|
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()));
|
String outputFilename = "ROOT.BLKD.%s.%s.docx".formatted(companyClearingCode, filenameDateTimeFormatter.format(LocalDateTime.now()));
|
||||||
outputFilename = normalizeFilenameForOS(outputFilename);
|
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.CompanySymbols;
|
||||||
import ru.clearing.classes.statics.data.company.relation.Relation;
|
import ru.clearing.classes.statics.data.company.relation.Relation;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
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.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
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("${companyFullName}", company.getFullName());
|
||||||
valuesForTemplate.put("${companySymbolsINN}", companySymbols.getCompanySymbolValue());
|
valuesForTemplate.put("${companySymbolsINN}", companySymbols.getCompanySymbolValue());
|
||||||
valuesForTemplate.put("${companyClearingCode}", companyClearingCode);
|
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()));
|
String outputFilename = "ROOT.SSPD.%s.%s.docx".formatted(companyClearingCode, filenameDateTimeFormatter.format(LocalDateTime.now()));
|
||||||
outputFilename = normalizeFilenameForOS(outputFilename);
|
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.CompanySymbols;
|
||||||
import ru.clearing.classes.statics.data.company.relation.Relation;
|
import ru.clearing.classes.statics.data.company.relation.Relation;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
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.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
||||||
|
|
@ -75,7 +74,7 @@ public class RRPCNotificationBuilder extends NotificationBuilder {
|
||||||
Map<String, String> valuesForTemplate = new HashMap<>();
|
Map<String, String> valuesForTemplate = new HashMap<>();
|
||||||
fillHeaderValues(valuesForTemplate, notificationId);
|
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("${companyFullName}", company.getFullName());
|
||||||
valuesForTemplate.put("${companyShortName}", company.getShortName());
|
valuesForTemplate.put("${companyShortName}", company.getShortName());
|
||||||
valuesForTemplate.put("${companySymbolsINN}", companySymbols.getCompanySymbolValue());
|
valuesForTemplate.put("${companySymbolsINN}", companySymbols.getCompanySymbolValue());
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ import java.lang.reflect.Field;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.ZoneId;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
@ -43,6 +44,13 @@ public abstract class CSVReportBuilder<P, R> {
|
||||||
*/
|
*/
|
||||||
protected abstract List<R> getRows();
|
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);
|
protected abstract void collect(P params);
|
||||||
|
|
||||||
|
|
@ -88,7 +96,7 @@ public abstract class CSVReportBuilder<P, R> {
|
||||||
*
|
*
|
||||||
* @param file Файл отчета
|
* @param file Файл отчета
|
||||||
* @return Созданный CSVWriter
|
* @return Созданный CSVWriter
|
||||||
*
|
* <p>
|
||||||
* todo check it
|
* todo check it
|
||||||
*/
|
*/
|
||||||
protected ICSVWriter createCsvWriter(File file) throws IOException {
|
protected ICSVWriter createCsvWriter(File file) throws IOException {
|
||||||
|
|
@ -153,20 +161,13 @@ public abstract class CSVReportBuilder<P, R> {
|
||||||
}
|
}
|
||||||
|
|
||||||
static class CustomStrategy<T> extends ColumnPositionMappingStrategy<T> {
|
static class CustomStrategy<T> extends ColumnPositionMappingStrategy<T> {
|
||||||
@Override
|
|
||||||
public String[] generateHeader(T bean) throws CsvRequiredFieldEmptyException {
|
public String[] generateHeader(T bean) throws CsvRequiredFieldEmptyException {
|
||||||
super.generateHeader(bean);
|
super.generateHeader(bean);
|
||||||
String[] headers = new String[this.getFieldMap().values().size()];
|
String[] headers = new String[this.getFieldMap().values().size()];
|
||||||
for (BeanField<T, Integer> field : this.getFieldMap().values()) {
|
for (BeanField<T, Integer> field : this.getFieldMap().values()) {
|
||||||
CsvBindByPosition positionAnnotation = field.getField().getAnnotation(CsvBindByPosition.class);
|
CsvBindByPosition positionAnnotation = field.getField().getAnnotation(CsvBindByPosition.class);
|
||||||
CsvCustomBindByPosition positionAnnotation2 = field.getField().getAnnotation(CsvCustomBindByPosition.class);
|
|
||||||
CsvBindByName nameAnnotation = field.getField().getAnnotation(CsvBindByName.class);
|
CsvBindByName nameAnnotation = field.getField().getAnnotation(CsvBindByName.class);
|
||||||
if (positionAnnotation != null) {
|
headers[positionAnnotation.position()] = nameAnnotation.column();
|
||||||
headers[positionAnnotation.position()] = nameAnnotation.column();
|
|
||||||
}
|
|
||||||
if (positionAnnotation2 != null) {
|
|
||||||
headers[positionAnnotation2.position()] = nameAnnotation.column();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return headers;
|
return headers;
|
||||||
}
|
}
|
||||||
|
|
@ -190,7 +191,7 @@ public abstract class CSVReportBuilder<P, R> {
|
||||||
formatValue,
|
formatValue,
|
||||||
writeFormat);
|
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.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
||||||
import ru.spcex.clearing.reports.reports.bean.ExecutedDealReport;
|
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.ReportBuilderType;
|
||||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
|
|
@ -15,7 +14,6 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
@ -80,7 +78,7 @@ public abstract class ExecutedDealReportBuilderCommon<P> extends CSVReportBuilde
|
||||||
executedDealReport.setTradeDate(executionFond.getTradingDate());
|
executedDealReport.setTradeDate(executionFond.getTradingDate());
|
||||||
|
|
||||||
if (executionFond.getExchangeExecutionTime() != null)
|
if (executionFond.getExchangeExecutionTime() != null)
|
||||||
executedDealReport.setTradeTime(LocalDateTime.ofInstant(executionFond.getExchangeExecutionTime(), TimeUtil.getReportTimeZone()));
|
executedDealReport.setTradeTime(LocalDateTime.ofInstant(executionFond.getExchangeExecutionTime(), getReportZoneId()));
|
||||||
|
|
||||||
executedDealReport.setSettleDate(executionFond.getSettlementDate());
|
executedDealReport.setSettleDate(executionFond.getSettlementDate());
|
||||||
executedDealReport.setSettleCode(executionFond.getSettlementCode());
|
executedDealReport.setSettleCode(executionFond.getSettlementCode());
|
||||||
|
|
|
||||||
|
|
@ -158,19 +158,20 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
String tradeNum = extractPartAgreementNumber(String.valueOf(omtRegistry.getGroupId()));
|
// String tradeNum = extractPartAgreementNumber(String.valueOf(omtRegistry.getGroupId()));
|
||||||
if (tradeNum == null) {
|
// if (tradeNum == null) {
|
||||||
log.warn("Can't extract ExchangeExecutionId from GroupId (groupId = {} for OM_T registry id = {}). " +
|
// log.warn("Can't extract TradeNum from GroupId (groupId = {} for OM_T registry id = {}). " +
|
||||||
"Registry id = {} skipped",
|
// "Registry id = {} skipped",
|
||||||
omtRegistry.getGroupId(),
|
// omtRegistry.getGroupId(),
|
||||||
omtRegistry.getId(),
|
// omtRegistry.getId(),
|
||||||
registry.getId());
|
// registry.getId());
|
||||||
continue;
|
// continue;
|
||||||
}
|
// }
|
||||||
|
|
||||||
String agreementNumber = registry.getContract();
|
String agreementNumber = registry.getContract();
|
||||||
if (agreementNumber != null && agreementNumber.contains("~"))
|
if (agreementNumber != null && agreementNumber.contains("~"))
|
||||||
agreementNumber = agreementNumber.substring(0, agreementNumber.indexOf("~"));
|
agreementNumber = agreementNumber.substring(0, agreementNumber.indexOf("~"));
|
||||||
|
|
||||||
String agreementNumberPostfix = registry.getContract();
|
String agreementNumberPostfix = registry.getContract();
|
||||||
if (agreementNumberPostfix != null && !agreementNumberPostfix.contains("~"))
|
if (agreementNumberPostfix != null && !agreementNumberPostfix.contains("~"))
|
||||||
agreementNumberPostfix = "";
|
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.PairRegistryId;
|
||||||
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
||||||
import ru.spcex.clearing.reports.reports.bean.KSRepCashNettoReport;
|
import ru.spcex.clearing.reports.reports.bean.KSRepCashNettoReport;
|
||||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
|
||||||
import ru.spcex.platform.enumeration.*;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
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.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -136,7 +134,7 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder<SessionIdParam
|
||||||
ksRepCashNettoReport.setSessionId(registry.getSessionId());
|
ksRepCashNettoReport.setSessionId(registry.getSessionId());
|
||||||
|
|
||||||
if (session != null && session.getCreated() != null)
|
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.setAccount(registry.getAccount());
|
||||||
ksRepCashNettoReport.setDate(nowDate);
|
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.CSVReportBuilder;
|
||||||
import ru.spcex.clearing.reports.reports.EmptyParams;
|
import ru.spcex.clearing.reports.reports.EmptyParams;
|
||||||
import ru.spcex.clearing.reports.reports.bean.KSRepCashRegisterSumsReport;
|
import ru.spcex.clearing.reports.reports.bean.KSRepCashRegisterSumsReport;
|
||||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
|
||||||
import ru.spcex.platform.enumeration.*;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
@ -123,7 +122,7 @@ public class KSRepCashRegisterSumsReportBuilder extends CSVReportBuilder<EmptyPa
|
||||||
ksRepCashRegisterSumsReport.setTkr(registry.getTradingClearingRegistry());
|
ksRepCashRegisterSumsReport.setTkr(registry.getTradingClearingRegistry());
|
||||||
ksRepCashRegisterSumsReport.setRegisterCode(registry.getRegistryCode());
|
ksRepCashRegisterSumsReport.setRegisterCode(registry.getRegistryCode());
|
||||||
ksRepCashRegisterSumsReport.setAddDate(nowDate);
|
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());
|
InOutDirection inOutDirection = IEnumKey.getEnumByKey(InOutDirection.class, statement.getInOutDirection());
|
||||||
if (inOutDirection == InOutDirection.in) {
|
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.PairRegistryId;
|
||||||
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
import ru.spcex.clearing.reports.reports.SessionIdParam;
|
||||||
import ru.spcex.clearing.reports.reports.bean.KSRepDepoNettoReport;
|
import ru.spcex.clearing.reports.reports.bean.KSRepDepoNettoReport;
|
||||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
|
||||||
import ru.spcex.platform.enumeration.*;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
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.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -135,7 +133,7 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder<SessionIdParam
|
||||||
|
|
||||||
Session session = sessionImdg.getSingleObjectByID(registry.getSessionId());
|
Session session = sessionImdg.getSingleObjectByID(registry.getSessionId());
|
||||||
if (session != null && session.getCreated() != null)
|
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 tstBalance = BigDecimal.ZERO;
|
||||||
BigDecimal ostBalance = 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.CSVReportBuilder;
|
||||||
import ru.spcex.clearing.reports.reports.EmptyParams;
|
import ru.spcex.clearing.reports.reports.EmptyParams;
|
||||||
import ru.spcex.clearing.reports.reports.bean.KSRepDepoRegisterQuantitiesReport;
|
import ru.spcex.clearing.reports.reports.bean.KSRepDepoRegisterQuantitiesReport;
|
||||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
|
||||||
import ru.spcex.platform.enumeration.*;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
@ -145,7 +144,7 @@ public class KSRepDepoRegisterQuantitiesReportBuilder extends CSVReportBuilder<E
|
||||||
ksRepDepoRegisterQuantitiesReport.setSecurityId(security.getSecuritySymbol());
|
ksRepDepoRegisterQuantitiesReport.setSecurityId(security.getSecuritySymbol());
|
||||||
ksRepDepoRegisterQuantitiesReport.setRegisterCode(registry.getRegistryCode());
|
ksRepDepoRegisterQuantitiesReport.setRegisterCode(registry.getRegistryCode());
|
||||||
ksRepDepoRegisterQuantitiesReport.setAddDate(nowDate);
|
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());
|
InOutDirection inOutDirection = IEnumKey.getEnumByKey(InOutDirection.class, statement.getInOutDirection());
|
||||||
if (inOutDirection == InOutDirection.in) {
|
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.CSVReportBuilder;
|
||||||
import ru.spcex.clearing.reports.reports.EmptyParams;
|
import ru.spcex.clearing.reports.reports.EmptyParams;
|
||||||
import ru.spcex.clearing.reports.reports.bean.KSRepTradesReport;
|
import ru.spcex.clearing.reports.reports.bean.KSRepTradesReport;
|
||||||
import ru.spcex.clearing.reports.util.TimeUtil;
|
|
||||||
import ru.spcex.platform.enumeration.*;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
@ -24,7 +23,6 @@ import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -122,7 +120,7 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSRe
|
||||||
if (execution.getSessionId() != null) {
|
if (execution.getSessionId() != null) {
|
||||||
Session session = sessionImdg.getSingleObjectByID(execution.getSessionId());
|
Session session = sessionImdg.getSingleObjectByID(execution.getSessionId());
|
||||||
if (session != null && session.getCreated() != null)
|
if (session != null && session.getCreated() != null)
|
||||||
ksRepTradesReport.setSessionDate(LocalDateTime.ofInstant(session.getCreated(), TimeUtil.getReportTimeZone()));
|
ksRepTradesReport.setSessionDate(LocalDateTime.ofInstant(session.getCreated(), getReportZoneId()));
|
||||||
} else {
|
} else {
|
||||||
log.info("Execution id = {} was skipped: session_id is null", execution.getId());
|
log.info("Execution id = {} was skipped: session_id is null", execution.getId());
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -142,7 +140,7 @@ public class KSRepTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSRe
|
||||||
ksRepTradesReport.setClassCode(execution.getMarket());
|
ksRepTradesReport.setClassCode(execution.getMarket());
|
||||||
|
|
||||||
if (execution.getExchangeExecutionTime() != null)
|
if (execution.getExchangeExecutionTime() != null)
|
||||||
ksRepTradesReport.setTradeDate(LocalDateTime.ofInstant(execution.getExchangeExecutionTime(), TimeUtil.getReportTimeZone()));
|
ksRepTradesReport.setTradeDate(LocalDateTime.ofInstant(execution.getExchangeExecutionTime(), getReportZoneId()));
|
||||||
|
|
||||||
String status = "0";
|
String status = "0";
|
||||||
if (execution.getCoverageStatus() != null) {
|
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.CSVReportBuilder;
|
||||||
import ru.spcex.clearing.reports.reports.EmptyParams;
|
import ru.spcex.clearing.reports.reports.EmptyParams;
|
||||||
import ru.spcex.clearing.reports.reports.bean.KSSessionListReport;
|
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.ReportBuilderType;
|
||||||
import ru.spcex.platform.enumeration.ReportKeys;
|
import ru.spcex.platform.enumeration.ReportKeys;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
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.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -64,9 +62,9 @@ public class KSSessionListReportBuilder extends CSVReportBuilder<EmptyParams, KS
|
||||||
KSSessionListReport ksSessionListReport = new KSSessionListReport();
|
KSSessionListReport ksSessionListReport = new KSSessionListReport();
|
||||||
ksSessionListReport.setId(session.getId());
|
ksSessionListReport.setId(session.getId());
|
||||||
if (session.getCreated() != null)
|
if (session.getCreated() != null)
|
||||||
ksSessionListReport.setCreatedAt(LocalDateTime.ofInstant(session.getCreated(), TimeUtil.getReportTimeZone()));
|
ksSessionListReport.setCreatedAt(LocalDateTime.ofInstant(session.getCreated(), getReportZoneId()));
|
||||||
if (session.getUpdated() != null)
|
if (session.getUpdated() != null)
|
||||||
ksSessionListReport.setUpdatedAt(LocalDateTime.ofInstant(session.getUpdated(), TimeUtil.getReportTimeZone()));
|
ksSessionListReport.setUpdatedAt(LocalDateTime.ofInstant(session.getUpdated(), getReportZoneId()));
|
||||||
ksSessionListReport.setSection(session.getSection());
|
ksSessionListReport.setSection(session.getSection());
|
||||||
ksSessionListReport.setSessionType(session.getSessionType());
|
ksSessionListReport.setSessionType(session.getSessionType());
|
||||||
ksSessionListReport.setWorkflowStatus(session.getWorkflowStatus());
|
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