DDL meta http://jira.mfd.msk:8088/browse/CLS-355 Добавление полей comment и priority в notification, справочника priority

This commit is contained in:
AKurakin 2023-06-26 13:48:40 +03:00
parent 88fda6d2b9
commit 54cacc7e2e
15 changed files with 719 additions and 23 deletions

View file

@ -58,11 +58,11 @@
<documentType id="17" code="TAUT" name="Допуск к торгам"/> <documentType id="17" code="TAUT" name="Допуск к торгам"/>
<documentType id="18" code="EDOC" name="Договор об электронном взаимодействии"/> <documentType id="18" code="EDOC" name="Договор об электронном взаимодействии"/>
<documentType id="19" code="XCNT" name="Документ о расторжении Договора клиринга"/> <documentType id="19" code="XCNT" name="Документ о расторжении Договора клиринга"/>
<documentType id="20" code="LICD" name="Документ о дилерской лицензии" shortname="Дилерская деятельность"/> <documentType id="20" code="LICD" name="Документ о дилерской лицензии"/>
<documentType id="21" code="LICT" name="Документ о лицензии по управлению ЦБ" shortname="Управление ценными бумагами"/> <documentType id="21" code="LICT" name="Документ о лицензии по управлению ЦБ"/>
<documentType id="22" code="LICС" name="Документ о лицензии по брокерской деятельности ПФИ (производных финансовых инструментов)" shortname="Брокерская деятельность ПФИ"/> <documentType id="22" code="LICС" name="Документ о лицензии по брокерской деятельности ПФИ (производных финансовых инструментов)"/>
<documentType id="23" code="LICF" name="Документ о лицензии форекс-дилера" shortname="Деятельность форекс-дилера"/> <documentType id="23" code="LICF" name="Документ о лицензии форекс-дилера"/>
<documentType id="24" code="LICM" name="Документ о лицензии на управление инвестиционными фондами, паевыми инвестиционными фондами, негосударственными пенсионными фондами" shortname="Управление фондами"/> <documentType id="24" code="LICM" name="Документ о лицензии на управление инвестиционными фондами, паевыми инвестиционными фондами, негосударственными пенсионными фондами"/>
<companySymbol id="1" code="INN" name="Индивидуальный налоговый номер" shortname="ИНН"/> <companySymbol id="1" code="INN" name="Индивидуальный налоговый номер" shortname="ИНН"/>
<companySymbol id="2" code="CIO" name="Код иностранной организации" shortname="КИО"/> <companySymbol id="2" code="CIO" name="Код иностранной организации" shortname="КИО"/>
<companySymbol id="3" code="OCVD" name="Общероссийский классификатор видов экономической деятельности" shortname="ОКВЭД"/> <companySymbol id="3" code="OCVD" name="Общероссийский классификатор видов экономической деятельности" shortname="ОКВЭД"/>
@ -153,7 +153,7 @@
<registryUnit id="2" code="F" name="Свободные"/> <registryUnit id="2" code="F" name="Свободные"/>
<registryUnit id="3" code="B" name="Заблокированные"/> <registryUnit id="3" code="B" name="Заблокированные"/>
<registryUnit id="4" code="C" name="Комиссия"/> <registryUnit id="4" code="C" name="Комиссия"/>
<registryCode id="1" code="AMAT" name="Денежные средства - на торги"/> <registryCode id="1" code="AMAT" name="Денежные средства - общие"/>
<registryCode id="2" code="AMAF" name="Денежные средства - свободные"/> <registryCode id="2" code="AMAF" name="Денежные средства - свободные"/>
<registryCode id="3" code="AMAB" name="Денежные средства - блокированные"/> <registryCode id="3" code="AMAB" name="Денежные средства - блокированные"/>
<registryCode id="4" code="TMAT" name="Требования по деньгам - клиринговый пул"/> <registryCode id="4" code="TMAT" name="Требования по деньгам - клиринговый пул"/>
@ -164,7 +164,7 @@
<registryCode id="9" code="LSAT" name="Обязательства по инструментам - свои"/> <registryCode id="9" code="LSAT" name="Обязательства по инструментам - свои"/>
<registryCode id="10" code="LMAT" name="Обязательства по деньгам - свои"/> <registryCode id="10" code="LMAT" name="Обязательства по деньгам - свои"/>
<registryCode id="11" code="CSAT" name="Требования по инструментам - свои"/> <registryCode id="11" code="CSAT" name="Требования по инструментам - свои"/>
<registryCode id="12" code="AMBT" name="Денежные средства клиента - на торги"/> <registryCode id="12" code="AMBT" name="Денежные средства клиента - общие"/>
<registryCode id="13" code="AMBF" name="Денежные средства клиента - свободные"/> <registryCode id="13" code="AMBF" name="Денежные средства клиента - свободные"/>
<registryCode id="14" code="AMBB" name="Денежные средства клиента - блокированные"/> <registryCode id="14" code="AMBB" name="Денежные средства клиента - блокированные"/>
<registryCode id="15" code="TMBT" name="Требования по деньгам клиента - клиринговый пул"/> <registryCode id="15" code="TMBT" name="Требования по деньгам клиента - клиринговый пул"/>
@ -177,6 +177,9 @@
<registryCode id="22" code="CSBT" name="Требования по инструментам - клиента"/> <registryCode id="22" code="CSBT" name="Требования по инструментам - клиента"/>
<registryCode id="23" code="DMAT" name="Возврат депозита по деньгам - свои"/> <registryCode id="23" code="DMAT" name="Возврат депозита по деньгам - свои"/>
<registryCode id="24" code="DMBT" name="Возврат депозита по деньгам - клиента"/> <registryCode id="24" code="DMBT" name="Возврат депозита по деньгам - клиента"/>
<registryCode id="25" code="ASAT" name="Ценные бумаги - общие"/>
<registryCode id="26" code="ASAF" name="Ценные бумаги - свободные"/>
<registryCode id="27" code="ASAB" name="Ценные бумаги - блокированные"/>
<registryStatus id="1" code="OK" name="Успешно"/> <registryStatus id="1" code="OK" name="Успешно"/>
<registryStatus id="2" code="UNCV" name="Не исполнено"/> <registryStatus id="2" code="UNCV" name="Не исполнено"/>
<registryStatus id="3" code="FAIL" name="Не исполнено контрагентом"/> <registryStatus id="3" code="FAIL" name="Не исполнено контрагентом"/>
@ -311,6 +314,8 @@
<eventType id="1" code="CRET" name="Создание"/> <eventType id="1" code="CRET" name="Создание"/>
<eventType id="2" code="UPDT" name="Обновление"/> <eventType id="2" code="UPDT" name="Обновление"/>
<eventType id="3" code="DELT" name="Удаление"/> <eventType id="3" code="DELT" name="Удаление"/>
<priority id="1" code="HIGH" name="Высокий"/>
<priority id="2" code="LOW" name="Низкий"/>
<!-- error code for securities-service --> <!-- error code for securities-service -->
<errorCode id="1000" code="SECR" name="Общая ошибка модуля securities-service."/> <errorCode id="1000" code="SECR" name="Общая ошибка модуля securities-service."/>
@ -397,6 +402,7 @@
<errorCode id="5017" code="ACNT" name="Для компании %s отсутствует счет ДЕПО."/> <errorCode id="5017" code="ACNT" name="Для компании %s отсутствует счет ДЕПО."/>
<errorCode id="5018" code="ACNT" name="Для компании %s отсутствует денежный счет."/> <errorCode id="5018" code="ACNT" name="Для компании %s отсутствует денежный счет."/>
<errorCode id="5019" code="ACNT" name="Для компании %s отсутствует категория %s."/> <errorCode id="5019" code="ACNT" name="Для компании %s отсутствует категория %s."/>
<errorCode id="5020" code="ACNT" name="Для компании %s отсутствует клиринговый код."/>
<!-- error code for balance-service --> <!-- error code for balance-service -->
<errorCode id="5200" code="BLNC" name="Общая ошибка модуля balance-service."/> <errorCode id="5200" code="BLNC" name="Общая ошибка модуля balance-service."/>
<errorCode id="5210" code="BLNC" name="Клиринговая сессия неактивна."/> <errorCode id="5210" code="BLNC" name="Клиринговая сессия неактивна."/>

