add new scheme

This commit is contained in:
KatykhinAA
2024-05-24 12:17:32 +03:00
parent 072ced2815
commit e084f73d6b
37 changed files with 1148 additions and 1134 deletions

View File

@@ -1,15 +1,15 @@
@startuml
scale 800*800
mainframe Добавление контакта к КА в заказе
actor Пользователь as user
participant ARM as ARM
participant OMS as OMS
autonumber
user -> ARM: Добавляет контакт КА в кратком блоке КА
activate ARM
ARM -> OMS: API POST /orders/{orderId}/contacts/add
activate OMS
return API POST answer
return ок
@startuml
scale 800*800
mainframe Добавление контакта к КА в заказе
actor Пользователь as user
participant ARM as ARM
participant OMS as OMS
autonumber
user -> ARM: Добавляет контакт КА в кратком блоке КА
activate ARM
ARM -> OMS: API POST /orders/{orderId}/contacts/add
activate OMS
return API POST answer
return ок
@enduml

View File

@@ -1,15 +1,15 @@
@startuml
scale 800*800
mainframe Добавление КА к заказу
actor Пользователь as user
participant ARM as ARM
participant OMS as OMS
autonumber
user -> ARM: Добавляет КА в заказ
activate ARM
ARM -> OMS: API POST /orders/{orderId}/contractors/add
activate OMS
return API POST answer
return ок
@startuml
scale 800*800
mainframe Добавление КА к заказу
actor Пользователь as user
participant ARM as ARM
participant OMS as OMS
autonumber
user -> ARM: Добавляет КА в заказ
activate ARM
ARM -> OMS: API POST /orders/{orderId}/contractors/add
activate OMS
return API POST answer
return ок
@enduml

View File

@@ -1,30 +1,30 @@
@startuml
scale 800*800
mainframe Обновление данных в модели КА
actor Пользователь as user
participant ARM as ARM
participant OMS as OMS
participant MSKB as MSKB
autonumber
user -> ARM: Нажимает кнопку "Сохранить"
ARM -> OMS: API PUT /contractors/{contractorID}
activate OMS
OMS -> OMS: Разделяет модель КА\nна основные поля\n+ контакты
alt Если изменена только основная модель
OMS -> MSKB: API POST api/business/v2/physic/update
activate MSKB
return answer API POST
else Если добавлены контакты
OMS -> MSKB: API POST api/business/v2/contact/create
activate MSKB
return answer API POST
else Если удалены контакты
OMS -> MSKB: Удаление контакта КА:\n API DELETE api/business/v2/contact/delete
activate MSKB
return answer API DELETE
end
return answer API PUT
ARM --> user: Показывает сообщение и\nзакрывает модалку
@startuml
scale 800*800
mainframe Обновление данных в модели КА
actor Пользователь as user
participant ARM as ARM
participant OMS as OMS
participant MSKB as MSKB
autonumber
user -> ARM: Нажимает кнопку "Сохранить"
ARM -> OMS: API PUT /contractors/{contractorID}
activate OMS
OMS -> OMS: Разделяет модель КА\nна основные поля\n+ контакты
alt Если изменена только основная модель
OMS -> MSKB: API POST api/business/v2/physic/update
activate MSKB
return answer API POST
else Если добавлены контакты
OMS -> MSKB: API POST api/business/v2/contact/create
activate MSKB
return answer API POST
else Если удалены контакты
OMS -> MSKB: Удаление контакта КА:\n API DELETE api/business/v2/contact/delete
activate MSKB
return answer API DELETE
end
return answer API PUT
ARM --> user: Показывает сообщение и\nзакрывает модалку
@enduml

View File

@@ -1,19 +1,19 @@
@startuml
scale 800*800
mainframe Логика "Создание КА"
actor Пользователь as user
participant ARM as ARM
participant OMS as OMS
participant MSKB as MSKB
autonumber
user -> ARM: Нажимает кнопку "Создать контрагента"
ARM -> OMS: API POST /contractors/create
activate OMS
OMS -> MSKB: API POST api/business/v2/physic/create
activate MSKB
return answer API POST
return answer API POST
ARM --> user: Показывает сообщение и\nзакрывает модалку
@startuml
scale 800*800
mainframe Логика "Создание КА"
actor Пользователь as user
participant ARM as ARM
participant OMS as OMS
participant MSKB as MSKB
autonumber
user -> ARM: Нажимает кнопку "Создать контрагента"
ARM -> OMS: API POST /contractors/create
activate OMS
OMS -> MSKB: API POST api/business/v2/physic/create
activate MSKB
return answer API POST
return answer API POST
ARM --> user: Показывает сообщение и\nзакрывает модалку
@enduml

