Виндсерф сгенерировал реадми
All checks were successful
Auto-Deploy-prodman / deploy (push) Successful in 10s
All checks were successful
Auto-Deploy-prodman / deploy (push) Successful in 10s
This commit is contained in:
282
README.md
Normal file
282
README.md
Normal file
@@ -0,0 +1,282 @@
|
||||
# ProdMan - Production Management System
|
||||
|
||||
Система управления производством для управления спецификациями (BOM), материалами и технологическими операциями.
|
||||
|
||||
## Обзор проекта
|
||||
|
||||
ProdMan - это веб-приложение на базе Django, предназначенное для управления производственными процессами, включая:
|
||||
|
||||
- Управление спецификациями материалов (BOM)
|
||||
- Учёт и управление складскими запасами
|
||||
- Технологические маршруты и операции
|
||||
- Управление материалами и заготовками
|
||||
- Поддержка различных типов операций (лазерная резка, механическая обработка и др.)
|
||||
|
||||
## Основные возможности
|
||||
|
||||
### 📋 Управление спецификациями (BOM Manager)
|
||||
- Иерархическая структура изделий с поддержкой MPTT
|
||||
- Полиморфные модели для различных типов компонентов
|
||||
- Технологические маршруты с последовательностью операций
|
||||
- Поддержка различных типов операций (лазерная резка, гибка, сварка и др.)
|
||||
|
||||
### 🏭 Управление материалами (Stock)
|
||||
- Справочник марок стали и нормативных документов (ГОСТ, ТУ, ОСТ)
|
||||
- Учёт различных типов заготовок (листовой прокат, трубы, профили)
|
||||
- Интеграция с BOM для автоматического расчёта потребности в материалах
|
||||
|
||||
### 🔧 Технологические операции
|
||||
- Лазерная резка листовых материалов
|
||||
- Механическая обработка
|
||||
- Сборочные операции
|
||||
- Контроль качества
|
||||
- Гибочные и сварочные работы
|
||||
|
||||
### 📁 Управление файлами
|
||||
- Загрузка и хранение DXF файлов для лазерной резки
|
||||
- Поддержка PDF документов для нормативной документации
|
||||
- Медиа-файлы для чертежей и документации
|
||||
|
||||
## Технологический стек
|
||||
|
||||
- **Backend**: Django 6.0.2
|
||||
- **Database**: PostgreSQL (production) / SQLite (development)
|
||||
- **Frontend**: Django Templates с Bootstrap
|
||||
- **Containerization**: Docker + Docker Compose
|
||||
- **Web Server**: Nginx (reverse proxy)
|
||||
- **WSGI Server**: Gunicorn
|
||||
- **Python**: 3.12
|
||||
|
||||
## Структура проекта
|
||||
|
||||
```
|
||||
Prodman/
|
||||
├── bom_manager/ # Управление спецификациями
|
||||
│ ├── models.py # Модели BOM, операций, изделий
|
||||
│ ├── views.py # Представления
|
||||
│ └── ...
|
||||
├── stock/ # Управление материалами
|
||||
│ ├── models.py # Модели материалов, ГОСТов, заготовок
|
||||
│ ├── views.py # Представления
|
||||
│ └── ...
|
||||
├── core/ # Основные настройки Django
|
||||
│ ├── settings.py # Конфигурация проекта
|
||||
│ ├── urls.py # URL маршрутизация
|
||||
│ └── ...
|
||||
├── media/ # Медиа файлы
|
||||
├── staticfiles/ # Статические файлы
|
||||
├── templates/ # Шаблоны HTML
|
||||
├── nginx/ # Конфигурация Nginx
|
||||
├── docker-compose.yml # Docker конфигурация
|
||||
├── Dockerfile # Docker образ приложения
|
||||
└── requirements.txt # Зависимости Python
|
||||
```
|
||||
|
||||
## Установка и запуск
|
||||
|
||||
### Требования
|
||||
- Docker и Docker Compose
|
||||
- Python 3.12+ (для локальной разработки)
|
||||
- PostgreSQL (для production)
|
||||
|
||||
### Быстрый старт с Docker
|
||||
|
||||
1. **Клонирование репозитория**
|
||||
```bash
|
||||
git clone <repository-url>
|
||||
cd Prodman
|
||||
```
|
||||
|
||||
2. **Настройка переменных окружения**
|
||||
|
||||
Создайте файл `.env` на основе примера:
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
Отредактируйте `.env` файл:
|
||||
```env
|
||||
ENV_TYPE=server
|
||||
DB_NAME=prodman_db
|
||||
DB_USER=prodman_user
|
||||
DB_PASS=your_secure_password
|
||||
DB_HOST=db
|
||||
ALLOWED_HOSTS=localhost,your-domain.com
|
||||
```
|
||||
|
||||
3. **Запуск приложения**
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
4. **Выполнение миграций**
|
||||
```bash
|
||||
docker-compose exec web python manage.py migrate
|
||||
```
|
||||
|
||||
5. **Создание суперпользователя**
|
||||
```bash
|
||||
docker-compose exec web python manage.py createsuperuser
|
||||
```
|
||||
|
||||
6. **Сбор статических файлов**
|
||||
```bash
|
||||
docker-compose exec web python manage.py collectstatic --noinput
|
||||
```
|
||||
|
||||
Приложение будет доступно по адресу: `http://localhost:8085`
|
||||
|
||||
### Локальная разработка
|
||||
|
||||
1. **Создание виртуального окружения**
|
||||
```bash
|
||||
python -m venv venv
|
||||
source venv/bin/activate # для Windows: venv\Scripts\activate
|
||||
```
|
||||
|
||||
2. **Установка зависимостей**
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
3. **Настройка базы данных**
|
||||
|
||||
По умолчанию используется SQLite. Для PostgreSQL:
|
||||
```env
|
||||
ENV_TYPE=dev
|
||||
```
|
||||
|
||||
4. **Выполнение миграций**
|
||||
```bash
|
||||
python manage.py migrate
|
||||
```
|
||||
|
||||
5. **Запуск сервера разработки**
|
||||
```bash
|
||||
python manage.py runserver
|
||||
```
|
||||
|
||||
## Конфигурация
|
||||
|
||||
### Переменные окружения
|
||||
|
||||
- `ENV_TYPE`: Тип окружения (`local`, `dev`, `server`)
|
||||
- `DB_NAME`: Имя базы данных
|
||||
- `DB_USER`: Пользователь базы данных
|
||||
- `DB_PASS`: Пароль базы данных
|
||||
- `DB_HOST`: Хост базы данных
|
||||
- `ALLOWED_HOSTS`: Разрешённые хосты через запятую
|
||||
|
||||
### Режимы работы
|
||||
|
||||
- **local**: SQLite база данных, DEBUG=True, все хосты разрешены
|
||||
- **dev**: PostgreSQL база данных, DEBUG=True, все хосты разрешены
|
||||
- **server**: PostgreSQL база данных, DEBUG=False, ограниченные хосты
|
||||
|
||||
## API и интеграция
|
||||
|
||||
### Основные модели
|
||||
|
||||
- **Item**: Базовая модель для компонентов и изделий
|
||||
- **BaseOperation**: Базовый класс для технологических операций
|
||||
- **BaseMaterial**: Базовая модель для материалов и заготовок
|
||||
- **Gost**: Нормативные документы (ГОСТ, ТУ, ОСТ)
|
||||
- **MaterialGrade**: Марки материалов
|
||||
|
||||
### Типы операций
|
||||
|
||||
- `LaserCutSheet`: Лазерная резка листовых материалов
|
||||
- `BendingOperation`: Гибочные операции
|
||||
- `WeldingOperation`: Сварочные операции
|
||||
- `AssemblyOperation`: Сборочные операции
|
||||
|
||||
## Разработка
|
||||
|
||||
### Структура приложений
|
||||
|
||||
#### bom_manager
|
||||
- Модели для управления спецификациями
|
||||
- Технологические маршруты
|
||||
- Иерархическая структура изделий
|
||||
|
||||
#### stock
|
||||
- Модели материалов и заготовок
|
||||
- Справочники ГОСТов и марок стали
|
||||
- Учёт складских операций
|
||||
|
||||
### Добавление новых типов операций
|
||||
|
||||
1. Создайте новый класс, наследуемый от `BaseOperation`
|
||||
2. Определите необходимые поля
|
||||
3. Реализуйте метод `clean()` для валидации
|
||||
4. Добавьте представление и шаблон при необходимости
|
||||
|
||||
Пример:
|
||||
```python
|
||||
class NewOperationType(BaseOperation):
|
||||
custom_field = models.CharField("Пользовательское поле", max_length=100)
|
||||
|
||||
def clean(self):
|
||||
super().clean()
|
||||
# Дополнительная валидация
|
||||
pass
|
||||
```
|
||||
|
||||
## Тестирование
|
||||
|
||||
```bash
|
||||
# Запуск всех тестов
|
||||
python manage.py test
|
||||
|
||||
# Запуск тестов для конкретного приложения
|
||||
python manage.py test bom_manager
|
||||
python manage.py test stock
|
||||
```
|
||||
|
||||
## Развертывание
|
||||
|
||||
### Production развертывание
|
||||
|
||||
1. Настройте переменные окружения в `.env` файле
|
||||
2. Убедитесь, что `ENV_TYPE=server`
|
||||
3. Настройте SSL сертификаты для HTTPS
|
||||
4. Настройте бэкапы базы данных
|
||||
5. Настройте мониторинг и логирование
|
||||
|
||||
### Бэкап и восстановление
|
||||
|
||||
```bash
|
||||
# Бэкап базы данных
|
||||
docker-compose exec db pg_dump -U prodman_user prodman_db > backup.sql
|
||||
|
||||
# Восстановление базы данных
|
||||
docker-compose exec -T db psql -U prodman_user prodman_db < backup.sql
|
||||
```
|
||||
|
||||
## Вклад в проект
|
||||
|
||||
1. Fork репозитория
|
||||
2. Создайте feature ветку
|
||||
3. Внесите изменения
|
||||
4. Добавьте тесты
|
||||
5. Отправьте pull request
|
||||
|
||||
## Лицензия
|
||||
|
||||
[Добавьте информацию о лицензии]
|
||||
|
||||
## Контакты
|
||||
|
||||
[Добавьте контактную информацию]
|
||||
|
||||
## Известные проблемы
|
||||
|
||||
- [Список известных проблем и их статусы]
|
||||
|
||||
## Roadmap
|
||||
|
||||
- [Планируемые функции и улучшения]
|
||||
- Интеграция с CAD системами
|
||||
- Автоматический расчёт себестоимости
|
||||
- Мобильное приложение
|
||||
- API для внешних интеграций
|
||||
@@ -223,7 +223,7 @@ class Item(models.Model):
|
||||
help_text="Выберите тип заготовки для этой детали"
|
||||
)
|
||||
|
||||
weight = models.FloatField("Вес", default=0, blank=True, null=True)
|
||||
weight = models.FloatField("Масса", default=0, blank=True, null=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Компонент"
|
||||
|
||||
BIN
media/drawings/МТЛЕ_0323.000.00_СБ_ФМ-0159-2Новая.pdf
Normal file
BIN
media/drawings/МТЛЕ_0323.000.00_СБ_ФМ-0159-2Новая.pdf
Normal file
Binary file not shown.
3254
media/dxf_files/2026/02/ИИ_0323.000.02-71_Фланец.DXF
Normal file
3254
media/dxf_files/2026/02/ИИ_0323.000.02-71_Фланец.DXF
Normal file
File diff suppressed because it is too large
Load Diff
3190
media/dxf_files/2026/02/ИИ_0323.000.03_Косынка.DXF
Normal file
3190
media/dxf_files/2026/02/ИИ_0323.000.03_Косынка.DXF
Normal file
File diff suppressed because it is too large
Load Diff
2547
media/iges_files/2026/02/ИИ_0323.000.01-71_Труба_159х4_L1990.IGS
Normal file
2547
media/iges_files/2026/02/ИИ_0323.000.01-71_Труба_159х4_L1990.IGS
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user