АСУ для кофеен. Часть 3

Часть 1. Предыстория.
Часть 2. Почему выбран MODX Revolution. Серверная часть.
Часть 3. Работа с оборудованием. Примерная хронология проекта.
Часть 4. Синхронизация данных и обновление компонентов АСУ
Часть 5. Пути решения проблем при «непонятном» поведении движка/компонентов. Реализация складского учета
Часть 6, 7. Текущие функциональные возможности АСУ
Часть 8. Текущие показатели АСУ. Желаемые планы. Заключение

Работа с оборудованием


Фискальные регистраторы



Главным нюансом было взаимодействие с фискальным регистратором, который в 2014 году в качестве коммуникационного поддерживал только COM-порт. Второй сложностью в работе с ФР был протокол работы, основанный на бинарном обмене данными.

Поскольку на серверах в качестве ОС рассматривался только Linux (что же еще для WEB'а?), а ФР должны были устанавливаться на значительном расстоянии от сервера, появился вопрос о нестандартном взаимодействии. Мало того, что нужно «подружить» АСУ на PHP и оборудование с COM-портом, так еще и обеспечить возможность подключения через COM-порт на неограниченном расстоянии.

Решением стало устройство MOXA Nport 5110 — отличная возможность «прокинуть» COM-интерфейс в привычный Ethernet для использования подключений через сокеты. Как итог, стало возможным написание драйвера для ФР на PHP. Здесь многие могут возразить «Зачем изобретать велосипед?», но на тот момент не удалось найти рабочих решений для печати чеков из Linux через Ethernet. Благо, специалист, успешно выполнивший данную задачу, нашелся очень быстро.

Сканеры штрих-кодов



Помимо ФР вторым устройством является сканер штрих-кодов. С ним все прошло намного проще за счет возможности работы в качестве обычной клавиатуры и подключения к моноблоку по USB локально.
Сложность со сканерами появилась спустя чуть больше года после запуска АСУ, когда бытовые моноблоки начали «умирать», и появилась идея об установке iPad вместо них.



Как известно, самые популярные планшеты не имеют USB-порта.

Решение оказалось нестандартным, но эффективным:
  • Серверы перенесли ближе к сканерам для подключения напрямую
  • На серверах настроены кейлоггер для отлова штрих-кодов и NODE.JS для передачи ШК в браузер клиента, как будто они считаны на локальной клавиатуре.
В остальном проект представлял собой классический web-сервис с распределенной структурой.

Примерная хронология проекта


Спустя длительное время все идеально уже не вспомнить, да и не требуется.



Опишу основные вехи, как и что реализовывалось.
  • Июнь-июль 2014 года — изучение и описание бизнес-процессов;
  • Июль-август 2014 года — подготовка ТЗ, формирование требований, подбор резработчиков;
  • 20-25 августа 2014 года — до сдачи первой версии для приема заказов в кофейне, вывода отчетности менеджеру, печати чеков остается 2 недели. Внезапно появляется понимание, что на данный момент имеется только верстка, сырой драйвер ФР и совсем общая структура. Первый мандраж и грусть от перспективы, так как возложенные на привлеченных разработчиков не оправдались. Пришлось полноценно включаться в процесс и лично разрабатывать практически все необходимые возможности;
  • 7-10 сентября 2014 года (с опозданием на 2-3 дня) пробная попытка установки комплекта в первой кофейне. Полноценно не завелось, но у меня появилось понимание, как будут работать сотрудники;
  • Середина сентября 2014 года — успешный запуск АСУ в первой кофейне. Не без огрехов, но сотрудники уже могли принимать заказы, менеджера видели продажи;
  • Конец сентября 2014 года — успешное участие клиента в выставке франшиз и наглядная демонстрация собственной IT-системы всем заинтересовавшимся;
  • Октябрь 2014 года — исправление ошибок и недоработок. Разумеется, не весь месяц без остановки, а периодически, по мере появления сообщений. Параллельно запуск второй и третьей кофеен;
  • Ноябрь-декабрь 2014 года— реализация первой версии ЦС, синхронизации товаров и продаж;
  • Декабрь 2014 года — реализация модуля интеграции с системой видеонаблюдения;
  • 2015 год — реализация программы лояльности для гостей, системы подарков;
  • Декабрь 2015 года — февраль 2016 года — реализация системы складского учета
  • Начало 2016 года — реализация хранилища для документов сотрудников;
  • 2016 год — реализация групп кофеен, поддержки различных цен по группам кофеен и для держателей карт, адаптация интерфейса под iPad;
  • Конец 2016 года — реализация системы резервного копирования всей сети в облачное хранилище с использованием стандартных возможностей MODX по работе с удаленными источниками данных;
  • 2017 год — минимальные доработки по запросам.


Как видно, максимальное развитие было в начале. Текущий год получился спокойным на доработки. Есть уверенность, что это «затишье перед бурей» — количество пожеланий для наращивания возможностей АСУ растет, в течение некоторого времени большая часть этих пожеланий наверняка будет запущена в работу.
Воеводский Михаил
29 ноября 2017, 13:27
1
615
+14

Комментарии: 5

Андрей Кухарев
11 декабря 2017, 01:01
0
Декабрь 2014 года — реализация модуля интеграции с системой видеонаблюдения;
какая конкретно система?
Константин Ильин
01 марта 2018, 19:00
0
Михаил, можете поподробнее рассказать о сканирование штрих-кодов и отправка сигнала в пхп, как это все реализовано?
каков процесс от сказанных слов клиента до добавление товара в заказ?
Как отправляется код от сканера в веб?

Мое представление:
усб и комп
сканер отправляет на комп сигнал и считанный код, на компе установлена(написана) небольшая программа которая принимает сигнал и отправляет уже по веб на сервер
айпад
Не совсем понял, через вайфай получается?

Спрашиваю для того, чтобы заменить на предприятии 1с на веб, кстати как думаете хорошая идея?
Да и вообще интересно как это все

Предполагается централизованный каталог, который могут редактировать менеджеры с разными уровнями доступа, центрлизированая система заказов, но вот надо отдельно делать штрихкодирование и отгрузка товара.
    Воеводский Михаил
    02 марта 2018, 22:08
    +1
    Сканеры штрих-кодов определяются как клавиатура на обычных ПК. Соответственно, «подружить» их с моноблоками было очень легко — запрограммировали добавлять «Scroll lock» перед и после считанной последовательности, а на JS это отлавливалось без каких-либо сложностей.
    В случае с планшетами пришлось схему усложнить. Поскольку к iPad'у сканер по USB не подключить, стали подключать его к серверу, а дальше через «посредников» в виде кейлоггера и ноды на сервере эмулировали считывание последовательности в браузере клиента, чтобы остальные механизмы не изменять.

    Менять 1С на веб — хорошая идея, но очень многое зависит от арзитектуры конечного решения и общего бюджета проекта. В некоторых случаях, когда бюджет очень ограничен, неудобства 1С приемлемы.