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

437 lines
29 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.
@startjson
<style>
' Общий стиль схемы задан здесь
jsonDiagram {
node {
LineColor #000
FontName Helvetica
FontColor black
FontSize 18
'FontStyle bold
}
arrow {
LineColor #000
LineThickness 1
LineStyle 5
}
highlight {
BackGroundColor #e5e5e5
FontColor black
}
}
' Здесь находятся расцветки изменений. Необходимо создать новый объект по образу .headerBlock
.headerBlock {
FontColor red
FontStyle bold
BackGroundColor grey
}
.firstChange {
FontColor black
FontStyle bold
BackGroundColor Blue
}
</style>
' Здесь указываем какие атрибуты нужно подсвечивать в схеме
'Пример другого цвета
#highlight "order" / "Shipment" / "shipmentFastDelivery" <<firstChange>>
' Заголовки (выделены красным и темно-серым для улучшения читаемости)
#highlight "order" / "Artifacts" / "Artifacts" <<headerBlock>>
#highlight "order" / "Artifacts" / "Artifacts" <<headerBlock>>
#highlight "order" / "B2CContractor" / "B2CContractor" <<headerBlock>>
#highlight "order" / "B2BContractor" / "B2BContractor" <<headerBlock>>
#highlight "order" / "Properties" / "Properties" <<headerBlock>>
#highlight "order" / "Supplies (array)" / "Supplies (array)" <<headerBlock>>
#highlight "order" / "Shipment" / "Shipment" <<headerBlock>>
#highlight "order" / "Shipment" / "ShipmentPickup" / "ShipmentPickup" <<headerBlock>>
#highlight "order" / "Shipment" / "ShipmentPickupFranchise" / "ShipmentPickupFranchise" <<headerBlock>>
#highlight "order" / "Shipment" / "ShipmentCourier" / "ShipmentCourier" <<headerBlock>>
#highlight "order" / "Shipment" / "shipmentTKCourier" / "shipmentTKCourier" <<headerBlock>>
#highlight "order" / "Shipment" / "ShipmentTKPickup" / "ShipmentTKPickup" <<headerBlock>>
#highlight "order" / "Shipment" / "shipmentFastDelivery" / "shipmentFastDelivery" <<headerBlock>>
#highlight "order" / "Shipment" / "Meta" / "Meta" <<headerBlock>>
#highlight "order" / "Contractor" / "Contractor" <<headerBlock>>
#highlight "order" / "Recipient" / "Recipient" <<headerBlock>>
#highlight "order" / "managerInfo" / "managerInfo" <<headerBlock>>
{
"order": {
"ID": "uuid || Номер заказа",
"ContractorID": "uuid || Идентификатор контрагента",
"RootOrder": "uuid || UUID корневого заказа",
"Number": "string || Номер заказа в формате ****-******-*****",
"ContractorType": "int || Тип КА",
"OrderStatus": "int || Идентификатор статуса заказа (от 0 до 7)",
"managerInfo": {
"managerInfo": "Блок информации о менеджере в заказе (ManagerInfo)",
"CreatedBy": "uuid || Идентификатор автора заказа из AD",
"CreatedFullName": "string || ФИО автора заказа",
"UpdatedBy": "uuid || Идентификатор последнего обновлявшего заказ",
"UpdatedFullName": "string || ФИО последнего обновлявшего заказ",
"ManagerGroup": "int || Идентификатор группы менеджера",
"ManagerPhoneNumber": "string || Номер телефона менеджера",
"ManagerExtensionNumber": "string || Добавочный номер телефона менеджера"
},
"B2CContractor": {
"B2CContractor": "Контрагент b2c (вложенный объект с атрибутами дальше по ветке)",
"Person": {
"ID": "uuid || Идентификатор (UUID) контрагента",
"FullName": "string || Полное ФИО КА",
"Phone": "string || Номер телефона КА",
"Email": "string || Email адрес КА"
}
},
"B2BContractor": {
"B2BContractor": "Блок контрагента B2b",
"ID": "uuid || Идентификатор (UUID) контрагента",
"Name": "string || Полное наименование КА",
"TIN": "string || Номер ИНН",
"edo": "boolean || Признак что КА работает по ЭДО",
"isPDZ": "boolean || false",
"paymentType": "integer || Признак оплаты, 1 - предоплата, 2 - постоплата",
"Agent": {
"ID": "uuid || Индентификатор агента заказа",
"OrderNumber": "string || Номер заказа в системе агента",
"ContractType": "integer || Тип договора к заказу, 1 - агентский, 2 - клиентский, 3 - торговый дом"
},
"ContactPersons (array)": {
"Person": {
"ID": "uuid || Идентификатор (UUID) контрагента",
"FullName": "string || Полное ФИО КА",
"Phone": "string || Номер телефона КА",
"Email": "string || Email адрес КА"
},
"SmsPhoneNumber": "string || Номер телефона для СМС"
},
"CurrentContactPersonID": "uuid || ID выбранного КЛ для заказа",
"Curator": {
"ID": "uuid || Идентификатор куратора",
"FullName": "string || ФИО куратора"
},
"KAM": {
"ID": "uuid || Идентификатор КАМа",
"FullName": "string || ФИО КАМа"
},
"Contract": {
"ID": "uuid || Идентификатор договора",
"Number": "string || Номер договора",
"Kind": "int || Тип договора"
},
"BaseDocumentSettings": {
"GovernmentContractID": "string || Идентификатор государственного контракта",
"InvoiceTransferBasis": "string || Основание передачи в счете на оплату",
"ShippingDocuments": {
"TransferBasisDocument": "string || документ-основание передачи(сдачи)/получения(приемки)",
"TransferBasisAdditionalDetails": "string || Дополнительные сведения основания передачи",
"OtherInformation": "string || Иные сведения"
}
}
},
"Recipient": {
"Recipient": "Блок грузополучателя (Deprecated) для поддержки старых заказов. Актуальный в shipment",
"ID": "uuid || Идентификатор (UUID) грузополучателя",
"RecipientName": "string || Имя грузополучателя заказа",
"RecipientPhone": "string || Номер телефона грузополучателя",
"RecipientAddress": "string || Адрес грузополучателя",
"isConsingeeApprove": "boolean || Признак подтверждения смены ГП"
},
"Items": "map[uuid.UUID]Item || Товары в заказе",
"Supplies (array)": {
"Supplies (array)": "Блок товарной части (supply)",
"ID": "uuid || Идентификатор поставки",
"ShipmentID": "uuid || Идентификатор шипмента",
"ProductID": "uuid || Идентификатор номенклатуры",
"SourceOffice": "uuid || Идентификатор склада на котором находится товар",
"ReserveTo": "date-time || Дата резерв до",
"PurchaseIDs": "array || Массив идентификаторов закупки",
"UnreserveDate": "date-time || Дата фактического снятия с резерва товара",
"Quantity": "int || Количество товара в доставке. Суммарное количество должно быть равно quantity в items",
"StatusItem": "int || Идентификатор статуса товара",
"Artifacts": {
"UUIDWtis": "uuid || UID товара из wtis",
"StatusItemWtis": "int || Статус товара из wtis",
"Attb": "int || Состояние товара во WTIS",
"AttbSklad": "int || Статус местонахождения товара (0 - Свободный, 1 - проверен)",
"AttbShipped": "int || Признак 'Товар доставлен' (0 - не доставлен, 1 - доставлен)",
"AttbReserve": "int || Атрибут резерва",
"FlagReturn": "bool || Признак Возврат товара. 1 - товар с вкладки Возвраты, 0 - для товаров с вкладки Товары.",
"FlagReturnedToSklad": "bool || Принят на склад",
"ReturnReason": "int || Причина возврата (1-sklad,2-kurier,3-manager,4-client)",
"AppendUser": "uuid || ID пользователя кто добавил поставку",
"ChangeUser": "uuid || ID пользователя кто последний изменил поставку",
"OnHold": "bool || Флаг товар в процессе переноса",
"IsLargeSized": "bool || Флаг кгт (крупногабаритный товар)"
},
"DateCanDeliver": "date-time || Дата 'Сможем доставить'.",
"CreatedAt": "date-time || Дата создания поставки",
"UpdatedAt": "date-time || Дата последнего обновления поставки",
"Prices": {
"SupplyID": "uuid || Идентификатор поставки",
"DiscountPrice": "float || Сумма скидки",
"DiscountManualPrice": "float || Сумма скидки (ручная корректировка)",
"DiscountCategory": "string || Категория скидки",
"DiscountType": "string || Тип скидки (manager, contractor)",
"DiscountManualType": "string || Тип ручной корректировки цены",
"DiscountManualTypeID": "uuid || Идентификатор типа ручной корректировки",
"Reason": "int || Причина скидки",
"InitialPrice": "float || Начальная цена",
"PurchasePrice": "float || Цена закупки",
"Price": "float || Цена товара",
"SalePrice": "float || Продажная цена",
"Discount": "float || Процент скидки",
"ClearanceSaleID": "uuid || Идентификатор распродажи",
"IsPromoCodeUsed": "bool || Флаг использования промокода",
"PromotionID": "int || Идентификатор акции из МС Promo",
"PromoCode": "string || Промокод в заказе",
"DiscountClearanceSale": "float || Сумма скидки от акции Промо",
"DiscountPromoCode": "float || Сумма скидки от промокода",
"DiscountClearance": "float || Процент скидки от акции/скидки",
"ExtraCost": "float || Цена доставки на единицу товара"
},
"IsRestored": "bool || Признак восстановления поставки.",
"IsAutoRestored": "bool || Признак автовосстановления поставки через sync",
"DeliveryDate": "date-time || Дата доставки"
},
"Supplies": "Supplies || поставки",
"Properties": {
"Properties": "Блок свойства заказа",
"BasicTimestamps": {
"CreatedAt": "date-time || Дата и время создания заказа",
"UpdatedAt": "date-time || Дата и время последнего обновления заказа"
},
"NumberSchemeBalance": "string || Номер схемы баланса",
"AccountingLine": "AccountingLine || Линия учета",
"OriginID": "int || Идентификатор источника заказа",
"SiteOrderDate": "date-time || Дата и время заказа выбранное на сайте",
"OrderComment": "string || Комментарий к заказу. Во wtis: primSklad",
"PrimSklad": "string || Примечание для менеджера",
"TtnNumber": "string || Номер ТТН",
"TtnDate": "string || Дата ТТН",
"Ttn": "string || Товарно-транспортная накладная (ТТН)",
"BillIsAutoOrdered": "bool || Признак 'Счет автоотправлен'",
"IsAutoReserved": "bool || Признак Заказ автооформлен",
"IsAutoBotOrder": "bool || Признак Заказ создан автоботом",
"IsPartialShipmentFromSite": "bool || Признак ЧО с сайта",
"IsLeasing": "bool || Признак оформления заказа в лизинг",
"PaymentAmount": "float || Сумма внесенной оплаты",
"PaymentPercentage": "int || процент оплаченности заказа",
"Prepayment": "float || Сумма внесенной предоплаты",
"ManagerGroup": "int || Группа менеджера",
"ManagerID": "uuid || Идентификатор (UUID) менеджера заказа",
"ManagerFullName": "string || ФИО менеджера заказа",
"ManagerPhoneNumber": "string || Телефон менеджера заказа",
"ManagerExtensionNumber": "string || Добавочный номер телефона менеджера",
"ConfirmationStatus": "ConfirmationStatus || Статус подтвержения заказа клиентом",
"BookingEndDates": "array || Массив с датами истечения бронирования заказа",
"PaymentDoc": "string || Наименование платежного документа",
"IsPrepaymentRequired": "bool || Признак 'Необходима предоплата'",
"RegionGUID": "uuid || Идентификатор (UUID) региона",
"RegionName": "string || Наименование региона",
"IsTest": "bool || Признак тестового заказа",
"ReasonForCancelingOrder": "int || Причина отмены заказа",
"TypeOrderFromSite": "string || Тип заказа с сайта. normal / fast",
"Firma": "GUID фирмы отгружающей товар.",
"FlowID": "int || Флоу заказа (аналог OriginID с доп логикой)",
"PriceFixing": {
"Number": "int || Порядковый номер фиксации",
"EndDate": "date-time || Дата окончания фиксации"
},
"b2gLaw": "string || Федеральный закон по которому отгружается заказ",
"b2gLawSite": "string || Федеральный закон выбранный пользователем на сайте",
"SalesChannelID": "int || Идентификатор канала продаж",
"SalesChannelName": "string || Наименование канала продаж",
"GroupManagerName": "string || Наименование группы менеджеров",
"IsAoSuccess": "bool || Флаг успешного автооформления",
"ReturnOrder": "bool || Признак возвратного заказа",
"VerificationCode": "bool || Признак подтверждения получения заказа по коду"
},
"Artifacts": {
"Artifacts": "Блок артефактов",
"UUIDWtis": "uuid || UUID заказа из wtis",
"PartialShipment": "bool || Признак Частичная отгрузка",
"Firma": "uuid || GUID фирмы отгружающей товар",
"RegionID": "int || Идентификатор региона из wtis",
"MainRegionID": "int || Идентификатор главного региона из wtis",
"BasketNumber": "string || Номер корзины клиента",
"OrderMasterSystem": "string || Признак мастер-система по заказу",
"StockMasterSystem": "StockMasterSystem || Мастер система по товародвижению",
"KkmDate": "string || Дата ККМ",
"KkmAmount": "float || Сумма оплаты через ККМ",
"PaymentKkm": "bool || Признак оплата через ККМ",
"PaymentCb": "bool || Признак оплата по счету",
"PaymentCard": "bool || Признак картой",
"IsEwalletPayment": "bool || Признак оплата с сайта",
"IsCredit": "bool || Признак кредитного заказа",
"OrderStateWtis": "int || Состояние заказа из WTIS",
"AttbOplata": "int || Статус оплаты (0 - Не оплачено, 1 - Частичная оплата, 2 - Оплачено). || deprecated",
"OrderStatusWtis": "int || Статус заказа из WTIS",
"IsPromoEnabled": "bool || Признак, что сайт взаимодействует с МС Promo и берет распродажную инфу оттуда.",
"IsYandexEnabled": "bool || Признак, что адрес передается в новом формате для курьерки."
},
"UpdateReason": "int || Причина обновления",
"Parts": "map[uuid.UUID]Part || Части заказа",
"HasTransaction": "bool || Признак наличия транзакции",
"IsNewVersion": "bool || Признак новой версии сущности",
"BaseShipmentID": "uuid || UUID доставки",
"DeliveryDate": "date-time || Дата доставки",
"Shipment": {
"Shipment": "Блок Доставка (Shipment)",
"Meta": {
"Meta": "Блок мета информации о доставке (Meta)",
"ID": "uuid || Идентификатор shipment",
"OrderID": "uuid || Идентификатор заказа",
"MethodID": "int || Идентификатор шипмента",
"Status": "int || Статус доставки",
"FSMStatus": "object || fsm для статуса",
"Artifacts": {
"DeliveryWith": "string || Начальный временной промежуток курьерской доставки",
"TrackingNumberID": "int || Deprecated",
"PartnerDeliverTo": "string || Deprecated",
"DestinationOfficeID": "int || Deprecated",
"Category": "int || Deprecated",
"DeliveryOn": "string || Верхняя граница часов доставки",
"DeliveryWay": "string || Тип доставки, через транспортную компанию",
"DeliveryType": "bool || 0 - обычная доставка 1 - доставка строительных материалов",
"DeliveryZone": "int || id зоны доставки строительных материалов",
"VeerouteExportDate": "date-time || Дата выгрузки в Veeroute",
"AddressID": "int || Идентификатор адреса доставки (внутренний от WTIS)",
"DeliveryDestinationType": "int || Тип отгрузки (1 - склад, 2 - курьер, 4 - ТК)"
},
"DeliveryDate": "date-time || Дата доставки",
"IsCustomDeliveryDate": "bool || Ручное изменение дата доставки",
"Services": {
"Settings": {
"SpreadExtraCost": "bool || Размазать стоимость доставки по товарам связанным с доставкой",
"IsShipmentPossible": "bool || Отгружать с ПДЗ",
"isPacking": "bool || Признак 'Упаковать заказ как на ТК'"
},
"LiftToFloor": {
"Price": "int || Цена услуги подъема на этаж",
"ElevatorStatus": "int || Статус лифта"
}
},
"CreatedAt": "date-time || Дата создания доставки",
"UpdatedAt": "date-time || Дата последнего обновления доставки",
"Recipient": {
"ID": "uuid || Идентификатор грузополучателя",
"RecipientName": "string || Имя грузополучателя",
"RecipientPhone": "string || Телефон грузополучателя",
"IsConsigneeApprove": "bool || Наличие подтверждения о смене ГП",
"InvoiceConsigneeAddress": "string || Доп адрес грузополучателя"
}
},
"ShipmentPickup": {
"ShipmentPickup": "Блок Самовывоз (ShipmentPickup)",
"OfficeGUID": "uuid || Идентификатор офиса"
},
"ShipmentPickupFranchise": {
"ShipmentPickupFranchise": "Блок Самовывоз франшиза (ShipmentPickupFranchise)",
"OfficeGUID": "uuid || UUID ТТ франшизы",
"FranchisePartnerID": "uuid || UUID партнера из МСКБ",
"FranchisePartnerName": "string || Наименование партнера из МСКБ"
},
"ShipmentCourier": {
"ShipmentCourier": "Блок Курьером (ShipmentCourier)",
"FactDeliveryBoy": "uuid || Идентификатор курьера который отдал заказ",
"FreeReason": "int || Причина бесплатной доставки",
"FiasID": "uuid || FIAS идентификатор адреса доставки",
"IntervalGUID": "uuid || Идентификатор интервала курьерской доставки",
"DeliveryAregGUID": "uuid || Идентификатор AREG адреса доставки",
"AddressTail": {
"AddressTailID": "uuid || Идентификатор хвоста адреса",
"Postcode": "string || Почтовый индекс",
"Flat": "string || Кв./Офис",
"Entrance": "string || Подъезд",
"Floor": "string || Этаж",
"AddressComment": "string || Комментарий к адресу",
"ContactNumber": "string || Контактный номер в адресе доставки"
},
"IntervalValue": "string || Значение интервала доставки",
"Latitude": "string || Широта адреса доставки",
"Longitude": "string || Долгота адреса доставки",
"CourierGUID": "uuid || Идентификатор курьера в заказе",
"DeliveryBoyName": "string || ФИО курьера в заказе",
"AddrDostav": "string || Адрес доставки",
"CourierDeliveryCost": "int || Стоимость доставки",
"InitialCourierDeliveryCost": "int || Начальная цена доставки курьером",
"CourierComment": "string || Комментарий для курьера",
"DeliveryCategoryType": "int || Тип категории доставки",
"DeliveryCategoryName": "string || Название категории доставки",
"OfficeGUID": "uuid || Офис отгрузки курьеру"
},
"ShipmentTKPickup": {
"ShipmentTKPickup": "Блок ТК Самовывоз (ShipmentTKPickup)",
"TransportCompanyID": "uuid || Идентификатор транспортной компании",
"TransportCompanyCityID": "uuid || Идентификатор города ТК",
"TransportCompanyCityName": "string || Название города ТК",
"TransportCompanyExternalCode": "string || Внешний код офиса ТК в системе CDEK",
"TransportCompanyTariffID": "uuid || Идентификатор тарифа ТК",
"TransportCompanyTariffName": "string || Наименование тарифа",
"CourierDeliveryCost": "int || Стоимость доставки",
"InitialCourierDeliveryCost": "int || Начальная цена доставки курьером",
"CourierComment": "string || Комментарий для курьера"
},
"shipmentTKCourier": {
"shipmentTKCourier": "Блок ТК Курьером (ShipmentTKCourier)",
"TransportCompanyID": "uuid || Идентификатор транспортной компании",
"TransportCompanyCityID": "uuid || Идентификатор города ТК",
"TransportCompanyCityName": "string || Название города ТК",
"TransportCompanyExternalCode": "string || Внешний код офиса ТК в системе CDEK",
"TransportCompanyTariffID": "uuid || Идентификатор тарифа ТК",
"TransportCompanyTariffName": "string || Наименование тарифа",
"IntervalValue": "string || Значение интервала доставки",
"Latitude": "string || Широта адреса доставки",
"Longitude": "string || Долгота адреса доставки",
"AddrDostav": "string || Адрес доставки",
"FiasID": "uuid || FIAS идентификатор адреса доставки",
"IntervalGUID": "uuid || Идентификатор интервала курьерской доставки",
"DeliveryAregGUID": "uuid || Идентификатор AREG адреса доставки",
"AddressTail": {
"AddressTailID": "uuid || Идентификатор хвоста адреса",
"PostCode": "string || Индекс адреса доставки",
"Flat": "string || Кв./Офис",
"Entrance": "string || Подъезд",
"Floor": "string || Этаж",
"AddressComment": "string || Комментарий к адресу",
"ContactNumber": "string || Контактный номер в адресе доставки"
},
"CourierDeliveryCost": "int || Стоимость доставки",
"InitialCourierDeliveryCost": "int || Начальная цена доставки курьером",
"DeliveryWay": "int || Тип доставки, через транспортную компанию",
"CourierComment": "string || Комментарий для курьера",
"DeliveryCategoryType": "int || Тип категории доставки",
"DeliveryCategoryName": "string || Название категории доставки"
},
"shipmentFastDelivery": {
"shipmentFastDelivery": "Блок Быстрая доставка (ShipmentFastDelivery)",
"OfficeGUID": "uuid || Идентификатор офиса",
"FactDeliveryBoy": "uuid || Идентификатор курьера который отдал заказ",
"FreeReason": "int || Причина бесплатной доставки",
"FiasID": "uuid || FIAS идентификатор адреса доставки",
"IntervalGUID": "uuid || Идентификатор интервала курьерской доставки",
"DeliveryAregGUID": "uuid || Идентификатор AREG адреса доставки",
"AddressTail": {
"AddressTailID": "uuid || Идентификатор хвоста адреса",
"Flat": "string || Кв./Офис",
"Entrance": "string || Подъезд",
"Floor": "string || Этаж",
"AddressComment": "string || Комментарий к адресу",
"ContactNumber": "string || Контактный номер в адресе доставки"
},
"IntervalValue": "string || Значение интервала доставки",
"Latitude": "string || Широта адреса доставки",
"Longitude": "string || Долгота адреса доставки",
"CourierGUID": "uuid || Идентификатор курьера в заказе",
"DeliveryBoyName": "string || ФИО курьера в заказе",
"AddrDostav": "string || Адрес доставки",
"CourierDeliveryCost": "int || Стоимость доставки",
"CourierComment": "string || Комментарий для курьера",
"DeliveryDate": "date-time || Дата доставки"
}
}
}
}
@endjson