View File

@@ -1,19 +1,19 @@
@startuml
scale 800*800
mainframe Получение данных для полной карточки КА
actor Пользователь as user
participant ARM as ARM
participant OMS as OMS
participant MSKB as MSKB
autonumber
user -> ARM: Открывает карточку контрагента
ARM -> OMS: API GET /contractors/{contractorID}
activate OMS
OMS -> MSKB: GraphQL contractorPhysic
activate MSKB
return answer API GET
return answer get_short_info_contact
ARM --> user: Рендерит карточку контрагента
@startuml
scale 800*800
mainframe Получение данных для полной карточки КА
actor Пользователь as user
participant ARM as ARM
participant OMS as OMS
participant MSKB as MSKB
autonumber
user -> ARM: Открывает карточку контрагента
ARM -> OMS: API GET /contractors/{contractorID}
activate OMS
OMS -> MSKB: GraphQL contractorPhysic
activate MSKB
return answer API GET
return answer get_short_info_contact
ARM --> user: Рендерит карточку контрагента
@enduml

View File

@@ -1,21 +1,21 @@
@startuml
scale 800*800
mainframe Логика подблока "Информация о контрагенте"
actor Пользователь as user
participant ARM as ARM
participant OMS as OMS
participant WTIS as WTIS
autonumber
user -> ARM: Нажимает кнопку раскрытия блока
activate ARM
ARM -> OMS: API GET\n/contractors/{contractorID}/orderInfo
activate OMS
OMS -> WTIS: API GET\napi/order/oms_export/contragent_info_oms/{guid}
activate WTIS
WTIS -> WTIS: prepare data
return API GET answer
return API GET answer
return Рендерит блок
@startuml
scale 800*800
mainframe Логика подблока "Информация о контрагенте"
actor Пользователь as user
participant ARM as ARM
participant OMS as OMS
participant WTIS as WTIS
autonumber
user -> ARM: Нажимает кнопку раскрытия блока
activate ARM
ARM -> OMS: API GET\n/contractors/{contractorID}/orderInfo
activate OMS
OMS -> WTIS: API GET\napi/order/oms_export/contragent_info_oms/{guid}
activate WTIS
WTIS -> WTIS: prepare data
return API GET answer
return API GET answer
return Рендерит блок
@enduml

View File

@@ -1,38 +1,38 @@
@startuml
scale 800*800
mainframe Логика блока "Поиск КА"
actor Пользователь as user
participant ARM as ARM
participant OMS as OMS
participant MSKB as MSKB
autonumber
user -> ARM: Нажимает кнопку "Поиск КА"
return рендерит шаблон модального окна
alt Если ищем только по номеру телефона
user -> ARM: Заполняет номер телефона полностью
else Если ищем только по email
user -> ARM: Заполняет email полностью
else Если ищем по номеру телефона И email
user -> ARM: Заполняет номер телефона И email полностью
end
ARM -> ARM: валидирует поля
alt Валидация не успешна
ARM -> user: Информирует пользователя об ошибках
else Валидация успешно пройдена
ARM -> OMS: /contractors/search
activate OMS
end
OMS -> MSKB: API POST /api/business/v2/physic/search
activate MSKB
MSKB -> MSKB: prepare_data
return answer API POST
return success
ARM -> user: Отображает результаты поиска
@startuml
scale 800*800
mainframe Логика блока "Поиск КА"
actor Пользователь as user
participant ARM as ARM
participant OMS as OMS
participant MSKB as MSKB
autonumber
user -> ARM: Нажимает кнопку "Поиск КА"
return рендерит шаблон модального окна
alt Если ищем только по номеру телефона
user -> ARM: Заполняет номер телефона полностью
else Если ищем только по email
user -> ARM: Заполняет email полностью
else Если ищем по номеру телефона И email
user -> ARM: Заполняет номер телефона И email полностью
end
ARM -> ARM: валидирует поля
alt Валидация не успешна
ARM -> user: Информирует пользователя об ошибках
else Валидация успешно пройдена
ARM -> OMS: /contractors/search
activate OMS
end
OMS -> MSKB: API POST /api/business/v2/physic/search
activate MSKB
MSKB -> MSKB: prepare_data
return answer API POST
return success
ARM -> user: Отображает результаты поиска
@enduml

