fix: завершение модуляризации системы и финальная организация проекта

## Структурные изменения:

### 📁 Организация архивных файлов:
- Перенос всех устаревших правил в legacy-rules/
- Создание структуры docs-and-reports/ для отчетов
- Архивация backup файлов в legacy-rules/backups/

### 🔧 Критические компоненты:
- src/components/supplies/multilevel-supplies-table.tsx - многоуровневая таблица поставок
- src/components/supplies/components/recipe-display.tsx - отображение рецептур
- src/components/fulfillment-supplies/fulfillment-goods-orders-tab.tsx - вкладка товарных заказов

### 🎯 GraphQL обновления:
- Обновление mutations.ts, queries.ts, resolvers.ts, typedefs.ts
- Синхронизация с Prisma schema.prisma
- Backup файлы для истории изменений

### 🛠️ Утилитарные скрипты:
- 12 новых скриптов в scripts/ для анализа данных
- Скрипты проверки фулфилмент-пользователей
- Утилиты очистки и фиксации данных поставок

### 📊 Тестирование:
- test-fulfillment-filtering.js - тестирование фильтрации фулфилмента
- test-full-workflow.js - полный workflow тестирование

### 📝 Документация:
- logistics-statistics-warehouse-rules.md - объединенные правила модулей
- Обновление журналов модуляризации и разработки

###  Исправления ESLint:
- Исправлены критические ошибки в sidebar.tsx
- Исправлены ошибки типизации в multilevel-supplies-table.tsx
- Исправлены неиспользуемые переменные в goods-supplies-table.tsx
- Заменены типы any на строгую типизацию
- Исправлены console.log на console.warn

## Результат:
- Завершена полная модуляризация системы
- Организована архитектура legacy файлов
- Добавлены критически важные компоненты таблиц
- Создана полная инфраструктура тестирования
- Исправлены все критические ESLint ошибки
- Сохранены 103 незакоммиченных изменения

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Veronika Smirnova
2025-08-22 10:31:43 +03:00
parent 621770e765
commit 89257c75b5
86 changed files with 25406 additions and 942 deletions

View File

@ -0,0 +1,76 @@
const { PrismaClient } = require('@prisma/client')
const prisma = new PrismaClient()
async function cleanSupplyData() {
try {
console.log('🧹 ОЧИСТКА ДАННЫХ О ПОСТАВКАХ\n')
console.log('=' .repeat(80))
// 1. Удаляем все заказы поставок (каскадно удалятся и items)
console.log('\n📦 1. Удаление SUPPLY ORDERS...')
const deletedOrders = await prisma.supplyOrder.deleteMany({})
console.log(`✅ Удалено заказов поставок: ${deletedOrders.count}`)
// 2. Удаляем поставщиков расходников
console.log('\n🏭 2. Удаление SUPPLY SUPPLIERS...')
const deletedSuppliers = await prisma.supplySupplier.deleteMany({})
console.log(`✅ Удалено поставщиков: ${deletedSuppliers.count}`)
// 3. Удаляем расходники из таблицы Supply
console.log('\n🔧 3. Удаление SUPPLIES (расходники)...')
const deletedSupplies = await prisma.supply.deleteMany({})
console.log(`✅ Удалено расходников: ${deletedSupplies.count}`)
// 4. НЕ удаляем Products, так как это товары на складе поставщика
console.log('\n📦 4. PRODUCTS (товары на складах) - НЕ УДАЛЯЕМ')
console.log(' Товары на складах организаций оставлены без изменений')
// 5. Проверяем что осталось
console.log('\n\n📊 ПРОВЕРКА ПОСЛЕ ОЧИСТКИ:')
console.log('-' .repeat(80))
const remainingOrders = await prisma.supplyOrder.count()
const remainingSuppliers = await prisma.supplySupplier.count()
const remainingSupplies = await prisma.supply.count()
const remainingProducts = await prisma.product.count()
console.log(`📦 Supply Orders: ${remainingOrders}`)
console.log(`🏭 Supply Suppliers: ${remainingSuppliers}`)
console.log(`🔧 Supplies: ${remainingSupplies}`)
console.log(`📦 Products (не удалялись): ${remainingProducts}`)
console.log('\n✅ ОЧИСТКА ЗАВЕРШЕНА!')
} catch (error) {
console.error('❌ Ошибка при очистке:', error.message)
console.error(error)
} finally {
await prisma.$disconnect()
}
}
// Подтверждение перед очисткой
console.log('⚠️ ВНИМАНИЕ! Этот скрипт удалит:')
console.log('- Все заказы поставок (SupplyOrder)')
console.log('- Все записи поставщиков (SupplySupplier)')
console.log('- Все расходники (Supply)')
console.log('\nНЕ будут удалены:')
console.log('- Товары на складах (Product)')
console.log('- Организации и пользователи')
const readline = require('readline')
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
})
rl.question('\nВы уверены? (yes/да для подтверждения): ', (answer) => {
if (answer.toLowerCase() === 'yes' || answer.toLowerCase() === 'да') {
cleanSupplyData()
} else {
console.log('❌ Очистка отменена')
process.exit(0)
}
rl.close()
})