View file

@ -1387,6 +1387,29 @@
{"code": "name", {"code": "name",
"name": "Тип события","shortname": "Событие","type": 2,"length": 50 "name": "Тип события","shortname": "Событие","type": 2,"length": 50
} }
]
}
,
"priority": {
"name": "Справочник приоритетов отображения",
"class": "ru.clearing.platform.dictionary.PriorityDictionary",
"table": "priority_dictionary",
"fields": [
{"code": "id",
"name": "Идентификатор","shortname": "ID","type": 1
}
,
{"code": "code",
"name": "Код","shortname": "Код","type": 12
}
,
{"code": "name",
"name": "Приоритет отображения","shortname": "Приоритет","type": 2,"length": 50
}
] ]
} }
@ -1394,6 +1417,28 @@
,"objects": { ,"objects": {
"dbVersion": {
"name": "Версия базы данных",
"destination": "db-versions",
"class": "",
"table": "db_version",
"fields": [
{"code": "id",
"type": 1,"name": "Идентификатор записи","shortname": "ID","searchable": true,"sortable": true,"visible": true
}
,
{"code": "version",
"type": 2,"length": 50,"name": "Версия базы данных, привязанная к релизу","shortname": "Версия БД","searchable": true,"sortable": true,"visible": true
}
]
}
,
"userCls": { "userCls": {
"name": "Пользователь", "name": "Пользователь",
@ -4399,7 +4444,7 @@
, ,
"informationAccount": { "informationAccount": {
"name": "Регистры", "name": "Регистр КС",
"destination": "accounting/information-accounts", "destination": "accounting/information-accounts",
@ -6689,6 +6734,14 @@
{"code": "notificationStatus", {"code": "notificationStatus",
"type": 12,"dbname": "Код статуса сообщения","name": "Наименование статуса сообщения","shortname": "Статус","searchable": true,"sortable": true,"visible": true,"link": "notificationStatus" "type": 12,"dbname": "Код статуса сообщения","name": "Наименование статуса сообщения","shortname": "Статус","searchable": true,"sortable": true,"visible": true,"link": "notificationStatus"
} }
,
{"code": "comment",
"type": 2,"length": 255,"name": "Текст сообщения","shortname": "Сообщение","searchable": true,"sortable": true,"visible": true
}
,
{"code": "priority",
"type": 12,"dbname": "Код приоритета отображения","name": "Наименование приоритета отображения","shortname": "Приоритет отображения","searchable": true,"sortable": true,"link": "priority"
}
] ]
,"actions":[ ,"actions":[
{"method":"put", {"method":"put",
@ -7732,6 +7785,86 @@
} }
] ]
}
,
"sDf21": {
"name": "ДФ-21 Отчет об операциях",
"class": "ru.clearing.classes.statics.data.sdf.SDf21",
"table": "s_df_21",
"fields": [
{"code": "id",
"type": 1,"name": "Идентификатор записи","shortname": "ID","searchable": true,"sortable": true
}
,
{"code": "outDocument",
"type": 2,"name": "Уникальный исходящий номер сообщения","shortname": "Исходящий номер сообщения","searchable": true,"sortable": true
}
,
{"code": "inDocument",
"type": 2,"name": "Исходящий номер входящего сообщения","shortname": "Сформировано","searchable": true,"sortable": true
}
,
{"code": "securityCode",
"type": 2,"name": "Код ценной бумаги","shortname": "Ценная бумага","searchable": true,"sortable": true
}
,
{"code": "securityName",
"type": 2,"name": "Наименование ценной бумаги","shortname": "Ценная бумага","searchable": true,"sortable": true
}
,
{"code": "securityType",
"type": 2,"name": "Тип ценной бумаги","shortname": "Ценная бумага","searchable": true,"sortable": true
}
,
{"code": "openBalance",
"type": 2,"name": "Входящий остаток","shortname": "Входящий остаток","searchable": true,"sortable": true
}
,
{"code": "depoCodeCl",
"type": 2,"name": "Код раздела тех.счета/счета депо","shortname": "Код раздела тех.счета/счета депо","searchable": true,"sortable": true
}
,
{"code": "nameCl",
"type": 2,"name": "Наименование клиента","shortname": "Клиент","searchable": true,"sortable": true
}
,
{"code": "quantity",
"type": 2,"name": "Количество ценных бумаг","shortname": "Количество","searchable": true,"sortable": true
}
,
{"code": "operationCode",
"type": 2,"name": "Код операции","shortname": "Код операции","searchable": true,"sortable": true
}
,
{"code": "depoCodeCorr",
"type": 2,"name": "Код раздела субсчета/счета депо корреспондента","shortname": "Код счета депо","searchable": true,"sortable": true
}
,
{"code": "operationDate",
"type": 2,"name": "Дата операции","shortname": "Дата операции","searchable": true,"sortable": true
}
,
{"code": "closeBalance",
"type": 2,"name": "Исходящий остаток","shortname": "Исходящий остаток","searchable": true,"sortable": true
}
,
{"code": "fileName",
"type": 2,"name": "Наименование входящего файла","shortname": "Наименование файла","searchable": true,"sortable": true
}
,
{"code": "generationTime",
"type": 4,"name": "Дата и время создания записи","shortname": "Дата и время создания","searchable": true,"sortable": true
}
,
{"code": "generationId",
"type": 1,"name": "Идентификатор взаимодействия","shortname": "ID взаимодействия","searchable": true,"sortable": true
}
]
} }
, ,
"sDf51": { "sDf51": {

View file

@ -308,8 +308,17 @@
<code name="Код" shortname="Код" type="12"/> <code name="Код" shortname="Код" type="12"/>
<name name="Тип события" shortname="Событие" type="2" length="50"/> <name name="Тип события" shortname="Событие" type="2" length="50"/>
</eventType> </eventType>
<priority name="Справочник приоритетов отображения" class="ru.clearing.platform.dictionary.PriorityDictionary" table="priority_dictionary">
<id name="Идентификатор" shortname="ID" type="1"/>
<code name="Код" shortname="Код" type="12"/>
<name name="Приоритет отображения" shortname="Приоритет" type="2" length="50"/>
</priority>
</enums> </enums>
<objects> <objects>
<dbVersion name="Версия базы данных" destination="db-versions" class="" table="db_version">
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true" visible="true"/>
<version type="2" length="50" name="Версия базы данных, привязанная к релизу" shortname="Версия БД" searchable="true" sortable="true" visible="true"/>
</dbVersion>
<userCls name="Пользователь" destination="users" class="ru.clearing.classes.statics.data.user.User" logUpdates="true" table="user_cls"> <userCls name="Пользователь" destination="users" class="ru.clearing.classes.statics.data.user.User" logUpdates="true" table="user_cls">
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/> <id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
<createdAt field="created" type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/> <createdAt field="created" type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/>
@ -1025,7 +1034,7 @@
</delete> </delete>
</actions> </actions>
</bankAccount> </bankAccount>
<informationAccount name="Регистры" destination="accounting/information-accounts" class="ru.clearing.classes.statics.data.account.InformationAccount" logUpdates="true" table="information_account"> <informationAccount name="Регистр КС" destination="accounting/information-accounts" class="ru.clearing.classes.statics.data.account.InformationAccount" logUpdates="true" table="information_account">
<accountId type="1" dbname="Идентификатор информационного счета" name="Номер информационного счета" shortname="Регистр на КС" searchable="true" sortable="true" visible="true" link="account" linkCode="account"/> <accountId type="1" dbname="Идентификатор информационного счета" name="Номер информационного счета" shortname="Регистр на КС" searchable="true" sortable="true" visible="true" link="account" linkCode="account"/>
<clearingAccountId type="1" dbname="Идентификатор аналитического счета" name="Номер аналитического счета" shortname="Клиринговый счет" searchable="true" sortable="true" visible="true" link="account" linkCode="account"/> <clearingAccountId type="1" dbname="Идентификатор аналитического счета" name="Номер аналитического счета" shortname="Клиринговый счет" searchable="true" sortable="true" visible="true" link="account" linkCode="account"/>
<companyId type="1" dbname="Идентификатор компании" name="Наименование компании" shortname="Компания" searchable="true" sortable="true" visible="true" link="company" linkCode="shortName"/> <companyId type="1" dbname="Идентификатор компании" name="Наименование компании" shortname="Компания" searchable="true" sortable="true" visible="true" link="company" linkCode="shortName"/>
@ -1552,6 +1561,8 @@
<objectType type="12" dbname="Код типа объекта" name="Наименование типа объекта" shortname="Объект" searchable="true" sortable="true" link="objectType"/> <objectType type="12" dbname="Код типа объекта" name="Наименование типа объекта" shortname="Объект" searchable="true" sortable="true" link="objectType"/>
<objectId type="1" name="Идентификатор объекта" shortname="ID объекта" searchable="true" sortable="true"/> <objectId type="1" name="Идентификатор объекта" shortname="ID объекта" searchable="true" sortable="true"/>
<notificationStatus type="12" dbname="Код статуса сообщения" name="Наименование статуса сообщения" shortname="Статус" searchable="true" sortable="true" visible="true" link="notificationStatus"/> <notificationStatus type="12" dbname="Код статуса сообщения" name="Наименование статуса сообщения" shortname="Статус" searchable="true" sortable="true" visible="true" link="notificationStatus"/>
<comment type="2" length="255" name="Текст сообщения" shortname="Сообщение" searchable="true" sortable="true" visible="true"/>
<priority type="12" dbname="Код приоритета отображения" name="Наименование приоритета отображения" shortname="Приоритет отображения" searchable="true" sortable="true" link="priority"/>
<actions> <actions>
<put name="Изменение статуса сообщения"> <put name="Изменение статуса сообщения">
<id type="1" name="Идентификатор записи" shortname="ID" link="notification" linkCode="id" required="true"/> <id type="1" name="Идентификатор записи" shortname="ID" link="notification" linkCode="id" required="true"/>
@ -1799,6 +1810,25 @@
<generationTime type="4" name="Дата и время создания записи" shortname="Дата и время создания" searchable="true" sortable="true"/> <generationTime type="4" name="Дата и время создания записи" shortname="Дата и время создания" searchable="true" sortable="true"/>
<generationId type="1" name="Идентификатор взаимодействия" shortname="ID взаимодействия" searchable="true" sortable="true"/> <generationId type="1" name="Идентификатор взаимодействия" shortname="ID взаимодействия" searchable="true" sortable="true"/>
</sDf20> </sDf20>
<sDf21 name="ДФ-21 Отчет об операциях" class="ru.clearing.classes.statics.data.sdf.SDf21" table="s_df_21">
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
<outDocument type="2" name="Уникальный исходящий номер сообщения" shortname="Исходящий номер сообщения" searchable="true" sortable="true"/>
<inDocument type="2" name="Исходящий номер входящего сообщения" shortname="Сформировано" searchable="true" sortable="true"/>
<securityCode type="2" name="Код ценной бумаги" shortname="Ценная бумага" searchable="true" sortable="true"/>
<securityName type="2" name="Наименование ценной бумаги" shortname="Ценная бумага" searchable="true" sortable="true"/>
<securityType type="2" name="Тип ценной бумаги" shortname="Ценная бумага" searchable="true" sortable="true"/>
<openBalance type="2" name="Входящий остаток" shortname="Входящий остаток" searchable="true" sortable="true"/>
<depoCodeCl type="2" name="Код раздела тех.счета/счета депо" shortname="Код раздела тех.счета/счета депо" searchable="true" sortable="true"/>
<nameCl type="2" name="Наименование клиента" shortname="Клиент" searchable="true" sortable="true"/>
<quantity type="2" name="Количество ценных бумаг" shortname="Количество" searchable="true" sortable="true"/>
<operationCode type="2" name="Код операции" shortname="Код операции" searchable="true" sortable="true"/>
<depoCodeCorr type="2" name="Код раздела субсчета/счета депо корреспондента" shortname="Код счета депо" searchable="true" sortable="true"/>
<operationDate type="2" name="Дата операции" shortname="Дата операции" searchable="true" sortable="true"/>
<closeBalance type="2" name="Исходящий остаток" shortname="Исходящий остаток" searchable="true" sortable="true"/>
<fileName type="2" name="Наименование входящего файла" shortname="Наименование файла" searchable="true" sortable="true"/>
<generationTime type="4" name="Дата и время создания записи" shortname="Дата и время создания" searchable="true" sortable="true"/>
<generationId type="1" name="Идентификатор взаимодействия" shortname="ID взаимодействия" searchable="true" sortable="true"/>
</sDf21>
<sDf51 name="ДФ-51 Запрос остатков по всем счетам" class="ru.clearing.classes.statics.data.sdf.SDf51" table="s_df_51"> <sDf51 name="ДФ-51 Запрос остатков по всем счетам" class="ru.clearing.classes.statics.data.sdf.SDf51" table="s_df_51">
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/> <id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
<number type="2" length="10" name="Номер запроса остатков по счетам" shortname="Номер запроса" searchable="true" sortable="true" visible="true"/> <number type="2" length="10" name="Номер запроса остатков по счетам" shortname="Номер запроса" searchable="true" sortable="true" visible="true"/>

View file

@ -1387,6 +1387,29 @@
{"code": "name", {"code": "name",
"name": "Тип события","shortname": "Событие","type": 2,"length": 50 "name": "Тип события","shortname": "Событие","type": 2,"length": 50
} }
]
}
,
"priority": {
"name": "Справочник приоритетов отображения",
"class": "ru.clearing.platform.dictionary.PriorityDictionary",
"table": "priority_dictionary",
"fields": [
{"code": "id",
"name": "Идентификатор","shortname": "ID","type": 1
}
,
{"code": "code",
"name": "Код","shortname": "Код","type": 12
}
,
{"code": "name",
"name": "Приоритет отображения","shortname": "Приоритет","type": 2,"length": 50
}
] ]
} }
@ -1394,6 +1417,28 @@
,"objects": { ,"objects": {
"dbVersion": {
"name": "Версия базы данных",
"destination": "db-versions",
"class": "",
"table": "db_version",
"fields": [
{"code": "id",
"type": 1,"name": "Идентификатор записи","shortname": "ID","searchable": true,"sortable": true,"visible": true
}
,
{"code": "version",
"type": 2,"length": 50,"name": "Версия базы данных, привязанная к релизу","shortname": "Версия БД","searchable": true,"sortable": true,"visible": true
}
]
}
,
"userCls": { "userCls": {
"name": "Пользователь", "name": "Пользователь",
@ -4399,7 +4444,7 @@
, ,
"informationAccount": { "informationAccount": {
"name": "Регистры", "name": "Регистр КС",
"destination": "accounting/information-accounts", "destination": "accounting/information-accounts",
@ -6689,6 +6734,14 @@
{"code": "notificationStatus", {"code": "notificationStatus",
"type": 12,"dbname": "Код статуса сообщения","name": "Наименование статуса сообщения","shortname": "Статус","searchable": true,"sortable": true,"visible": true,"link": "notificationStatus" "type": 12,"dbname": "Код статуса сообщения","name": "Наименование статуса сообщения","shortname": "Статус","searchable": true,"sortable": true,"visible": true,"link": "notificationStatus"
} }
,
{"code": "comment",
"type": 2,"length": 255,"name": "Текст сообщения","shortname": "Сообщение","searchable": true,"sortable": true,"visible": true
}
,
{"code": "priority",
"type": 12,"dbname": "Код приоритета отображения","name": "Наименование приоритета отображения","shortname": "Приоритет отображения","searchable": true,"sortable": true,"link": "priority"
}
] ]
,"actions":[ ,"actions":[
{"method":"put", {"method":"put",
@ -7732,6 +7785,86 @@
} }
] ]
}
,
"sDf21": {
"name": "ДФ-21 Отчет об операциях",
"class": "ru.clearing.classes.statics.data.sdf.SDf21",
"table": "s_df_21",
"fields": [
{"code": "id",
"type": 1,"name": "Идентификатор записи","shortname": "ID","searchable": true,"sortable": true
}
,
{"code": "outDocument",
"type": 2,"name": "Уникальный исходящий номер сообщения","shortname": "Исходящий номер сообщения","searchable": true,"sortable": true
}
,
{"code": "inDocument",
"type": 2,"name": "Исходящий номер входящего сообщения","shortname": "Сформировано","searchable": true,"sortable": true
}
,
{"code": "securityCode",
"type": 2,"name": "Код ценной бумаги","shortname": "Ценная бумага","searchable": true,"sortable": true
}
,
{"code": "securityName",
"type": 2,"name": "Наименование ценной бумаги","shortname": "Ценная бумага","searchable": true,"sortable": true
}
,
{"code": "securityType",
"type": 2,"name": "Тип ценной бумаги","shortname": "Ценная бумага","searchable": true,"sortable": true
}
,
{"code": "openBalance",
"type": 2,"name": "Входящий остаток","shortname": "Входящий остаток","searchable": true,"sortable": true
}
,
{"code": "depoCodeCl",
"type": 2,"name": "Код раздела тех.счета/счета депо","shortname": "Код раздела тех.счета/счета депо","searchable": true,"sortable": true
}
,
{"code": "nameCl",
"type": 2,"name": "Наименование клиента","shortname": "Клиент","searchable": true,"sortable": true
}
,
{"code": "quantity",
"type": 2,"name": "Количество ценных бумаг","shortname": "Количество","searchable": true,"sortable": true
}
,
{"code": "operationCode",
"type": 2,"name": "Код операции","shortname": "Код операции","searchable": true,"sortable": true
}
,
{"code": "depoCodeCorr",
"type": 2,"name": "Код раздела субсчета/счета депо корреспондента","shortname": "Код счета депо","searchable": true,"sortable": true
}
,
{"code": "operationDate",
"type": 2,"name": "Дата операции","shortname": "Дата операции","searchable": true,"sortable": true
}
,
{"code": "closeBalance",
"type": 2,"name": "Исходящий остаток","shortname": "Исходящий остаток","searchable": true,"sortable": true
}
,
{"code": "fileName",
"type": 2,"name": "Наименование входящего файла","shortname": "Наименование файла","searchable": true,"sortable": true
}
,
{"code": "generationTime",
"type": 4,"name": "Дата и время создания записи","shortname": "Дата и время создания","searchable": true,"sortable": true
}
,
{"code": "generationId",
"type": 1,"name": "Идентификатор взаимодействия","shortname": "ID взаимодействия","searchable": true,"sortable": true
}
]
} }
, ,
"sDf51": { "sDf51": {

View file

@ -15,6 +15,8 @@ public class Notification extends BusinessObject {
private String objectType; private String objectType;
private Long objectId; private Long objectId;
private String notificationStatus; private String notificationStatus;
private String comment;
private String priority;
public LocalDate getClearingDate() { public LocalDate getClearingDate() {
return clearingDate; return clearingDate;
@ -63,4 +65,20 @@ public class Notification extends BusinessObject {
public void setNotificationStatus(String notificationStatus) { public void setNotificationStatus(String notificationStatus) {
this.notificationStatus = notificationStatus; this.notificationStatus = notificationStatus;
} }
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getPriority() {
return priority;
}
public void setPriority(String priority) {
this.priority = priority;
}
} }

View file

@ -0,0 +1,161 @@
package ru.clearing.classes.statics.data.sdf;
import ru.clearing.classes.ConstSerializable;
import ru.spcex.platform.classes.base.SpcexObjectBase;
import java.time.Instant;
/**
* ДФ-21 Отчет об операциях
* <p>
* DB table: S_DF21
**/
public class SDf21 extends SpcexObjectBase {
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
private String outDocument;
private String inDocument;
private String securityCode;
private String securityName;
private String securityType;
private String openBalance;
private String depoCodeCl;
private String nameCl;
private String quantity;
private String operationCode;
private String depoCodeCorr;
private String operationDate;
private String closeBalance;
private String fileName;
private Instant generationTime;
private Long generationId;
public String getOutDocument() {
return outDocument;
}
public void setOutDocument(String value) {
this.outDocument = value;
}
public String getInDocument() {
return inDocument;
}
public void setInDocument(String value) {
this.inDocument = value;
}
public String getSecurityCode() {
return securityCode;
}
public void setSecurityCode(String value) {
this.securityCode = value;
}
public String getSecurityName() {
return securityName;
}
public void setSecurityName(String value) {
this.securityName = value;
}
public String getSecurityType() {
return securityType;
}
public void setSecurityType(String value) {
this.securityType = value;
}
public String getOpenBalance() {
return openBalance;
}
public void setOpenBalance(String value) {
this.openBalance = value;
}
public String getDepoCodeCl() {
return depoCodeCl;
}
public void setDepoCodeCl(String value) {
this.depoCodeCl = value;
}
public String getNameCl() {
return nameCl;
}
public void setNameCl(String value) {
this.nameCl = value;
}
public String getQuantity() {
return quantity;
}
public void setQuantity(String value) {
this.quantity = value;
}
public String getOperationCode() {
return operationCode;
}
public void setOperationCode(String value) {
this.operationCode = value;
}
public String getDepoCodeCorr() {
return depoCodeCorr;
}
public void setDepoCodeCorr(String value) {
this.depoCodeCorr = value;
}
public String getOperationDate() {
return operationDate;
}
public void setOperationDate(String value) {
this.operationDate = value;
}
public String getCloseBalance() {
return closeBalance;
}
public void setCloseBalance(String value) {
this.closeBalance = value;
}
public String getFileName() {
return fileName;
}
public void setFileName(String value) {
this.fileName = value;
}
public Instant getGenerationTime() {
return generationTime;
}
public void setGenerationTime(Instant value) {
this.generationTime = value;
}
public Long getGenerationId() {
return generationId;
}
public void setGenerationId(Long value) {
this.generationId = value;
}
}

View file

@ -304,7 +304,7 @@ INSERT INTO REGISTRY_UNIT_DICTIONARY(ID, CODE, NAME) values (3, 'B', 'Забло
INSERT INTO REGISTRY_UNIT_DICTIONARY(ID, CODE, NAME) values (4, 'C', 'Комиссия') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO REGISTRY_UNIT_DICTIONARY(ID, CODE, NAME) values (4, 'C', 'Комиссия') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (1, 'AMAT', 'Денежные средства - на торги') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (1, 'AMAT', 'Денежные средства - общие') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (2, 'AMAF', 'Денежные средства - свободные') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (2, 'AMAF', 'Денежные средства - свободные') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -326,7 +326,7 @@ INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (10, 'LMAT', 'Обя
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (11, 'CSAT', 'Требования по инструментам - свои') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (11, 'CSAT', 'Требования по инструментам - свои') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (12, 'AMBT', 'Денежные средства клиента - на торги') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (12, 'AMBT', 'Денежные средства клиента - общие') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (13, 'AMBF', 'Денежные средства клиента - свободные') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (13, 'AMBF', 'Денежные средства клиента - свободные') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -352,6 +352,12 @@ INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (23, 'DMAT', 'Воз
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (24, 'DMBT', 'Возврат депозита по деньгам - клиента') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (24, 'DMBT', 'Возврат депозита по деньгам - клиента') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (25, 'ASAT', 'Ценные бумаги - общие') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (26, 'ASAF', 'Ценные бумаги - свободные') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_CODE_DICTIONARY(ID, CODE, NAME) values (27, 'ASAB', 'Ценные бумаги - блокированные') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'OK', 'Успешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'OK', 'Успешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'UNCV', 'Не исполнено') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'UNCV', 'Не исполнено') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -614,6 +620,10 @@ INSERT INTO EVENT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'UPDT', 'Обнов
INSERT INTO EVENT_TYPE_DICTIONARY(ID, CODE, NAME) values (3, 'DELT', 'Удаление') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO EVENT_TYPE_DICTIONARY(ID, CODE, NAME) values (3, 'DELT', 'Удаление') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO PRIORITY_DICTIONARY(ID, CODE, NAME) values (1, 'HIGH', 'Высокий') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO PRIORITY_DICTIONARY(ID, CODE, NAME) values (2, 'LOW', 'Низкий') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1000, 'SECR', 'Общая ошибка модуля securities-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1000, 'SECR', 'Общая ошибка модуля securities-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1001, 'SECR', 'Нет прав на проведение данной операции.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (1001, 'SECR', 'Нет прав на проведение данной операции.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -764,6 +774,8 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5018, 'ACNT', 'Для
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5019, 'ACNT', 'Для компании %s отсутствует категория %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5019, 'ACNT', 'Для компании %s отсутствует категория %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5020, 'ACNT', 'Для компании %s отсутствует клиринговый код.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5200, 'BLNC', 'Общая ошибка модуля balance-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5200, 'BLNC', 'Общая ошибка модуля balance-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5210, 'BLNC', 'Клиринговая сессия неактивна.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5210, 'BLNC', 'Клиринговая сессия неактивна.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;

View file

@ -1,4 +1,4 @@
-- DB version: 3.5.0.30 -- DB version: 3.5.0.33
/* Dictionaries */ /* Dictionaries */
-- allowed - Справочник признаков допустимости использования объектов -- allowed - Справочник признаков допустимости использования объектов
@ -663,8 +663,28 @@ COMMENT ON COLUMN EVENT_TYPE_DICTIONARY.CODE IS 'Код';
COMMENT ON COLUMN EVENT_TYPE_DICTIONARY.NAME IS 'Тип события'; COMMENT ON COLUMN EVENT_TYPE_DICTIONARY.NAME IS 'Тип события';
-- priority - Справочник приоритетов отображения
DROP TABLE IF EXISTS PRIORITY_DICTIONARY;
CREATE TABLE PRIORITY_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50));
COMMENT ON TABLE PRIORITY_DICTIONARY IS 'Справочник приоритетов отображения';
COMMENT ON COLUMN PRIORITY_DICTIONARY.ID IS 'Идентификатор';
COMMENT ON COLUMN PRIORITY_DICTIONARY.CODE IS 'Код';
COMMENT ON COLUMN PRIORITY_DICTIONARY.NAME IS 'Приоритет отображения';
/* Business objects */ /* Business objects */
-- dbVersion - Версия базы данных
DROP TABLE IF EXISTS DB_VERSION;
CREATE TABLE DB_VERSION(ID bigint PRIMARY KEY, VERSION varchar(50));
COMMENT ON TABLE DB_VERSION IS 'Версия базы данных';
COMMENT ON COLUMN DB_VERSION.ID IS 'Идентификатор записи';
COMMENT ON COLUMN DB_VERSION.VERSION IS 'Версия базы данных, привязанная к релизу';
-- userCls - Пользователь -- userCls - Пользователь
DROP TABLE IF EXISTS USER_CLS; DROP TABLE IF EXISTS USER_CLS;
CREATE TABLE USER_CLS(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, IDENTIFIER varchar(250), NAME varchar(250), FIRST_NAME varchar(250), LAST_NAME varchar(250), MIDDLE_NAME varchar(250), EMAIL varchar(250)); CREATE TABLE USER_CLS(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, IDENTIFIER varchar(250), NAME varchar(250), FIRST_NAME varchar(250), LAST_NAME varchar(250), MIDDLE_NAME varchar(250), EMAIL varchar(250));
@ -1995,10 +2015,10 @@ COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.COMPANY_ID IS 'Идентификатор
COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.ID IS 'Идентификатор записи'; COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.ID IS 'Идентификатор записи';
-- informationAccount - Регистры -- informationAccount - Регистр КС
DROP TABLE IF EXISTS INFORMATION_ACCOUNT; DROP TABLE IF EXISTS INFORMATION_ACCOUNT;
CREATE TABLE INFORMATION_ACCOUNT(ACCOUNT_ID bigint, CLEARING_ACCOUNT_ID bigint, COMPANY_ID bigint, ID bigint PRIMARY KEY); CREATE TABLE INFORMATION_ACCOUNT(ACCOUNT_ID bigint, CLEARING_ACCOUNT_ID bigint, COMPANY_ID bigint, ID bigint PRIMARY KEY);
COMMENT ON TABLE INFORMATION_ACCOUNT IS 'Регистры'; COMMENT ON TABLE INFORMATION_ACCOUNT IS 'Регистр КС';
COMMENT ON COLUMN INFORMATION_ACCOUNT.ACCOUNT_ID IS 'Идентификатор информационного счета (linked to account)'; COMMENT ON COLUMN INFORMATION_ACCOUNT.ACCOUNT_ID IS 'Идентификатор информационного счета (linked to account)';
@ -2009,7 +2029,7 @@ COMMENT ON COLUMN INFORMATION_ACCOUNT.COMPANY_ID IS 'Идентификатор
COMMENT ON COLUMN INFORMATION_ACCOUNT.ID IS 'Идентификатор записи'; COMMENT ON COLUMN INFORMATION_ACCOUNT.ID IS 'Идентификатор записи';
-- History log of informationAccount - Регистры -- History log of informationAccount - Регистр КС
DROP TABLE IF EXISTS INFORMATION_ACCOUNT_HISTORY; DROP TABLE IF EXISTS INFORMATION_ACCOUNT_HISTORY;
CREATE TABLE INFORMATION_ACCOUNT_HISTORY(INFORMATION_ACCOUNT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ACCOUNT_ID bigint, CLEARING_ACCOUNT_ID bigint, COMPANY_ID bigint, ID bigint PRIMARY KEY); CREATE TABLE INFORMATION_ACCOUNT_HISTORY(INFORMATION_ACCOUNT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ACCOUNT_ID bigint, CLEARING_ACCOUNT_ID bigint, COMPANY_ID bigint, ID bigint PRIMARY KEY);
COMMENT ON TABLE INFORMATION_ACCOUNT_HISTORY IS 'История изменений таблицы informationAccount'; COMMENT ON TABLE INFORMATION_ACCOUNT_HISTORY IS 'История изменений таблицы informationAccount';
@ -2430,7 +2450,6 @@ COMMENT ON COLUMN EXECUTION_DEPOSIT.UPDATED_AT IS 'Дата-время изме
COMMENT ON COLUMN EXECUTION_DEPOSIT.CLEARING_DATE IS 'Дата клиринга'; COMMENT ON COLUMN EXECUTION_DEPOSIT.CLEARING_DATE IS 'Дата клиринга';
-- History log of executionDeposit - Сделки -- History log of executionDeposit - Сделки
DROP TABLE IF EXISTS EXECUTION_DEPOSIT_HISTORY; DROP TABLE IF EXISTS EXECUTION_DEPOSIT_HISTORY;
CREATE TABLE EXECUTION_DEPOSIT_HISTORY(EXECUTION_DEPOSIT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, TRADING_DATE date, TRADING_CLEARING_REGISTRY_ID bigint, MARKET varchar(4), PRICE numeric(72,18), LOTS numeric(72,2), QUANTITY numeric(72,2), FIRST_LEG_AMOUNT numeric(72,2), SECOND_LEG_AMOUNT numeric(72,2), INTEREST_AMOUNT numeric(72,2), SIDE varchar(4), SETTLEMENT_CURRENCY varchar(4), COMPANY_ID bigint, DURATION bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, FIRST_LEG_SETTLEMENT_CODE varchar(12), SECOND_LEG_SETTLEMENT_CODE varchar(12), SECURITY_FULL_NAME varchar(255), SECURITY_SYMBOL varchar(255), SECURITY_CODE varchar(255), SECURITY_ID bigint, CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COVERAGE_STATUS varchar(4), SESSION_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); CREATE TABLE EXECUTION_DEPOSIT_HISTORY(EXECUTION_DEPOSIT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, TRADING_DATE date, TRADING_CLEARING_REGISTRY_ID bigint, MARKET varchar(4), PRICE numeric(72,18), LOTS numeric(72,2), QUANTITY numeric(72,2), FIRST_LEG_AMOUNT numeric(72,2), SECOND_LEG_AMOUNT numeric(72,2), INTEREST_AMOUNT numeric(72,2), SIDE varchar(4), SETTLEMENT_CURRENCY varchar(4), COMPANY_ID bigint, DURATION bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, FIRST_LEG_SETTLEMENT_CODE varchar(12), SECOND_LEG_SETTLEMENT_CODE varchar(12), SECURITY_FULL_NAME varchar(255), SECURITY_SYMBOL varchar(255), SECURITY_CODE varchar(255), SECURITY_ID bigint, CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COVERAGE_STATUS varchar(4), SESSION_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date);
@ -3030,7 +3049,7 @@ COMMENT ON COLUMN PAYMENT_INSTRUCTION.SESSION_ID IS 'Идентификатор
-- notification - Сообщения -- notification - Сообщения
DROP TABLE IF EXISTS NOTIFICATION; DROP TABLE IF EXISTS NOTIFICATION;
CREATE TABLE NOTIFICATION(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID bigint, NOTIFICATION_STATUS varchar(4)); CREATE TABLE NOTIFICATION(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID bigint, NOTIFICATION_STATUS varchar(4), COMMENT varchar(255), PRIORITY varchar(4));
COMMENT ON TABLE NOTIFICATION IS 'Сообщения'; COMMENT ON TABLE NOTIFICATION IS 'Сообщения';
COMMENT ON COLUMN NOTIFICATION.ID IS 'Идентификатор записи'; COMMENT ON COLUMN NOTIFICATION.ID IS 'Идентификатор записи';
@ -3051,10 +3070,14 @@ COMMENT ON COLUMN NOTIFICATION.OBJECT_ID IS 'Идентификатор объе
COMMENT ON COLUMN NOTIFICATION.NOTIFICATION_STATUS IS 'Код статуса сообщения (linked to notificationStatus)'; COMMENT ON COLUMN NOTIFICATION.NOTIFICATION_STATUS IS 'Код статуса сообщения (linked to notificationStatus)';
COMMENT ON COLUMN NOTIFICATION.COMMENT IS 'Текст сообщения';
COMMENT ON COLUMN NOTIFICATION.PRIORITY IS 'Код приоритета отображения (linked to priority)';
-- History log of notification - Сообщения -- History log of notification - Сообщения
DROP TABLE IF EXISTS NOTIFICATION_HISTORY; DROP TABLE IF EXISTS NOTIFICATION_HISTORY;
CREATE TABLE NOTIFICATION_HISTORY(NOTIFICATION_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID bigint, NOTIFICATION_STATUS varchar(4)); CREATE TABLE NOTIFICATION_HISTORY(NOTIFICATION_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID bigint, NOTIFICATION_STATUS varchar(4), COMMENT varchar(255), PRIORITY varchar(4));
COMMENT ON TABLE NOTIFICATION_HISTORY IS 'История изменений таблицы notification'; COMMENT ON TABLE NOTIFICATION_HISTORY IS 'История изменений таблицы notification';
COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_ID IS 'Идентификатор записи в таблице NOTIFICATION'; COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_ID IS 'Идентификатор записи в таблице NOTIFICATION';
COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_TIME IS 'Дата и время изменения';
@ -3079,6 +3102,10 @@ COMMENT ON COLUMN NOTIFICATION_HISTORY.OBJECT_ID IS 'Идентификатор
COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_STATUS IS 'Код статуса сообщения (linked to notificationStatus)'; COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_STATUS IS 'Код статуса сообщения (linked to notificationStatus)';
COMMENT ON COLUMN NOTIFICATION_HISTORY.COMMENT IS 'Текст сообщения';
COMMENT ON COLUMN NOTIFICATION_HISTORY.PRIORITY IS 'Код приоритета отображения (linked to priority)';
-- verificationResult - Результаты сверки -- verificationResult - Результаты сверки
DROP TABLE IF EXISTS VERIFICATION_RESULT; DROP TABLE IF EXISTS VERIFICATION_RESULT;
CREATE TABLE VERIFICATION_RESULT(CLEARING_CODE varchar(255), ACCOUNT_ID bigint, IN_SUM numeric(72,2), OUT_INT_SUM numeric(72,2), OUT_EXT_SUM numeric(72,2), DIFF_SUM numeric(72,2), GENERATION_ID bigint, GENERATION_STATUS varchar(4), RESULT_STATUS varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); CREATE TABLE VERIFICATION_RESULT(CLEARING_CODE varchar(255), ACCOUNT_ID bigint, IN_SUM numeric(72,2), OUT_INT_SUM numeric(72,2), OUT_EXT_SUM numeric(72,2), DIFF_SUM numeric(72,2), GENERATION_ID bigint, GENERATION_STATUS varchar(4), RESULT_STATUS varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp);
@ -3575,6 +3602,45 @@ COMMENT ON COLUMN S_DF20.GENERATION_TIME IS 'Дата и время создан
COMMENT ON COLUMN S_DF20.GENERATION_ID IS 'Идентификатор взаимодействия'; COMMENT ON COLUMN S_DF20.GENERATION_ID IS 'Идентификатор взаимодействия';
-- sDf21 - ДФ-21 Отчет об операциях
DROP TABLE IF EXISTS S_DF21;
CREATE TABLE S_DF21(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, IN_DOCUMENT varchar, SECURITY_CODE varchar, SECURITY_NAME varchar, SECURITY_TYPE varchar, OPEN_BALANCE varchar, DEPO_CODE_CL varchar, NAME_CL varchar, QUANTITY varchar, OPERATION_CODE varchar, DEPO_CODE_CORR varchar, OPERATION_DATE varchar, CLOSE_BALANCE varchar, FILE_NAME varchar, GENERATION_TIME timestamp, GENERATION_ID bigint);
COMMENT ON TABLE S_DF21 IS 'ДФ-21 Отчет об операциях';
COMMENT ON COLUMN S_DF21.ID IS 'Идентификатор записи';
COMMENT ON COLUMN S_DF21.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения';
COMMENT ON COLUMN S_DF21.IN_DOCUMENT IS 'Исходящий номер входящего сообщения';
COMMENT ON COLUMN S_DF21.SECURITY_CODE IS 'Код ценной бумаги';
COMMENT ON COLUMN S_DF21.SECURITY_NAME IS 'Наименование ценной бумаги';
COMMENT ON COLUMN S_DF21.SECURITY_TYPE IS 'Тип ценной бумаги';
COMMENT ON COLUMN S_DF21.OPEN_BALANCE IS 'Входящий остаток';
COMMENT ON COLUMN S_DF21.DEPO_CODE_CL IS 'Код раздела тех.счета/счета депо';
COMMENT ON COLUMN S_DF21.NAME_CL IS 'Наименование клиента';
COMMENT ON COLUMN S_DF21.QUANTITY IS 'Количество ценных бумаг';
COMMENT ON COLUMN S_DF21.OPERATION_CODE IS 'Код операции';
COMMENT ON COLUMN S_DF21.DEPO_CODE_CORR IS 'Код раздела субсчета/счета депо корреспондента';
COMMENT ON COLUMN S_DF21.OPERATION_DATE IS 'Дата операции';
COMMENT ON COLUMN S_DF21.CLOSE_BALANCE IS 'Исходящий остаток';
COMMENT ON COLUMN S_DF21.FILE_NAME IS 'Наименование входящего файла';
COMMENT ON COLUMN S_DF21.GENERATION_TIME IS 'Дата и время создания записи';
COMMENT ON COLUMN S_DF21.GENERATION_ID IS 'Идентификатор взаимодействия';
-- sDf51 - ДФ-51 Запрос остатков по всем счетам -- sDf51 - ДФ-51 Запрос остатков по всем счетам
DROP TABLE IF EXISTS S_DF51; DROP TABLE IF EXISTS S_DF51;
CREATE TABLE S_DF51(ID bigint PRIMARY KEY, NUMBER varchar(10), DATETIME varchar(13), GENERATION_TIME timestamp, GENERATION_ID bigint); CREATE TABLE S_DF51(ID bigint PRIMARY KEY, NUMBER varchar(10), DATETIME varchar(13), GENERATION_TIME timestamp, GENERATION_ID bigint);

View file

@ -0,0 +1,11 @@
package ru.clearing.platform.dictionary;
/**
* Справочник приоритетов отображения
*
* Dictionary DB table: PRIORITY_DICTIONARY
**/
public class PriorityDictionary extends AbstractDictionary {
private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID;
}

View file

@ -28,7 +28,7 @@ public class NotificationHistoryMapStore extends TemplateEventMapStore<Notificat
@Override @Override
public String[] getFields() { public String[] getFields() {
return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE", return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE",
"NOTIFICATION_ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "SENDER_ID", "ADDRESSEE_ID", "OBJECT_TYPE", "OBJECT_ID", "NOTIFICATION_STATUS" "NOTIFICATION_ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "SENDER_ID", "ADDRESSEE_ID", "OBJECT_TYPE", "OBJECT_ID", "NOTIFICATION_STATUS", "COMMENT", "PRIORITY"
}; };
} }
@ -49,7 +49,9 @@ public class NotificationHistoryMapStore extends TemplateEventMapStore<Notificat
object.getAddresseeId(), object.getAddresseeId(),
object.getObjectType(), object.getObjectType(),
object.getObjectId(), object.getObjectId(),
object.getNotificationStatus() object.getNotificationStatus(),
object.getComment(),
object.getPriority()
}; };
return args; return args;
} }

