Описание модуля#
Структура модуля#
![../../../_images/schema.png](../../../_images/schema.png)
Структура хранения в БД#
Схема - regadm.
Столбец |
Описание |
Тип |
Значение по умолчанию |
---|---|---|---|
key |
Первичный ключ/Идентификатор записи |
bigint |
Следующее значение из последовательности |
date_insert |
Дата создания записи |
timestamp |
Текущая дата и время |
date_update |
Дата последнего изменения записи |
timestamp |
Текущая дата и время |
object_key |
Первичный ключ объекта, по которому сформировано уведомление |
bigint |
|
notify_object |
Объект, используемый для генерации сообщения |
json |
|
mail_send_state |
Статус отправки письма:0 - Требует отправки;1 - Отправлено;2 - Отправка отменена;3 - Превышен лимит попыток отправки;4 - Не указаны адресаты;5 - Отправка невозможна |
integer |
|
mail_try_count |
Текущее кол-во попыток отправки |
integer |
|
mail_address |
Электронная почта адресатов через разделитель «;» |
varchar |
|
mail_message |
Тело письма |
varchar |
|
mail_title |
Тема письма |
varchar(500) |
|
date_send |
Дата последней попытки отправки уведомления |
timestamp |
|
object_url |
Ссылка на карточку объекта, по которому сформировано уведомление |
varchar(250) |
|
not ify_setting |
Первичный ключ настройки типа уведомления по проекту |
bigint |
Схема - regadm.
Столбец |
Описание |
Тип |
Значение по умолчанию |
---|---|---|---|
key |
Первичный ключ/Идентификатор записи |
bigint |
Следующее значение из последовательности |
date_insert |
Дата создания записи |
timestamp |
Текущая дата и время |
date_update |
Дата последнего изменения записи |
timestamp |
Текущая дата и время |
title |
Наименование настройки типа уведомления |
varchar(500) |
|
description |
Описание настройки типа уведомления |
varchar(500) |
|
object_alias |
Алиас типа объекта, по которому настраиваются уведомления |
varchar(500) |
|
object_title |
Заголовок типа объекта, по которому настраиваются уведомления |
varchar(500) |
|
change_type |
Тип события: 0 - Создание; 1 - Удаление; 2 - Изменение |
integer |
|
mail_title |
Тема письма |
varchar(500) |
|
mail_body |
Шаблон тела письма |
text |
|
max_try_count |
Максимальное кол-во попыток отправки одного уведомления |
integer |
|
tracked_fields |
Массив алиас-ключей полей для отслеживания |
varchar(4096) [] |
|
templated_fields |
Массив алиас-ключей полей для вставки в шаблон |
varchar(4096) [] |
|
condition |
Условия для формирования уведомлений по объектам |
json |
|
images_for_template |
Данные изображений, задействованных в шаблоне для формирования тела письма |
json |
|
track_geo |
Флаг отслеживания изменений геометрии объектов |
boolean |
false |
Схема - regadm.
Столбец |
Описание |
Тип |
Значение по умолчанию |
---|---|---|---|
key |
Первичный ключ/Идентификатор записи |
bigint |
Следующее значение из последовательности |
date_insert |
Дата создания записи |
timestamp |
Текущая дата и время |
date_update |
Дата последнего изменения записи |
timestamp |
Текущая дата и время |
title |
Наименование настройки типа уведомления по проекту |
varchar(500) |
|
description |
Описание настройки типа уведомления |
varchar(500) |
|
object_alias |
Алиас типа объекта, по которому настраиваются уведомления |
varchar(500) |
|
object_title |
Заголовок типа объекта, по которому настраиваются уведомления |
varchar(500) |
|
change_type |
Тип события: 0 - Создание; 1 - Удаление; 2 - Изменение |
integer |
|
mail_title |
Тема письма |
varchar(500) |
|
mail_body |
Шаблон тела письма |
text |
|
max_try_count |
Максимальное кол-во попыток отправки одного уведомления |
integer |
|
tracked_fields |
Массив алиас-ключей полей для отслеживания |
varchar(4096) [] |
|
templated_fields |
Массив алиас-ключей полей для вставки в шаблон |
varchar(4096) [] |
|
condition |
Условия для формирования уведомлений по объектам |
json |
|
metadata |
Мета-данные по всем полям, используемым в текущей настройке |
json |
|
images_for_template |
Данные изображений, задействованных в шаблоне для формирования тела письма |
json |
|
track_geo |
Флаг отслеживания изменений геометрии объектов |
boolean |
false |
project |
Алиас проекта, для объектов которого будет работать данная настройка |
varchar(200) |
Схема - regadm.
Столбец |
Описание |
Тип |
Значение по умолчанию |
---|---|---|---|
key |
Первичный ключ/Идентификатор записи |
bigint |
Следующее значение из последовательности |
date_insert |
Дата создания записи |
timestamp |
Текущая дата и время |
date_update |
Дата последнего изменения записи |
timestamp |
Текущая дата и время |
notify_setting |
Первичный ключ настройки типа уведомления по проекту |
bigint |
|
user_subject_key |
Первичный ключ субъекта в проекте, по которому создана связанная настройка типа уведомления по проекту |
bigint |
Схема - regadm.
Столбец |
Описание |
Тип |
Значение по умолчанию |
---|---|---|---|
key |
Первичный ключ/Идентификатор уведомления |
bigint |
Следующее значение из последовательности |
date_insert |
Дата создания шаблона |
timestamp |
Текущая дата и время |
date_update |
Дата последнего изменения шаблона |
timestamp |
Текущая дата и время |
name |
Наименование шаблона |
varchar(500) |
|
title |
Тема письма |
varchar(500) |
|
body |
Шаблон тела письма |
text |
|
change_type |
Тип события: 0 - Создание;1 - Удаление;2 - Изменение |
integer |
|
is_default |
Флаг шаблона по умолчанию для выбранного типа события |
boolean |
false |
images_for_template |
Данные изображений, задействованных в шаблоне для формирования тела письма |
json |
Создается во всех схемах, для которых настроены уведомления.
Столбец |
Описание |
Тип |
Значение по умолчанию |
---|---|---|---|
key |
Первичный ключ/Идентификатор записи |
bigint |
Следующее значение из последовательности |
date_insert |
Дата создания записи |
timestamp |
Текущая дата и время |
notify_setting |
Первичный ключ настройки типа уведомления по проекту |
bigint |
|
object_key |
Первичный ключ объекта, по которому сформировано уведомление |
bigint |
Скрипты для обновления БД#
Вышеуказанные таблицы и настройки по умолчанию для функционирования сервиса модуля рассылки уведомлений добавляются в БД по аналогии с остальными скриптами Системы и имеют префикс Modules.Notification.
Скрипт для заполнения шаблонов писем и шаблонов уведомлений: скрипт Modules.Notification.8.8.sql добавляет шаблоны писем и шаблоны уведомлений. Скрипт выполняет insert в таблицу: для шаблонов писем в таблицу notify_template, для шаблонов уведомлений в таблицу notify_settings.
API модуля#
Доступ к API предоставляется только авторизованным пользователям системы, имеющим достаточно полномочий для работы с Конфигуратором Системы.
Описание API
openapi: 3.0.1
info:
title: API Модуля Оповещений
version: 1.0.0
servers:
- url: http://localhost:5001
tags:
- name: dictionaries
description: Операции получения справочников
- name: project-settings-types
description: Операции с настройками типов уведомлений по проекту
- name: settings-types
description: Операции с общими настройками типов уведомлений
- name: templates
description: Операции со справочником шаблонов уведомлений
- name: notifications
description: Операции с уведомлениями
- name: field-treeview
description: Операции получения данных для древовидного компонента
- name: query-builder
description: Операции получения данных для условного компонента
paths:
/api/notification/dictionaries/projects:
get:
tags:
- dictionaries
summary: Получение списка проектов
operationId: getProjects
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/IasProject'
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке проектов
Код ошибки: <guid>
/api/notification/dictionaries/change-types:
get:
parameters:
- in: query
name: withEmpty
schema:
type: boolean
description: true - добавить пустое значение в список
tags:
- dictionaries
summary: Получить список типов изменений
operationId: getChangeType
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Item'
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке типов событий
Код ошибки: <guid>
/api/notification/dictionaries/send-states:
get:
parameters:
- in: query
name: withEmpty
schema:
type: boolean
description: true - добавить пустое значение в список
tags:
- dictionaries
summary: Получить список статусов отправки писем
operationId: getSendState
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Item'
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке статусов отправки письма
Код ошибки: <guid>
/api/notification/dictionaries/help-texts/{сhangeType}:
get:
parameters:
- in: path
name: сhangeType
schema:
type: integer
format: int32
required: true
tags:
- dictionaries
summary: Получить список справочной информации для компонента "Редактор шаблонов"
operationId: getHelpText
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/HelpText'
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке проектов
Код ошибки: <guid>
/api/notification/dictionaries/logical-tables/{project}:
get:
parameters:
- in: path
name: project
description: Алиас проекта
schema:
type: string
required: true
tags:
- dictionaries
summary: Получить список логических таблиц для определенного проекта
operationId: getLogicalTables
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Item'
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке логических таблиц
Код ошибки: <guid>
/api/notification/dictionaries/object-fields/{project}/{alias}:
get:
parameters:
- in: path
name: project
description: Алиас проекта
schema:
type: string
required: true
- in: path
name: alias
description: Алиас логической таблиц
schema:
type: string
required: true
tags:
- dictionaries
summary: Получить список полей для определенного проекта и логической таблице
operationId: getObjectFields
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Item'
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке полей таблицы <%=alias%> в проекте <%=project%>
Код ошибки: <guid>
/api/notification/dictionaries/project-users/{project}:
get:
parameters:
- in: path
name: project
description: Алиас проекта
schema:
type: string
required: true
tags:
- dictionaries
summary: Получить список пользователей для определенного проекта
operationId: getProjectUsers
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ResultUser'
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке пользователей проекта <%=project%>
Код ошибки: <guid>
/api/notification/project-settings-types/list:
get:
parameters:
- in: query
name: request
content:
application/json:
schema:
$ref: '#/components/schemas/QueryRequestWithSort'
required: true
tags:
- project-settings-types
summary: Получение списка объектов на этапе Строительство
operationId: getProjectSettingsTypesList
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/mapConstructionObjectStage1'
'500':
description: Внутренняя ошибка сервера
/api/notification/project-settings-types/{key}:
get:
parameters:
- in: path
name: key
description: Ключ настройки
schema:
type: integer
format: int64
required: true
tags:
- project-settings-types
summary: Получить данные настройки уведомления для проекта по ключу
operationId: getProjectSettingsTypesListByKey
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectSetting' #
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке типа уведомления с ключом <%=key%>
Код ошибки: <guid>
/api/notification/project-settings-types:
post:
tags: #
- project-settings-types
summary: Получить данные настройки уведомления для проекта по ключу
operationId: create
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: integer
format: int64
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при создании настройки типа уведомления
Код ошибки: <guid>
/api/notification/project-settings-types/replicate:
post:
parameters:
- in: query
name: request
content:
application/json:
schema:
$ref: '#/components/schemas/QueryListKeys'
required: true
tags:
- project-settings-types
summary: Перенести данные из настроек уведомлений для проекта в общей настройки уведомлений
operationId: replicate
responses:
'200':
description: Успешная обработка запроса
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при копировании настроек типов уведомлений в общие настройки
Код ошибки: <guid>
/api/notification/project-settings-types/update/{key}:
put:
parameters: #
- in: path
name: key
description: Ключ настройки
schema:
type: integer
format: int64
required: true
tags:
- project-settings-types
summary: Сохранить настройки уведомления для проекта
operationId: update
responses:
'200':
description: Успешная обработка запроса
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при сохранении настройки типа уведомления
Код ошибки: <guid>
/api/notification/project-settings-types/delete/{key}:
delete:
parameters:
- in: path
name: key
description: Ключ настройки уведомления для проекта
schema:
type: integer
format: int64
required: true
tags:
- project-settings-types
summary: Удалить настройки уведомления для проекта
operationId: delete
responses:
'200':
description: Успешная обработка запроса
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при удалении настройки типа уведомления с ключом <%=key%>
Код ошибки: <guid>
/api/notification/field-treeview/table-dependencies/{project}/{alias}:
get:
parameters:
- in: path
name: project
description: Алиас проекта
schema:
type: string
required: true
- in: path
name: alias
description: Алиас таблицы
schema:
type: string
required: true
tags:
- field-treeview
summary: Получить список полей и зависимостей для определенного проекта и таблицы
operationId: getTableDependencies
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ItemHierarchy'
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке полей таблицы <%=alias%> в проекте <%=project%>
Код ошибки: <guid>
/api/notification/field-treeview/filtered-table-dependencies/{project}/{alias}:
get:
parameters:
- in: path
name: project
description: Алиас проекта
schema:
type: string
required: true
- in: path
name: alias
description: Алиас таблицы
schema:
type: string
required: true
tags:
- field-treeview
summary: Получить список полей и зависимостей для определенного проекта и таблицы, отфильтрованные с учетом настроек и исключенных полей
operationId: getFilteredTableDependencies
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ItemHierarchy'
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке полей таблицы <%=alias%> в проекте <%=project%> с учетом настроек
Код ошибки: <guid>
/api/notification/notifications/list:
get:
parameters:
- in: query
name: request
content:
application/json:
schema:
$ref: '#/components/schemas/QueryRequestWithSortAndFilters'
required: true
tags:
- notifications
summary: Метод для получения данных для списковой формы уведомлений
operationId: getNotifications
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NotifyListItem'
'500':
description: Внутренняя ошибка сервера
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке списка уведомлений
Код ошибки: <guid>
/api/notification/notifications/{key}:
get:
parameters:
- in: path
name: key
description: Ключ уведомления
schema:
type: integer
format: int64
required: true
tags:
- notifications
summary: Получить данные уведомления по ключу
operationId: getNotification
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
$ref: '#/components/schemas/ResultNotify' #
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке типа уведомления с ключом <%=key%>
Код ошибки: <guid>
/api/notification/multi-change-send-state/:
post:
parameters:
- in: query
name: request
content:
application/json:
schema:
$ref: '#/components/schemas/QueryChangeSendState'
required: true
tags:
- notifications
summary: Метод для смены статуса отправки письма уведомления
operationId: multiChangeSendState
responses:
'200':
description: Успешная обработка запроса
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при смене статусов
Код ошибки: <guid>
/api/notification/query-builder/directory-values/{project}/{alias}:
get:
parameters:
- in: path
name: project
description: Алиас проекта
schema:
type: string
required: true
- in: path
name: alias
description: Алиас таблицы
schema:
type: string
required: true
tags:
- query-builder
summary: Нет описания
operationId: getDirectoryValues
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Item'
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке значений справочника <%=alias%> в проекте <%=project%>
Код ошибки: <guid>
/api/notification/settings-types/list:
get:
parameters:
- in: query
name: request
content:
application/json:
schema:
$ref: '#/components/schemas/QueryRequestWithSort'
required: true
tags:
- settings-types
summary: Получить данные для списковой формы общих настроек уведомлений
operationId: getList
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ListNotifySettings'
'500':
description: Внутренняя ошибка сервера
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке списка настроек типов уведомлений
Код ошибки: <guid>
/api/notification/settings-types/{key}:
get:
parameters:
- in: path
name: key
description: Ключ настройки
schema:
type: integer
format: int64
required: true
tags:
- settings-types
summary: Получить данные общей настройки уведомлений по ключу
operationId: get
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
$ref: '#/components/schemas/ResultType'
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке типа уведомления с ключом <%=key%>
Код ошибки: <guid>
/api/notification/settings-types/replicate:
post:
parameters:
- in: query
name: request
content:
application/json:
schema:
$ref: '#/components/schemas/QueryListKeysWithProject'
required: true
tags:
- settings-types
summary: Перенести из общих настроек в настройки по проекту
operationId: settingsTypeReplicate
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ResultReplicateInProject'
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при копировании общей настройки типа уведомления в настройки по проекту
Код ошибки: <guid>
/api/notification/settings-types/delete/{key}:
delete:
parameters:
- in: path
name: key
description: Ключ общей настройки уведомлений
schema:
type: integer
format: int64
required: true
tags:
- settings-types
summary: Удалить общую настройку уведомлений
operationId: settingsTypeDelete
responses:
'200':
description: Успешная обработка запроса
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при удалении настройки типа уведомления с ключом <%=key%>
Код ошибки: <guid>
/api/notification/templates/list:
get:
parameters:
- in: query
name: request
content:
application/json:
schema:
$ref: '#/components/schemas/QueryRequest'
required: true
tags:
- templates
summary: Получение списка объектов на этапе Строительство
operationId: getTemplatesList
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/mapConstructionObjectStage1' #
'500':
description: Внутренняя ошибка сервера
/api/notification/templates/change-type/{сhangeType}:
get:
parameters:
- in: path
name: сhangeType
schema:
type: integer
format: int32
required: true
tags:
- templates
summary: Получить список шаблонов для определенного типа изменений
operationId: getTemplatesByChangeType
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Template'
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке шаблонов по типу события
Код ошибки: <guid>
/api/notification/templates/{key}:
get:
parameters:
- in: path
name: key
description: Ключ шаблона
schema:
type: integer
format: int64
required: true
tags:
- templates
operationId: getTemplate
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
$ref: '#/components/schemas/Template'
'404': #
description: Шаблон не найден
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при загрузке шаблона с ключом <%=key%>
Код ошибки: <guid>
/api/notification/templates:
post:
parameters:
- in: query
name: template
description: Шаблон
content:
application/json:
schema:
$ref: '#/components/schemas/Template'
required: true
tags:
- templates
operationId: createTemplate
responses:
'200':
description: Успешная обработка запроса
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при добавлении шаблона
Код ошибки: <guid>
/api/notification/templates/update/{key}:
put:
parameters:
- in: path
name: key
description: Ключ шаблона
schema:
type: integer
format: int64
required: true
- in: query
name: template
description: Шаблон
content:
application/json:
schema:
$ref: '#/components/schemas/Template'
required: true
tags:
- templates
summary: Сохранить настройки уведомления для проекта
operationId: updateTemplate
responses:
'204':
description: Успешная обработка запроса
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при сохранении шаблона с ключом <%=key%>
Код ошибки: <guid>
/api/notification/templates/delete/{key}:
delete:
parameters:
- in: path
name: key
description: Ключ настройки уведомления для проекта
schema:
type: integer
format: int64
required: true
tags:
- templates
summary: Удалить настройки уведомления для проекта
operationId: deleteTemplate
responses:
'200':
description: Успешная обработка запроса
'500':
description: Внутренняя ошибка
content:
text/plain:
schema:
type: string
example: |+
Произошла ошибка при удалении шаблона с ключом <%=key%>
Код ошибки: <guid>
/stage1_map_object/{key}:
get:
parameters:
- in: path
name: key
schema:
type: string
format: uuid
description: Идентификатор объекта
required: true
tags:
- stage1_map
summary: Получение полной информации по объекту на этапе Строительства
operationId: getStage1MapObjectByKey
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
$ref: '#/components/schemas/fullConstructionObjectStage1'
'400':
description: Некорректные параметры запроса
'404':
description: Объект с указанным ключом не был найден
'500':
description: Внутренняя ошибка сервера
/stage2_map_object/list:
get:
tags:
- stage2_map
summary: Получение списка объектов на этапе Ввод в эксплуатацию
operationId: getStage2MapObjectList
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/mapConstructionObjectStage2'
'500':
description: Внутренняя ошибка сервера
/stage2_map_object/{key}:
get:
parameters:
- in: path
name: key
schema:
type: string
format: uuid
description: Идентификатор объекта
required: true
tags:
- stage2_map
summary: Получение полной информации по объекту на этапе Ввод в эксплуатацию
operationId: getStage2MapObjectByKey
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
$ref: '#/components/schemas/fullConstructionObjectStage2'
'400':
description: Некорректные параметры запроса
'404':
description: Объект с указанным ключом не был найден
'500':
description: Внутренняя ошибка сервера
/stage3_map_object/list:
get:
tags:
- stage3_map
summary: Получение списка объектов на этапе Постановка на кадастровый учет
operationId: getStage3MapObjectList
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/mapConstructionObjectStage3'
'500':
description: Внутренняя ошибка сервера
/stage3_map_object/{key}:
get:
parameters:
- in: path
name: key
schema:
type: string
format: uuid
description: Идентификатор объекта
required: true
tags:
- stage3_map
summary: Получение полной информации по объекту на этапе Постановка на кадастровый учет
operationId: getStage3MapObjectByKey
responses:
'200':
description: Успешная обработка запроса
content:
application/json:
schema:
$ref: '#/components/schemas/fullConstructionObjectStage3'
'400':
description: Некорректные параметры запроса
'404':
description: Объект с указанным ключом не был найден
'500':
description: Внутренняя ошибка
components:
schemas:
IasProject:
type: object
description: Проект
properties:
key:
type: integer
format: int64
minimum: 1
description: Идентификатор
projectName:
type: string
description: Наименование
dateInsert:
type: string
format: date-time
nullable: true
description: Дата создания
scheme:
type: string
description: Схема в базе данных
seqPrefix:
type: string
description: Префикс последовательности ключей
state:
$ref: '#/components/schemas/ProjectState'
dateState:
type: string
format: date-time
description: Дата установки состояния
status:
$ref: '#/components/schemas/ProjectStatus'
database:
type: string
description: База данных
Item:
type: object
description: Объект
properties:
key:
type: integer
format: int64
description: Идентификатор
alias:
type: string
description: Алиас
name:
type: string
description: Наименование
hasSpatial:
type: boolean
description: hasSpatial
HelpText:
type: object
description: Единица справочной информации
properties:
name:
type: string
description: Функция/поле, для которого выводится справка
description:
type: string
description: Описание/справочная информация
properties:
type: array
items:
$ref: '#/components/schemas/HelpTextProperty'
description: Вложенные свойства
example:
type: string
description: Пример использования
HelpTextProperty:
type: object
description: Свойство единицы справочной информации
properties:
name:
type: string
description: Наименование свойства
description:
type: string
description: Описание свойства
values:
type: array
items:
$ref: '#/components/schemas/HelpTextPropertyValue'
description: Возможные значения
HelpTextPropertyValue:
type: object
description: Возможное значение свойства
properties:
value:
type: string
description: Значение
description:
type: string
description: Описание значения
ResultUser:
type: object
description: Пользователь
properties:
id:
type: integer
format: int64
description: Идентификатор
login:
type: string
description: Login
fio:
type: string
description: ФИО
email:
type: string
description: E-mail
ProjectState:
type: string
description: >
Состояние проекта
* `NoMetadata` - Метаданные отсутствуют
* `MetadataLoaded` - Метаданные загружены
* `DbStaructGenerated` - Структура базы данных сгенерирована
enum:
- NoMetadata
- MetadataLoaded
- DbStaructGenerated
ProjectStatus:
type: string
description: >
Статус проекта
* `BlockedBySystem` - Заблокирован системой
* `Active` - Активен
enum:
- BlockedBySystem
- Active
ProjectSetting:
type: object
description: Настройка проекта
properties:
name:
type: string
description: Наименование
value:
type: string
description: Значение
ItemHierarchy:
type: object
description: Класс описывает поле и его зависимости
properties:
key:
type: integer
format: int64
description: Ключ
alias:
type: string
description: Псевдоним
name:
type: string
description: Наименование
tableName:
type: string
description: Название таблицы для зависимостей
isRelation:
type: boolean
description: Есть зависимости
isRelationInLogicModel:
type: boolean
description: Является детейлом в логической таблице
type:
type: string
description: Тип поля
dependence:
type: array
items:
$ref: '#/components/schemas/ItemHierarchy'
description: Список зависимостей
ListNotifySettings:
type: object
description: Списковое представление типа уведомления
properties:
key:
type: integer
format: int64
description: Ключ
date_insert:
type: string
format: date
description: Дата создания
date_update:
type: string
format: date
description: Дата изменения
title:
type: string
description: Заголовок типа
description:
type: string
description: Описание типа
object_alias:
type: string
description: Алиас объекта
object_title:
type: string
description: Заголовок объекта
change_type:
type: integer
enum:
- 0
- 1
- 2
- 6
description: >
Перечисление типов изменения объекта:
* `0` - Создание
* `1` - Удаление
* `2` - Изменение
* `6` - Неизвестное значение
track_geo:
type: boolean
description: Отслеживать геометрию
mail_title:
type: string
description: Заголовок письма
mail_body:
type: string
description: Тело письма
max_try_count:
type: integer
format: int32
description: Максимальное кол-во отправок, если ноль отправлять пока не отправим
NotifyListItem:
type: object
description: Модель уведомления для отображения в списковой форме Уведомлений
properties:
key:
type: integer
format: int64
description: Ключ
notifyChecked:
type: boolean
description: Тип изменения
nameOfTypeNotification:
type: string
description: Наименование типа уведомления
changeType:
type: integer
enum:
- 0
- 1
- 2
- 6
description: >
Перечисление типов изменения объекта:
* `0` - Создание
* `1` - Удаление
* `2` - Изменение
* `6` - Неизвестное значение
recipients:
type: string
description: Получатели
mailSendState:
type: integer
enum:
- 0
- 1
- 2
- 3
- 4
- 5
description: >
Перечисление статусов отправки письма:
* `0` - Требует отправки
* `1` - Отправлено
* `2` - Отправка отменена
* `3` - Превышен лимит
* `4` - Не указаны адреса
* `5` - Отправка невозможна
dateSend:
type: string
format: date
description: Дата отправки уведомления
dateInsert:
type: string
format: date
description: Дата создания уведомления
project:
type: string
description: Проект
QueryChangeSendState:
type: object
description: Класс модели запроса на смену статуса отправки письма уведомления
properties:
notifyKey:
type: array
items:
type: integer
format: int64
newSendState:
type: integer
enum:
- 0
- 1
- 2
- 3
- 4
- 5
description: >
Перечисление статусов отправки письма:
* `0` - Требует отправки
* `1` - Отправлено
* `2` - Отправка отменена
* `3` - Превышен лимит
* `4` - Не указаны адреса
* `5` - Отправка невозможна
ResultType:
type: object
description: Класс для описания ответа на frontend, при тиражировании из настроек по проекту в общие настройки
properties:
key:
type: integer
format: int64
description: Ключ
date_insert:
type: string
format: date
description: Дата создания
date_update:
type: string
format: date
description: Дата изменения
tracked_fields:
type: array
items:
type: string
changeTypeString:
type: string
description: Тип изменений в строковом представлении
ResultReplicateInProject:
type: object
description: Класс для описания ответа на frontend, при тиражировании из общих настроек в настройки по проекту
properties:
title:
type: string
description: Название настройки
project:
type: string
description: Проект
isValid:
type: boolean
description: Результат, успешно или нет
nonexistentTables:
type: array
items:
type: string
description: Список несуществующих таблиц
nonexistentFields:
type: array
items:
type: string
description: Список несуществующих полей
QueryListKeysWithProject:
type: object
properties:
keys:
type: array
items:
type: integer
format: int64
projects:
type: array
items:
type: string
Template:
type: object
description: Шаблон уведомления
properties:
key:
type: integer
format: int64
description: Ключ
date_insert:
type: string
format: date
description: Дата создания
date_update:
type: string
format: date
description: Дата изменения
name:
type: string
description: Имя шаблона
title:
type: string
description: Заголовок шаблона
body:
type: string
description: Тело шаблона в html
images_for_template:
type: array
items:
$ref: '#/components/schemas/ImageForTemplate'
description: Изображения для шаблона
change_type:
type: integer
enum:
- 0
- 1
- 2
- 6
description: >
Перечисление типов изменения объекта:
* `0` - Создание
* `1` - Удаление
* `2` - Изменение
* `6` - Неизвестное значение
is_default:
type: boolean
description: Является ли шаблон по-умолчанию
ImageForTemplate:
type: object
description: Класс для изображения для шаблона
properties:
cid:
type: integer
format: int32
description: Идентификатор изображение, используется при добавлении изображения в письмо
dataBase64:
type: string
description: Строка типа urlBase64
QueryRequest:
type: object
properties:
page:
type: integer
format: int32
minimum: 1
maximum: 2147483647
pageSize:
type: integer
format: int32
minimum: 0
maximum: 2147483647
filter:
type: string
QueryByProjectRequest:
allOf:
- $ref: '#/components/schemas/QueryRequest'
- type: object
properties:
projectAlias:
type: string
QueryRequestWithSort:
allOf:
- $ref: '#/components/schemas/QueryRequest'
- type: object
properties:
sortKey:
type: string
sortDesc:
type: boolean
QueryRequestWithSortAndFilters:
allOf:
- $ref: '#/components/schemas/QueryRequest'
- type: object
properties:
sortKey:
type: string
sortDesc:
type: boolean
changeTypeFilter:
type: integer
enum:
- 0
- 1
- 2
- 6
description: >
Перечисление типов изменения объекта:
* `0` - Создание
* `1` - Удаление
* `2` - Изменение
* `6` - Неизвестное значение
projectFilter:
type: string
sendStateFilter:
type: integer
enum:
- 0
- 1
- 2
- 3
- 4
- 5
description: >
Перечисление статусов отправки письма:
* `0` - Требует отправки
* `1` - Отправлено
* `2` - Отправка отменена
* `3` - Превышен лимит
* `4` - Не указаны адреса
* `5` - Отправка невозможна
QueryListKeys:
type: object
properties:
keys:
type: array
items:
type: integer
format: int64
mapConstructionObjectStage1:
allOf:
- $ref: '#/components/schemas/basicConstructionObject'
- type: object
properties:
indicator:
type: integer
enum:
- 1
- 2
- 3
description: >
Контрольный индикатор объекта, если есть:
* `1` - РС истек более 2 лет назад
* `2` - РС истек менее 2 лет назад
* `3` - РС истек менее 6 мес назад
fullConstructionObjectStage1:
allOf:
- $ref: '#/components/schemas/mapConstructionObjectStage1'
- $ref: '#/components/schemas/basicConstructionObjectExtension'
mapConstructionObjectStage2:
allOf:
- $ref: '#/components/schemas/basicConstructionObject'
- type: object
properties:
indicator:
type: integer
enum:
- 1
description: >
Контрольный индикатор объекта, если есть:
* `1` - Заключение о соответствии подано более 6 месяцев назад, но РВ еще не получено
fullConstructionObjectStage2:
allOf:
- $ref: '#/components/schemas/mapConstructionObjectStage2'
- $ref: '#/components/schemas/basicConstructionObjectExtension'
mapConstructionObjectStage3:
allOf:
- $ref: '#/components/schemas/basicConstructionObject'
- type: object
properties:
indicator:
type: integer
enum:
- 1
description: >
Контрольный индикатор объекта, если есть:
* `1` - Объекты, введенные более 90 дней назад, но еще не поставленные на кадастровый учет
fullConstructionObjectStage3:
allOf:
- $ref: '#/components/schemas/mapConstructionObjectStage3'
- $ref: '#/components/schemas/basicConstructionObjectExtension'
- type: object
properties:
cadastralRegistrationObjects:
type: array
items:
$ref: '#/components/schemas/cadastralRegistrationObject'
description: Список объектов кадастрового учета
basicConstructionObject:
type: object
properties:
key:
type: string
format: uuid
description: Идентификатор объекта
district:
type: string
description: Округ
category:
type: array
items:
$ref: '#/components/schemas/constructionObjectCategoryEnum'
funding:
$ref: '#/components/schemas/constructionObjectFundingEnum'
x:
type: number
description: Координата X
y:
type: number
description: Координата Y
basicConstructionObjectExtension:
type: object
properties:
name:
type: string
description: Название объекта
address:
type: string
description: Адрес объекта
function:
type: string
description: Функциональное назначение объекта
totalArea:
type: number
minimum: 0
description: Общая площадь
urbanPlanningURL:
type: string
description: Ссылка на объект в УГД
cadastralRegistrationObject:
type: object
properties:
name:
type: string
description: Наименование объекта кадастрового учета
area:
type: number
minimum: 0
description: Площадь объекта кадастрового учета
description: Данные об объекте кадастрового учета
constructionObjectCategoryEnum:
type: integer
enum:
- 1
- 2
- 3
description: >
Категория объекта:
* `1` - Жилое
* `2` - Нежилое
* `3` - Социальное
constructionObjectFundingEnum:
type: integer
enum:
- 1
- 2
- 3
- 4
description: >
Категория объекта:
* `1` - Внебюджетные источники
* `2` - Городской бюджет
* `3` - Федеральный б юдж т
* `4` - Не определен
Как происходит обновление общих настроек модуля#
Обновление общих настроек модуля из конфигуратора (см. Настройки модуля) приводит к автоматическому их применению в сервисе модуля уведомлений, начиная со следующего цикла поиска изменений.
В любой момент в файловом конфиге можно поменять настройки почты либо URL системы и эти настройки применятся на следующем цикле работы модуля. Т.е. если модуль уже отправляет какие-то письма - он отправит их по старым настройкам, а вот на следующем цикле отправки уже будет отправлять по новым.
Важно
Если есть необходимость сменить базу, то необходимо перезапустить модуль.
Что происходит при отключении отслеживания#
Отключение работы Модуля возможно на странице общих настроек модуля из конфигуратора (Настройки системы/Модуль уведомлений). При этом модуль завершит текущий цикл отправки и затем прекратит мониторинг БД.
Важно
Если при последующем включении модуля были изменения в настройках модуля новые настройки (период) применяются к таймеру монитора со следующей итерации. Т.е. если на момент изменения настройки:
Монитор в активной фазе, то по окончании работы он заснет уже на новый период.
Монитор спит, то он проспит в соответствии со старой настройкой, проснется, отработает и заснет уже на новый период.
Как происходит тиражирование#
Тиражирование представляет из себя создание новой записи на основе существующей.
Вид тиражирования |
Проверки |
---|---|
Из настроек для конкретного проекта в общие |
Отсутствуют |
Из общих настроек в настройку для конкретного проекта |
|
Как формируются шаблоны#
Движок шаблонов#
Для формирования шаблонов используется язык шаблонов Handlebars. Библиотека: https://github.com/Handlebars-Net/Handlebars.Net Лицензия MIT: https://opensource.org/licenses/mit Компиляция таких шаблонов на .Net выполняется с помощью движка шаблонов Handlebars.Net, подключенного к проектам в виде NuGet-пакета.
Расширения для создания шаблонов#
Стандартного набора конструкций для составления шаблонов Handlebars не всегда достаточно, чтобы успешно составлять нужные шаблоны. Это послужило причиной создания набора расширений, так называемых функций-помощников (helpers) для Handlebars, которые можно использовать при составлении шаблонов.
Функция |
Описание |
Реализация |
---|---|---|
compare |
Функция сравнения для использования в качестве параметра для стандартного оператора if |
Gems.Notification.Templates/Helpers/CompareHelpers/CompareHelper.cs |
and |
Логическая функция И для использования в качестве параметра для стандартного оператора if |
Gems.Notification.Templates/Helpers/Logic/AndHelper.cs |
or |
Логическая функция ИЛИ для использования в качестве параметра для стандартного оператора if |
Gems.Notification.Templates/Helpers/Logic/OrHelper.cs |
[current-datetime] |
Функция вывода текущей (на момент формирования шаблона) даты/времени в необходимом формате |
Gems.Notification.Templates/Helpers/CurrentDateTimeHelper.cs |
[datetime] |
Функция форматирования передаваемой даты/времени в указанный формат |
Gems.Notification.Templates/Helpers/DateTimeHelper.cs |
empty |
Функция провки передаваемого параметра на null, пустую строку или строку, состоящую из пробелов. Для использования в качестве параметра для стандартного оператора if |
Gems.Notification.Templates/Helpers/IsNullOrWhiteSpaceHelper.cs |