I. Обзор
В системе логистики мидл-офис отвечает только за циркуляцию логистических заказов, а выполнение конкретной логистики часто требует связи со сторонними курьерскими компаниями. Поскольку технические стандарты сторонних экспресс-компаний отличаются, нам необходимо инкапсулировать интерфейсы сторонних экспресс-компаний.Здесь есть два типа инкапсуляции, одна - инкапсуляция выдачи запросов, а другая - инкапсуляция. получения возвращенных деталей логистики. Для компании доставки мы не только инкапсулируем уровень интерфейса, но и абстрагируем набор сервисных шаблонов, чтобы логистическая служба курьерской компании могла быть представлена продавцам и пользователям в виде продукта. Что касается деталей логистики, мы разработаем собственную модель данных для связи с различными курьерскими компаниями.
2. Логистические услуги
1. Концептуальная модель
Логистическая служба разделена на три части модели: шаблон услуги, модель экспресс-компании и шаблон перевозки. С точки зрения процесса логистическая услуга делится на три этапа: выражение логистической услуги, маршрутизация логистической услуги и выполнение логистической услуги.
Сначала мы войдем в курьерскую компанию и настроим шаблон доставки курьерской компании, затем отредактируем шаблон услуги и, наконец, смонтируем курьерскую компанию, которая может предоставить соответствующую услугу в соответствии с соответствующим шаблоном услуги. После выполнения вышеуказанных шагов продавец может выбрать соответствующий шаблон услуги для различных товаров.Товар с установленным шаблоном услуги может видеть логистическую услугу, когда пользователь размещает заказ.В это время пользователю будет предложено выбрать услугу шаблон.Различные курьерские компании в соответствии с заказом, а затем рассчитайте стоимость логистики в соответствии с шаблоном перевозки курьерской компании, чтобы завершить расчет суммы заказа.Когда последующие продавцы доставят товар, мидл-офис позвонит Различные курьерские компании в соответствии с информацией о моментальном снимке службы логистики в заказе.
2. Модель данных
Модель данных ER показана на следующем рисунке:
2.1, логистика_сервис
Описание: Шаблон службы логистики
Имя поля |
Тип поля |
Это обнуляемый |
описывать |
id |
bigint |
нет |
первичный ключ |
service_name |
varchar(32) |
нет |
имя шаблона службы |
service_code |
varchar(32) |
нет |
код шаблона услуги |
type |
int |
нет |
Тип шаблона |
status |
int |
нет |
Статус шаблона |
is_delete |
int |
нет |
удалить ли отметку |
feature |
varchar(1024) |
да |
нет |
version |
int |
да |
номер версии, по умолчанию 0 |
gmt_created |
Datetime |
нет |
время создания |
gmt_modified |
Datetime |
нет |
Изменить время |
Поля индекса: id, service_code
2.2, логистическая_компания
Имя поля |
Тип поля |
Это обнуляемый |
описывать |
id |
bigint |
нет |
первичный ключ |
company_name |
varchar(32) |
нет |
Название курьерской компании |
company_code |
varchar(32) |
нет |
Код компании курьера |
telephone |
varchar(32) |
да |
Телефон компании |
phone |
varchar(32) |
да |
Городской номер компании |
country |
varchar(32) |
да |
нация |
address |
varchar(1024) |
да |
Адрес компании |
company_url |
varchar(1024) |
да |
Адрес сайта компании |
company_logo |
varchar(1024) |
да |
Адрес изображения логотипа компании |
status |
int |
нет |
государство |
is_delete |
int |
нет |
удалить или нет |
feature |
varchar(1024) |
да |
нет |
version |
int |
да |
номер версии, по умолчанию 0 |
gmt_created |
Datetime |
нет |
время создания |
gmt_modified |
Datetime |
нет |
Изменить время |
Поля индекса: id, company_code
2.3, логистическая_сервисная_компания
Описание: Таблица связей между шаблоном службы логистики и логистической компанией.
Имя поля |
Тип поля |
может быть пустым |
описывать |
id |
bigint |
нет |
первичный ключ |
service_id |
bigint |
нет |
Идентификатор шаблона службы |
company_id |
bigint |
нет |
ID логистической компании |
gmt_created |
Datetime |
нет |
время создания |
gmt_modified |
Datetime |
нет |
Изменить время |
Индекс: id, service_id, company_id
2.4, грузовой_шаблон
Описание: Шаблон доставки
Имя поля |
Тип поля |
Это обнуляемый |
описывать |
id |
bigint |
нет |
первичный ключ |
template_name |
varchar(32) |
нет |
Название шаблона доставки |
company_id |
bigint |
нет |
Идентификатор компании |
company_code |
varchar(32) |
нет |
код компании |
template_type |
int |
нет |
Тип шаблона |
is_default |
int |
нет |
дефолт |
is_delete |
int |
нет |
удалить или нет |
status |
int |
нет |
государство |
feature |
varchar(1024) |
да |
нет |
version |
int |
да |
номер версии, по умолчанию 0 |
gmt_created |
Datetime |
нет |
время создания |
gmt_modified |
Datetime |
нет |
Изменить время |
Индекс: id, company_id, company_code
2.5, truck_template_detail
Описание: Детали шаблона доставки
Имя поля |
Тип поля |
Это обнуляемый |
описывать |
id |
bigint |
нет |
первичный ключ |
template_id |
bigint |
нет |
Идентификатор шаблона доставки |
sendAreaCode |
varchar(32) |
нет |
Адресный код четвертого уровня места отгрузки |
sendAreaName |
varchar(64) |
да |
Наименование адреса четвертого уровня места происхождения |
sendAreaLevel |
int |
нет |
Четырехуровневый адрес места происхождения |
receiveAreaCode |
varchar(32) |
нет |
Адресный код четвертого уровня места получения |
receiveAreaName |
varchar(64) |
да |
Наименование адреса четвертого уровня места получения |
receiveAreaLevel |
int |
нет |
Адрес четвертого уровня места получения |
min_weight |
Decimal |
да |
Минимальный вес |
max_weight |
Decimal |
да |
Максимальный вес |
min_volumn |
Decimal |
да |
Нижний предел громкости |
max_volumn |
Decimal |
да |
Ограничение громкости |
min_count |
int |
да |
Минимальное количество |
max_count |
int |
да |
Лимит количества |
price |
Decimal |
нет |
цена |
is_default |
int |
нет |
дефолт |
is_delete |
int |
нет |
удалить или нет |
status |
int |
нет |
государство |
calculate_type |
int |
нет |
Тип расчета: 1 Вес 2 Объем 3 Количество |
priority |
int |
нет |
приоритет, по умолчанию 0 |
feature |
varchar(1024) |
да |
нет |
version |
int |
да |
номер версии, по умолчанию 0 |
gmt_created |
Datetime |
нет |
время создания |
gmt_modified |
Datetime |
нет |
Изменить время |
Индекс: id, template_id, sendAreaCode, ReceiveAreaCode
3. Детали логистики
1. Дизайн процесса
Когда заказ логистики будет отправлен, будет отправлено асинхронное сообщение.После получения сообщения детали логистики создадут лист сведений о логистике, а затем подпишутся на стороннюю экспресс-компанию, а затем курьерская компания асинхронно вернет логистику детали к нам. Для некоторых курьерских компаний, которые не могут подписаться на информацию о логистике, мы регулярно проверяем детали логистики партиями с помощью запланированных задач и синхронизируем их с нашей базой данных.
2. Модель данных
2.1, детали логистики
Описание: лист деталей логистики
Имя поля |
Тип поля |
Требуется ли |
описывать |
id |
bigint |
необходимые |
первичный ключ |
lg_detail_code |
varchar(128) |
необходимые |
Номер заказа логистической информации |
outer_id |
varchar(128) |
необходимые |
внешний номер для отслеживания |
outer_order_type |
int |
необходимые |
Тип внешнего заказа: 1 логистический заказ |
receiver_id |
bigint |
Не требуется |
Идентификатор грузополучателя |
receiver_name |
varchar(64) |
Не требуется |
Имя грузополучателя |
receiver_telephone |
varchar(32) |
Не требуется |
телефон грузополучателя |
receiver_province |
varchar(32) |
Не требуется |
Провинция грузополучателя |
receiver_city |
varchar(64) |
Не требуется |
город получателя |
receiver_area |
varchar(64) |
Не требуется |
зона грузополучателя |
receiver_street |
varchar(64) |
Не требуется |
улица грузополучателя |
receiver_address |
varchar(1024) |
Не требуется |
Полный адрес грузополучателя |
receiver_address_code |
varchar(32) |
Не требуется |
четырехуровневое адресное кодирование |
sender_id |
bigint |
Не требуется |
Идентификатор отправителя |
sender_name |
varchar(64) |
Не требуется |
Имя грузоотправителя |
sender_telephone |
varchar(32) |
Не требуется |
Телефон грузоотправителя |
sender_province |
varchar(32) |
Не требуется |
Провинция грузоотправителя |
sender_city |
varchar(64) |
Не требуется |
Шиппер Сити |
sender_area |
varchar(64) |
Не требуется |
Регион отправителя |
sender_street |
varchar(64) |
Не требуется |
Шиппер-стрит |
sender_address |
varchar(1024) |
Не требуется |
Полный адрес отправителя |
sender_address_code |
varchar(32) |
Не требуется |
четырехуровневое адресное кодирование |
mail_no |
varchar(128) |
необходимые |
Номер накладной |
company_code |
varchar(32) |
Не требуется |
код курьера |
company_name |
varchar(32) |
Не требуется |
Название курьерской компании |
service_code |
varchar(32) |
Не требуется |
код шаблона услуги |
status |
int |
необходимые |
государство |
is_delete |
int |
необходимые |
удалить или нет |
feature |
varchar(1024) |
Не требуется |
нет |
version |
int |
Не требуется |
номер версии, по умолчанию 0 |
gmt_created |
Datetime |
необходимые |
время создания |
gmt_modified |
Datetime |
необходимые |
Изменить время |
Индекс: id, lg_detail_code, уникальный (outer_id, external_order_type)
2.2, логистика_detail_node
Имя поля |
Тип поля |
Требуется ли |
описывать |
id |
bigint |
необходимые |
первичный ключ |
lg_detail_code |
varchar(128) |
необходимые |
Код списка деталей логистики |
mail_no |
varchar(128) |
необходимые |
Номер накладной |
node_time |
Datetime |
Не требуется |
Время узла сведений о логистике |
node_detail |
varchar(2048) |
Не требуется |
Содержимое узла сведений о логистике |
sort_value |
int |
Не требуется |
Сортировать |
feature |
varchar(1024) |
Не требуется |
нет |
version |
int |
Не требуется |
номер версии, по умолчанию 0 |
gmt_created |
Datetime |
необходимые |
время создания |
gmt_modified |
Datetime |
необходимые |
Изменить время |
Индекс: идентификатор, lg_detail_code
4. Резюме
Логистические услуги и детали логистики - это уровень абстракции и инкапсуляции для сторонних экспресс-компаний, которые относительно просты.В следующей статье мы введем ключевое содержание: дизайн уровня продукта-услуги.
Для получения дополнительных статей, пожалуйста, посетите http://www.apexyun.com/
Контактный адрес электронной почты: public@space-explore.com
(Пожалуйста, не перепечатывайте без разрешения)