View file

@ -0,0 +1,31 @@
package ru.spcex.clearing.imdg.dictionary;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.clearing.platform.dictionary.PriorityDictionary;
import ru.spcex.clearing.imdg.base.DictionaryTMapStore;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
@Component
public class PriorityDictionaryMapStore extends DictionaryTMapStore<PriorityDictionary> {
public PriorityDictionaryMapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_PriorityDictionary;
}
@Override
public String getTableName() {
return "PRIORITY_DICTIONARY";
}
@Override
public PriorityDictionary getDictionaryObject() {
return new PriorityDictionary();
}
}

View file

@ -30,7 +30,7 @@ public class NotificationMapStore extends TemplateMapStore<Notification> {
@Override @Override
public String[] getFields() { public String[] getFields() {
return new String[]{ return new String[]{
"ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "SENDER_ID", "ADDRESSEE_ID", "OBJECT_TYPE", "OBJECT_ID", "NOTIFICATION_STATUS" "ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "SENDER_ID", "ADDRESSEE_ID", "OBJECT_TYPE", "OBJECT_ID", "NOTIFICATION_STATUS", "COMMENT", "PRIORITY"
}; };
} }
@ -46,6 +46,8 @@ public class NotificationMapStore extends TemplateMapStore<Notification> {
object.setObjectType(resultSet.getObject("OBJECT_TYPE", String.class)); object.setObjectType(resultSet.getObject("OBJECT_TYPE", String.class));
object.setObjectId(resultSet.getObject("OBJECT_ID", Long.class)); object.setObjectId(resultSet.getObject("OBJECT_ID", Long.class));
object.setNotificationStatus(resultSet.getObject("NOTIFICATION_STATUS", String.class)); object.setNotificationStatus(resultSet.getObject("NOTIFICATION_STATUS", String.class));
object.setComment(resultSet.getObject("COMMENT", String.class));
object.setPriority(resultSet.getObject("PRIORITY", String.class));
return object; return object;
} }
@ -60,7 +62,9 @@ public class NotificationMapStore extends TemplateMapStore<Notification> {
object.getAddresseeId(), object.getAddresseeId(),
object.getObjectType(), object.getObjectType(),
object.getObjectId(), object.getObjectId(),
object.getNotificationStatus() object.getNotificationStatus(),
object.getComment(),
object.getPriority()
}; };
return args; return args;
} }

