add new scheme
This commit is contained in:
@@ -1,46 +1,46 @@
|
||||
@startuml
|
||||
mainframe "FRQ-1 Заказ.ПолучениеДанных."
|
||||
Actor USER
|
||||
participant SITE
|
||||
participant WTIS
|
||||
queue Название_топика_1
|
||||
queue Название_топика_2
|
||||
participant OMS
|
||||
participant Officer
|
||||
|
||||
|
||||
autonumber 1
|
||||
USER -> USER: Создает заказ на сайте
|
||||
USER -> SITE: Сущность "Заказ"\nс набором атрибутов
|
||||
SITE -> WTIS: Сущность "Заказ"\nс набором атрибутов
|
||||
WTIS -> WTIS: Проверка условий\nи отбор заказов
|
||||
WTIS -> Название_топика_1: Записывает Сущность\n"Заказ" с набором\nатрибутов
|
||||
OMS -> Название_топика_1: Читает Сущность\n"Заказ" с набором\nатрибутов
|
||||
OMS -> OMS: Валидация КА
|
||||
autonumber 7.1
|
||||
alt валидация пройдена
|
||||
OMS -> OMS: Продолжение сценария
|
||||
else валидация не пройдена
|
||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||
end
|
||||
autonumber 8
|
||||
OMS <-> Officer: Получение лимитов офиса
|
||||
OMS -> OMS: Валидация способа получения
|
||||
alt валидация пройдена
|
||||
autonumber 9.1
|
||||
OMS -> OMS: Продолжение сценария
|
||||
else валидация не пройдена
|
||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||
end
|
||||
autonumber 10
|
||||
OMS -> OMS: Валидация способа оплаты
|
||||
alt валидация пройдена
|
||||
autonumber 10.1
|
||||
OMS -> OMS: Продолжение сценария
|
||||
else валидация не пройдена
|
||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||
end
|
||||
autonumber 11
|
||||
OMS -> OMS: Данные о заказе\nполучены и провалидированы
|
||||
OMS -> OMS: Переход к бизнес-проверкам
|
||||
@startuml
|
||||
mainframe "FRQ-1 Заказ.ПолучениеДанных."
|
||||
Actor USER
|
||||
participant SITE
|
||||
participant WTIS
|
||||
queue Название_топика_1
|
||||
queue Название_топика_2
|
||||
participant OMS
|
||||
participant Officer
|
||||
|
||||
|
||||
autonumber 1
|
||||
USER -> USER: Создает заказ на сайте
|
||||
USER -> SITE: Сущность "Заказ"\nс набором атрибутов
|
||||
SITE -> WTIS: Сущность "Заказ"\nс набором атрибутов
|
||||
WTIS -> WTIS: Проверка условий\nи отбор заказов
|
||||
WTIS -> Название_топика_1: Записывает Сущность\n"Заказ" с набором\nатрибутов
|
||||
OMS -> Название_топика_1: Читает Сущность\n"Заказ" с набором\nатрибутов
|
||||
OMS -> OMS: Валидация КА
|
||||
autonumber 7.1
|
||||
alt валидация пройдена
|
||||
OMS -> OMS: Продолжение сценария
|
||||
else валидация не пройдена
|
||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||
end
|
||||
autonumber 8
|
||||
OMS <-> Officer: Получение лимитов офиса
|
||||
OMS -> OMS: Валидация способа получения
|
||||
alt валидация пройдена
|
||||
autonumber 9.1
|
||||
OMS -> OMS: Продолжение сценария
|
||||
else валидация не пройдена
|
||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||
end
|
||||
autonumber 10
|
||||
OMS -> OMS: Валидация способа оплаты
|
||||
alt валидация пройдена
|
||||
autonumber 10.1
|
||||
OMS -> OMS: Продолжение сценария
|
||||
else валидация не пройдена
|
||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||
end
|
||||
autonumber 11
|
||||
OMS -> OMS: Данные о заказе\nполучены и провалидированы
|
||||
OMS -> OMS: Переход к бизнес-проверкам
|
||||
@enduml
|
||||
@@ -1,55 +1,55 @@
|
||||
@startuml
|
||||
mainframe "FRQ-2 Заказ.БизнесПроверки."
|
||||
|
||||
queue Название_топика_2
|
||||
database ClickHouse
|
||||
participant OMS
|
||||
participant DRUZ
|
||||
participant PDM
|
||||
|
||||
|
||||
autonumber 1
|
||||
OMS -> PDM: Запрашивает\nGUID производителя товара
|
||||
OMS -> OMS: Проверка на возможность\nпродажи товара
|
||||
|
||||
alt валидация пройдена
|
||||
autonumber 2.1
|
||||
OMS -> OMS: Продолжение сценария
|
||||
else валидация не пройдена
|
||||
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||
end
|
||||
autonumber 3
|
||||
|
||||
OMS -> DRUZ: Запрашивает \nпризнак "Наличие"
|
||||
OMS -> OMS: Проверка что товары\nиз заказа в наличии
|
||||
alt валидация пройдена
|
||||
autonumber 4.1
|
||||
OMS -> OMS: Продолжение сценария
|
||||
else валидация не пройдена
|
||||
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||
end
|
||||
autonumber 5
|
||||
OMS -> PDM: Запрашивает ВГХ товара
|
||||
OMS -> OMS: Расчитывает объем и\nобщий вес заказа
|
||||
OMS -> OMS: Проверка на лимиты\nВГХ ТТ
|
||||
alt валидация пройдена
|
||||
autonumber 7.1
|
||||
OMS -> OMS: Продолжение сценария
|
||||
else валидация не пройдена
|
||||
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||
end
|
||||
autonumber 8
|
||||
OMS -> OMS: Проверка способа\nоплаты на ТТ
|
||||
alt валидация пройдена
|
||||
autonumber 8.1
|
||||
OMS -> OMS: Продолжение сценария
|
||||
else валидация не пройдена
|
||||
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||
end
|
||||
|
||||
|
||||
@startuml
|
||||
mainframe "FRQ-2 Заказ.БизнесПроверки."
|
||||
|
||||
queue Название_топика_2
|
||||
database ClickHouse
|
||||
participant OMS
|
||||
participant DRUZ
|
||||
participant PDM
|
||||
|
||||
|
||||
autonumber 1
|
||||
OMS -> PDM: Запрашивает\nGUID производителя товара
|
||||
OMS -> OMS: Проверка на возможность\nпродажи товара
|
||||
|
||||
alt валидация пройдена
|
||||
autonumber 2.1
|
||||
OMS -> OMS: Продолжение сценария
|
||||
else валидация не пройдена
|
||||
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||
end
|
||||
autonumber 3
|
||||
|
||||
OMS -> DRUZ: Запрашивает \nпризнак "Наличие"
|
||||
OMS -> OMS: Проверка что товары\nиз заказа в наличии
|
||||
alt валидация пройдена
|
||||
autonumber 4.1
|
||||
OMS -> OMS: Продолжение сценария
|
||||
else валидация не пройдена
|
||||
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||
end
|
||||
autonumber 5
|
||||
OMS -> PDM: Запрашивает ВГХ товара
|
||||
OMS -> OMS: Расчитывает объем и\nобщий вес заказа
|
||||
OMS -> OMS: Проверка на лимиты\nВГХ ТТ
|
||||
alt валидация пройдена
|
||||
autonumber 7.1
|
||||
OMS -> OMS: Продолжение сценария
|
||||
else валидация не пройдена
|
||||
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||
end
|
||||
autonumber 8
|
||||
OMS -> OMS: Проверка способа\nоплаты на ТТ
|
||||
alt валидация пройдена
|
||||
autonumber 8.1
|
||||
OMS -> OMS: Продолжение сценария
|
||||
else валидация не пройдена
|
||||
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||
end
|
||||
|
||||
|
||||
@enduml
|
||||
@@ -1,39 +1,39 @@
|
||||
@startuml
|
||||
scale 1500x1500
|
||||
mainframe Автооформление заказов
|
||||
actor user as user
|
||||
participant SITE
|
||||
queue kafka
|
||||
participant Gateway
|
||||
participant workflow
|
||||
participant wtis
|
||||
|
||||
user -> SITE: Оформляет заказ
|
||||
SITE -> SITE: Сохраняет заказ в БД
|
||||
SITE --> kafka: Пишет заказ в kafka
|
||||
Gateway --> kafka: Забирает заказ
|
||||
|
||||
Gateway -> workflow: CreateB2CAO
|
||||
workflow -> workflow: Проверяет условия АО
|
||||
workflow -> workflow: Проверяет тип доставки
|
||||
alt Тип доставки "Курьером"
|
||||
workflow -> workflow: Устанавливает таймер на N минут
|
||||
alt Поступила оплата в заказ до истечения срока таймера
|
||||
workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа
|
||||
else Не поступила оплата в заказ до истечения срока таймера
|
||||
workflow -> wtis: Заказ передается во WTIS\nМеняется мастер система
|
||||
end
|
||||
else Тип доставки "Самовывоз"
|
||||
workflow -> workflow: Проверяет наличие\nкрупногабаритных товаров\nв заказе
|
||||
alt Крупногабаритных товаров в заказе нет
|
||||
workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа
|
||||
else Крупногабаритные товары в заказе есть
|
||||
workflow -> workflow: Устанавливает таймер на N минут
|
||||
alt Поступила оплата в заказ до истечения срока таймера
|
||||
workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа
|
||||
else Не поступила оплата в заказ до истечения срока таймера
|
||||
workflow -> wtis: Заказ передается во WTIS\nМеняется мастер система
|
||||
end
|
||||
end
|
||||
end
|
||||
@startuml
|
||||
scale 1500x1500
|
||||
mainframe Автооформление заказов
|
||||
actor user as user
|
||||
participant SITE
|
||||
queue kafka
|
||||
participant Gateway
|
||||
participant workflow
|
||||
participant wtis
|
||||
|
||||
user -> SITE: Оформляет заказ
|
||||
SITE -> SITE: Сохраняет заказ в БД
|
||||
SITE --> kafka: Пишет заказ в kafka
|
||||
Gateway --> kafka: Забирает заказ
|
||||
|
||||
Gateway -> workflow: CreateB2CAO
|
||||
workflow -> workflow: Проверяет условия АО
|
||||
workflow -> workflow: Проверяет тип доставки
|
||||
alt Тип доставки "Курьером"
|
||||
workflow -> workflow: Устанавливает таймер на N минут
|
||||
alt Поступила оплата в заказ до истечения срока таймера
|
||||
workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа
|
||||
else Не поступила оплата в заказ до истечения срока таймера
|
||||
workflow -> wtis: Заказ передается во WTIS\nМеняется мастер система
|
||||
end
|
||||
else Тип доставки "Самовывоз"
|
||||
workflow -> workflow: Проверяет наличие\nкрупногабаритных товаров\nв заказе
|
||||
alt Крупногабаритных товаров в заказе нет
|
||||
workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа
|
||||
else Крупногабаритные товары в заказе есть
|
||||
workflow -> workflow: Устанавливает таймер на N минут
|
||||
alt Поступила оплата в заказ до истечения срока таймера
|
||||
workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа
|
||||
else Не поступила оплата в заказ до истечения срока таймера
|
||||
workflow -> wtis: Заказ передается во WTIS\nМеняется мастер система
|
||||
end
|
||||
end
|
||||
end
|
||||
@enduml
|
||||
@@ -1,30 +1,33 @@
|
||||
@startuml
|
||||
scale 1200*1200
|
||||
mainframe Получение свободных остатков
|
||||
actor Пользователь as user
|
||||
participant ARM as ARM
|
||||
participant OMS as OMS
|
||||
participant Shcat as Shcat
|
||||
participant Susanin as Susanin
|
||||
autonumber
|
||||
|
||||
user -> ARM: Нажимает на остатки товара\nв товарной строке заказа
|
||||
ARM -> OMS: API GET /quantity-list-by-office
|
||||
activate OMS
|
||||
OMS -> OMS: валидирует запрос
|
||||
|
||||
|
||||
OMS -> Shcat: POST method rests.get
|
||||
activate Shcat
|
||||
return answer API POST
|
||||
|
||||
OMS -> Susanin: POST method get_logistic_chains_with_priority
|
||||
activate Susanin
|
||||
return answer API POST
|
||||
|
||||
OMS -> OMS: Сращивает ответы\nмежду собой
|
||||
OMS -> OMS: Формирует два массива:\n1. По лог.цепям\n2. Прочие склады
|
||||
|
||||
return answer API GET
|
||||
ARM --> user: Рендерит данные в модальном окне
|
||||
@startuml
|
||||
scale 1200*1200
|
||||
mainframe Получение свободных остатков
|
||||
actor Пользователь as user
|
||||
participant ARM as ARM
|
||||
participant OMS as OMS
|
||||
collections Cache as cache
|
||||
participant Shcat as Shcat
|
||||
participant Susanin as Susanin
|
||||
autonumber
|
||||
|
||||
user -> ARM: Нажимает на остатки товара\nв товарной строке заказа
|
||||
ARM -> OMS: API GET /quantity-list-by-office
|
||||
activate OMS
|
||||
OMS -> OMS: валидирует запрос
|
||||
|
||||
OMS -> cache: Забрать все офисы из кэша
|
||||
activate cache
|
||||
return answer
|
||||
|
||||
OMS -> Shcat: POST method rests.get
|
||||
activate Shcat
|
||||
return answer API POST
|
||||
|
||||
OMS -> Susanin: POST method get_logistic_chains_with_priority
|
||||
activate Susanin
|
||||
return answer API POST
|
||||
|
||||
OMS -> OMS: Формирует два массива:\n1. По лог.цепям\n2. Прочие склады
|
||||
|
||||
return answer API GET
|
||||
ARM --> user: Рендерит данные в модальном окне
|
||||
@enduml
|
||||
@@ -1,24 +1,24 @@
|
||||
@startuml
|
||||
scale 1200*1200
|
||||
mainframe Получение остатков под резервом
|
||||
actor Пользователь as user
|
||||
participant ARM as ARM
|
||||
participant OMS as OMS
|
||||
participant Susanin as Susanin
|
||||
autonumber
|
||||
|
||||
user -> ARM: Нажимает на остатки товара\nв товарной строке заказа
|
||||
ARM -> OMS: API GET /quantity-list-by-office
|
||||
activate OMS
|
||||
OMS -> OMS: валидирует запрос
|
||||
|
||||
OMS -> Susanin: POST method get_logistic_chains_with_priority
|
||||
activate Susanin
|
||||
return answer API POST
|
||||
|
||||
OMS -> OMS: запрос в mongodb Order с фильтрами по товару
|
||||
OMS -> OMS: Формирует два массива:\n1. По лог.цепям\n2. Прочие склады
|
||||
|
||||
return answer API GET
|
||||
ARM --> user: Рендерит данные в модальном окне
|
||||
@startuml
|
||||
scale 1200*1200
|
||||
mainframe Получение остатков под резервом
|
||||
actor Пользователь as user
|
||||
participant ARM as ARM
|
||||
participant OMS as OMS
|
||||
participant Susanin as Susanin
|
||||
autonumber
|
||||
|
||||
user -> ARM: Нажимает на остатки товара\nв товарной строке заказа
|
||||
ARM -> OMS: API GET /quantity-list-by-office
|
||||
activate OMS
|
||||
OMS -> OMS: валидирует запрос
|
||||
|
||||
OMS -> Susanin: POST method get_logistic_chains_with_priority
|
||||
activate Susanin
|
||||
return answer API POST
|
||||
|
||||
OMS -> OMS: запрос в mongodb Order с фильтрами по товару
|
||||
OMS -> OMS: Формирует два массива:\n1. По лог.цепям\n2. Прочие склады
|
||||
|
||||
return answer API GET
|
||||
ARM --> user: Рендерит данные в модальном окне
|
||||
@enduml
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
@startuml
|
||||
mainframe Добавление/удаление заметки пользователя в ЛК
|
||||
scale 1500x1500
|
||||
actor user as user
|
||||
participant ARM
|
||||
participant Gateway
|
||||
participant personalCabinet
|
||||
|
||||
autonumber
|
||||
user -> ARM: Нажимает кнопку "Главная"
|
||||
alt Пользователь ввел текст и снял фокус с поля
|
||||
ARM -> Gateway: Отправляет запрос на\nPUT personal-cabinet/v1/note
|
||||
else Пользователь нажал кнопку "Очистить"
|
||||
ARM -> Gateway: Отправляет запрос на\nDELETE personal-cabinet/v1/note
|
||||
end
|
||||
|
||||
|
||||
ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/note
|
||||
Gateway -> personalCabinet: Вызывает методы для\nизменения заметок по пользователю
|
||||
personalCabinet --> Gateway: answer
|
||||
Gateway --> ARM: answer
|
||||
ARM --> user: answer
|
||||
@startuml
|
||||
mainframe Добавление/удаление заметки пользователя в ЛК
|
||||
scale 1500x1500
|
||||
actor user as user
|
||||
participant ARM
|
||||
participant Gateway
|
||||
participant personalCabinet
|
||||
|
||||
autonumber
|
||||
user -> ARM: Нажимает кнопку "Главная"
|
||||
alt Пользователь ввел текст и снял фокус с поля
|
||||
ARM -> Gateway: Отправляет запрос на\nPUT personal-cabinet/v1/note
|
||||
else Пользователь нажал кнопку "Очистить"
|
||||
ARM -> Gateway: Отправляет запрос на\nDELETE personal-cabinet/v1/note
|
||||
end
|
||||
|
||||
|
||||
ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/note
|
||||
Gateway -> personalCabinet: Вызывает методы для\nизменения заметок по пользователю
|
||||
personalCabinet --> Gateway: answer
|
||||
Gateway --> ARM: answer
|
||||
ARM --> user: answer
|
||||
@enduml
|
||||
@@ -1,23 +1,23 @@
|
||||
@startuml
|
||||
mainframe Взаимодействие с избранным
|
||||
scale 1500x1500
|
||||
actor user as user
|
||||
participant ARM
|
||||
participant Gateway
|
||||
participant Order
|
||||
|
||||
autonumber
|
||||
user -> ARM: Нажимает иконку\nсердечка в любом заказе
|
||||
|
||||
alt Поле было предварительно выделено (активное состояние)
|
||||
ARM -> Gateway: Отправляет запрос на\nDELETE orders/v1/{orderID}/favorite
|
||||
else Поле было предварительно не выделено (не активное состояние)
|
||||
ARM -> Gateway: Отправляет запрос на\nPOST orders/v1/{orderID}/favorite
|
||||
end
|
||||
|
||||
Gateway -> Order: Вызывает метод\nвзаимодействия с заказом
|
||||
Order -> Order: Обновляет модель order\n(Либо добавляет uuid юзера\nлибо удаляет)
|
||||
Order --> Gateway: answer
|
||||
Gateway --> ARM: answer
|
||||
ARM --> user: answer
|
||||
@startuml
|
||||
mainframe Взаимодействие с избранным
|
||||
scale 1500x1500
|
||||
actor user as user
|
||||
participant ARM
|
||||
participant Gateway
|
||||
participant Order
|
||||
|
||||
autonumber
|
||||
user -> ARM: Нажимает иконку\nсердечка в любом заказе
|
||||
|
||||
alt Поле было предварительно выделено (активное состояние)
|
||||
ARM -> Gateway: Отправляет запрос на\nDELETE orders/v1/{orderID}/favorite
|
||||
else Поле было предварительно не выделено (не активное состояние)
|
||||
ARM -> Gateway: Отправляет запрос на\nPOST orders/v1/{orderID}/favorite
|
||||
end
|
||||
|
||||
Gateway -> Order: Вызывает метод\nвзаимодействия с заказом
|
||||
Order -> Order: Обновляет модель order\n(Либо добавляет uuid юзера\nлибо удаляет)
|
||||
Order --> Gateway: answer
|
||||
Gateway --> ARM: answer
|
||||
ARM --> user: answer
|
||||
@enduml
|
||||
@@ -1,17 +1,17 @@
|
||||
@startuml
|
||||
mainframe Получение данных о заказах для ЛК пользователя
|
||||
scale 1500x1500
|
||||
actor user as user
|
||||
participant ARM
|
||||
participant Gateway
|
||||
participant Order
|
||||
|
||||
autonumber
|
||||
user -> ARM: Нажимает кнопку "Главная"
|
||||
user -> ARM: Нажимает кнопку "Статистика по заказам"
|
||||
ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/stats
|
||||
Gateway -> Order: Вызывает методы для получения всех необходимых срезов по заказам
|
||||
Order --> Gateway: answer
|
||||
Gateway --> ARM: answer
|
||||
ARM --> user: Рендерит информационные блоки
|
||||
@startuml
|
||||
mainframe Получение данных о заказах для ЛК пользователя
|
||||
scale 1500x1500
|
||||
actor user as user
|
||||
participant ARM
|
||||
participant Gateway
|
||||
participant Order
|
||||
|
||||
autonumber
|
||||
user -> ARM: Нажимает кнопку "Главная"
|
||||
user -> ARM: Нажимает кнопку "Статистика по заказам"
|
||||
ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/stats
|
||||
Gateway -> Order: Вызывает методы для получения всех необходимых срезов по заказам
|
||||
Order --> Gateway: answer
|
||||
Gateway --> ARM: answer
|
||||
ARM --> user: Рендерит информационные блоки
|
||||
@enduml
|
||||
@@ -1,16 +1,16 @@
|
||||
@startuml
|
||||
mainframe Получение заметки пользователя для ЛК
|
||||
scale 1500x1500
|
||||
actor user as user
|
||||
participant ARM
|
||||
participant Gateway
|
||||
participant personalCabinet
|
||||
|
||||
autonumber
|
||||
user -> ARM: Нажимает кнопку "Главная"
|
||||
ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/note
|
||||
Gateway -> personalCabinet: Вызывает методы для получения заметок по пользователю
|
||||
personalCabinet --> Gateway: answer
|
||||
Gateway --> ARM: answer
|
||||
ARM --> user: Рендерит текст в блоке заметок
|
||||
@startuml
|
||||
mainframe Получение заметки пользователя для ЛК
|
||||
scale 1500x1500
|
||||
actor user as user
|
||||
participant ARM
|
||||
participant Gateway
|
||||
participant personalCabinet
|
||||
|
||||
autonumber
|
||||
user -> ARM: Нажимает кнопку "Главная"
|
||||
ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/note
|
||||
Gateway -> personalCabinet: Вызывает методы для получения заметок по пользователю
|
||||
personalCabinet --> Gateway: answer
|
||||
Gateway --> ARM: answer
|
||||
ARM --> user: Рендерит текст в блоке заметок
|
||||
@enduml
|
||||
@@ -1,26 +1,26 @@
|
||||
@startuml
|
||||
scale 800x800
|
||||
actor user as user
|
||||
participant ARM
|
||||
participant Gateway
|
||||
participant SITE
|
||||
|
||||
autonumber
|
||||
user -> ARM: Вводит номер корзины
|
||||
ARM -> Gateway: Запрос на info/cart
|
||||
Gateway -> SITE: Запрос на api/v1/json/user-cart/
|
||||
SITE --> Gateway: answer
|
||||
Gateway -> Gateway: Получает название региона из кэша
|
||||
Gateway -> Gateway: Запрашивает цены из SCROOGE
|
||||
Gateway -> Gateway: Запрашивает инфо о товаре из PDM
|
||||
Gateway -> Gateway: Собирает ответ для frontend
|
||||
Gateway --> ARM: answer
|
||||
ARM -> ARM: Проверяет регионы\nв запросе и в заказе
|
||||
|
||||
alt Регион корзины == регион заказа
|
||||
ARM --> user: answer
|
||||
else Регион корзины <> регион заказа
|
||||
ARM -> user: Запрашивает\nподтверждение\nо смене региона
|
||||
end
|
||||
|
||||
@startuml
|
||||
scale 800x800
|
||||
actor user as user
|
||||
participant ARM
|
||||
participant Gateway
|
||||
participant SITE
|
||||
|
||||
autonumber
|
||||
user -> ARM: Вводит номер корзины
|
||||
ARM -> Gateway: Запрос на info/cart
|
||||
Gateway -> SITE: Запрос на api/v1/json/user-cart/
|
||||
SITE --> Gateway: answer
|
||||
Gateway -> Gateway: Получает название региона из кэша
|
||||
Gateway -> Gateway: Запрашивает цены из SCROOGE
|
||||
Gateway -> Gateway: Запрашивает инфо о товаре из PDM
|
||||
Gateway -> Gateway: Собирает ответ для frontend
|
||||
Gateway --> ARM: answer
|
||||
ARM -> ARM: Проверяет регионы\nв запросе и в заказе
|
||||
|
||||
alt Регион корзины == регион заказа
|
||||
ARM --> user: answer
|
||||
else Регион корзины <> регион заказа
|
||||
ARM -> user: Запрашивает\nподтверждение\nо смене региона
|
||||
end
|
||||
|
||||
@enduml
|
||||
@@ -1,77 +1,77 @@
|
||||
@startuml
|
||||
scale 2000x2000
|
||||
mainframe Внесение изменения в заказ в статусе "В работе"
|
||||
Actor USER
|
||||
participant ARM
|
||||
participant Gateway
|
||||
participant Workflow
|
||||
participant History
|
||||
participant WTIS
|
||||
|
||||
'-------------------------------------------action-------------------
|
||||
autonumber
|
||||
|
||||
USER -> ARM: Открывает заказ
|
||||
USER -> ARM: Нажимает кнопку\n"Редактировать заказ"
|
||||
ARM -> Gateway: Запрос с номером заказа
|
||||
Gateway -> Workflow: Инициирует запуск workflow
|
||||
Workflow -> History: Открывает транзакцию\nrpc StartTransaction(StartTransactionRequest)
|
||||
History --> Workflow: Подтверждает открытие транзакции\nreturn StartTransactionResponse
|
||||
Workflow --> Gateway: Возвращает поля доступные\nдля редактирования
|
||||
Gateway --> ARM: Возвращает ответ что транзакция открыта
|
||||
ARM --> USER: Разблокирует все элементы в\nинтерфейсе для редактирования
|
||||
|
||||
loop Внесение корректировок пользователем и наполнение транзакции
|
||||
USER -> ARM: Вносит корректировки
|
||||
ARM -> Gateway: Использует стандартные\nendpoint заказа
|
||||
Gateway -> Workflow: Передает запрос в workflow
|
||||
Workflow -> Workflow: Проверяет что транзакция открыта:\n<b>В ТЗ: Проверка наличия открытой транзакции
|
||||
autonumber 14.1.1
|
||||
alt Транзакция закрыта
|
||||
Workflow -> Gateway: Возвращает ошибку
|
||||
Gateway -> ARM: answer
|
||||
ARM -> USER: Выводит сообщение:\n"Транзакция была закрыта,\nнеобходимо заново открыть\nзаказ на корректировку"
|
||||
|
||||
autonumber 14.2.1
|
||||
else Транзакция открыта
|
||||
Workflow -> History: Отправляет GRPC сигнал\nс корректировками в History\nrpc CreateEvent(CreateEventRequest)
|
||||
History -> History: Сохраняет\nкорректировки
|
||||
History --> Workflow: return CreateEventResponse
|
||||
Workflow --> Gateway: answer
|
||||
Gateway --> ARM: answer
|
||||
end 'Это end alt
|
||||
autonumber 15
|
||||
|
||||
end 'Это end loop
|
||||
|
||||
USER -> ARM: Нажимает кнопку\n"Сохранить изменения"\nИЛИ "Отменить изменения"
|
||||
ARM -> Gateway: Отправляет запрос на\n/orders/end-correction/orderID={orderGUID}
|
||||
Gateway -> Workflow: Вызывает wf
|
||||
Workflow -> History: Запрашивает актуальное\nсостояние заказа\nrpc GetLastState(GetLastStateRequest)
|
||||
History --> Workflow: Возвращает Модель заказа\nс примененными корректировками\nreturn GetLastStateResponse
|
||||
Workflow -> Workflow: Закрывает транзакцию,\nсохраняет актуальный\nзаказ в Order/shipment
|
||||
Workflow -> WTIS: Отправляет модель заказа через топик kafka:\n<b>В ТЗ: Функциональные изменения - "На стороне Gateway" - п.2
|
||||
WTIS -> WTIS: Обновляет сущность заказа
|
||||
|
||||
autonumber 22.1.1
|
||||
alt Изменения успешно проведены
|
||||
WTIS --> Workflow: Возвращает ответ success
|
||||
Workflow -> History: Отправляет GRPC сигнал о закрытии\nтранзакции\nrpc EndTransaction(EndTransactionRequest)
|
||||
History --> Workflow: Подтверждает закрытие\nтранзакции\nreturn EndTransactionResponse
|
||||
Workflow --> Gateway: answer
|
||||
Gateway --> ARM: answer
|
||||
ARM --> USER: Отображает модальное\nокно "Изменения\nуспешно сохранены"
|
||||
|
||||
autonumber 22.2.1
|
||||
else Изменения не проведены
|
||||
WTIS --> Workflow: Возвращает ответ failed
|
||||
Workflow -> History: Отправляет GRPC сигнал\nоб удалении транзакции
|
||||
History --> Workflow: Отправляет GRPC сигнал\nчто транзакция удалена
|
||||
Workflow -> Workflow: Откатывает изменения,\nудаляет корректировки
|
||||
Workflow --> Gateway: answer
|
||||
Gateway --> ARM: answer
|
||||
ARM --> USER: Отображает модальное\nокно "Не удалось\nприменить изменения"
|
||||
end
|
||||
|
||||
|
||||
@startuml
|
||||
scale 2000x2000
|
||||
mainframe Внесение изменения в заказ в статусе "В работе"
|
||||
Actor USER
|
||||
participant ARM
|
||||
participant Gateway
|
||||
participant Workflow
|
||||
participant History
|
||||
participant WTIS
|
||||
|
||||
'-------------------------------------------action-------------------
|
||||
autonumber
|
||||
|
||||
USER -> ARM: Открывает заказ
|
||||
USER -> ARM: Нажимает кнопку\n"Редактировать заказ"
|
||||
ARM -> Gateway: Запрос с номером заказа
|
||||
Gateway -> Workflow: Инициирует запуск workflow
|
||||
Workflow -> History: Открывает транзакцию\nrpc StartTransaction(StartTransactionRequest)
|
||||
History --> Workflow: Подтверждает открытие транзакции\nreturn StartTransactionResponse
|
||||
Workflow --> Gateway: Возвращает поля доступные\nдля редактирования
|
||||
Gateway --> ARM: Возвращает ответ что транзакция открыта
|
||||
ARM --> USER: Разблокирует все элементы в\nинтерфейсе для редактирования
|
||||
|
||||
loop Внесение корректировок пользователем и наполнение транзакции
|
||||
USER -> ARM: Вносит корректировки
|
||||
ARM -> Gateway: Использует стандартные\nendpoint заказа
|
||||
Gateway -> Workflow: Передает запрос в workflow
|
||||
Workflow -> Workflow: Проверяет что транзакция открыта:\n<b>В ТЗ: Проверка наличия открытой транзакции
|
||||
autonumber 14.1.1
|
||||
alt Транзакция закрыта
|
||||
Workflow -> Gateway: Возвращает ошибку
|
||||
Gateway -> ARM: answer
|
||||
ARM -> USER: Выводит сообщение:\n"Транзакция была закрыта,\nнеобходимо заново открыть\nзаказ на корректировку"
|
||||
|
||||
autonumber 14.2.1
|
||||
else Транзакция открыта
|
||||
Workflow -> History: Отправляет GRPC сигнал\nс корректировками в History\nrpc CreateEvent(CreateEventRequest)
|
||||
History -> History: Сохраняет\nкорректировки
|
||||
History --> Workflow: return CreateEventResponse
|
||||
Workflow --> Gateway: answer
|
||||
Gateway --> ARM: answer
|
||||
end 'Это end alt
|
||||
autonumber 15
|
||||
|
||||
end 'Это end loop
|
||||
|
||||
USER -> ARM: Нажимает кнопку\n"Сохранить изменения"\nИЛИ "Отменить изменения"
|
||||
ARM -> Gateway: Отправляет запрос на\n/orders/end-correction/orderID={orderGUID}
|
||||
Gateway -> Workflow: Вызывает wf
|
||||
Workflow -> History: Запрашивает актуальное\nсостояние заказа\nrpc GetLastState(GetLastStateRequest)
|
||||
History --> Workflow: Возвращает Модель заказа\nс примененными корректировками\nreturn GetLastStateResponse
|
||||
Workflow -> Workflow: Закрывает транзакцию,\nсохраняет актуальный\nзаказ в Order/shipment
|
||||
Workflow -> WTIS: Отправляет модель заказа через топик kafka:\n<b>В ТЗ: Функциональные изменения - "На стороне Gateway" - п.2
|
||||
WTIS -> WTIS: Обновляет сущность заказа
|
||||
|
||||
autonumber 22.1.1
|
||||
alt Изменения успешно проведены
|
||||
WTIS --> Workflow: Возвращает ответ success
|
||||
Workflow -> History: Отправляет GRPC сигнал о закрытии\nтранзакции\nrpc EndTransaction(EndTransactionRequest)
|
||||
History --> Workflow: Подтверждает закрытие\nтранзакции\nreturn EndTransactionResponse
|
||||
Workflow --> Gateway: answer
|
||||
Gateway --> ARM: answer
|
||||
ARM --> USER: Отображает модальное\nокно "Изменения\nуспешно сохранены"
|
||||
|
||||
autonumber 22.2.1
|
||||
else Изменения не проведены
|
||||
WTIS --> Workflow: Возвращает ответ failed
|
||||
Workflow -> History: Отправляет GRPC сигнал\nоб удалении транзакции
|
||||
History --> Workflow: Отправляет GRPC сигнал\nчто транзакция удалена
|
||||
Workflow -> Workflow: Откатывает изменения,\nудаляет корректировки
|
||||
Workflow --> Gateway: answer
|
||||
Gateway --> ARM: answer
|
||||
ARM --> USER: Отображает модальное\nокно "Не удалось\nприменить изменения"
|
||||
end
|
||||
|
||||
|
||||
@enduml
|
||||
11
oms/segmentation/segmentation.puml
Normal file
11
oms/segmentation/segmentation.puml
Normal file
@@ -0,0 +1,11 @@
|
||||
@startuml
|
||||
interface "CRM" as [CRM]
|
||||
interface "WTIS" as [WTIS]
|
||||
interface "OMS" as [OMS]
|
||||
|
||||
CRM -> OMS: Обновляет данные по\nменеджеру заказа
|
||||
OMS -> WTIS: Обновляет данные п
|
||||
DA - [First Component]
|
||||
[First Component] ..> HTTP : use
|
||||
|
||||
@enduml
|
||||
@@ -1,59 +1,59 @@
|
||||
@startuml
|
||||
scale 1300x1300
|
||||
mainframe AS IS обмен по созданию заказа на сайте
|
||||
Actor USER
|
||||
participant SITE
|
||||
database SITE_database
|
||||
queue kafka_1
|
||||
participant WTIS
|
||||
database WTIS_database
|
||||
queue kafka_2
|
||||
participant OMS
|
||||
database OMS_database
|
||||
'-------------------------------------------action-------------------
|
||||
autonumber
|
||||
|
||||
USER -> SITE: Нажимает кнопку оформить заказ
|
||||
SITE -> SITE_database: Проводит внутренние проверки\nи сохраняет в БД
|
||||
SITE_database -> SITE: Заказ успешно сохранен
|
||||
|
||||
autonumber 4.1
|
||||
alt Тип доставки в заказе: Самовывоз
|
||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.pickup.created
|
||||
else Тип доставки в заказе: Курьером
|
||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.courier.created
|
||||
else Тип доставки в заказе: ТК
|
||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.transport_company.created
|
||||
end
|
||||
|
||||
autonumber 5
|
||||
WTIS -> kafka_1: Читает сообщения из топика
|
||||
WTIS -> WTIS_database: Сохраняет заказ
|
||||
WTIS_database -> WTIS: Заказ успешно сохранен
|
||||
WTIS -> WTIS: Проверяет условия для MVP\nсогласно настроек в wtis_settings
|
||||
|
||||
autonumber 9.1
|
||||
alt Заказ подходит под условия OMS
|
||||
WTIS -> kafka_2: Записывает заказ в топик: wtis.order_oms.created
|
||||
else Заказ не подходит под условия OMS
|
||||
WTIS -> WTIS: Продолжает процедуру автооформления\nзаказа и обогащения данными
|
||||
WTIS -> WTIS: Конец процесса
|
||||
end
|
||||
|
||||
autonumber 10
|
||||
OMS -> kafka_2: Читает событие из топика
|
||||
OMS -> OMS_database: Сохраняет заказ в БД
|
||||
OMS_database -> OMS: Заказ успешно сохранен
|
||||
|
||||
OMS -> OMS: Проводит бизнес проверки
|
||||
OMS -> WTIS: Резервирует товары
|
||||
|
||||
autonumber 15.1
|
||||
alt Успешно зарезервировано
|
||||
WTIS -> OMS: Товары в заказе успешно зарезервированы
|
||||
else Не успешно зарезервировано
|
||||
WTIS -> WTIS: Ставит задачу на менеджера, меняет мастер-систему
|
||||
WTIS -> WTIS: Конец процесса
|
||||
end
|
||||
|
||||
@startuml
|
||||
scale 1300x1300
|
||||
mainframe AS IS обмен по созданию заказа на сайте
|
||||
Actor USER
|
||||
participant SITE
|
||||
database SITE_database
|
||||
queue kafka_1
|
||||
participant WTIS
|
||||
database WTIS_database
|
||||
queue kafka_2
|
||||
participant OMS
|
||||
database OMS_database
|
||||
'-------------------------------------------action-------------------
|
||||
autonumber
|
||||
|
||||
USER -> SITE: Нажимает кнопку оформить заказ
|
||||
SITE -> SITE_database: Проводит внутренние проверки\nи сохраняет в БД
|
||||
SITE_database -> SITE: Заказ успешно сохранен
|
||||
|
||||
autonumber 4.1
|
||||
alt Тип доставки в заказе: Самовывоз
|
||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.pickup.created
|
||||
else Тип доставки в заказе: Курьером
|
||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.courier.created
|
||||
else Тип доставки в заказе: ТК
|
||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.transport_company.created
|
||||
end
|
||||
|
||||
autonumber 5
|
||||
WTIS -> kafka_1: Читает сообщения из топика
|
||||
WTIS -> WTIS_database: Сохраняет заказ
|
||||
WTIS_database -> WTIS: Заказ успешно сохранен
|
||||
WTIS -> WTIS: Проверяет условия для MVP\nсогласно настроек в wtis_settings
|
||||
|
||||
autonumber 9.1
|
||||
alt Заказ подходит под условия OMS
|
||||
WTIS -> kafka_2: Записывает заказ в топик: wtis.order_oms.created
|
||||
else Заказ не подходит под условия OMS
|
||||
WTIS -> WTIS: Продолжает процедуру автооформления\nзаказа и обогащения данными
|
||||
WTIS -> WTIS: Конец процесса
|
||||
end
|
||||
|
||||
autonumber 10
|
||||
OMS -> kafka_2: Читает событие из топика
|
||||
OMS -> OMS_database: Сохраняет заказ в БД
|
||||
OMS_database -> OMS: Заказ успешно сохранен
|
||||
|
||||
OMS -> OMS: Проводит бизнес проверки
|
||||
OMS -> WTIS: Резервирует товары
|
||||
|
||||
autonumber 15.1
|
||||
alt Успешно зарезервировано
|
||||
WTIS -> OMS: Товары в заказе успешно зарезервированы
|
||||
else Не успешно зарезервировано
|
||||
WTIS -> WTIS: Ставит задачу на менеджера, меняет мастер-систему
|
||||
WTIS -> WTIS: Конец процесса
|
||||
end
|
||||
|
||||
@enduml
|
||||
@@ -1,66 +1,66 @@
|
||||
@startuml
|
||||
scale 1300x1300
|
||||
mainframe TO BE обмен по созданию заказа на сайте
|
||||
Actor USER
|
||||
participant SITE
|
||||
database SITE_database
|
||||
participant WTIS
|
||||
database WTIS_database
|
||||
queue kafka_1
|
||||
queue kafka_2
|
||||
participant OMS
|
||||
database OMS_database
|
||||
'-------------------------------------------action-------------------
|
||||
autonumber
|
||||
|
||||
USER -> SITE: Нажимает кнопку оформить заказ
|
||||
SITE -> SITE_database: Проводит внутренние проверки\nи сохраняет в БД
|
||||
SITE_database -> SITE: Заказ успешно сохранен
|
||||
|
||||
autonumber 4.1
|
||||
alt Тип доставки в заказе: Самовывоз
|
||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.pickup.created
|
||||
else Тип доставки в заказе: Курьером
|
||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.courier.created
|
||||
else Тип доставки в заказе: ТК
|
||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.transport_company.created
|
||||
end
|
||||
|
||||
autonumber 5
|
||||
OMS -> kafka_1: Читает сообщения из топиков
|
||||
OMS -> OMS: Проверяет условия для MVP
|
||||
WTIS -> kafka_1: Читает сообщения из топиков
|
||||
WTIS -> WTIS: Проверяет условия для MVP
|
||||
|
||||
autonumber 9.1
|
||||
alt Подходит под условия OMS
|
||||
WTIS -> WTIS: Не обрабатывает такой заказ
|
||||
OMS -> OMS_database: Сохраняет заказ
|
||||
OMS -> kafka_2: Записывает заказ в топик: oms.orders.sync
|
||||
OMS_database -> OMS: Заказ успешно сохранен
|
||||
WTIS -> kafka_2: Читает топик
|
||||
WTIS -> WTIS: Создает заказ
|
||||
WTIS -> OMS: Возвращает модель заказа через workflow
|
||||
OMS -> OMS: Проводит автооформление
|
||||
OMS -> WTIS: Резервирует товары
|
||||
|
||||
autonumber 9.9.1
|
||||
alt Успешно зарезервировано
|
||||
WTIS -> OMS: Товары в заказе успешно зарезервированы
|
||||
WTIS -> WTIS: Конец процесса
|
||||
|
||||
else Не успешно зарезервировано
|
||||
WTIS -> WTIS: Ставит задачу на менеджера, меняет мастер-систему
|
||||
WTIS -> WTIS: Конец процесса
|
||||
end
|
||||
|
||||
|
||||
else Не подходит под условия OMS
|
||||
autonumber 10.1
|
||||
OMS -> OMS: Не обрабатывает такой заказ
|
||||
WTIS -> WTIS_database: Сохраняет заказ
|
||||
WTIS_database -> WTIS: Заказ успешно сохранен
|
||||
WTIS -> WTIS: Конец процесса
|
||||
end
|
||||
|
||||
@startuml
|
||||
scale 1300x1300
|
||||
mainframe TO BE обмен по созданию заказа на сайте
|
||||
Actor USER
|
||||
participant SITE
|
||||
database SITE_database
|
||||
participant WTIS
|
||||
database WTIS_database
|
||||
queue kafka_1
|
||||
queue kafka_2
|
||||
participant OMS
|
||||
database OMS_database
|
||||
'-------------------------------------------action-------------------
|
||||
autonumber
|
||||
|
||||
USER -> SITE: Нажимает кнопку оформить заказ
|
||||
SITE -> SITE_database: Проводит внутренние проверки\nи сохраняет в БД
|
||||
SITE_database -> SITE: Заказ успешно сохранен
|
||||
|
||||
autonumber 4.1
|
||||
alt Тип доставки в заказе: Самовывоз
|
||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.pickup.created
|
||||
else Тип доставки в заказе: Курьером
|
||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.courier.created
|
||||
else Тип доставки в заказе: ТК
|
||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.transport_company.created
|
||||
end
|
||||
|
||||
autonumber 5
|
||||
OMS -> kafka_1: Читает сообщения из топиков
|
||||
OMS -> OMS: Проверяет условия для MVP
|
||||
WTIS -> kafka_1: Читает сообщения из топиков
|
||||
WTIS -> WTIS: Проверяет условия для MVP
|
||||
|
||||
autonumber 9.1
|
||||
alt Подходит под условия OMS
|
||||
WTIS -> WTIS: Не обрабатывает такой заказ
|
||||
OMS -> OMS_database: Сохраняет заказ
|
||||
OMS -> kafka_2: Записывает заказ в топик: oms.orders.sync
|
||||
OMS_database -> OMS: Заказ успешно сохранен
|
||||
WTIS -> kafka_2: Читает топик
|
||||
WTIS -> WTIS: Создает заказ
|
||||
WTIS -> OMS: Возвращает модель заказа через workflow
|
||||
OMS -> OMS: Проводит автооформление
|
||||
OMS -> WTIS: Резервирует товары
|
||||
|
||||
autonumber 9.9.1
|
||||
alt Успешно зарезервировано
|
||||
WTIS -> OMS: Товары в заказе успешно зарезервированы
|
||||
WTIS -> WTIS: Конец процесса
|
||||
|
||||
else Не успешно зарезервировано
|
||||
WTIS -> WTIS: Ставит задачу на менеджера, меняет мастер-систему
|
||||
WTIS -> WTIS: Конец процесса
|
||||
end
|
||||
|
||||
|
||||
else Не подходит под условия OMS
|
||||
autonumber 10.1
|
||||
OMS -> OMS: Не обрабатывает такой заказ
|
||||
WTIS -> WTIS_database: Сохраняет заказ
|
||||
WTIS_database -> WTIS: Заказ успешно сохранен
|
||||
WTIS -> WTIS: Конец процесса
|
||||
end
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user