Files
sfera-new/scripts/clean-supply-data.cjs
Veronika Smirnova 89257c75b5 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>
2025-08-22 10:31:43 +03:00

76 lines
3.3 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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()
})