new scheme
This commit is contained in:
63
oms/autobot.puml
Normal file
63
oms/autobot.puml
Normal file
@@ -0,0 +1,63 @@
|
||||
@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
|
||||
Reference in New Issue
Block a user