Инструменты пользователя

Инструменты сайта


uni:uni

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
uni:uni [08.07.2019 21:46]
buh [График выполненных работ.]
uni:uni [02.10.2020 08:50] (текущий)
buh [График выполненных работ.]
Строка 1: Строка 1:
 ====== Работа с Юнисервисом. ====== ====== Работа с Юнисервисом. ======
 +===== Обслуживание базы данных. =====
 +^Номер регламента^Вид обслуживания^Периодичность^Необходимые программы^
 +|1|Копирование базы данных|Ежедневно|см. Batch-файл резервного копирования|
 +|2|Удаление событий старше заданного периода|Ежемесячно|[[http://​www.artonit.ru/​index.php?​option=com_content&​view=article&​id=61:​dbclean_for_service_db&​catid=57:​artonit-hard-soft&​Itemid=76|DBClean]]|
 +|3|Удаление неактивных пользователей|Ежеквартально|С помощью программы IBExpert запросом <​code>​delete from people p where p."​ACTIVE"​=0</​code>​|
 +|4|Бэкап-Ресторе базы данных|Ежеквартально|[[http://​www.artonit.ru/​index.php?​option=com_content&​view=article&​id=61:​dbclean_for_service_db&​catid=57:​artonit-hard-soft&​Itemid=76|DBClean]]|
 +|5|Автоматическая чистка базы данных|Ежедневно|{{ :​uni:​db_skud_service.zip |}}\\ Открыть архив в любую папку.\\ Проверить пути к исполняемым файлам.\\ Настроить Назначенные задания на запуск файла db_SKUD_service.bat в указанное время (лучше ночью, т.к. процесс очистки может занимать длительное время).\\ --- //​[[admin@artonit.ru|Бухаров А.В.]] 11.01.2020 10:49// Содержимое файла db_SKUD_service.sql изменено согласно [[uni:​uni#​Единый SQL запрос на очистку событий|SQL запросы для удаления событий]] и содержит необходимые команды для удаления событий.|
 +
 ===== Перечень объектов ===== ===== Перечень объектов =====
  --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/06/17 08:58//  --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/06/17 08:58//
 ^№ п/​п^Название^IP адрес^Логин^Пароль^Версия БД^Версия Сити^ ^№ п/​п^Название^IP адрес^Логин^Пароль^Версия БД^Версия Сити^
-|1|Доминион|192.168.222.1|ХХХ|YYY+|1|Дххххххх|192.168.222.1|ХХХ| | 
-|2|Фьюжн|192.168.230.9| СКД |SKUD-Mich5+|2|Фххх|192.168.230.9| СКД | | 
-|3|Восток| 192.168.230.5| Восток|333+|3|Вххххх| 192.168.230.5|Восток| | 
-|4|Резиденция|192.168.183.200|Артсек| ​Artem2013|+|4|Рххххххххх|192.168.183.200|Артсек| ​
 +|5|Дхххххх|192.168.222.1|Administrator| 
 +|6|Шххххххх|192.168.230.4|administrator|||1.2.5| 
 +|7|Зххххххх|192.168.23.119|Запад|||1.2.5|
 ==== Комплект сервисных программ ==== ==== Комплект сервисных программ ====
 ^№ п/​п^Сервис,​ программа^ ​ Объект ​ ^^^^^ ^№ п/​п^Сервис,​ программа^ ​ Объект ​ ^^^^^
 ^:::​^:::​^Доминион^Резиденция^Лайнер Восток^Шуваловский^Балчуг^Фьюжн ^:::​^:::​^Доминион^Резиденция^Лайнер Восток^Шуваловский^Балчуг^Фьюжн
 |1|Автоматический бэкап базы данных|Нет.\\ ​ --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/06/18 08:56// |Есть, в папку C:​\service.\\ ​  --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/06/18 08:49//| |1|Автоматический бэкап базы данных|Нет.\\ ​ --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/06/18 08:56// |Есть, в папку C:​\service.\\ ​  --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/06/18 08:49//|
-|2|Сбор статистики по контроллерам| Есть, сбор данных разделен по типам контроллеров (Адемант и Артонит)\\ ​ --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/06/18 08:​58//​|Есть,​ проверен\\ ​ --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/06/18 08:​46// ​ --- |+|2|Сбор статистики по контроллерам| Есть, сбор данных разделен по типам контроллеров (Адемант и Артонит)\\ ​ --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/06/18 08:​58//​|Есть,​ проверен\\ ​ --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/06/18 08:​46// ​ --- |-|Есть,​ проверен ​ --- //​[[admin@artonit.ru|Бухаров А.В.]] 10.03.2020 23:51//|
 |3|Автоматическое удаление неизвестного идентификатора|Нет\\ ​  --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/06/21 14:​01//​|Есть| |3|Автоматическое удаление неизвестного идентификатора|Нет\\ ​  --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/06/21 14:​01//​|Есть|
-|4|{{ :uni:city_2019_07_08.zip |Панель управления Артонит Сити}}|+|4|{{ :uni:city_1_2_5.zip |Панель управления Артонит Сити ​вер. 1.2.5}}
 +|5|AServer|1.2.0.27|1.2.0.27|
  
 ==== Версии БД и их состояние на объектах==== ==== Версии БД и их состояние на объектах====
Строка 24: Строка 36:
 |3| Статистика| Имеются таблицы с названием st_. \\ Запуск скрипта сбора статистики установлен в шедулер.\\ C:​\xampp\curl.exe -L http://​127.0.0.1/​city/​task/​stat_device|Есть\\ Есть (был с ошибкой)\\ //​[[admin@artonit.ru|Бухаров А.В.]] 2019/​06/​18//​| |3| Статистика| Имеются таблицы с названием st_. \\ Запуск скрипта сбора статистики установлен в шедулер.\\ C:​\xampp\curl.exe -L http://​127.0.0.1/​city/​task/​stat_device|Есть\\ Есть (был с ошибкой)\\ //​[[admin@artonit.ru|Бухаров А.В.]] 2019/​06/​18//​|
 |4| Разделение идентификаторов,​ работа с ГРЗ| [[uni:#​Данные таблицы CARDTYPE|CARDTYPE]],​\\ DEVTYPE_CARDTYPE|Есть\\ Есть\\ ​ --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/​06/​18//​| |4| Разделение идентификаторов,​ работа с ГРЗ| [[uni:#​Данные таблицы CARDTYPE|CARDTYPE]],​\\ DEVTYPE_CARDTYPE|Есть\\ Есть\\ ​ --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/​06/​18//​|
-|5| Дабавлена аналитика событий| В таблицу events добавлено поле analit.\\ В базу данных добавлена процедура EVENT_ANALIT.{{ :​wiki:​event_analit_процедура.zip |}}\\ Обновлена процедура DEVICEEVENTS_INSERT. {{ :​wiki:​deviceevents_insert_with_event_analit.zip |}}|Добавлена\\ Добавлена\\ Обновлена\\ ​ --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/​06/​19//​|+|5| Дабавлена аналитика событий| В таблицу events добавлено поле analit.\\ В базу данных добавлена процедура EVENT_ANALIT. ​<​code>​ALTER TABLE EVENTS 
 +ADD ANALIT INTEGER\\ update RDB$RELATION_FIELDS 
 +set RDB$DESCRIPTION = '​Результат аналитики событий'​ 
 +where (RDB$RELATION_NAME = '​EVENTS'​) and 
 +(RDB$FIELD_NAME = '​ANALIT'​)</​code>​{{ :​wiki:​event_analit_процедура.zip |}}\\ Обновлена процедура DEVICEEVENTS_INSERT. {{ :​wiki:​deviceevents_insert_with_event_analit.zip |}}|Добавлена\\ Добавлена\\ Обновлена\\ ​ --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/​06/​19//​|
 |6|Удаление неизвестного идентификатора|При возникновении события 80 (Проход неизвестного идентификатора) карта автоматически ставится на удаление из всех точек прохода.\\ {{ :​uni:​delete_unknow_card_процедура.zip |}}\\  {{ :​uni:​events_del_unknow_card_trigger.zip |}}|\\ Добавлена\\ Добавлена\\ ​ --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/​06/​19//​| |6|Удаление неизвестного идентификатора|При возникновении события 80 (Проход неизвестного идентификатора) карта автоматически ставится на удаление из всех точек прохода.\\ {{ :​uni:​delete_unknow_card_процедура.zip |}}\\  {{ :​uni:​events_del_unknow_card_trigger.zip |}}|\\ Добавлена\\ Добавлена\\ ​ --- //​[[admin@artonit.ru|Бухаров А.В.]] 2019/​06/​19//​|
 === Данные таблицы CARDTYPE === === Данные таблицы CARDTYPE ===
Строка 43: Строка 59:
  
 COMMIT WORK;</​code>​ COMMIT WORK;</​code>​
 +
 +=== Данные таблицы DEVTYPE ===
 +<​code>​
 +INSERT INTO DEVTYPE (ID_DEVTYPE,​ ID_DB, NAME, STANDALONE) VALUES (1, 1, '​Контроллеры Артонит/​Адемант',​ 1);
 +INSERT INTO DEVTYPE (ID_DEVTYPE,​ ID_DB, NAME, STANDALONE) VALUES (2, 1, '​Контроллеры Артонит (резерв)',​ 1);
 +INSERT INTO DEVTYPE (ID_DEVTYPE,​ ID_DB, NAME, STANDALONE) VALUES (3, 1, 'UHF RFID контроллеры',​ 1);
 +INSERT INTO DEVTYPE (ID_DEVTYPE,​ ID_DB, NAME, STANDALONE) VALUES (4, 1, '​Biomrteical',​ 1);
 +INSERT INTO DEVTYPE (ID_DEVTYPE,​ ID_DB, NAME, STANDALONE) VALUES (5, 1, '​Система распознавания ГРЗ',​ 1);
 +INSERT INTO DEVTYPE (ID_DEVTYPE,​ ID_DB, NAME, STANDALONE) VALUES (6, 1, '​Артонит в режиме он-лайн',​ 0);
 +
 +COMMIT WORK;
 +</​code>​
 +
 == Batch-файл резервного копирования. == == Batch-файл резервного копирования. ==
  
Строка 60: Строка 89:
  
 База обновлена и готова к проверке и последующему использованию по назначению. База обновлена и готова к проверке и последующему использованию по назначению.
 +== Удаление всех событий старше заданного количества дней. ==
 +Удаление - процесс опасный,​ поэтому я привожу пример select.\\ При необходимости удаления следует select * заменить на delete.
 +<​code>​select * from events e
 +where e.datetime>​CURRENT_DATE-2</​code>​
 +либо
 +<​code>​
 + ​select * from events e where e.datetime >​DATE'​today'​ - 2
 +</​code>​
 +===== Удаление указанных событий старше заданного количества дней. =====
 +9.08.2019
 +В ходе работы база данных быстро пополняется событиями,​ что приводит к росту размера базы данных. Большое количество событий в таблице events может приводить к замедлению вставки событий,​ получаемых от АСервера.
 +
 +Для автоматизации контроля размера базы данных я предлагаю следующий алгоритм:​
 +  - Ввести типизацию событий,​ для каждого типа указать срок хранения,​
 +  - Административно определить какое событие к какому типу относится,​
 +  - подготовить необходимые SQL запросы,​ чтобы обеспечить удаление событий в соответствии с определенной политикой,​
 +  - в Назначение задания внести необходимые настройки,​ чтобы сформированные запросы запускались ежедневно в начале суток.
 +==== Типы данных====
 +
 +^№ п/​п^Назначение^Срок хранения^
 +|1|Оперативный анализ|14|
 +|2|Данные для отчетов|45|
 +|3|Важные данные|60|
 +
 +==== Типы событий:​ ====
 +
 +^Код события^Название события^Оперативный анализ^Данные для отчетов^Важные данные^
 +|0|неизвестное событие|+|
 +|17|добавлена карточка||+|
 +|18|удалена карточка||+|
 +|19|изменены параметры карточки||+|
 +|32|добавлен новый сотрудник||+|
 +|33|удален сотрудник||+|
 +|34|изменены данные сотрудника||+|
 +|46|неизвестная карточка|+|
 +|49|дверь открыта кнопкой|+|
 +|50|действительная карточка|||+|
 +|51|дверь открыта пользователем||+|
 +|52|дверь открыта всегда|||+|
 +|55|дверь закрыта всегда|||+|
 +|56|дверь разблокирована|||+|
 +|65|недействительная карточка|||+|
 +==== SQL запросы для удаления событий ====
 +=== Удаление событий для оперативных отчетов ===
 +<​code>​ Удаление указанных событий старше 30 дней
 +delete from events e 
 +where e.datetime < CURRENT_DATE-14
 +and e.id_eventtype in (0, 46, 49)
 +</​code>​
 +
 +=== Удаление событий для отчетов ===
 +<​code>​ Удаление указанных событий старше 30 дней
 +delete from events e
 +where e.datetime < CURRENT_DATE-45
 +and e.id_eventtype in (17, 18, 19, 32, 33, 34, 51)
 +</​code>​
 +
 +=== Удаление важных данных ===
 +<​code>​ Удаление указанных событий старше 30 дней
 +delete from events e
 +where e.datetime < CURRENT_DATE-60
 +</​code>​
 +
 +=== Единый SQL запрос на очистку событий и сбора статистики. ===
 + --- //​[[admin@artonit.ru|Бухаров А.В.]] 28.02.2020 08:51//\\ Т.к. в результате нам требуется выполнение всех запросов за один раз, то резонно их собрать в одном файле.\\ Для анализа состояния базы данных хорошо бы знать и количество событий в журнале,​ и их распределение по событиями. ​ Все это реализуется в одном файле (см. ниже).\\ ​ В лог-файле будет отображено время и окончания работы скрипта,​ количество событий после удаления событий и статистика по событиям:​
 +
 +<​code>​ delete from events e
 +where e.datetime < CURRENT_DATE-45;​
 +commit;;
 +
 +delete from events e where e.datetime < CURRENT_DATE-5 and e.id_eventtype in (0, 46, 49, 53, 54, 57, 58); 
 +commit;;
 +
 +delete from events e where e.datetime < CURRENT_DATE-5 and e.id_eventtype in (17, 18, 19, 32, 33, 34, 51);
 +commit;;
 +
 +select count (*) from events;
 +commit;;
 +
 +
 + ​select distinct e.id_eventtype,​ et.name, count(e.id_event) from events e
 +join eventtype et on et.id_eventtype=e.id_eventtype
 +group by e.id_eventtype,​ et.name ;
 +commit;;
 +
 +select distinct e.analit, count (*) from events e
 + where e.analit is not null
 + and e.datetime>​ CURRENT_TIMESTAMP-1
 + group by e.analit;
 +commit;;
 +</​code>​
 +===== Статистика событий =====
 +
 + ​Вывод информации о типах событий и их количество в базе данных.
 +<​code>​ select distinct e.id_eventtype,​ et.name, count(e.id_event) from events e
 +join eventtype et on et.id_eventtype=e.id_eventtype
 +group by e.id_eventtype,​ et.name</​code>​
 +===== Запрет удаления администратора. =====
 +Для запрета удаления пользователя **Администратор** необходимо выполнить указанный ниже скрипт.
 +
 +<​code>​
 +/​******************************************************************************/​
 +/***               ​Generated by IBExpert 06.03.2020 16:​28:​50 ​               ***/
 +/​******************************************************************************/​
 +SET SQL DIALECT 3;
 +SET NAMES WIN1251;
 +SET TERM ^ ;
 +CREATE TRIGGER PEOPLE_MET_DELETE_ADMIN FOR PEOPLE
 +ACTIVE BEFORE DELETE POSITION 0
 +AS
 +begin
 +  if (old.id_pep = 1) then exception deletenotallowed;​
 +end
 +^
 +SET TERM ; ^
 +</​code>​
 ===== График выполненных работ. ===== ===== График выполненных работ. =====
 +^1^2^3^4^5^6^
 ^№ п/​п^Дата выполнения работ^Объект^Причина выполнения работ^Что сделано^Результат^ ^№ п/​п^Дата выполнения работ^Объект^Причина выполнения работ^Что сделано^Результат^
-|1|3.07.2019|Чемпион корпус Г|Обноавление БД СКУД до Артонит Сити в рамках договора|Обновление базы данных СКУД в здании офиса до Артонит Сити|Базу обновил,​ Сити поставил. Заказчик решает вопрос о категориях доступа. Следующий этап - заливка в эту базу жильцов из соседнего здания,​ объединение транспортных серверов.|+|1|3.07.2019|Чемпион корпус Г|Обновление БД СКУД до Артонит Сити в рамках договора|Обновление базы данных СКУД в здании офиса до Артонит Сити|Базу обновил,​ Сити поставил. Заказчик решает вопрос о категориях доступа. Следующий этап - заливка в эту базу жильцов из соседнего здания,​ объединение транспортных серверов.|
 |2|8.07.2019|Шуваловский|При попытке просмотра событий Неизвестная карта истекало время ожидания.|При подготовке данных по событию Недействительная карта панель управления пыталась извлечь еще и фотографию пользователей. см.\\ C:​\xampp\htdocs\city\application\classes\Model\Event.php метод event_invalid_list\\ строка $res[$key]['​PHOTO'​]=$this->​getPhoto($value['​ESS1'​]);​\\ Очевидно,​ что попытка вместить в буфер большое количество фотографией (а событий было 740 за сутки) и приводило к исчерпанию памяти. Строка была закомментирована.|Ошибка не повторяется,​ выводится список событий с Неизвестной картой.| |2|8.07.2019|Шуваловский|При попытке просмотра событий Неизвестная карта истекало время ожидания.|При подготовке данных по событию Недействительная карта панель управления пыталась извлечь еще и фотографию пользователей. см.\\ C:​\xampp\htdocs\city\application\classes\Model\Event.php метод event_invalid_list\\ строка $res[$key]['​PHOTO'​]=$this->​getPhoto($value['​ESS1'​]);​\\ Очевидно,​ что попытка вместить в буфер большое количество фотографией (а событий было 740 за сутки) и приводило к исчерпанию памяти. Строка была закомментирована.|Ошибка не повторяется,​ выводится список событий с Неизвестной картой.|
 +|3|18.07.2019|Доминион|Звонок Виктора:​ работает база данных. В логе АСервера видны сообщения о незавершенных транзакциях и ошибке checksum|Бэкап-чистка|База стала работать.|
 +|4|18.07.2019|Чемпион|После обновления прошивок 17.07.2019 нет событий.|Переименовал папка Artonit2driver. После обновления прошивок в контроллерах обнулились и счетчики. Удаление папки заставило ТС2 начинать выборку с текущего значения счетчика.|События появились,​ Монитор работает штатно.|
 +|5|16.07.2019|Чемпион|Плановая модернизация|Обновление прошивок в контроллерах|Прошивки обновлены,​ количество карт в контроллере видно.|
 +|6|30.07.2019|Восток|Завершено обновление прошивок Артонит-СЕ на Артонит М|Работы проводил Копылов Игорь совместно с Артемом и Леонидом (местные инженеры)|
 +|7|30.07.2019|Чемпион|Наблюдалась остановка Монитора:​ события не выводились,​ но после перезапуска Монитор продолжал работать.|причина отказа работы монитора - в ходе работы процедура EVENTS_GETLISTFROMID собирает строку для вывода на экран.\\ при этом используются записи events:note + разного рода комментарии.\\ максимальная длина комментария не может превышать 152 символа.\\ в базе данных же имеются отчества вот такого вида:\\ Михайлович - зам.ген.директора по информационным технологиям"​Юнисервиса",​\\ после добавления к ним названия организации,​ номера карты, срока действия - длина превышает 152 символа,​ и СУБД выдает ошибку вида Переполнение строки.\\ при обновлении монитора он начинает выборку с последних записей.\\ и работает до очередной такой длинной строки.|С помощью Excel проведен работ отчеств. Должности вынесены в нужную колонку. Надо понаблюдать за работой монитор. Надо бы подумать и над процедурой,​ не допускать переполнение строки с комментариями.|
 +|8|9.08.2019|Резиденция|При выполнении команды Загрузить карты удаление не выполняется. Вместо ожидаемых удаление -запись в лог-файле имеются только записи карт.|Асервер версии 1.2.0.24 заменен на 1.2.0.27. Выполнен анализ нарушений за июль-август 2019 г.\\ Выявлено,​ что\\ ​   * -  В-25(3)\\ ​   * -  Султанов Ахмад\\ ​   * -  Черепов Андрей Викторович\\ ​   * -  Черепов Кирилл Андреевич\\ ​   * -   ​Чеснокова Ирина\\ могут ходить там, где им нет разрешения.|После замены АСервера карты удаляются правильно. Информация с ФИО для нарушителей режима передана Вадиму.|
 +|9|20.08.2019|Шуваловский|При просмотре лог-файла АСервера видно, что имеются ошибки вида\\ ​ **Err ServerControl::​InsertEvent : "​[Gemini InterBase ODBC Driver][INTERBASE] arithmetic exception, numeric overflow, or string truncation"​**\\ Анализ показал,​ что причина - в очень длинной фразе. Причина длинной фразы - длинное название точки прохода. Полная фраза не помещается в отведенное поле note varchar(100),​ что приводит к ошибке базы данных|В процедуре DEVICEEVENTS_INSERT закомментированы строки формирования сообщения NOTE:\\ <​code>​ **VALUES (:ID_DB, :​ID_EVENTTYPE,​ :"​TIME",​
 + :​ID_DEV,​ :ID_PLAN, :IDSOURCE, :​IDSERVERTS,​
 +        '​Device event='​||:​note );
 +        /*
 +        ||', device="'​||:​door_name
 +        ||'",​ server="'​||:​server_name
 +        ||'",​ '​||:​fullname );
 +        */​**</​code>​\\ . Текст сообщения стал короче,​ и ошибка в течении 3-х часов не появлялось.|Сообщений об ошибке более нет.\\ ​ --- //​[[admin@artonit.ru|Бухаров А.В.]] 26.01.2020 17:47// Указанные изменения были сделаны для неизвестных событий. В целом же надо ограничивать длину строки,​ использую конструкции вида\\ А еще более правильно вообще отказаться от вставки текстовых сообщений в поле NOTE, но тогда потеряем возможность поиска удаленных сотрудников. \\ <​code>​fullname =
 +substring(:​fullname from 2 for 100) || ',';</​code>​|
 +|10|20.09.2019|Шуваловский|Замедление загрузки карт в контроллеры Адемант.\\ Долгая работа веб-панели|Произведено удаление событий старше 30 суток (для событий с дверями) и удалены все события старше 180 суток| Размер базы данных Shieldpro_rest.gdb сократился с 4,3 Гб до 1,3 Гб.
 +|11|октябрь 2019|Чемпион-Парк|Перенос пользователей корпуса 1 в общую базу данных Чемпион-парка|
 +|12|октябрь 2019|Чемпион-Парк|Перенос пользователей корпуса 2 в обущую базу данных|
 +|13|24.01.2020|Лайнер Запад|Консультация по поводу настроек прав доступа|
 +|14|24.01.2020|Лайнер Запад|Установка веб-панели Артонит Сити версия 1.2.5|
 +|15|27.01.2020|Чистка базы данных Шуваловского|База уменьшена с 3,5 Гб до 0,65 Гб.|Скрипт очистки базы данных:<​code>​delete from events e
 +where e.id_eventtype in (0);
 +commit;;​\\ ​
 +delete from events e
 +where e.datetime < CURRENT_DATE-45;​
 +commit;;​\\ ​
 +delete from events e
 +where e.datetime < CURRENT_DATE-7
 +and e.id_eventtype in (0, 49, 53, 54);
 +commit;;​\\ ​
 +delete from events e
 +where e.datetime < CURRENT_DATE-14
 +and e.id_eventtype in ( 58, 53, 46, 69);
 +commit;;</​code>​|
 +|16|2.02.2020|Лайнер Запад|Рассмотрены причины "​отказа"​ старта ТС2.|В ходе анализа выяснилось следующее:​ при длительном простое ТС2 в контроллерах накапливается значительное количество невыбранных событий. При старте ТС2 начинает выбирать эти события,​ и при этом статут "​Запускается"​ не меняется на статус "​Работает",​ что и порождает мысль о неудачном запуске ТС2. В это время ТС2 выбирает события,​ что видно в Шэлт Контроле.\\ При анализе было выявлено,​ что на период 29.01.2020 в момент старта ТС2 надо было выбрать 113000 событий. Вот они и выбираются при старте.\\ Т.о., предположение об отказе ТС2 не подтвердилось,​ но очевидно,​ что механизм индикации состояния (Стартует - Работает) вводит пользователя в заблуждение и его необходимо пересмотреть.|Срок пересмотра ТС2 - до 1.03.2020 г.|
 +|17|3.02.2020|Шуваловский|Было пожелание Юнисервиса скрыть пункты меню веб-панели.|Внесены изменения в файлы\\ C:​\xampp\htdocs\city\application\config\artonitcity_config.php - добавлены названия пунктов меню и условия отображения,​ и в\\ C:​\xampp\htdocs\city\application\views\top_menu.php - добавлены условия показа меню при разных вариантах авторизации.|Доступ к пунктам меню настраивается через конфигурацию.|
 +|18|3.02.2020|Запад|Неправильно собиралась статистика по контроллерам|Внесены изменения в файлы Controller\dashnoard,​ Model\Stat,​\controller\Task,​ Model\Device.|Теперь при старте задачи в качестве параметра передается ID Траснпортного сервера,​ и происходит выборка данных только для устройств этого сервера.|
 +|19|3.02.2020|Шуваловский|Отображение количества неактивных карт|Внесены изменения в model\Stat и View\Dashboard|В окне 1 выводится количество неактивных карт. Механизм управления ими пока не реализован|
 +|20|6/​02/​2020|Запад|Русификация сообщений об ошибках|\views\Door\view.php - вывод результата LOAD_RESULT сделан как функция __().\\ \Model\Door.php - вывод сообщения начиная с букв ERR с целью удалить TransXX.\\ \i18n\ru.php - добавлена русификация сообщений об ошибках при записи карт.|Сообщения о загрузке выводятся на русском языке|
 +|21|6.02.2020|Запад|Ускорение работы веб-панели|файл \Model\Stat.php,​ метод load_table стр. 611-612.\\ Изменен метод расчета количества карт для контроллера. Добавлен метод getKeyCountForDoorFromDB,​ который вызывает в цикле для каждой точки прохода. Это оказалось быстрее,​ чем попытка рассчитывать нужные цифры за один SQL-запрос.|Закладка Контроллеры стала работать быстрее. Время сократилось с 40-45 секунд до 22-25 секунд.|
 +|22|18/​02/​2020|Запад|Потеря учетной записи администратора|В приложении CardMgr сотрудник Администратор (id_pep=1) может быть удален как и любой другой пользователь,​ что приводит к удалению учетной записи Администратора.\\ Для устранения этой проблемы необходимо сделать следующее:​\\ ​  - Дать права Администратора другому пользователю <​code>​update people p
 +set p.id_orgctrl = 1, p.id_devgroup=1,​
 + ​p.flag=24447 where p.id_pep=<​id_pep></​code>​|
 +|23|21.02.2020|Доминион|Не выводятся ГРЗ на оба табло, и не выводятся текст на одно табло|Лог-файл работы драйверов управления табло находится тут: C:​\test\artonitLog\Запись в файл событий от ТС2.log.\\ Анализ лог-файла проблем не выявил. Я дал рекомендацию выключить табло на срок более 1 минуты и затем включить. Ждем результата.|
 +|24|26.02.2020|Лайнер Запад|Установка аналитики для быстрого контроля состояния СКУД.|Установил аналитику в БД. Вывел на панель управления результаты аналитики за последние сутки. Правил файлы:​\\ C:​\xampp\htdocs\city\application\views\dashboard.php;​\\ C:​\xampp\htdocs\city\application\classes\Model\Stat.php;​\\ C:​\xampp\htdocs\city\application\i18n\ru.php;​\\ C:​\xampp\htdocs\city\application\classes\Model\Event.php;​\\ C:​\xampp\htdocs\city\application\config\artonitcity_config.php|На Панеле управления появился раздел Результат анализа событий,​ на котором выведены результаты аналитики.\\ Теперь надо добавить окна для просмотра аварийных событий:​ выводить список ФИО, у которых такие события есть.|
 +|25|28.02.2020|Шуваловский|Плановая доработка веб-панели|На главную панель вынесена статистика аналитики,​ как на Лайнер Запад.|Состояние СКУД отражено в одной таблице:​ быстро и понятно.|
 +|26|28.02.2020|Шуваловский|Доработка автоматизации обслуживания базы данных.|Изменено содержание файла C:\Program Files (x86)\Cardsoft\DuoSE\Automation\db_SKUD_service.sql <​code>​delete from events e
 +where e.datetime < CURRENT_DATE-45;​
 +commit;;
 +
 +delete from events e where e.datetime < CURRENT_DATE-5
 + and e.id_eventtype in (0, 46, 49, 53, 54, 57, 58); 
 +commit;;
 +
 +delete from events e where e.datetime < CURRENT_DATE-5
 + and e.id_eventtype in (17, 18, 19, 32, 33, 34, 51);
 +commit;;
 +
 +select count (*) from events;
 +commit;;
 +
 +
 + ​select distinct e.id_eventtype,​ et.name, ​
 +count(e.id_event) from events e
 +join eventtype et on et.id_eventtype=e.id_eventtype
 +group by e.id_eventtype,​ et.name ;
 +commit;;
 +
 +select distinct e.analit, count (*) from events e
 + where e.analit is not null
 + and e.datetime>​ CURRENT_TIMESTAMP-1
 + group by e.analit;
 +commit;;​ </​code>​|В лог-файле C:\Program Files (x86)\Cardsoft\DuoSE\Automation\db_SKUD_service.log теперь выводится статистическая информация:​ сколько событий было ДО очистки,​ сколько после, статистики по событиям,​ статистика по аналитике. Теперь по этим данным можно оценивать состояние базы данных без дополнительных запросов.|
 +|27|14.03.2020|Шуваловский|Плановая доработка Артонит Сити|Сделана страница анализа события с кодом 506. Особенность:​ даны указания что делать для устранения этой ошибки. Для остальных кодов такой страницы не сделало. При выборе остальных кодов ошибок выводится сообщение,​ что страницы анализа нет, обратитесь к разработчику.|Пользователь получает подсказку:​ что делать при возникновении ошибки 506|
 +|28|14.03.2020|Шуваловский|Плановая доработка Артонит Сити|Добавлены коды аналитики,​ связанные с переходными процессами:​ карта еще не удалена,​ или карта еще не записана. Страниц с описанием этих кодов пока нет.|
 +|29|14.03.2020|Шуваловский|Плановая доработка Артонит Сити|При клике на цифру Количества карт в неактивные устройства сделан перехода на поясняющую страницу. Тут же даны рекомендации по изменению конфигурации.|Оператор видит список неактивных устройств,​ даны рекомендации что с ними делать.|
 +|30|17.03.2020|Шуваловский|Плановая доработка Артонит Сити|Сделана страница с описанием всех имеющихся кодов аналитики http://​localhost:​8080/​city/​index.php/​event/​event_analyt. В таблице указаны причины возникновения того или иного кода и даны рекомендации по устранению проблемы.\\ Файл с текстами ошибок лежит в папке C:​\xampp\htdocs\city\application\messages\analyt_code.php\\ Это текстовый файл, доступный к редактированию,​ что позволяет вносить изменения по мере необходимости с использованием текстового редактора.|Администратор СКУД получил инструкции по устранению проблем. При клике по событию на главной странице открывается страница с данными по выбранному коду. Если же страница описания не готова,​ то открывается общий список кодов аналитики.|
 +|31|27.03.2020|Лайнер Запад|Восстановление Администратора АИЖК|Администратор был удален. Для восстановления его прав я взял данные из вчерашней копии базы данных. Скрипты сохранены в папку Мои документы.|
 +|32|3.04.2020|Шуваловский|Не хватает емкости контроллеру "​135;​л293 двр въезд ур1 к03"​|Это Адемант,​ на 3520 карт.\\ по базе данных в дверь 0 должно быть 2338 карт, в дверь 1 - 2331 карта.\\ режим работы - без единого списка.\\ он так работать не будет. Если НЕ единый список,​ то по 1760 карт на канал.\\ а если единый список включить,​ то надо двери аккуратно разнести.|Доведено до сведения Хазимуратова Р.Р.|
 +|33|6.04.2020|Шуваловский|На контроллере м7 п5 к11 потеряны временные зоны|Временные зоны записаны через веб-панель.| Есть подозрение,​ что контроллер работает в режиме ТЕст, т.к. все события от него имеют тип "​Неизвестная карта",​ хотя карты записаны,​ и находятся на своих местах (я проверял на примере Иваницкий Людвиг Валерьевич 2ED903001A OK (Контроллер "м7 п5 к11", devidx=490, door=1, транспортный сервер "м3, м7, м7/​1"​.)|
 +|34|8.04.2020|Шуваловский|НА веб-панеле реализован вывод информации о наличии метки Единый список в БД СКУД и его значение к вонтроллере|Я полагаю,​ что теперь будет легче анализировать отказы в проходе. Очевидно,​ что конфигурационные данные в БД СКУД и в контроллере Адемант должны совпадать.|
 +|35|10.04.2020|Шуваловский|Потеряна программа управления подземной парковкой|Программа управления парковкой скопирована в папку C:\Program Files (x86)\Cardsoft\DuoSE\Access\ParkingMgr.exe|
 +|36|12.04.2020|Шуваловский|Артонит Сити|Измен процесс загрузки контроллеров на панеле Управление контроллерами.\\ Было: при выборе точки прохода формировалась очередь сначала для удаление карт, а потом для загрузки,​ что приводило к удвоению объемов загрузки.\\ Стало: при выборе точки прохода формируется очередь только для загрузки карт (без удаления,​ как было раньше).|Надо дать рекомендации:​ сначала контроллеру выдать команду Очистить устройство,​ а затем - команду Записать карты.|
 +|37|12.04.2020|Шуваловский|Артонит Сити|Изменена форма таблицы Управление контроллерами:​ убраны IP адреса и порты Транспортного сервера.\\ Эти данные теперь выводятся как всплывающая подсказка при наведении курсора на название Транспортного сервера.|Название транспортного сервера подчеркнуто - значит,​ есть подсказка.|
 +|38|1-31.05.2020|Шуваловский|Артонит Сити|Внесены изменения в Артонит Сити и проведен детальный анализ отказов СКУД. Показано,​ что все отказы связаны с контроллерами Адемант,​ которые требуется заменить.|Результат работы оформлен в виде акта, в котором указаны отказавшие контроллеры. Акт передан Хазимуратову|
 +|39|1-8.06.2020|Шуваловский|Модуль печати CPM|Консультации по установке ПО на рабочее место бюро пропусков.|КОмплект ПО установлено,​ бюро пропусков запущено.|
 +|40|9.06.2020|Фьюжн|Ремонт базы СКУД|Не выполнялась загрузка карт в контроллеры СКУД.\\ После осмотра выявилась ошибка gds, что говорит о повреждении структуры базы данных.|Произведено "​лечение"​ базы данных.\\ Устранена ошибка с расчетом номера ячейки для Адемантов.\\ База данных восстановлена,​ карты контроллер грузятся.|
 +|41|1-10.06.2020|Юнисервис|Артонит Сити|Проведен комплекс работ с целью организации доступа к базам данных СКУД из одной веб-панели.|Добавлен выбор объекта,​ который следует просматривать.\\ Добавлена обработка ошибок при подключении к базе данных,​ чтобы исключить exception.|
 +|42|20.08.2020|Шуваловский|Потеряна учетная запись Администратора|Параметры учетной записи взяты из бэкапа базы данных и путем экспорта - вставки перенесены в рабочую базу СКУД.|Восстановлена учетная запись Администратора|
 +|43|02.10.2020|web-панель|При перехода на просроченные карты выводился список на более чем 4000 пользователей|Исправлен вывод списка просроченных карт. \\ РЕализован пункт меня Количество неактивных карт ХХХ. Теперь можно перейти на ссылке (раньше не было) и получить список всех неактивных карт и предпринять с ними какие-либо действия.|Добавлен новый метод управления неактивными картами. Раньше этот метод выводился в разделе Просроченных карт, что вызывало путаницу.|
 +====== ToDo ======
 +Список запланированных доработок.
 +^1^2^3^4^
 +^№ п/​п^Дата регистрации^Предмет доработки^Состояние^
 +|1| --- //​[[admin@artonit.ru|Бухаров А.В.]] 02.03.2020 08:​16//​|<​del>​Артонит Сити, надо вывести таблицу Количество неактивных карт и дать метод управления этими картами.</​del>​| --- //​[[admin@artonit.ru|Бухаров А.В.]] 17.03.2020 08:07// Сделано 16.03.2020. См. п. 29 график выполнения работ.|
 +|2| --- //​[[admin@artonit.ru|Бухаров А.В.]] 02.03.2020 08:​16//​|Надо сделать окна, в которых можно посмотреть детальную информацию по аналитике. Например,​ для события Проход ошибочный:​ карта не активна. надо показать список этих карт, ФИО владельцев.| --- //​[[admin@artonit.ru|Бухаров А.В.]] 17.03.2020 08:08 Сделано для кода ошибки 506. Для остальных пока не сделано,​ т.к. этих ошибок реально нет. Не имея код ошибки трудно понять объем необходимой детальной информации//​ ---   \\ //​[[admin@artonit.ru|Бухаров А.В.]] 18.03.2020 07:35// Добавлена обработка ошибки 657|
 +|3| --- //​[[admin@artonit.ru|Бухаров А.В.]] 17.03.2020 08:​11//​|<​del>​Надо сделать страницу с описанием кодов ошибок аналитики и рекомендации по каждому коду. Пока нет детальной информации - выводить эту страницу. Т.о., идея аналитики будет завершена логически:​ есть описание для каждого кода аналитики.</​del>​| --- //​[[admin@artonit.ru|Бухаров А.В.]] 18.03.2020 07:34// Страница сделана. См. Шуваловский,​ http://​localhost:​8080/​city/​index.php/​event/​event_analyt|
 +|4| --- //​[[admin@artonit.ru|Бухаров А.В.]] 10.04.2020 08:​45//​|Надо сделать описание программы управления подземной парковкой|
 +|5| --- //​[[admin@artonit.ru|Бухаров А.В.]] 02.10.2020 08:​45//​|Необходимо реализовать методы работы с большими списками. Уже сейчас выводится на экран более чем 4000 записей. При дальнейшем увеличении этого количества может просто не хватить памяти сервера WEB. В то же время очевидно,​ что такой список неудобен. Надо искать альтернативу:​ как пользователям работать с большими списками. Я полагаю,​ что тут даже разбиение на страницы не поможет. Наверное,​ нужны фильтры,​ чтобы выводилась только часть списка,​ удовлетворяющая требованиям фильтра.|
/home/cardsoft/artonit.ru/docs/wiki/data/attic/uni/uni.1562611586.txt.gz · Последние изменения: 08.07.2019 21:46 — buh