View file

@ -0,0 +1,85 @@
package ru.spcex.clearing.imdg.object;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.clearing.classes.statics.data.sdf.SDf21;
import ru.spcex.clearing.imdg.base.TemplateMapStore;
import ru.spcex.platform.utils.time.TimeUtil;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
@Component
public class SDf21MapStore extends TemplateMapStore<SDf21> {
public SDf21MapStore(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate);
}
@Override
public String getMapName() {
return IMDGDistributedNames.Map_SDf21;
}
@Override
public String getTableName() {
return "S_DF21";
}
@Override
public String[] getFields() {
return new String[]{
"ID", "OUT_DOCUMENT", "IN_DOCUMENT", "SECURITY_CODE", "SECURITY_NAME", "SECURITY_TYPE", "OPEN_BALANCE", "DEPO_CODE_CL", "NAME_CL", "QUANTITY", "OPERATION_CODE", "DEPO_CODE_CORR", "OPERATION_DATE", "CLOSE_BALANCE", "FILE_NAME", "GENERATION_TIME", "GENERATION_ID"
};
}
@Override
public SDf21 objectReader(ResultSet resultSet) throws SQLException {
SDf21 object = new SDf21();
object.setId(resultSet.getObject("ID", Long.class));
object.setOutDocument(resultSet.getObject("OUT_DOCUMENT", String.class));
object.setInDocument(resultSet.getObject("IN_DOCUMENT", String.class));
object.setSecurityCode(resultSet.getObject("SECURITY_CODE", String.class));
object.setSecurityName(resultSet.getObject("SECURITY_NAME", String.class));
object.setSecurityType(resultSet.getObject("SECURITY_TYPE", String.class));
object.setOpenBalance(resultSet.getObject("OPEN_BALANCE", String.class));
object.setDepoCodeCl(resultSet.getObject("DEPO_CODE_CL", String.class));
object.setNameCl(resultSet.getObject("NAME_CL", String.class));
object.setQuantity(resultSet.getObject("QUANTITY", String.class));
object.setOperationCode(resultSet.getObject("OPERATION_CODE", String.class));
object.setDepoCodeCorr(resultSet.getObject("DEPO_CODE_CORR", String.class));
object.setOperationDate(resultSet.getObject("OPERATION_DATE", String.class));
object.setCloseBalance(resultSet.getObject("CLOSE_BALANCE", String.class));
object.setFileName(resultSet.getObject("FILE_NAME", String.class));
object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME"));
object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class));
return object;
}
@Override
public Object[] objectToField(SDf21 object) {
Object[] args = new Object[]{
object.getId(),
object.getOutDocument(),
object.getInDocument(),
object.getSecurityCode(),
object.getSecurityName(),
object.getSecurityType(),
object.getOpenBalance(),
object.getDepoCodeCl(),
object.getNameCl(),
object.getQuantity(),
object.getOperationCode(),
object.getDepoCodeCorr(),
object.getOperationDate(),
object.getCloseBalance(),
object.getFileName(),
TimeUtil.toDateFromInstant(object.getGenerationTime()),
object.getGenerationId()
};
return args;
}
}

