Загрузка данных


Техническое задание для системы «Конфигуратор ГПФ».

Система автоматизации проектирования конфигураций горизонтальных пресс-фильтров (ГПФ) «Конфигуратор ГПФ» представляет собой веб-приложение для создания и управления конфигурациями оборудования ГПФ. Система включает опросные листы для сбора требований заказчика, средства управления комплектующими, такими как контроллеры и компоненты, конфигуратор оборудования с расчетом стоимости, а также механизм экспорта данных в формат Excel. Основной целью разработки является автоматизация процесса подбора и расчета конфигураций ГПФ, упрощение взаимодействия с заказчиками и ведения базы данных оборудования.

Функциональные возможности системы предусматривают создание опросных листов с вводом данных заказчика, включая название организации, размер ГПФ, тип контроллера отечественного или импортного производства, характеристики дополнительного оборудования, сведения о станциях регенерации, пульпы и прессования, а также комментарии заказчика. Предусмотрен просмотр и управление анкетами через список сохраненных записей с возможностью их удаления. Выполняется проверка обязательных полей и корректности вводимых данных. Работа с контроллерами PLC позволяет добавлять и удалять модели контроллеров с указанием производителя, модели, стоимости и количества портов DI, DO, AI и AO. Для компонентов предусмотрено управление перечнем дополнительного оборудования с указанием названия, стоимости и типа входов и выходов. Создание конфигурации выполняется на основании заполненной анкеты с импортом данных из опросного листа, выбором контроллера из базы данных, подбором компонентов в соответствии с требуемым количеством портов и указанием дополнительного оборудования. Система автоматически рассчитывает общую стоимость конфигурации и формирует детализированный расчет по категориям. Готовые конфигурации могут сохраняться в базе данных и при необходимости удаляться. Реализован экспорт конфигураций в Excel с формированием многостраничных отчетов, автоматическим форматированием таблиц и расчетом стоимости. Отчет содержит основную информацию о проекте, сведения об оборудовании и станциях, перечень датчиков и компонентов, а также финансовый расчет.

К нефункциональным требованиям относятся обеспечение времени отклика интерфейса до двух секунд и генерации отчетов Excel до десяти секунд. Система должна поддерживать одновременную работу более десяти пользователей. Предусмотрены механизмы сохранения данных при сбоях, автоматического резервного копирования конфигураций и восстановления после перезагрузки сервера. Выполняется проверка входных данных, защита от SQL-инъекций и ограничение доступа к системным файлам. Пользовательский интерфейс должен быть русскоязычным, иметь понятную навигацию, адаптироваться под основные разрешения экранов и содержать подсказки для заполнения форм.

В качестве технологической основы используется FastAPI на Python версии 3.8 и выше. База данных реализована на основе Excel-файлов с использованием библиотек pandas и openpyxl, а данные анкет сохраняются в формате JSON. Для описания моделей применяется SQLAlchemy, для формирования страниц используется шаблонизатор Jinja2, а запуск приложения осуществляется сервером Uvicorn. Клиентская часть построена на HTML5, CSS3 и JavaScript с использованием библиотеки jQuery для реализации динамических элементов интерфейса. В состав используемых пакетов входят fastapi, uvicorn, pydantic, sqlalchemy, pandas, openpyxl, jinja2 и fpdf2, который применяется для разработки механизма экспорта в PDF.

Структура проекта включает основной файл приложения main.py, файл конфигурации базы данных database.py, модели данных в файле models.py, модуль работы с Excel в файле excel_database.py и модуль экспорта PDF в файле pdf_export.py. Данные анкет сохраняются в файле questionnaires.json, а основная база данных размещается в файле database.xlsx. HTML-шаблоны находятся в каталоге templates и содержат страницы menu_template.html, new_list.html, new_config.html, config_create.html, add_components.html и saved_configurations.html. Сформированные конфигурации сохраняются в каталоге saved_configurations.

Подсистема работы с анкетами предназначена для сбора и хранения требований заказчиков. В ее состав входят классы Questionnaire, представляющий анкету, PumpStation для описания насосной станции и Compress для описания компрессорной станции. Функциональные возможности подсистемы включают проверку вводимых данных, автоматическое создание идентификаторов UUID, сохранение информации в формате JSON, загрузку данных и отображение списка анкет.

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

Подсистема конфигураций отвечает за создание и управление конфигурациями оборудования. Она включает классы ConfigurationBase, ConfigurationCreate и Configuration. Возможности подсистемы охватывают создание конфигураций на основе анкет, подбор контроллеров и компонентов, расчет стоимости, хранение данных в Excel и экспорт конфигураций с форматированием итоговых документов.

Подсистема экспорта обеспечивает формирование отчетов в Excel. В процессе формирования выполняется автоматическое форматирование таблиц, расчет стоимости и отображение финансовой информации. Также поддерживается создание многостраничных отчетов.

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

Анкеты сохраняются в формате JSON с использованием структурированных данных. Комплектующие и конфигурации размещаются в файле database.xlsx. Экспортированные отчеты сохраняются в виде отдельных Excel-файлов в каталоге saved_configurations. В структуре базы данных используются листы PLCs для контроллеров, Components для компонентов и Configurations для хранения конфигураций в формате JSON. После внесения изменений выполняется автоматическое сохранение данных с возможностью ручного экспорта всей базы.

Для развертывания системы требуется Python версии 3.8 или выше, не менее 2 ГБ оперативной памяти и 500 МБ свободного пространства на диске. Также необходим доступ к сети для работы веб-интерфейса. Установка выполняется через команду pip install -r requirements.txt, а запуск осуществляется командой python main.py. После запуска доступ к системе предоставляется через браузер по адресу http://localhost:1234. По умолчанию используется порт 1234 и хост 0.0.0.0. При первом запуске выполняется автоматическое создание необходимых файлов и каталогов.