3. Техническое описание



Транспорт


1. Модуль SET-Scales (а именно ScalesGoodsProcessor) раз в фиксированный промежуток времени запрашивает обновление информации для весов у модуля SET-Products 
 Таблицы, в которых хранятся сущности товаров:
un_cg_product -- справочник товаров
un_cg_product_weight -- плагинные свойства весовых товаров
un_cg_price -- цены для товаров
un_cg_barcode --штрихкоды


2. Модуль SET-Products делает выборку всех товаров, для которых необходимо совершить какое-то действие на весах (загрузить, удалить, обновить товар). 
    При изменении цены у товара в поле un_cg_price.sentotscales проставляется флаг false, после отправки в весовой модуль флаг становится true
    При изменении штрихкода товара у товара в поле un_cg_barcode.sentotscales проставляется флаг false, после отправки в весовой модуль флаг становится true

3. Вся информация приходит в весовой модуль в таблицу scales_productentity и затем в таблицу с PLU scales_plues
4. Далее создаются собственно "линки" (задания) для отправки PLU на весы в таблице scales_linktoplu
    Для создания линки используется информация о шаблоне используемых весов (scales_template) и собственно самих весов (scales_scales)


Настройки весового модуля

Описанные выше взаимодействия между модулями осуществляются при помощи таймеров, настройки которых хранятся в файле scales.properties(\SetRetail10\standalone\configuration\modules\scales\). Файл содержит информацию в виде ключ-значение.
Ниже приведены примеры и пояснения ключевых настроек.

 

ПараметрКомментарий
goods.checking.forscales.long.interval.duration

Частота выборки товаров, которые надо отправить в весовой модуль.

"Длинный" интервал используется системой в случае, когда товаров нет или их малое количество

значение по-умолчанию = 180000

goods.checking.forscales.short.interval.duration

Частота выборки товаров, которые надо отправить в весовой модуль.

"Короткий" интервал используется системой в случае, когда товаров много или их список часто обновляется.

значение по-умолчанию = 60000

goods.sending.interval.duration

Периодичность проверки на необходимость исполнения инструкций (реальная отправка команд в реальные весы)

значение по-умолчанию=60000

links.cleaner.interval

Периодичность проверки на необходимость очистки / удаления устаревших PLU и инструкций

значение по-умолчанию = 60000

links.maker.newscales.interval

Периодичность проверки на необходимость запуска техпроцесса обработки события добавления новых весов в систему

значение по-умолчанию = 60000

 

Описание PLU (scales_plues)


Название поляКомментарий

number

Номер PLU

department

Номер отдела

departmentName  

Название отдела

firstLine

Наименование товара, 1 строка

secondLine

Наименование товара 2-я строка

price

Действующая цена  (цена №1)

priceBeginDate

Начало действия текущей цены (цена №1)

priceEndDate

Конец действия текущей цены (цена №1)

exPrice

Цена по карте (цена №2)

exPriceBeginDate

Начало действия цены по карте (цена №2)

exPriceEndDate

Конец действия цены по карте (цена №2)

expired

Срок годности этой PLU в часах или дня, в зависимости от expiredType

expiredType

Hours или Days

fullBarCode

Полный штрихкод

barCodePrefix

Префикс штрихкод

barCodeWithoutPrefix

штрихкод без префикса

messageId

 

messageText

 

alternativeText1

 

alternativeText2

 

alternativeText3

 

certificationType

Тип сертификации

messages

подробные сообщения (такие как состав, условия хранения, производитель и т.д.) для PLU. см. примечание

 

Примечание: Известно, что весы хранят два вида информации: PLU – информация о товаре и Message – подробные сообщения (такие как состав, условия хранения, производитель и т.д.) для PLU.

Существует два возможных сценария:

Сообщения отправляются независимо от PLU

В таком случае:

    • каждый драйвер обязан определить реализацию методов loadMessage(Message message) и clearMessage(int messageId)
    • Объект класса Message содержит ссылку на PLU. Объект класса PLU ничего не знает о сообщениях

Сообщения отправляются вместе с PLU

В таком случае:

    • Нет необходимости в методах loadMessage(Message message) и clearMessage(int messageId). Они будут удалены из Scales и всех наследников
    • Объект класса PLU содержит список сообщений, который отправляется вместе с PLU на весы

Описание заданий загрузки на весы (scales_linktoplu)

ПолеКомментарий
actionTypeДействие, совершаемое с сущностью на весах : 0 - LoadPLU, 1- ClearPLU, 2 - LoadMessage, 3 - ClearMessage
statusСтатус исполнения команды: 0 - NEW, 1- INPROCESS, 2- LOADED, 3- LOAD_ERROR
exceptionTypeТип произошедшей ошибки: 0 - NONE, 1- SUCCESS, 2 - COMMUNICATION, 3- OTHER, 4- LICENSE_VIOLATION
lastErrorCode

Тип последней ошибки, разные весы определяют сами значение этого свойства.

lastErrorTypeКод последней ошибки, разные весы определяют сами значение этого свойства.
errorCountКоличество попыток загрузки завершившихся неудачей
timeSendingВремя отправки данных Товаров на весы
scalesCodeУникальный код весов
pluPLU, для которого \ с которым производится действие