\section{Описание функций подсистемы <<Непрерывное планирование>>}

В СИСТЕМЕ необходимо реализовать новый механизм <<Непрерывного планирования>> линий переработки и гофроагрегата. Общий концепт работы состоит из двух блоков: на первом этапе происходит реальный расчет раскроев и линий переработки в документе оперативного плана, а на втором этапе происходит редактирование глобального порядка выдачи заданий на гофроагрегаты и переработку при <<Непрерывном планировании>>.

После оперативного планирования раскроев заказ должен быть запланирован на линию переработки. Если заказ не был запланирован, то СИСТЕМА должна выдать предупреждение. Для того, чтобы оперативный план мог попасть в непрерывный, он обязательно должен быть проведен.
В непрерывном плане пользователь должен по нажатии на специальную кнопку дозагрузки получать список проведенных оперативных планов, которые ранее не были загружены в непрерывном плане. Пользователь должен выбрать план и подтвердить загрузку, блоки из раскроев и заказов на линиях переработки должны добавиться в конец очереди <<Непрерывного плана>>. 
Время начала выпуска первого заказа каждого блока должно рассчитываться как максимальное время завершения выпуска запланированного ранее заказа на соответствующем станке очереди <<Непрерывного плана>>.

В описании далее под заданием подразумевается для гофроагрегата один конкретный раскрой, а для переработки -- одно конкретное распоряжение на выработку заготовок по одному заказу в указанное время. Другими словами это одна конкретная строка плана работы гофроагрегата или линии переработки.

%Диаграмма загрузки должна иметь горизонтальное представление и иметь как графическое представление (Диаграмма Ганта), так и табличное.

В таблице с запланированными в раскрой и переработку заданиями 
%и на форме диаграммы 
необходимо реализовать следующие функции:

\begin{itemize}
	\item	Вывод списка активного оборудования с маркерами возможности редактирования непрерывного плана для каждой линии.
	\item	Возможность работы нескольким плановикам: предупреждение о занятых другим пользователем станков в текущем редактировании.
	\item	Возможность показать уже выполненные задания.	
	\item	Интерактивный перенос заказа(-ов) внутри одной линии с одного времени на другое и перенос заказов между станками.
	\item	Цветовое выделение заказов с одинаковыми характеристиками.
	\item	Указание ППР оборудования.
	\item	Возможность создания отдельного задания на остаток.	
	\item	Отмена задания переработки или гофроагрегата.
	\item	Сортировка блока заданий по соответствующим критериям (Размер заготовок (длина + ширина), Клише, Тип изделия, Цвет продукции -- одинаковая краска).
	%\item   Фильтр по заказам, для которых есть заготовки.
	\item	Отображение текущего состояния заказов.
	\item	Отображение подсказки о заказе и задании (ToolTip).
	\item	Вывод информации о <<Кумулятивном метраже>>.
	%\item	Резервирование сырья.
	\item	Фиксация ключевых заданий.
	\item	Добавление срочных заданий в непрерывный план.
	\item	Интерактивный поиск заданий по части строки.
	\item	Возможность печати списка отчётов - по всем, или выделенным строкам выбранной линии.
	\item	Вывод общей информации по оборудованию: время начала и окончания работы, запланированное количество заготовок и изделий, общее время простоя и пр.
\end{itemize}


В СИСТЕМЕ необходимо добавить обработку для вывода результатов непрерывного планирования в виде диаграммы Ганта. На форме необходимо отображать текущую ситуацию по запланированным заказам с возможность показа вспомогательной информации, но работа по редактированию непрерывного плана должна вестись в таблице.


\subsection{Функциональные требования}

\bigskip


\subsubsection{Система предупреждения редактирования записей для одновременной многопользовательской работы}

