Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
uni:uni [09.08.2019 12:21] buh [Удаление событий старше заданного количества дней.] |
uni:uni [02.10.2020 08:50] (текущий) buh [График выполненных работ.] |
||
---|---|---|---|
Строка 6: | Строка 6: | ||
|3|Удаление неактивных пользователей|Ежеквартально|С помощью программы IBExpert запросом <code>delete from people p where p."ACTIVE"=0</code>| | |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]]| | |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|ХХХ| | | + | |1|Дххххххх|192.168.222.1|ХХХ| | |
- | |2|Фьюжн|192.168.230.9| СКД | | | + | |2|Фххх|192.168.230.9| СКД | | |
- | |3|Восток| 192.168.230.5| Восток| | | + | |3|Вххххх| 192.168.230.5|Восток| | |
- | |4|Резиденция|192.168.183.200|Артсек| | | + | |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| | |5|AServer|1.2.0.27|1.2.0.27| | ||
Строка 32: | Строка 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 === | ||
Строка 81: | Строка 89: | ||
База обновлена и готова к проверке и последующему использованию по назначению. | База обновлена и готова к проверке и последующему использованию по назначению. | ||
- | ===== Удаление событий старше заданного количества дней. ===== | + | == Удаление всех событий старше заданного количества дней. == |
+ | Удаление - процесс опасный, поэтому я привожу пример select.\\ При необходимости удаления следует select * заменить на delete. | ||
<code>select * from events e | <code>select * from events e | ||
where e.datetime>CURRENT_DATE-2</code> | where e.datetime>CURRENT_DATE-2</code> | ||
Строка 88: | Строка 97: | ||
select * from events e where e.datetime >DATE'today' - 2 | select * from events e where e.datetime >DATE'today' - 2 | ||
</code> | </code> | ||
+ | ===== Удаление указанных событий старше заданного количества дней. ===== | ||
9.08.2019 | 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 дней | <code> Удаление указанных событий старше 30 дней | ||
- | select * from events e | + | delete from events e |
- | where e.datetime < CURRENT_DATE-30 | + | where e.datetime < CURRENT_DATE-14 |
- | and e.id_eventtype in (0, 49, 54, 55, 58, 53, 46) | + | 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> | </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|Бэкап-чистка|База стала работать.| | |3|18.07.2019|Доминион|Звонок Виктора: работает база данных. В логе АСервера видны сообщения о незавершенных транзакциях и ошибке checksum|Бэкап-чистка|База стала работать.| | ||
- | |4|18.07.2019|Чемпион|После обновления прошивок 17.07.2019 нет событий.|Переименова папка Artonit2driver. После обновления прошивок в контроллерах обнулились и счетчики. Удаление папки заставило ТС2 начинать выборку с текущего значения счетчика.|События появились, Монитор работает штатно.| | + | |4|18.07.2019|Чемпион|После обновления прошивок 17.07.2019 нет событий.|Переименовал папка Artonit2driver. После обновления прошивок в контроллерах обнулились и счетчики. Удаление папки заставило ТС2 начинать выборку с текущего значения счетчика.|События появились, Монитор работает штатно.| |
- | |5|16.07.2019|Чемпион|Плановая модернизация|Обновление прошивок в контроллерах|ПРошивки обновлены, количество карт в контроллере видно.| | + | |5|16.07.2019|Чемпион|Плановая модернизация|Обновление прошивок в контроллерах|Прошивки обновлены, количество карт в контроллере видно.| |
|6|30.07.2019|Восток|Завершено обновление прошивок Артонит-СЕ на Артонит М|Работы проводил Копылов Игорь совместно с Артемом и Леонидом (местные инженеры)| | |6|30.07.2019|Восток|Завершено обновление прошивок Артонит-СЕ на Артонит М|Работы проводил Копылов Игорь совместно с Артемом и Леонидом (местные инженеры)| | ||
|7|30.07.2019|Чемпион|Наблюдалась остановка Монитора: события не выводились, но после перезапуска Монитор продолжал работать.|причина отказа работы монитора - в ходе работы процедура EVENTS_GETLISTFROMID собирает строку для вывода на экран.\\ при этом используются записи events:note + разного рода комментарии.\\ максимальная длина комментария не может превышать 152 символа.\\ в базе данных же имеются отчества вот такого вида:\\ Михайлович - зам.ген.директора по информационным технологиям"Юнисервиса",\\ после добавления к ним названия организации, номера карты, срока действия - длина превышает 152 символа, и СУБД выдает ошибку вида Переполнение строки.\\ при обновлении монитора он начинает выборку с последних записей.\\ и работает до очередной такой длинной строки.|С помощью Excel проведен работ отчеств. Должности вынесены в нужную колонку. Надо понаблюдать за работой монитор. Надо бы подумать и над процедурой, не допускать переполнение строки с комментариями.| | |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)\\ * - Султанов Ахмад\\ * - Черепов Андрей Викторович\\ * - Черепов Кирилл Андреевич\\ * - Чеснокова Ирина\\ могут ходить там, где им нет разрешения.|После замены АСервера карты удаляются правильно. Информация с ФИО для нарушителей режима передана Вадиму.| | |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. В то же время очевидно, что такой список неудобен. Надо искать альтернативу: как пользователям работать с большими списками. Я полагаю, что тут даже разбиение на страницы не поможет. Наверное, нужны фильтры, чтобы выводилась только часть списка, удовлетворяющая требованиям фильтра.| |