Плагины и расширения
СУО QSystem может быть расширена по средствам плагинов. Плагины строятся по технологии services. Для знакомых с Java не составит труда разработать свой плагин и подключить его к серверу СУО QSystem. Рассмотрим основные принципы разработки плагинов и их применения.
Принцип действия
Технология создания плагинов основана на services. Т.е. плагин представляет собой jar, в котором реализуются специальные интерфейсы. Эти интерфейсы объявляются внутри сервера QSystem в пакете ru.apertum.qsystem.extra. Плагин реализовывает требуемый интерфейс определенным образом, а сервер вызывает эти методы из плагина в определенное время. Проще не придумаешь. Смотришь какие методы из какого интерфейса вызываются при необходимых событиях. Реализовываешь этот интерфейс, подготавливаешь jar и добавляешь его в ClassPath сервера СУО QSystem. При наступлении определенных событий сервер вызывает ваши методы.
События, для которых можно реализовать свой обработчик. Первая группа событий это движение клиента в очереди, т.е. постановка в очередь, удаление из очереди и т.д. Вторая группа это изменение статуса самого клиента, т.е. новый, вызванный, подошедший, перенаправленный и т.д.
IChangeCustomerStateEvent изменение статуса посетителя в процессе оказания услуги, статусы находятся в ru.apertum.qsystem.common.CustomerState
ICustomerChangePosition событие постановки посетителя в очередь и удаления
IPrintTicket печать талона для постановки в очередь и для предварительной записи
IPing проверка доступности централизованной базы данных
IDataExchange отправление информации в централизованную базу данных
IStartClient событие запуска приложения оператора.
Все плагины имеют версию и идентификатор. В зависимости от этих параметров плагин может быть не совместим или наоборот совместим с определенными версиями СУО QSystem.
Подключение
Для QSystem1.2.8 и младше подключение происходит помещением плагина в папку plugins. При старте плагины находятся и подключаются автоматически.
Если у вас версия СУО старше 1.2.8, то выполняем следующие действия. Берем jar подключаемого плагина и добавляем его в ClassPath при старте сервера. Это можно сделать следующим образом. В StartServer.bat в ключ -cp добавить jar плагина. Например
java -cp dist/QSystem.jar;E:/plugins/ZoneboardPlugin.jar ru.apertum.qsystem.server.QServerТеперь сервер СУО QSystem увидит ваш плагин и будет вызывать методы вами реализованного интерфейса. Если настройка плагина вынесена в программу администрирования, то при старте StartAdmin так же необходимо добавить jar плагина в ClassPath.
Использование
После подключения плагина возможно может потребоваться его настроить. Для Некоторых плагинов настройка вынесена в программу администрирования, для некоторых нет. Читайте описание работы плагина. Если плагин не взаимодействует с какой-нибудь третьей программой, то более ничего делать с ним не требуется. Если же какая-то сторонняя программа все же взаимодействует с плагином, то позаботьтесь что бы эта программа была готова для такой работы. К примеру, при использовании плагина для сервера зональных табло, этот самый сервер должен быть запущен и настроен.
Плагин звукового голосового оповещения
Начиная с версии 1.3.1 ресурсы звукового голосового оповещения убраны из основной программы скрвера управления электронной очереди. Чтобы получить голосовое оповещения вызванного посетителя необходимо скачать плагин с выбранным голосом и поместить его в папку plugins. Доступные плагины:
- Плагин голосового оповещения "Алёна". Русский язык.
- Плагин голосового оповещения "Даша". Русский язык.
- Плагин голосового оповещения "Николай". Русский язык.
- Плагин голосового оповещения "Ольга". Русский язык.
- Плагин голосового оповещения "Оксана". Украинский язык.
Плагин использования конструктора дизайна талонов JasperReports.
Плагин для QSystem1.2.8 и более новых версий, который печатает талоны с помощью библиотеки JasperReports. Разработал sarragoth. Скачать.
Зональные сервера, плагины к ним, совместимость
Таблица совместимости зональности
QSystem | плагин | зональный сервер |
---|---|---|
1.3.2 | 4 | 6 |
1.3.1 | 3 | 5 |
1.2.9 | 3 | 4 |
1.2.8 | 2 | 3 |
1.2.7 | 2 | 2 |