View File

@@ -1,20 +1,20 @@
@startuml
scale 1000*1000
mainframe Получение данных (Реализации, оплаты) от WTIS MVP
participant WTIS as WTIS
queue kafka
participant workflow as workflow
collections Redis as redis
autonumber
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
loop Всегда
WTIS -> kafka: Пишет все инфо\nо документах по заказу
workflow -> kafka: Получает документы\nк заказу из очереди
alt данных нет в кэше по ключу
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня
else данные есть в кэше по ключу
workflow -> redis: Удаляет запись по ключу
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня
end
@startuml
scale 1000*1000
mainframe Получение данных (Реализации, оплаты) от WTIS MVP
participant WTIS as WTIS
queue kafka
participant workflow as workflow
collections Redis as redis
autonumber
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
loop Всегда
WTIS -> kafka: Пишет все инфо\nо документах по заказу
workflow -> kafka: Получает документы\nк заказу из очереди
alt данных нет в кэше по ключу
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня
else данные есть в кэше по ключу
workflow -> redis: Удаляет запись по ключу
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня
end
@enduml

View File

@@ -1,19 +1,19 @@
@startuml
scale 1000*1000
mainframe Получение данных безналичная оплата / оплата по счету из kafka
participant paykeeper
participant 1C
queue kafka
participant workflow as workflow
collections PaymentsDb as PaymentsDb
autonumber
loop Всегда
paykeeper -> kafka: Пишет все инфо\nо документах по заказу
1C -> kafka: Пишет все инфо\nо документах по заказу
workflow -> kafka: Получает документы\nк заказу из очереди
workflow -> workflow: Преобразовывает данные
workflow -> PaymentsDb: Записывает в коллекцию
end
@startuml
scale 1000*1000
mainframe Получение данных безналичная оплата / оплата по счету из kafka
participant paykeeper
participant 1C
queue kafka
participant workflow as workflow
collections PaymentsDb as PaymentsDb
autonumber
loop Всегда
paykeeper -> kafka: Пишет все инфо\nо документах по заказу
1C -> kafka: Пишет все инфо\nо документах по заказу
workflow -> kafka: Получает документы\nк заказу из очереди
workflow -> workflow: Преобразовывает данные
workflow -> PaymentsDb: Записывает в коллекцию
end
@enduml

View File

