new scheme

This commit is contained in:
2025-12-19 12:45:15 +03:00
parent 7343edec51
commit 91ff1642dc
13 changed files with 1243 additions and 176 deletions

View File

@@ -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