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:
@ -48,6 +48,8 @@ export const typeDefs = gql`
|
||||
|
||||
# Заказы поставок расходников
|
||||
supplyOrders: [SupplyOrder!]!
|
||||
# Мои поставки (для селлера) - многоуровневая таблица
|
||||
mySupplyOrders: [SupplyOrder!]!
|
||||
|
||||
# Счетчик поставок, требующих одобрения
|
||||
pendingSuppliesCount: PendingSuppliesCount!
|
||||
@ -224,6 +226,12 @@ export const typeDefs = gql`
|
||||
|
||||
# Действия фулфилмента
|
||||
fulfillmentReceiveOrder(id: ID!): SupplyOrderResponse!
|
||||
# Новые действия для многоуровневой системы
|
||||
fulfillmentAssignEmployee(supplyOrderId: ID!, employeeId: ID!): SupplyOrderResponse!
|
||||
fulfillmentSelectLogistics(supplyOrderId: ID!, logisticsPartnerId: ID!): SupplyOrderResponse!
|
||||
fulfillmentStartProcessing(supplyOrderId: ID!): SupplyOrderResponse!
|
||||
# Действия поставщика с упаковкой
|
||||
supplierApproveOrderWithPackaging(id: ID!, packagesCount: Int, volume: Float): SupplyOrderResponse!
|
||||
|
||||
# Работа с логистикой
|
||||
createLogistics(input: LogisticsInput!): LogisticsResponse!
|
||||
@ -610,7 +618,8 @@ export const typeDefs = gql`
|
||||
warehouseConsumableId: ID! # Связь со складом
|
||||
# Поля из базы данных для обратной совместимости
|
||||
price: Float! # Цена закупки у поставщика (не меняется)
|
||||
quantity: Int! # Из Prisma schema
|
||||
quantity: Int! # Из Prisma schema (заказанное количество)
|
||||
actualQuantity: Int # НОВОЕ: Фактически поставленное количество (NULL = еще не пересчитали)
|
||||
category: String! # Из Prisma schema
|
||||
status: String! # Из Prisma schema
|
||||
date: DateTime! # Из Prisma schema
|
||||
@ -677,12 +686,40 @@ export const typeDefs = gql`
|
||||
fulfillmentCenter: Organization
|
||||
logisticsPartnerId: ID
|
||||
logisticsPartner: Organization
|
||||
consumableType: String # Тип расходников: FULFILLMENT_CONSUMABLES, SELLER_CONSUMABLES
|
||||
# Новые поля для многоуровневой системы поставок
|
||||
packagesCount: Int # Количество грузовых мест (от поставщика)
|
||||
volume: Float # Объём товара в м³ (от поставщика)
|
||||
responsibleEmployee: ID # ID ответственного сотрудника ФФ
|
||||
employee: Employee # Ответственный сотрудник
|
||||
notes: String # Заметки и комментарии
|
||||
routes: [SupplyRoute!]! # Маршруты поставки
|
||||
items: [SupplyOrderItem!]!
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
organization: Organization!
|
||||
}
|
||||
|
||||
# Тип для маршрутов поставки (модульная архитектура)
|
||||
type SupplyRoute {
|
||||
id: ID!
|
||||
supplyOrderId: ID!
|
||||
logisticsId: ID # Ссылка на предустановленный маршрут
|
||||
fromLocation: String! # Точка забора (рынок/поставщик)
|
||||
toLocation: String! # Точка доставки (фулфилмент)
|
||||
fromAddress: String # Полный адрес точки забора
|
||||
toAddress: String # Полный адрес точки доставки
|
||||
distance: Float # Расстояние в км
|
||||
estimatedTime: Int # Время доставки в часах
|
||||
price: Float # Стоимость логистики
|
||||
status: String # Статус маршрута
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
createdDate: DateTime! # Дата создания маршрута (уровень 2)
|
||||
supplyOrder: SupplyOrder!
|
||||
logistics: Logistics # Предустановленный логистический маршрут
|
||||
}
|
||||
|
||||
type SupplyOrderItem {
|
||||
id: ID!
|
||||
productId: ID!
|
||||
@ -712,6 +749,19 @@ export const typeDefs = gql`
|
||||
items: [SupplyOrderItemInput!]!
|
||||
notes: String # Дополнительные заметки к заказу
|
||||
consumableType: String # Классификация расходников: FULFILLMENT_CONSUMABLES, SELLER_CONSUMABLES
|
||||
# Новые поля для многоуровневой системы
|
||||
packagesCount: Int # Количество грузовых мест (заполняет поставщик)
|
||||
volume: Float # Объём товара в м³ (заполняет поставщик)
|
||||
routes: [SupplyRouteInput!] # Маршруты поставки
|
||||
}
|
||||
|
||||
# Input тип для создания маршрутов поставки
|
||||
input SupplyRouteInput {
|
||||
logisticsId: ID # Ссылка на предустановленный маршрут
|
||||
fromLocation: String! # Точка забора
|
||||
toLocation: String! # Точка доставки
|
||||
fromAddress: String # Полный адрес забора
|
||||
toAddress: String # Полный адрес доставки
|
||||
}
|
||||
|
||||
input SupplyOrderItemInput {
|
||||
@ -747,9 +797,9 @@ export const typeDefs = gql`
|
||||
}
|
||||
|
||||
input ProductRecipeInput {
|
||||
services: [ID!]!
|
||||
fulfillmentConsumables: [ID!]!
|
||||
sellerConsumables: [ID!]!
|
||||
services: [ID!]
|
||||
fulfillmentConsumables: [ID!]
|
||||
sellerConsumables: [ID!]
|
||||
marketplaceCardId: String
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user