На главную
Обо мне
Меня зовут: Николай Воронков
Я живу в: Твери, Россия
Email: job@voronkov.org
Skype: nik-voronkov
Мое резюме:в формате RTF
Работаю: Freelancer
Мое портфолио (по категориям)
MS SQL / Oracle / mySQL
ASP.NET / Silverlight
C# / PHP
Adobe InDesign (client/server)
SSRS / SSAS
Wordpress

Планирование производственного процесса ООО “Промопост”


Заказчик: ООО “Промопост”, член OTTO Group Россия
Тип проекта: Внутренний корпоративный проект для Департамента производства
Моя позиция в проекте:
  • Архитектор баз данных
  • Разработчик
  • Операционные системы: Windows, Linux
    Базы данных: mySQL, Oracle 11G
    Языки: C#, PHP, SQL
    Технологии: Silverlight, Oracle Apache Server
    Среды разработки: MS Visual Studio, mySQL Workbench
    Язык интерфейса: Русский

    [+]
    Более подробно о моем участии в проекте (для российских работодателей) …

    Краткие сведения о проекте:

  • Поддержка расчетов загрузки для нескольких технологий сборки
  • Планирование в рамках месяца загрузки линий сборки
  • Поддержка неограниченного количества бизнес-юнитов (фирм)
  • Оперативное планирование загрузки линий на несколько дней вперед
  • Хранение актуальной информации о производственных процессах в реальном режиме времени
  • Импорт данных из CRM-системы компании
  • Формирование отчетов в MS Reporting Services (SSRS)

    Уважаемые господа, все копии экрана, которые вы видите на этой странице относятся к тестовой версии проекта.

    На серверной части интерфейс броузера (Silverlight) обслуживался с помощью PHP-модулей, которые формировали XML-пакеты, эти пакеты на стороне Silverlight обрабатывались с помощью технологии LINQ и превращались в наборы данных (LISTs). Но чась проекта, в которой использовались SSRS-отчеты была очень сложна, поэтому данные для отчетов формировались с помощью процедур mySQL, которые собирали запросы динамически.
    Пользовательский интерфейс проекта
    Проект состоял из нескольких частей. Одной из важных задач был сбор информации о планируемых объемах работ. Единицей работы являлся батч. Часть работ формировалось в CRM-системе компании, другая часть планировалось вручную. Проект имел интерфейс для добавления и корректировки батчей.
    Из этого интерфейса можно было в любое время загрузить новые батчи из CRM-системы. Импорт выполнялся на стороне веб-сервера из PHP-модуля. При этом производилось подключение к базе данных Oracle, запрашивались данные из Oracle views и результаты помещались в базу данных проекта (mySQL).
    Важной частью системы является распределение работ по подразделениям. Обычно в процесс сборки вовлечены несколько отделов компании. Все типы батчей унифицированы и для каждого из них прописан регламент выполнения работ и список подразделений, которые должны эти работы выполнять. Чтобы ускорить процесс планирования, батчам присваиваются шаблоны сборки (работа – департамент). Это позволяет сразу при добавлении батча распределить выполняемые работы по отделам компании в нужном порядке. При выборе шаблона происходит копирование данных в рабочие таблицы, если есть какие-либо работы не предусмотренные в шаблоне, то в интерфейсе батчей можно добавить, удалить или откорректировать нужные пункты.
    Почти все сущности проекта за исключением алгоритмов сборки настраиваются через словарь системы. Это касается списков линий, бизнес-юнитов, шаблонов выполнения и т.д.
    Расчет трудоемкости сборки батчей основывается на нормативах, которые также настраиваются для каждой технологии. Технология подбирается при импорте или создании батчей, основываясь на названии батча (имеется словарь соответствий названий и технологий).
    Процесс работы с проектом начинается с планирования объемов производства на будущий месяц. Менеджер производственного отдела определяет линии, которые будут работать и бизнес-юниты, которые они будут обслуживать. В специальном интерфейсе проставляются выходные и праздничные дни. После этого производится заполнени матрицы планирования по каждому дню. В дальнейшем, при поступлении оперативной информации, матрица начинает корректироваться (колонки “Total” и “Missing” на первом рисунке).
    Основная часть проекта – интерфейс оперативного планирования. Он используется тогда, когда вся информация о батчах собрана. Менеджер производит расчет трудоемкости для каждого батча на основе технологии сборки и ее нормативов. Кроме этого планируются даты выполнения шагов батча. Для некоторых типов батчей менеджер может назначать операторов сборки.
    В интерфейсе предусмотрен механизм корректировки реальных объемов выполненых работ, данные для этого запрашиваются в CRM-системе.
    Отчеты проекта (MS Reporting Services)
    Для проекта мной было разработано несколько отчетов SSRS (Microsoft Reporting Services). Эта технология широко использовалась в компании и было решено не давать менеджерам доступ к проекту и не развивать там часть, связанную с отчетами, а разместить все необходимые отчеты на сервере SSRS.
    Требования к отчетам были очень высоки, так как до запуска проекта планирование производственных процессов производилось вручную и основнымм отчетными документами были файлы MS Excel довольно сложной структуры, стояла задача реализовать документы проекта не потеряв существующей наглядности и функциональности. Отчеты настраивались из интерфейса проекта: выбирались нужные колонки, создавались дополнительные строки и т.д. На стороне отчета управление его элеменатми осуществлялось на основе Expressions для различных атрибутов. Основные RECORDSETS создавались для отчетов процедурами mySQL, так как обычными SQL-запросами обойтись было невозможно.
    Все осложнялось тем, что для mySQL мне не удалось найти драйвер для OLE DB и стандартная передача параметров в SQL-запросы отчетов не работала. Использовался драйвер ODBC. После некоторых исследований проблему удалось решить, параметры можно было заменять вопросительными знаками (выделены на рисунке красным цветом), при этом было необходимо строго соблюдать их порядок, использование конструктора запросов было невозможно.
    Для создания сложных документов я использовал комбинированные отчеты. Они имели изменяемую структуру и настраивались из интерфейса. Самым важным условием было получение документов в формате MS Excel (экспорт). Разбиение отчетов по вкладкам удалось достичь путем вставки разрывов страниц между отчетами и несколькими частями в отчете.

    Оставьте комментарий: