Кейс разработки системы расчета КТУ на заводе

В разработанной системе расчета коэффициента трудового участия (КТУ) для производственной компании «Inter-lis» реализовано 4 роли пользователей: администратор, оператор, заведующий производством и НДИ (пользователь, который заполняет справочники).

«Справочники» включают в себе следующие разделы: «Пользователи», «Графики работы», «Сотрудники», «Бригады», «Рабочие центры», «Технологические операции», «Единицы измерения», «Параметры измерения», «Товарные категории», «Формулы», «Нормы выработки» и «Типы простоев».

В разделе «Пользователи» для каждого можно выбрать несколько ролей, при проверке прав доступа работает следующее правило: если у хотя бы одной роли есть разрешение на действие, то для такого пользователя есть доступ.

В «График работы» вносятся смены с их полным временем работы, в разделе «Перерывы» - вносится время отдыха с отметками, например: обед, перерыв или пересменка. На основе этих данных высчитывается чистое рабочее время в минутах и в формате «часы:минуты». Есть проверки на наличие накладок по сменам, и по перерывам внутри смены – они не должны пересекаться между собой и время отдыха не должно выходить за рамки смены.

В разделе «Сотрудники» каждому рабочему присваивается табельный номер и ведется его история – ставится дата изменения данных и вносятся коррективы. Таким образом, в зависимости от даты, в разделе «Журнал смен» с учетом выбранной даты всегда подтягиваются актуальные данные такого сотрудника.

На странице «Бригады» есть 4 фильтра: дата, номер бригады, начальник смены и статус. Все данные загружаются онлайн, без перезагрузки страницы. Для построения таблицы используется плагин datatable, так же настроены сортировки, которые тоже функционируют динамически. Подобным образом реализованы все разделы проекта, где в таблицах более 1000 записей.

«Рабочие центры» (РЦ) бывают 3 видов: город, цех и оборудование. На странице есть 2 фильтра: по номеру рабочего центра и его названию, все они размещены иерархически: в городе находятся цеха, в цехах - оборудование. Каждый вышестоящий пункт в этой таблице можно свернуть/развернуть.

«Товарные категории» относятся к определенному рабочему центру 3 уровня, то есть - к оборудованию. На странице категории можно динамически выбрать параметры и единицы их измерения из соответствующих разделов в «Справочниках». Среди всех параметров выбирается основной (показатель произведенной продукции), который вычисляется на основе остальных данных. Формула для такого расчета указывается на странице редактирования товарной категории.

Из «Справочников» важную роль играет раздел «Формулы» - он подобен построению формул в «Товарной категории», сейчас расскажем подробнее, как такая формула составляется. На основе параметров создаются переменные в текстовой формуле в виде ключа, например, [Ширина]. Для проставления таких ключей необязательно вводить параметры вручную, достаточно нажать на кнопку с названием нужного параметра и он вставится автоматически. Так же можно использовать условия, согласно синтаксису PHP: if/elseif/else. Это помогает подойти к расчету по формуле с учетом различных возможных вариантов. На странице есть детальная инструкция, как использовать условия в формуле.

«Нормы выработки» включают в себя товарную категорию со своей формулой, технологическую операцию из соответствующего раздела в «Справочника». Норма выработки показывает: сколько человек в идеальных условиях (соответственно графику работы, без учетов простоев и воздушных тревог) производят продукции. По норме выработки ведется история, как и для ряда других разделов. Данные по расчету строго привязаны к периоду действия нормы.

На странице «Регистрация смены», указывается дата, рабочий центр 1 уровня – это город, смена, номер бригады, ее начальник подставляется автоматически (с учетом данных, внесенных в справочники), но его можно заменить. Так же указывается, сколько сотрудников должно быть на смене и в дальнейшем фактический показатель высчитывается автоматически при заполнении оператором данных по рабочим группам за конкретным оборудованием.

На этой странице можно выбрать сотрудников, которые трудятся на протяжении смены, но не относятся ни к одному рабочему центру 3 уровня. Например, это могут быть водителя. Для них показатель КТУ будет средним за всю смену. Под сотрудниками находятся подпункт «Тревоги», где указываются все воздушные тревоги за смену. По тревогам автоматически происходит калькуляция общего времени. Они влияют на дальнейшие расчеты при расчете чистого времени.

После сохранения смены можно перейти в раздел «Результаты рабочих центров», там можно увидеть все рабочие центры в иерархической последовательности. Рядом с оборудованием, если есть данные и произведен расчет, можно увидеть КТУ, по цеху и по городу – высчитывается средний показатель по «внутренним» РЦ 3 уровня.

При переходе в РЦ 3 уровня – можно увидеть общий данные по зарегистрированной смене и 4 вкладки «Простои», «Производство», «Состав рабочей группы» и «Комментарий». В «Простоях» можно динамически добавлять записи, при этом это время будет калькулироваться и так же, как и тревоги, оно участвует в расчете чистого времени.

Во вкладке «Производство» подтягиваются записи только выбранного РЦ, а саму категорию товара можно выбрать с помощью автопоиска, используется плагин select2. Товарные категории, по которым нет нормы выработки, имеют рядом с названием соответствующее уведомление, их выбрать нельзя.

Если у одной товарной категории несколько записей, то по основному показателю (он указывается в «Справочниках»), происходит общий подсчет данных по ней, что в свою очередь приводит к калькуляции по всей странице. Сам общий параметр высчитывает по формуле на лету, при заполнении данных необходимых для расчета.

На странице «Состав рабочей группы» можно динамически добавлять/удалять сотрудников. По каждому из них автоматически подсчитывается общее время в минутах и в формате «часы:минуты». Внизу списка выводится общее время работы группы. Каждая запись проверяется на накладки, в том числе один сотрудник не может работать в другом цехе в одно и то же время.

В комментарии можно указать примечание по смене. Все временные и производственные данные так же сохраняются в «Регистры накопления» (таблицы в БД), которые будут использоваться при дальнейшем расчете.

При нажатии на кнопку «Рассчитать», происходит подсчет по введенным данным. Так на временном промежутке, согласно графику работы смены, проверяется каждая минута на простои, воздушные тревоги и перерывы. Это позволяет узнать чистое время работы на РЦ. Фактическое производство высчитывается либо по формуле, либо вручную, это зависит от настроек рабочего центра (именно там выбирается, используется формула или нет). Так же и норма выработки.

Таким образом при расчете происходит формирование «Регистров расчета», куда попадают следующие данные вместе с параметрами, которые участвовали при вычислении: время работы оборудования, время работы сотрудника, норма выработки, нормируемое время на фактический объем продукции, выработка на оборудовании и КТУ. Часть этих данных не только будет использоваться в системе, но и в рамках единой информационной системы предприятия.

Коэффициент трудового участия формируется при отношении фактической выработки к норме. Средний показатель КТУ смены можно увидеть на странице «Журнал смен», в котором реализованы следующие фильтры: дата, смена, начальник бригады, бригада и город. В таблице можно так же расположены: общее время тревог и соотношение по сотрудникам (сколько фактически было на смене / сколько должно было быть).

В «Журнале работ» находится таблица с данными по каждому РЦ (оборудованию) с общим производственным показателем, так же отображается общее время простоя в группе. На странице 4 фильтра: дата, смена, начальник бригады, бригада и рабочий центр.