ТЗ для ПО планировщик маршрутов.
1. Импорт данных для планировки маршрутов импорт из ПО заказчика должен происходит в автоматическом режиме с определенным интервалом, либо по необходимости (ручной запуск). Способ передачи данных может быть разный (прямая передача в промежуточные таблицы, передача данных осуществляется через файл (CSV/XML)) и может быть обговорена дополнительно.
В процедуру импорта данных из ПО заказчика должны быть включены следующие поля:
1.1 Номер доставки - поле (wsh_new_deliveries. name).
1.2 Дата доставки - поле (oe_order_headers_all. request_date).
1.3 Код грузополучателя - поле (hz_cust_site_uses_all. site_use_id).
1.4 Название грузополучателя - поле (hz_cust_site_uses_all. location).
1.5 Адрес доставки (фактический) - поле (xxmm08y03c_locations. locnm).
1.6 Идентификатор накладных - поле (wsh_new_deliveries. delivery_id).
1.7 Доп. комментарий к доставке (в том числе к доп. заданию водителя) - поле (wsh_new_deliveries. attribute6).
1.8 Весогабаритные характеристики каждой доставки - поле (вычисляется, равно сумме, входящего в доставку товара ). Расчет введется в ПО заказчика. Во внешнее ПО передаются уже рассчитанные значения ВГХ по каждой доставке.
1.9 Сумма доставки (руб.) - поле (вычисляется, равно сумме, входящего в доставку товара). Расчет введется в ПО заказчика. Во внешнее ПО передаются уже рассчитанные значения суммы по каждой доставке.
1.10 Тип клиента (Аптека, Апт. сеть, Больница, ….) - поле (hz_cust_accounts. attribute1). (*)
1.11 Тип метода отгрузки доставки (Самовывоз, Мультисклад, ….)
(*) Данное поле необходимо для определения приоритета доставки заказов, при составлении маршрутов, например доставка заказы в больницы осуществляется до 15:00.
2. Работа в ПО начинается с фильтрации импортированных данных
2.1 Выбор региона для планирования (по направлению), список доступных регионов отображается в зависимости от прав доступа диспетчера.
При создании нового пользователя администратор указывает/отмечает доступные регионы.
2.2 Выбор «Условия доставки» ( Утро, День, Ночь,….)
А). «Утро» - период плановой даты отгрузки с 05:00 до 11:00 текущего дня
Б). «День» - период плановой даты отгрузки с 11:00 до 17:00 текущего дня
В). «Ночь» - период плановой даты отгрузки с 17:00 до 05:00 следующего дня
2.3 Проверка справочника клиентов
По отдельному запросу будет выгружаться справочник в файл (запускать при необходимости, при внесение изменений в справочник клиентов), который будет загружаться в стороннее ПО.
Для новых клиентов запускается процедура геокодирования. (п. 3.2). При загрузке будет проверяться код точки контрагента, и при совпадении кода в документ доставки будет подставляться ранее созданная точка.
При импорте доставок с грузополучателем, который отсутствует в БД происходит автоматическая вставка нового клиента в справочник клиентов.
.
2.4 Группировка и отображение в табличном виде накладных по получателям
Из импортированных идентификаторов накладных формируется «заявка на доставку», в которой суммируются ВГХ, сумма, по каждому клиенту. Номер доставки – это номер накладной, по которой товар будет доставлен грузополучателю.
2.5 Автоматическое формирование маршрутов по зональному принципу
Административные/Территориальные округа по России распределены на «зоны доставки», все заявки которые находятся внутри данной «ЗД» назначаются на один рейс.
2.6 Отображение событий связанных с отклонением от заданных величин
Выделение маршрута цветом, в случае превышения ВГХ допустимых для транспортного средства, превышение доли затрат на доставку относительно суммы заказов.
По окончанию автоматической работы, диспетчер производит обработку спланированных рейсов с отклонением путём выделения на карте одного или нескольких получателей и назначения их на соседний, более разгруженный рейс, в случае не рентабельности доставки и не возможности присоединить к соседнему рейсу, диспетчер снимает заказ с доставки, изменив «Дату доставки» в документе
2.7 Экспорт результата планирования в ИС заказчика
2.7.1. Идентификатор накладных
2.7.2. Автомобиль (назначенный на рейс автотранспорт)
2.7.3. Регистрационные номера автомобиля
2.7.4. Фамилия – поле( per_all_people_f. last_name)
2.7.5. Имя – поле( per_all_people_f. first_name)
2.7.6. Отчество – поле( per_all_people_f. middle_names)
2.7.7. Наименование рейса
2.7.8. Номер грузополучателя в рейсе (очередность доставки заказа, согласно маршруту оптимального движения автомашины)
2.7.9 . Дата доставки (нужна в случае изменения даты доставки в стороннем ПО (см. пункт 2.6)).
3. Требования
3.1 Редактирование привязки получателей к карте должно производиться.
а. В справочнике клиента
б. На карте, путём перемещение значка получателя по карте.
3.2 Наличие процедуры геокодирования адресов получателей
Геокодирование - заполнение полей «LONG» и «LAT» в справочнике клиента, происходит при импорте нового получателя по данным из таблиц заказчика.
В процедуре используются следующие поля.
а. Область - поле (hz_locations. address1)
б. Город - поле (hz_locations. state)
в. Улица - поле (hz_locations. address3)
г. Дом - поле (hz_locations. address4)
д. Строение, корпус….. - поле (hz_locations. address4).
3.3 Справочник маршрутов.
Наличие справочника маршрутов, в котором указаны следующие данные
1. № маршрута.
2. Название маршрута
3. Тип маршрута (город, область, смешанный)
4. Протяжённость (для областных и смешанных маршрутов)
5. Стоимость за километр (для областных маршрутов) .
6. Стоимость за точку доставки (для городских маршрутов)
7. Стоимость за километр и за адрес (для смешанных маршрутов)
3.4 Диспетчер должен иметь возможность корректировки маршрута в любой момент времени, до момента доставки заказа клиенту (до момента выезда автотранспорта на маршрут).
3.5 Наличие в ПО гибкого мастера построения отчётов.
Например:
дата | Водитель | Аптек | Вес | Объем нетто | Объем брутто | процент заполнения А/М | ReisID | сценарий | Объем а/м | Напр | кол-во машин | Кол-во выездов | № недели |
дата | Водитель | ReisID | Вес | Напр | Объем нетто | Объем брутто | Кол-во грузополучателей | Протяженность маршрута | Стоимость за ТД | Стоимость за км | Сумма заказов (руб) | Стоимость доставки | Рентабельность(%) |
1. Схема обмена данными
Предлагается следующая схема обмена данными (на уровне прямого чтения и записи в специальную область БД системы ПО исполнителя и внешней системы):
1. Во внешней по отношению к ПО исполнителя системе данные записываются в таблицы обмена данными. По команде пользователя (логиста) в ПО исполнителя запускается процедура обработки и загрузки данных в стороннюю систему.
2. По окончанию работы (логистом подготовлены и выбраны маршруты для реализации) пользователь в ПО исполнителя запускает механизм загрузки данных в ПО исполнителя. ПО исполнителя считывает необходимые ей данные и меняет во внешней системе соответствующие статусы записей. В ПО исполнителя создаются рейсы и привязывает к ним соответствующие доставки.
Справочник «Клиент»
Получатель товара
Поле | Описание | Данные в OEBS | Тип данных |
Номер грузополучателя | Номер конечного грузополучателя | hz_cust_site_uses_all. site_use_id | NUMBER(15) |
Наименование грузополучателя | Наименование конечного грузополучателя | hz_cust_site_uses_all. location | VARCHAR2(40) |
Юридическое наименование клиента | Юридическое название клиента | hz_parties. organization_name_phonetic | VARCHAR2(320) |
Адрес доставки | Адрес конечного грузополучателя | xxmm08y03c_locations. locnm | VARCHAR2 |
Телефон | Телефон | hz_contact_points. phone_number | VARCHAR2(40) |
Комментарий | Комментарий | ||
Начало работы | Начало работы | нет | |
Окончание работы | Окончание работы | нет | |
Начало обеденного перерыва | Обеденный перерыв | нет | |
Окончание обеденного перерыва | Обеденный перерыв | нет | |
Приоритет грузополучателя | Приоритет грузополучателя (Стандартный, ВИП, …) | hz_cust_site_uses_all. attribute13 | VARCHAR2(150) |
Активность грузополучателя | Статус клиента (активен/неактивен) | hz_cust_site_uses_all. status | VARCHAR2(1) Передавать активность необходимо для синхронизации данных. |
Метод отгрузки | Метод отгрузки (Самовывоз, транспорт филиала…) | wsh_carrier_services. ship_method_meaning | VARCHAR2(240) |
Справочник «Водители»
Конкретно справочника «Водители» нет. Есть справочник «Сотрудники» и в этом справочник заносятся сотрудники, которые являются водителями (должность «Водитель – экспедитор»). К рейсам водители привязываются диспетчерами вручную из списка. В списке зачастую некоторых водителей не существует (особенно наемников). В справочнике «Сотрудники» нет атрибутов присущих для водителей.
Существующие данные в OEBS по водителям (Фамилия, Имя, Отчество).
Справочник «Автомобили»
Подобно справочнику «Водители», со справочником «Автомобили». В OEBS можно завести автомобиль в справочник позиций в качестве контейнера (код позиции начинается на 2-), но в справочнике позиций нет атрибутов, которые присущих конкретно для автомобилей.
Сформированные доставки в OEBS (полностью укомплектованные). Передача в стороннее ПО.
Поле | Описание | Данные в OEBS | Тип данных |
ID доставки | Идентификатор доставки | wsh_new_deliveries. delivery_id | NUMBER |
Номер доставки | Номер доставки (накладная) | wsh_new_deliveries. name | VARCHAR2(30) |
Наименование грузополучателя | Кому | hz_cust_site_uses_all. location | VARCHAR2(40) |
Дата отгрузки | Требуемая дата доставки | oe_order_headers_all. request_date | DATE |
Направление | Привязка грузополучателя к определенному направлению | ra_territories. segment4 | VARCHAR2(25) |
Тип доставки | Тип доставки (товарная доставка, ДОПЗАДАНИЕ) | wsh_new_deliveries. attribute_category | VARCHAR2(150) |
Комментарий | Комментарий (дополнительный комментарий по доставке товара/допзадания) | wsh_new_deliveries. attribute6 | VARCHAR2(150) |
Сумма доставки | Сумма | Вычисляемые столбцы. Получаются из суммы, входящего в доставку товара. На каждую позицию есть параметры (ВГХ, стоимость). | |
Масса доставки | Масса доставки | ||
Объем доставки | Объем доставки. |
Если в стороннем ПО будут формироваться ТСД («Маршрутный лист», «ТТН»), то необходимо будет передавать детализацию по доставке (НЗ, категория НЗ).
Передача в OEBS рассчитанных рейсов в стороннем ПО
Поле | Описание | Данные в OEBS | Тип данных |
Наименование рейса | Наименование рейса, полученного в стороннем ПО | wsh_trips. name | VARCHAR2(30) |
Дата | Дата рейса | wsh_trips. creation_date | DATE |
ID Водителя | Идентификатор водителя | wsh_trips. attribute1 | VARCHAR2(150) |
ФИО водителя | ФИО водителя | ||
ID автомобиля | Идентификатор автомобиля | wsh_trips. vehicle_item_id | NUMBER |
Наименование автомобиля | Наименование автомобиля | ||
Гос. номер автомобиля | Гос. номер автомобиля | wsh_trips. vehicle_number | VARCHAR2(30) |
ID доставки | Идентификатор доставки, входящей в рейс. | wsh_new_deliveries. delivery_id | NUMBER |


