new scheme
This commit is contained in:
@@ -1,11 +1,76 @@
|
||||
@startuml
|
||||
'https://plantuml.com/sequence-diagram
|
||||
|
||||
autonumber
|
||||
boundary LT_trigger
|
||||
queue logistic_tracker.logistic_order_changes as kafka_lt
|
||||
participant DDC
|
||||
participant OMS_Order
|
||||
queue touch.events as Touch
|
||||
database db
|
||||
|
||||
Alice -> Bob: Authentication Request
|
||||
Bob --> Alice: Authentication Response
|
||||
loop
|
||||
LT_trigger -> kafka_lt: Событие изменения лог заказа
|
||||
DDC -> kafka_lt: Читает сообщение
|
||||
end
|
||||
alt customer_shipment.now > customer_shipment.before is False
|
||||
DDC -> DDC: пропускает сообщение
|
||||
else customer_shipment.now > customer_shipment.before is True
|
||||
DDC -> OMS_Order: Ожидает подтверждение\nпереноса ДД от OMS через wf
|
||||
alt Сигнал с подтверждением переноса ДД не пришло
|
||||
DDC -> DDC: Прекращает ожидание события
|
||||
else Сигнал с подтверждением переноса ДД пришло
|
||||
OMS_Order -> DDC: Сигнал с подтверждением переноса ДД
|
||||
DDC -> DDC: Проверяет что не было уведомлений\nпо заказу в течении этих суток
|
||||
alt Было уведомление в последние сутки
|
||||
DDC -> DDC: Пропускает данное изменение
|
||||
else Не было уведомлений в последние сутки
|
||||
DDC -> DDC: Проверяет заказ робота или клиента?
|
||||
alt Заказ робота
|
||||
DDC -> CRM: Отправка сообщения в топик CRM
|
||||
DDC -> db: Записывает данные о поставленной задаче в БД
|
||||
else Заказ клиента
|
||||
DDC -> OMS_Order: Получить данные по заказу
|
||||
OMS_Order -> DDC: Вернуть данные по заказу
|
||||
DDC -> DDC: Подготовить данные для\nотправки в топик Touch
|
||||
DDC -> Touch: Отправить нотификацию в топик Touch (b2c смс, b2b email)
|
||||
DDC -> db: Записывает данные о нотификации клиента в БД
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Alice -> Bob: Another authentication Request
|
||||
Alice <-- Bob: another authentication Response
|
||||
@enduml
|
||||
|
||||
@enduml
|
||||
|
||||
|
||||
|
||||
@startuml
|
||||
start
|
||||
:DDC читает топик LT;
|
||||
if (customer_shipment.now > customer_shipment.before is False) then
|
||||
:Пропускает сообщение;
|
||||
kill
|
||||
else
|
||||
:DDC Ожидает подтверждение\nпереноса ДД от OMS через wf;
|
||||
endif
|
||||
|
||||
if (Сигнал с подтверждением переноса ДД пришел?) then (нет)
|
||||
:Прекращает ожидание события\nничего не делает;
|
||||
kill
|
||||
else (да)
|
||||
if (Событие уведомления по заказу было в течении суток?) then (да)
|
||||
:Пропускает событие;
|
||||
kill
|
||||
else (нет)
|
||||
endif
|
||||
|
||||
if (Заказ назначен на менеджера?) then (да)
|
||||
:Отправка сообщения в топик CRM;
|
||||
:Записывает данные о поставленной задаче в БД;
|
||||
else (нет (заказ робота))
|
||||
:Отправить нотификацию в топик Touch (b2c смс, b2b email);
|
||||
:Записывает данные о нотификации клиента в БД;
|
||||
endif
|
||||
stop
|
||||
|
||||
@enduml
|
||||
|
||||
Reference in New Issue
Block a user