akulikov 2024-10-09 14:43:37 +03:00
commit 8e87025c73
8 changed files with 5288 additions and 17 deletions

View file

@ -60,6 +60,8 @@ public class STrades extends BusinessObject {
private Long tradeTimeMs;
private String bankAccId;
private String section;
private String kind;
private Long linkedTrade;
public Long getTradeNum() {
return tradeNum;
@ -412,4 +414,20 @@ public class STrades extends BusinessObject {
public void setSection(String section) {
this.section = section;
}
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
public Long getLinkedTrade() {
return linkedTrade;
}
public void setLinkedTrade(Long linkedTrade) {
this.linkedTrade = linkedTrade;
}
}

View file

@ -93,6 +93,7 @@ public class PaymSession extends AbstractSession implements InitializingBean {
dealsPrepare.addExecutionCurrencyCondition(execFondPb.in("market", marketCodes.get().toArray(new String[0])));
requirementsAndObligationCreation.setSessionType(sessionType());
formingPaymentInstructionAssets.setSessionType(sessionType());
formingPaymentInstructionAssets.setDisableCompanyCondition(true);
inclusionObligations.setSessionType(sessionType());
inspectionObligations.setSection(section());

View file

@ -7,7 +7,6 @@ import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Function;
@ -101,6 +100,7 @@ public class FormingPaymentInstructionAssets implements ISessionStage {
private SessionType sessionType;
private final PaymentStateMarkService dmvSrv;
private final AssetTBFProcessing assets;
private boolean disableCompanyCondition = false;
@Autowired
public FormingPaymentInstructionAssets(ImdgProvider imdgProvider,
@ -137,6 +137,10 @@ public class FormingPaymentInstructionAssets implements ISessionStage {
}
}
public void setDisableCompanyCondition(boolean disableCompanyCondition) {
this.disableCompanyCondition = disableCompanyCondition;
}
private Collection<Registry> selectAMBRegistries(Long sessionId) {
ImdgPredicateBuilder rgsPb = registryImdg.predicateBuilder();
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(
@ -200,10 +204,14 @@ public class FormingPaymentInstructionAssets implements ISessionStage {
if (AccountType.Clrn.equalsByKey(registry.getAccountType())) {
counterAcc = accountImdg.getSingleObjectByID(registry.getAccountId());
} else if (AccountType.Info.equalsByKey(registry.getAccountType())) {
counterAcc = accountImdg.getFirstObjectByFieldValues(
Map.of("companyId", 1L,
"currency", registry.getSecuritySymbol(),
"accountType", AccountType.Anlt.getKey())
ImdgPredicateBuilder pb = accountImdg.predicateBuilder();
ImdgPredicate prdct = pb.and(
disableCompanyCondition ? pb.alwaysTrue() : pb.equals("companyId", 1L),
pb.equals("currency", registry.getSecuritySymbol()),
pb.equals("accountType", AccountType.Anlt.getKey())
);
counterAcc = accountImdg.getFirstObjectByPredicate(
prdct
);
}
Long senderId;

View file

@ -2850,7 +2850,7 @@ GRANT ALL PRIVILEGES ON TABLE SESSION_HISTORY TO clearing;
-- sTrades - Сделки из Торговой системы
DROP TABLE IF EXISTS S_TRADES;
CREATE TABLE S_TRADES(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, TRADE_NUM bigint, OPERATION varchar(40), CLASS_CODE varchar(255), TRADE_DATE date, SEC_CODE varchar(255), ACCRUEDINT numeric(72,18), ACCRUEDINT2 numeric(72,18), LOWER_DISCOUNT numeric(72,18), ORDER_NUM bigint, PRICE numeric(72,18), PRICE2 numeric(72,18), REPO_RATE numeric(72,18), REPO_VALUE numeric(72,18), REPO2_VALUE numeric(72,18), START_DISCOUNT numeric(72,18), TS_COMMISSION numeric(72,18), UPPER_DISCOUNT numeric(72,18), VALUE numeric(72,18), YIELD numeric(72,18), QTY numeric(72,18), QTY_PCS numeric(72,18), TRADE_DATE_TIME timestamp, REPO_TERM bigint, CLEARING_COMMISSION numeric(72,18), EXCHANGE_COMMISSION numeric(72,18), TECH_CENTER_COMMISSION numeric(72,18), ACCOUNT varchar(50), BROKER_REF varchar(34), CLIENT_CODE varchar(255), SETTLE_CODE varchar(50), USER_ID varchar(32), EXCHANGE_CODE varchar(64), FIRM_ID varchar(255), FIRM_NAME varchar(255), CP_FIRM_ID varchar(255), CP_FIRM_NAME varchar(255), CLASS_NAME varchar(255), SEC_NAME varchar(255), SETTLE_DATE date, SETTLE_CURRENCY varchar(4), TRADE_CURRENCY varchar(4), TRADE_TIME_MS bigint, BANK_ACC_ID varchar(12), SECTION varchar(4));
CREATE TABLE S_TRADES(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, TRADE_NUM bigint, OPERATION varchar(40), CLASS_CODE varchar(255), TRADE_DATE date, SEC_CODE varchar(255), ACCRUEDINT numeric(72,18), ACCRUEDINT2 numeric(72,18), LOWER_DISCOUNT numeric(72,18), ORDER_NUM bigint, PRICE numeric(72,18), PRICE2 numeric(72,18), REPO_RATE numeric(72,18), REPO_VALUE numeric(72,18), REPO2_VALUE numeric(72,18), START_DISCOUNT numeric(72,18), TS_COMMISSION numeric(72,18), UPPER_DISCOUNT numeric(72,18), VALUE numeric(72,18), YIELD numeric(72,18), QTY numeric(72,18), QTY_PCS numeric(72,18), TRADE_DATE_TIME timestamp, REPO_TERM bigint, CLEARING_COMMISSION numeric(72,18), EXCHANGE_COMMISSION numeric(72,18), TECH_CENTER_COMMISSION numeric(72,18), ACCOUNT varchar(50), BROKER_REF varchar(34), CLIENT_CODE varchar(255), SETTLE_CODE varchar(50), USER_ID varchar(32), EXCHANGE_CODE varchar(64), FIRM_ID varchar(255), FIRM_NAME varchar(255), CP_FIRM_ID varchar(255), CP_FIRM_NAME varchar(255), CLASS_NAME varchar(255), SEC_NAME varchar(255), SETTLE_DATE date, SETTLE_CURRENCY varchar(4), TRADE_CURRENCY varchar(4), TRADE_TIME_MS bigint, BANK_ACC_ID varchar(12), SECTION varchar(4), KIND varchar(64), LINKED_TRADE bigint);
COMMENT ON TABLE S_TRADES IS 'Сделки из Торговой системы';
COMMENT ON COLUMN S_TRADES.ID IS 'Идентификатор записи';
@ -2947,6 +2947,10 @@ COMMENT ON COLUMN S_TRADES.BANK_ACC_ID IS 'Идентификатор расче
COMMENT ON COLUMN S_TRADES.SECTION IS 'Код наименования секции (linked to section)';
COMMENT ON COLUMN S_TRADES.KIND IS 'Вид сделки';
COMMENT ON COLUMN S_TRADES.LINKED_TRADE IS 'Номер витринной сделки в торговой системе для сделок';
GRANT ALL PRIVILEGES ON TABLE S_TRADES TO clearing;
-- executionDeposit - Сделки на секции МКР

File diff suppressed because it is too large Load diff

View file

@ -64,6 +64,12 @@ COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.PERSONAL_ACCOUNT IS '
COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.BUDGET_CLASSIFICATION_CODE IS 'ÊÁÊ';
COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.OKTMO IS 'ÎÊÒÌÎ ïîëó÷àòåëÿ ñðåäñòâ';
ALTER TABLE S_TRADES ADD COLUMN IF NOT EXISTS KIND varchar(64);
ALTER TABLE S_TRADES ADD COLUMN IF NOT EXISTS LINKED_TRADE bigint;
COMMENT ON COLUMN S_TRADES.KIND IS 'Âèä ñäåëêè';
COMMENT ON COLUMN S_TRADES.LINKED_TRADE IS 'Íîìåð âèòðèííîé ñäåëêè â òîðãîâîé ñèñòåìå äëÿ ñäåëîê';
DROP TABLE IF EXISTS RISK_PARAMETER;
CREATE TABLE RISK_PARAMETER
(

View file

@ -40,7 +40,8 @@ public class STradesMapStore extends TemplateMapStore<STrades> {
"QTY", "QTY_PCS", "TRADE_DATE_TIME", "REPO_TERM", "CLEARING_COMMISSION", "EXCHANGE_COMMISSION",
"TECH_CENTER_COMMISSION", "ACCOUNT", "BROKER_REF", "CLIENT_CODE", "SETTLE_CODE", "USER_ID",
"EXCHANGE_CODE", "FIRM_ID", "FIRM_NAME", "CP_FIRM_ID", "CP_FIRM_NAME", "CLASS_NAME", "SEC_NAME",
"SETTLE_DATE", "SETTLE_CURRENCY", "TRADE_CURRENCY", "TRADE_TIME_MS", "BANK_ACC_ID", "SECTION"
"SETTLE_DATE", "SETTLE_CURRENCY", "TRADE_CURRENCY", "TRADE_TIME_MS", "BANK_ACC_ID", "SECTION",
"KIND", "LINKED_TRADE"
};
}
@ -103,6 +104,8 @@ public class STradesMapStore extends TemplateMapStore<STrades> {
object.setTradeTimeMs(resultSet.getObject("TRADE_TIME_MS", Long.class));
object.setBankAccId(resultSet.getObject("BANK_ACC_ID", String.class));
object.setSection(resultSet.getObject("SECTION", String.class));
object.setKind(resultSet.getObject("KIND", String.class));
object.setLinkedTrade(resultSet.getObject("LINKED_TRADE", Long.class));
return object;
}
@ -155,7 +158,9 @@ public class STradesMapStore extends TemplateMapStore<STrades> {
object.getTradeCurrency(),
object.getTradeTimeMs(),
object.getBankAccId(),
object.getSection()
object.getSection(),
object.getKind(),
object.getLinkedTrade()
};
return args;
}

View file

@ -117,15 +117,17 @@ public class MoneyExporterService extends AbstractExporterService {
omtSumElementToday,
tmtSumElementToday)
);
limFileRows.add(
getRow(registry,
1,
dmtSumElement,
omtSumElementToday,
tmtSumElementToday,
omtSumElementTomorrow,
tmtSumElementTomorrow)
);
if (includeCK) {
limFileRows.add(
getRow(registry,
1,
dmtSumElement,
omtSumElementToday,
tmtSumElementToday,
omtSumElementTomorrow,
tmtSumElementTomorrow)
);
}
}
}
log.debug("Successfully completed the formation of rows: {} for export money", limFileRows.size());