@@ -1,46 +1,46 @@
@startuml
scale 1000*1000
mainframe Получение данных для отрисовки таблицы оплат MVP
participant WTIS as WTIS
collections Redis as redis
participant payments as payments
participant workflow as workflow
participant gateway as gateway
participant ARM as ARM
actor user as user
autonumber
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
autonumber 1
user -> ARM: Открывает заказ
ARM -> gateway: Запрашивает\nдокументы к заказу
activate gateway
== Получение данных о наличной оплате ==
gateway -> redis: Проверяет наличие\nданных в кэше
alt данные есть в кэше
redis --> gateway: Возвращает\nдокументы\n к заказу
else данных нет в кэше
redis --> gateway: Возвращает\nпустой ответ
gateway -> workflow: Триггерит на\nобновление данных
activate workflow
workflow -> WTIS: API GET order_doc_info()
activate WTIS
WTIS --> workflow: answer
deactivate WTIS
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня (спорно)
redis --> workflow: Сообщение об успешном сохранении
workflow --> gateway: Возвращает\nдокументы\n к заказу
end
== Получение данных о других типах оплаты ==
workflow -> payments: Запрашивает данные\nоб онлайн оплате И\nпо счету
activate payments
payments --> workflow: answer
deactivate payments
workflow -> workflow: Агрегирует данные\nс источников
workflow --> gateway: answer
deactivate workflow
gateway --> ARM: возвращает\nданные об оплатах
deactivate gateway
ARM --> user: Рендерит блок\nдокументов
@startuml
scale 1000*1000
mainframe Получение данных для отрисовки таблицы оплат MVP
participant WTIS as WTIS
collections Redis as redis
participant payments as payments
participant workflow as workflow
participant gateway as gateway
participant ARM as ARM
actor user as user
autonumber
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
autonumber 1
user -> ARM: Открывает заказ
ARM -> gateway: Запрашивает\nдокументы к заказу
activate gateway
== Получение данных о наличной оплате ==
gateway -> redis: Проверяет наличие\nданных в кэше
alt данные есть в кэше
redis --> gateway: Возвращает\nдокументы\n к заказу
else данных нет в кэше
redis --> gateway: Возвращает\nпустой ответ
gateway -> workflow: Триггерит на\nобновление данных
activate workflow
workflow -> WTIS: API GET order_doc_info()
activate WTIS
WTIS --> workflow: answer
deactivate WTIS
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня (спорно)
redis --> workflow: Сообщение об успешном сохранении
workflow --> gateway: Возвращает\nдокументы\n к заказу
end
== Получение данных о других типах оплаты ==
workflow -> payments: Запрашивает данные\nоб онлайн оплате И\nпо счету
activate payments
payments --> workflow: answer
deactivate payments
workflow -> workflow: Агрегирует данные\nс источников
workflow --> gateway: answer
deactivate workflow
gateway --> ARM: возвращает\nданные об оплатах
deactivate gateway
ARM --> user: Рендерит блок\nдокументов
@enduml

View File

@@ -1,36 +1,36 @@
@startuml
scale 1000*1000
mainframe Получение данных для отрисовки модалки Реализации или оплаты наличными
participant WTIS as WTIS
collections Redis as redis
participant workflow as workflow
participant gateway as gateway
participant ARM as ARM
actor user as user
autonumber
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
user -> ARM: Открывает заказ
ARM -> gateway: Запрашивает\nдокументы к заказу
activate gateway
gateway -> redis: Проверяет наличие\nданных в кэше
alt данные есть в кэше
redis --> gateway: Возвращает\nдокументы\n к заказу
else данных нет в кэше
redis --> gateway: Возвращает\nпустой ответ
gateway -> workflow: Триггерит на\nобновление данных
activate workflow
workflow -> WTIS: API GET order_doc_info()
activate WTIS
return answer
deactivate WTIS
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня (спорно)
redis --> workflow: Сообщение об успешном сохранении
workflow --> gateway: Возвращает\nдокументы\n к заказу
deactivate workflow
end
gateway --> ARM: данные по документу
ARM -> user: рендерит модальное\nокно с инфо\nо документе
@startuml
scale 1000*1000
mainframe Получение данных для отрисовки модалки Реализации или оплаты наличными
participant WTIS as WTIS
collections Redis as redis
participant workflow as workflow
participant gateway as gateway
participant ARM as ARM
actor user as user
autonumber
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
user -> ARM: Открывает заказ
ARM -> gateway: Запрашивает\nдокументы к заказу
activate gateway
gateway -> redis: Проверяет наличие\nданных в кэше
alt данные есть в кэше
redis --> gateway: Возвращает\nдокументы\n к заказу
else данных нет в кэше
redis --> gateway: Возвращает\nпустой ответ
gateway -> workflow: Триггерит на\nобновление данных
activate workflow
workflow -> WTIS: API GET order_doc_info()
activate WTIS
return answer
deactivate WTIS
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня (спорно)
redis --> workflow: Сообщение об успешном сохранении
workflow --> gateway: Возвращает\nдокументы\n к заказу
deactivate workflow
end
gateway --> ARM: данные по документу
ARM -> user: рендерит модальное\nокно с инфо\nо документе
@enduml

View File

