
## Структурные изменения: ### 📁 Организация архивных файлов: - Перенос всех устаревших правил в 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>
76 lines
3.3 KiB
JavaScript
76 lines
3.3 KiB
JavaScript
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()
|
||
}) |