
## Структурные изменения: ### 📁 Организация архивных файлов: - Перенос всех устаревших правил в 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>
70 lines
2.0 KiB
JavaScript
70 lines
2.0 KiB
JavaScript
const { PrismaClient } = require('@prisma/client')
|
||
|
||
const prisma = new PrismaClient()
|
||
|
||
async function findUserByPhone() {
|
||
try {
|
||
console.log('🔍 ИЩЕМ ПОЛЬЗОВАТЕЛЯ ПО РАЗНЫМ ВАРИАНТАМ НОМЕРА...')
|
||
|
||
const phoneVariants = [
|
||
'+7 (999) 999-99-99',
|
||
'+79999999999',
|
||
'79999999999',
|
||
'9999999999',
|
||
'+7(999)999-99-99',
|
||
'+7 999 999 99 99'
|
||
]
|
||
|
||
for (const phone of phoneVariants) {
|
||
console.log(`\nПроверяем: "${phone}"`)
|
||
|
||
const user = await prisma.user.findFirst({
|
||
where: { phone: phone },
|
||
include: {
|
||
organization: true
|
||
}
|
||
})
|
||
|
||
if (user) {
|
||
console.log('✅ НАЙДЕН!')
|
||
console.log(' ID:', user.id)
|
||
console.log(' Телефон:', user.phone)
|
||
console.log(' Организация:', user.organization?.name || 'Нет')
|
||
console.log(' Тип:', user.organization?.type || 'Нет')
|
||
return user
|
||
}
|
||
}
|
||
|
||
console.log('\n❌ Не найден ни по одному варианту')
|
||
|
||
// Поищем похожие номера
|
||
console.log('\n🔍 ИЩЕМ ПОХОЖИЕ НОМЕРА (содержащие 9999):')
|
||
const similarUsers = await prisma.user.findMany({
|
||
where: {
|
||
phone: {
|
||
contains: '9999'
|
||
}
|
||
},
|
||
include: {
|
||
organization: true
|
||
},
|
||
take: 10
|
||
})
|
||
|
||
if (similarUsers.length > 0) {
|
||
console.log(`\nНайдено ${similarUsers.length} пользователей с похожими номерами:`)
|
||
similarUsers.forEach((user, index) => {
|
||
console.log(`${index + 1}. ${user.phone} - ${user.organization?.name || 'Без организации'} (${user.organization?.type || 'Неизвестный тип'})`)
|
||
})
|
||
} else {
|
||
console.log('\nПохожих номеров не найдено')
|
||
}
|
||
|
||
} catch (error) {
|
||
console.error('❌ Ошибка:', error.message)
|
||
} finally {
|
||
await prisma.$disconnect()
|
||
}
|
||
}
|
||
|
||
findUserByPhone() |