Для одновременной работы в многопользовательском режиме предусмотреть механизм предупреждения о станках, с которыми в текущий момент работает другой пользователь. Для этого на отельной вкладке требуется вывести список оборудования и осуществлять блокировку записей по отмечаемому оборудованию. В случае, если выбранное оборудование было захвачено другим пользователем, выводится сообщение с предупреждением. При снятии отметки захвата, либо при выходе из формы редактирования Непрерывного планирования, блокировка по оборудованию снимается. При повторном открытии установленные ранее блокировки восстанавливаются, но если до этого момента какое-либо оборудование было захвачено другим пользователем, будет выведено сообщение с предупреждением и списком заблокированного оборудования. Также на основной части формы рядом со списком оборудования должны выводиться графические маркеры, показывающие, какие линии захвачены для редактирования пользователем (зелёный цвет), а какие нет (красный цвет). 
Замечание: данный механизм реализуется для предупреждения, а не запрета: пользователь может проигнорировать предупреждение и сохранить даннеы даже по станку, с которым в текущий момент работает другой пользователь. Разделение станков между должно решаться организационными методами.

\begin{figure}[h!]
\begin{center}
\begin{minipage}[h]{0.4\linewidth}
\center{\includegraphics[scale=0.5]{50_Pics//EndlessPlan_Equipment.jpg}}
\caption{Пример отображения списка оборудования с маркерами.}
\label{pic:EndlessPlan_Equipment}
\end{minipage}

%\hfill 
\begin{minipage}[h]{0.4\linewidth}
\center{\includegraphics[width=1\linewidth]{50_Pics/EndlessPlan_BlockedEquipment.jpg}}
\caption{Пример вывода сообщения о занятом другим пользователем оборудовании.}
\label{pic:EndlessPlan_BlockedEquipment}
\end{minipage}
\end{center}
\end{figure}

\bigskip


\subsubsection{Интерактивный перенос заказов}

При изменении порядка следования заданий на станке или при переносе задания на другую линию переработки необходимо программно контролировать время выполнения остальных заказов, и, в случае возникновения <<наложений>>, смещать последующие заказы на более позднее время так, чтобы время начала выполнения заказа на следующем шаге было не раньше времени завершения предыдущего шага (при этом порядок заданий не меняется, меняется только время!). Данная зависимость должна контролироваться и для связи гофроагрегата и первого шага переработки и для связи любых двух последовательных шагов переработки (в рамках одного производстенного заказа).

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

\bigskip


\subsubsection{Пересчёт времени заказов}

После редактирования непрерывного плана требуется осуществить глобальный пересчёт времени для всех заданий за выбранный период. Для этого необходимо реализовать функцию в виде отдельной команды на панели основной формы. Внутренний механизм должен осуществить расчёт так, чтобы запланированные заказы не накладывались друг на друга по времени, а также чтобы сохранялась последовательность выполнения по шагам на различном оборудовании. При этом СИСТЕМА должна учитывать введённые ранее пользователями ППР оборудования.

\bigskip


\subsubsection{Указание ППР оборудования}

%На диаграмме необходимо добавить возможность интерактивного указания ППР и простоя. Данное время должно быть недоступно для планирования. Установка ППР и остановов должна быть интерактивной, после выделения интервала остановки необходимо отобразить меню для указания типа останова. 
Реализовать возможность указания плановиком запланированного ППР (на отдельной вкладке указывается станок и время начала и окончания ППР), чтобы СИСТЕМА не могла использовать это время как рабочее. Введенные ППР должны учитываться СИСТЕМОЙ при последующих пересчетах времени.
%Также простой можно добавить на основной форме в таблице простоев на соответствующей вкладке. Необходимо предусмотреть, чтобы изменения на диаграмме сразу же отображались в основной таблице, и, соответственно, чтобы изменения в таблице автоматически отобразились на диаграмме.

\bigskip


\subsubsection{Отображение текущего состояния заказов}

В таблице и на диаграмме необходимо отображать оперативную информацию по состоянию заданий. Выделять цветом выполненные задания, задания в работе и запланированные. Также необходимо предусмотреть возможность скрыть уже выполненные задания. Список задания должен иметь следующее цветовое оформление:
\begin{itemize}
	\item	Синий --- задание выполнено частично.	
	\item	Жёлтый --– текущее задание в работе.
	\item	Оранжевый --– задание выгружено в гофроагрегат.
	\item	Серый --– задание выполнено.
	\item	Зелёный --– все остальные запланированные задания.	
\end{itemize}

\begin{figure}[htb]
\centering
  \includegraphics[width=180mm]{50_Pics/EndlessPlan_ColoredStrings.jpg}
\caption{Пример цветового выделения строк заданий по статусам.}
\label{pic:EndlessPlan_ColoredStrings}
\end{figure}

\bigskip


\subsubsection{Цветовое выделение заказов в таблице непрерывного планирования}

В таблице  необходимо добавить фильтры для выделения заказов со схожими характеристиками. Необходимо добавить группу команд <<Выделить заказы с одинаковыми характеристиками>>. В выпадающем списке в форме необходимо добавить следующие варианты:

\begin{itemize}
		\item	Размер заготовок (длина + ширина) --- выделить заказы с одинаковыми размерами заготовки.
		\item	Формат ГА --- выделить заказы с одинаковыми размерами формата полотна гофроагрегата (для задания на BHS).		
		\item	Клише --- выделить заказы с одинаковым клише.
		\item	Штамп --- выделить заказы с одинаковой штанц-формой.
		\item	Цвет продукции --- выделить заказы с одинаковой краской (составом пантонов).
		\item	Марка --- выделить заказы с одинаковой маркой картона.
		\item	Профиль --- выделить заказы с одинаковым профилем изделия.
		\item	Цвет --- выделить заказы с одинаковым цветом лицевого слоя картона. 
		\item	По сырью --- выделить одинаковое сырьё в раскроях.
		\item 	По запаздыванию --- выделить заказы, у которых плановая дата выпуска на данном станке больше даты отгрузки.
		\item 	По запаздыванию на последнем шаге --- выделить заказы, у которых плановая дата выпуска на последнем шаге маршрута больше даты отгрузки.		
\end{itemize}

При выделение заказов с одинаковыми характеристиками уникальные элементы должны оставаться белыми, а те элементы, где совпадает параметры, должны быть одинакового цвета.

\begin{figure}[htb]
\centering
  \includegraphics[width=180mm]{50_Pics/EndlessPlan_ColoredMark.jpg}
\caption{Пример цветового выделения строк раскроев по марке.}
\label{pic:EndlessPlan_ColoredMark}
\end{figure}

\begin{figure}[htb]
\centering
  \includegraphics[width=180mm]{50_Pics/EndlessPlan_ColoredSource.jpg}
\caption{Пример цветового выделения одинакового сырья для раскроев.}
\label{pic:EndlessPlan_ColoredSource}
\end{figure}

\begin{figure}[htb]
\centering
  \includegraphics[scale=0.6]{50_Pics/EndlessPlan_ColoredDiagram.jpg}
\caption{Пример цветового выделения на диаграмме.}
\label{pic:EndlessPlan_ColoredDiagram}
\end{figure}

\FloatBarrier

\bigskip


%\subsubsection{Подсветка по заказам, для которых есть заготовки}


%В контекстном меню в таблице с заказами и на форме необходимо добавить команду <<Отобразить заказы с заготовками>>. При выполнении команды СИСТЕМА должна подсветить заказы, для которых уже есть заготовки. Цветовая схема:

%\begin{itemize}
%		\item	Белый --- выполненные заказы.
%		\item	Серый --- нет заготовок.
%		\item	Желтый --– есть заготовки, но их объем меньше требуемого.
%		\item	Зеленый --- есть заготовки, и их объема хватит на полное выполнение заказа.
%\end{itemize}

%\bigskip


\subsubsection{Отмена задания переработки или гофроагрегата}

При ручной отмене задания необходимо предоставлять пользователю выбор: отмена только данного выделенного задания, или отмена данного задания и всех последующих запланированных шагов по данному заказу.
%отмеавтоматически отменять последующие шаги производства заказа. Если по шагам уже была выработка хотя бы по одному этапу, то СИСТЕМА должна запрещать отмену и выдавать предупреждение. При отмене задания на гофроагрегат СИСТЕМА не должна отменять задание по переработке заказа, если кроме отмененного задания есть и другие раскрои по данному заказу на диаграмме непрерывного планирования.

\bigskip


\subsubsection{Создание задания на остаток}

Добавить возможность создания нового задания для частично выполненного задания. При этом текущее задание помечается как выполненное, а остаток переносится в новое задание, которое встанет в конец списка <<Непрерывного планирования>>. При этом автоматически рассчитаются время выполнения и дополнительные характеристики. Данная функция должна присутствовать как для гофроагрегатов, так и для линий переработки.

\bigskip


\subsubsection{Сортировка блока заданий по соответствующим критериям}

В таблице необходимо добавить контекстное меню со списком критериев сортировки. Пользователь с помощью клавиши Shift выделяет первое и последнее задание из блока, который должен быть отсортирован. При пересчете порядка на линии, помимо критериев сортировки, СИСТЕМА должна учитывать время выхода изделий с предыдущих шагов. В списке критериев сортировки необходимо добавить следующие значения:

\begin{itemize}
		\item	Размер заготовок (длина + ширина) --- упорядочить таким образом, чтобы подряд шли заказы с одинаковыми размерами заготовки.
		\item	Дата отгрузки --- упорядочить таким образом, чтобы подряд шли заказы по возрастанию даты отгрузки.
		\item	Клише --- упорядочить таким образом, чтобы подряд шли заказы с одинаковым клише.
		\item	Штамп --- упорядочить таким образом, чтобы подряд шли заказы с одинаковой штанц-формой.
		\item	Цвет продукции --- упорядочить таким образом, чтобы подряд шли заказы с одинаковой краской (составом пантонов).
		\item	Марка --- упорядочить таким образом, чтобы подряд шли заказы с одинаковой маркой картона.
		\item	Профиль --- упорядочить таким образом, чтобы подряд шли заказы с одинаковым профилем изделия.
		\item	Цвет --- упорядочить таким образом, чтобы подряд шли заказы с одинаковым цветом лицевого слоя картона. 
\end{itemize}

\bigskip


\subsubsection{Функция <<Вырезать-Вставить>>}

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

\bigskip


\subsubsection{Функция копирования задания}

Добавить возможность создания нового задания для гофроагрегата или линии переработки на основе выделенной строки. Созданная строка будет в точности повторять копируемое задание, но с новым идентификатором - в конце добавится префикс в виде числа, характеризующее номер копии.

\bigskip


\subsubsection{Функция показа маршрута}

Добавить команду открытия маршрута для данного задания, чтобы можно было быстро оценить возможность переноса заказа на другое подходящее оборудование.

\bigskip


\subsubsection{Функция отображения причины простоя}

В случае появления простоя в строке заданий отображается время простоя. Для того, чтобы определить причину, необходимо добавить команду, которая проанализирует текущее состояние и затем выведет сообщение пользователю с соответствующей информацией. Возможные варианты ответа:
\begin{itemize}
	\item	На данном шаге нет простоя.
	\item	Это простой из-за оснастки по заказу (выводится конкретный номер заказа).
	\item	Это простой с предыдущего шага.
\end{itemize}

\bigskip


\subsubsection{Вывод информации о <<Кумулятивном метраже>>}

В таблице и на диаграмме необходимо добавить вывод параметра <<Кумулятивного метража>>, который должен показывать, какой объем раскроев запланирован на ГА от текущего момента и до последнего раскроя (с накопительным объемом).

\bigskip


%\subsubsection{Резервирование сырья}

%В таблице и на диаграмме необходимо добавить механизм резервирования сырья для выделенных раскроев. При этом необходимо исключить возможность <<двойного>> резервирования объемов. В момент ввода данных выработки или отмены задания, СИСТЕМА должна <<снимать>> резерв. Необходимо добавить механизм подсветки заданий, для которых зарезервировано сырье.

%\bigskip


\subsubsection{Вывод информации о сырье для списка раскроев}

В таблице и на диаграмме необходимо добавить возможность формирования отчёта об объёме сырья, необходимого для списка выделенных пользователем раскроев.

\begin{figure}[htb]
\centering
  \includegraphics[width=180mm]{50_Pics/EndlessPlan_SourceCheck.jpg}
\caption{Пример отчёта по сырью.}
\label{pic:EndlessPlan_SourceCheck}
\end{figure}

Добавить отчет по порядку и времени подачи сырья на гофроагрегат (отчет <<Порядок подачи сырья>>) (выводить каждый раскрой отдедльной строкой с укаанием необходимого сырья). 

\begin{figure}[htb]
\centering
  \includegraphics[width=180mm]{50_Pics/a10.JPG}
\caption{Отчет <<Порядок подачи сырья>>}
\label{pic:a10}
\end{figure}

\bigskip


\subsubsection{Отображение подсказки (ToolTip)}

На диаграмме при наведении курсора на заказ (блок) необходимо добавить отображение основных характеристик заказа:
\begin{itemize}
	\item Номер заказа;
	\item Дата;
	\item Контрагент;
	\item Наименование продукции;
	\item Технологическая карта;
	\item Объем требуемый;
	\item Объем запланированный;
	\item Объем выработанных заготовок по всем шагам;
	\item Комментарий плановика;
	\item Признак используемой рилевки;
	%\item Признак большой обрези или если меньше допустимой;
	%\item Признак изменения композиции для изделия.
\end{itemize}

\begin{figure}[h!]
\centering
  \includegraphics[scale=0.6]{50_Pics/EndlessPlan_Tooltip.jpg}
\caption{Пример всплывающей подсказки.}
\label{pic:EndlessPlan_Tooltip}
\end{figure}

\bigskip


%\subsubsection{Фиксация ключевых заданий}

%В таблице и на диаграмме необходимо добавить механизм фиксации выбранных заданий. Для этого необходимо добавить команду в контекстном меню <<Зафиксировать задание>>, при нажатии на которую должна происходить фиксация выбранных заданий. При инициировании любых изменений времени начала или окончания обработки задания (планирование, сортировка заданий, перенос заданий и т.д.) зафиксированное задание должно оставаться на своем месте.

%:\bigskip


\subsubsection{Добавление срочных заданий в непрерывный план}

Если в непрерывный план требуется добавить срочные заказы или изменить существующие, то для этого необходимо сформировать новый оперативный план, спланировать раскрои и линии переработки. Полученное решение должно добавляться в конец <<Непрерывного плана>> и вручную переноситься на требуемую дату. При этом допускается только разовая загрузка в <<Непрерывный план>>: после добавления данных соответствующий оперативный план отмечается флагом <<Загружен в НП>>, и больше не доступен для редактирования пользователем или повторной загрузки в непрерывный план.

%закомментировано Ромой, так как мы математически такое не можем решить. Так-то можем, но это крайне сложно.
%В СИСТЕМЕ необходимо добавить константу, в которой указывается, на сколько раскроев можно дробить заказ при планировании его выпуска на ГА.

%закомментировано Ромой, так как это уже написано в оперативном плане
%При автоматическом расчете линий необходимо учитывать параметр <<Дельта времени старта заказа, мин>>. Данный параметр должен означать, что выполнение заказа на следующем шаге можно начинать спустя указанное значение, не дожидаясь времени окончания его полной выработки.

\bigskip


\subsubsection{Форма выбора заданий в выработке}

В документе <<Выработка по гофроагрегату>> необходимо добавить команду ''Загрузить из НП'' для открытия формы выбора заданий, которые будут выполняться в текущем документе. На форме необходимо отображать список запланированных заданий (раскроев). Мастер должен отметить задания, которые планирует выпускать и добавлять их в документ <<Выработка по гофроагрегату>>. 
Заданий должны вводиться в том порядке, как их расположил плановик в непрерывном плане.
На промежуточной форме необходимо выводить следующие колонки:

\begin{itemize}
	\item	ID Задания;
	\item	Формат;
	\item	Марка;
	\item	Профиль;
	\item	Цвет;
	\item	Композиция;
	\item	Наличие рилёвок;
	\item	Номер заказа (Верхний стол);
	\item	Количество полос (Верхний стол);
	\item	Номер заказа (Нижний стол);
	\item	Количество полос (Нижний стол);
	\item	Время начала переналадки оборудования;
	\item	Время начал обработки раскроя;
	\item	Время окончания обработки раскроя.
\end{itemize}

\begin{figure}[htb]
\centering
  \includegraphics[width=180mm]{50_Pics/EndlessPlan_LoadGA.jpg}
\caption{Пример формы загрузки заданий из непрерывного планирования для документа выработки гофроагрегата.}
\label{pic:EndlessPlan_LoadGA}
\end{figure}

В документе <<Выработка по переработке>> необходимо добавить команду ''Загрузить из НП'' для открытия формы выбора заданий, которые будут перерабатываться. На форме необходимо отображать список запланированных заданий в том порядке, как они поставлены плановиком в непрерывном плане. Мастер отмечает задания, которые планирует выпускать и добавляет их в документ <<Выработка по переработке>>. На промежуточной форме необходимо выводить следующие колонки: 

\begin{itemize}
	\item	Номер заказа;
	\item	Контрагент;
	\item	Дата отгрузки;
	\item	Номенклатура;
	\item	Количество изделий (шт., План);
	\item	Площадь изделий (м2, План);
	\item	Оборудование;
	\item	Время начала переналадки оборудования;
	\item	Время начала обработки заказа;
	\item	Время окончания обработки заказа;
	\item	Объём из другой выработки;
	\item	Комментарий.
\end{itemize}

\bigskip

\begin{figure}[htb]
\centering
  \includegraphics[width=180mm]{50_Pics/EndlessPlan_LoadLine.jpg}
\caption{Пример формы загрузки заданий из непрерывного планирования для документа выработки линий.}
\label{pic:EndlessPlan_LoadLine}
\end{figure}

%\subsubsection{Отчёт по незавершенному производству}
%
%В СИСТЕМЕ необходимо добавить вывод информации о незавершенном производстве. В отчете необходимо выводить информацию об объёмах заготовки, которые находятся в цеху. В отчете необходимо добавить следующие колонки:
%\begin{itemize}
%	\item	Технологическая карта;
%	\item	Заказчик;
%	\item	Марка;
%	\item	Количество, шт;
%	\item	Площадь, м2;
%	\item	Дата отгрузки;
%\end{itemize}
%
%\bigskip


%\subpoint{Отображение заказов в форме диаграммы Ганта}
%
%В СИСТЕМЕ реализовать возможность выделения цветами заказов в диаграмме
%\begin{itemize}
%\item по профилю --- выделять одним цветом заказы с одинаковым профилем;
%\item по марке --- выделять одним цветом заказы с одинаковой маркой;
%\item по формату ---  выделять одним цветом заказы с одинаковым форматом полотна;
%\item по запаздыванию --- выделять заказы цветом, у которых дата выпуска больше даты отгрузки.
%\end{itemize}


%Еще хотелки
%Цвета линии
%	- по размерам заготовки
%	- по клише
%	- по штампу
%	- по заготовкам гофроагрегата
%	- по марке
%	- по статусу
%	- по профилю
%	- по типу изделия
%	- по цвету изделия
%	- по статусу заказа на предыдущем рабочем центре


\clearpage