View file

@ -219,6 +219,7 @@ public class RunnableMapNamesForTesting {
checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ObjectTypeDictionary, ObjectTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ObjectTypeDictionary, ObjectTypeDictionary.class));
checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ParentDictionary, ParentDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ParentDictionary, ParentDictionary.class));
checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ResultStatusDictionary, ResultStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ResultStatusDictionary, ResultStatusDictionary.class));
checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_PriorityDictionary, PriorityDictionary.class));
checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_SessionStatusDictionary, SessionStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_SessionStatusDictionary, SessionStatusDictionary.class));
checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_SessionTypeDictionary, SessionTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_SessionTypeDictionary, SessionTypeDictionary.class));
checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ServiceDictionary, ServiceDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ServiceDictionary, ServiceDictionary.class));
@ -341,6 +342,7 @@ public class RunnableMapNamesForTesting {
checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf13, SDf13.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf13, SDf13.class));
checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf14, SDf14.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf14, SDf14.class));
checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf20, SDf20.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf20, SDf20.class));
checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf21, SDf21.class));
checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Session, Session.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Session, Session.class));
checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_STrades, STrades.class, checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_STrades, STrades.class,
new SettingOperation("setQty", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}), new SettingOperation("setQty", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}),