@@ -1,38 +1,38 @@
@startuml
scale 1000*1000
mainframe Получение данных для отрисовки таблицы реализаций MVP
participant WTIS as WTIS
collections Redis as redis
participant workflow as workflow
participant gateway as gateway
participant ARM as ARM
actor user as user
autonumber
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
autonumber 1
user -> ARM: Открывает заказ
ARM -> gateway: Запрашивает\nдокументы к заказу
activate gateway
gateway -> redis: Проверяет наличие\nданных в кэше
alt данные есть в кэше
redis --> gateway: Возвращает\nдокументы\n к заказу
else данных нет в кэше
redis --> gateway: Возвращает\nпустой ответ
gateway -> workflow: Триггерит на\nобновление данных
activate workflow
workflow -> WTIS: API GET order_doc_info()
activate WTIS
return answer
deactivate WTIS
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня (спорно)
redis --> workflow: Сообщение об успешном сохранении
workflow --> gateway: Возвращает\nдокументы\n к заказу
deactivate workflow
end
gateway --> ARM: возвращает\nданные о заказе
deactivate gateway
ARM --> user: Рендерит блок\nдокументов
@startuml
scale 1000*1000
mainframe Получение данных для отрисовки таблицы реализаций MVP
participant WTIS as WTIS
collections Redis as redis
participant workflow as workflow
participant gateway as gateway
participant ARM as ARM
actor user as user
autonumber
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
autonumber 1
user -> ARM: Открывает заказ
ARM -> gateway: Запрашивает\nдокументы к заказу
activate gateway
gateway -> redis: Проверяет наличие\nданных в кэше
alt данные есть в кэше
redis --> gateway: Возвращает\nдокументы\n к заказу
else данных нет в кэше
redis --> gateway: Возвращает\nпустой ответ
gateway -> workflow: Триггерит на\nобновление данных
activate workflow
workflow -> WTIS: API GET order_doc_info()
activate WTIS
return answer
deactivate WTIS
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня (спорно)
redis --> workflow: Сообщение об успешном сохранении
workflow --> gateway: Возвращает\nдокументы\n к заказу
deactivate workflow
end
gateway --> ARM: возвращает\nданные о заказе
deactivate gateway
ARM --> user: Рендерит блок\nдокументов
@enduml

View File

@@ -1,41 +1,41 @@
@startuml
scale 800*800
mainframe Получение списка регионов от Officer
actor Пользователь as user
participant ARM as ARM
participant gateway as gateway
collections redis as redis
participant workflow as workflow
participant officer as officer
autonumber
user -> ARM: Открывает форму\nзаказа
activate ARM
ARM -> gateway: REST API GET\n инфо о регионах
activate gateway
gateway -> redis: Запрашивает\nсписок\nрегионов
opt Данные о регионах есть в кэше
redis --> gateway: answer
else Данные необходимо обновить в кэше
gateway -> workflow: триггерит обновление
activate workflow
workflow -> officer: GraphQL method\noffices
activate officer
officer --> workflow: GraphQL answer
workflow -> officer: GraphQL method\nlocalities
officer --> workflow: GraphQL answer
deactivate officer
workflow -> workflow: Обработка\nданных
workflow -> redis: Записывает регионы\nи параметры в экш
workflow --> gateway: answer
deactivate workflow
end
gateway --> ARM: REST API GET\nanswer
deactivate gateway
ARM --> user: Рендерит данные
deactivate ARM
@enduml
@startuml
scale 800*800
mainframe Получение списка регионов от Officer
actor Пользователь as user
participant ARM as ARM
participant gateway as gateway
collections redis as redis
participant workflow as workflow
participant officer as officer
autonumber
user -> ARM: Открывает форму\nзаказа
activate ARM
ARM -> gateway: REST API GET\n инфо о регионах
activate gateway
gateway -> redis: Запрашивает\nсписок\nрегионов
opt Данные о регионах есть в кэше
redis --> gateway: answer
else Данные необходимо обновить в кэше
gateway -> workflow: триггерит обновление
activate workflow
workflow -> officer: GraphQL method\noffices
activate officer
officer --> workflow: GraphQL answer
workflow -> officer: GraphQL method\nlocalities
officer --> workflow: GraphQL answer
deactivate officer
workflow -> workflow: Обработка\nданных
workflow -> redis: Записывает регионы\nи параметры в экш
workflow --> gateway: answer
deactivate workflow
end
gateway --> ARM: REST API GET\nanswer
deactivate gateway
ARM --> user: Рендерит данные
deactivate ARM
@enduml