Files
plantUML/oms/autobot.puml
2025-12-19 12:45:15 +03:00

63 lines
2.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@startuml
participant "Топик сообщений" as Topic
participant "Сервис обработки" as Service
participant "База данных" as DB
participant "МСКБ API" as MSKB
participant "Bifrost API" as Bifrost
participant "CRM API" as CRM
participant "TOUCH API" as TOUCH
Topic -> Service: Сообщение с letter_guid,\ncontractor_guid,\ncontact_person_guid,\ncommodity_guid
activate Service
Service -> DB: Проверить заказ по autoBotLetterGuid=letter_guid
alt Заказ уже существует
Service --> Topic: Пропустить сообщение
deactivate Service
else Заказа нет
Service -> Service: Валидация contractor_guid
alt contractor_guid пустой
Service -> DB: Найти контрагента по contact_person_guid\nв последних заказах
alt Контрагент не найден
Service --> Topic: Завершить обработку
deactivate Service
else Найден contractor_guid
end
else несколько contractor_guid
Service -> DB: Найти последний завершенный заказ\nдля каждого contractor_guid
end
Service -> Service: Валидация contact_person_guid
alt contact_person_guid пустой
Service -> MSKB: /api/business/v2/physic/\nпоиск по letter_from
alt Не найдено
Service -> DB: Найти в последнем заказе\nпо contractor_guid
end
end
Service -> Service: Валидация commodity_guid
alt commodity_guid пустые
Service --> Topic: Завершить обработку
deactivate Service
end
Service -> DB: Найти последний завершенный заказ\nдля получения shipment данных
Service -> MSKB: /api/business/v2/juristic/search\nполучить GUID менеджера
Service -> Bifrost: bifrost.v1.ActiveDirectoryService/GetUserByID\nпроверить email менеджера
alt email != letter_to
Service --> Topic: Завершить обработку
deactivate Service
end
Service -> Service: Создать заказ
Service -> DB: createOrder
Service -> Service: Автооформление заказа (flowId=6)
Service -> DB: Обновить заказ\n(IsAutoBotOrder=true,\nautoBotLetterGuid=letter_guid)
Service -> CRM: Создать задачу менеджеру\n"Заказ не прошел АО..."
Service -> TOUCH: /api/v1/jsonapi/send-email-message\nОповестить менеджера
Service --> Topic: Обработка завершена
deactivate Service
end
@enduml