View file

@ -67,6 +67,7 @@ public final class IMDGDistributedNames {
@Deprecated @Deprecated
public static final String Map_SDf18 = "Map_SDf18"; public static final String Map_SDf18 = "Map_SDf18";
public static final String Map_SDf20 = "Map_SDf20"; public static final String Map_SDf20 = "Map_SDf20";
public static final String Map_SDf21 = "Map_SDf21";
public static final String Map_SDf51 = "Map_sDf51"; public static final String Map_SDf51 = "Map_sDf51";
public static final String Map_SDf52 = "Map_sDf52"; public static final String Map_SDf52 = "Map_sDf52";
public static final String Map_SDf53 = "Map_sDf53"; public static final String Map_SDf53 = "Map_sDf53";
@ -191,6 +192,7 @@ public final class IMDGDistributedNames {
public static final String Map_SessionTypeDictionary = "Map_SessionTypeDictionary"; public static final String Map_SessionTypeDictionary = "Map_SessionTypeDictionary";
public static final String Map_ExecutionFond = "Map_ExecutionFond"; public static final String Map_ExecutionFond = "Map_ExecutionFond";
public static final String Map_ExecutionFondHistory = "Map_ExecutionFondHistory"; public static final String Map_ExecutionFondHistory = "Map_ExecutionFondHistory";
public static final String Map_PriorityDictionary = "Map_PriorityDictionary";
public static final String MAP_SEQUENCE_NAME = "MAP_SEQUENCE_NAME"; public static final String MAP_SEQUENCE_NAME = "MAP_SEQUENCE_NAME";