Files
crm.clientright.ru/crm_extensions/file_storage/resolve_file_394503.php
Fedor ac7467f0b4 Major CRM updates: AI Assistant, Court Status API, S3 integration improvements, and extensive file storage system
- Added comprehensive AI Assistant system (aiassist/ directory):
  * Vector search and embedding capabilities
  * Typebot proxy integration
  * Elastic search functionality
  * Message classification and chat history
  * MCP proxy for external integrations

- Implemented Court Status API (GetCourtStatus.php):
  * Real-time court document status checking
  * Integration with external court systems
  * Comprehensive error handling and logging

- Enhanced S3 integration:
  * Improved file backup system with metadata
  * Batch processing capabilities
  * Enhanced error logging and recovery
  * Copy operations with URL fixing

- Added Telegram contact creation API
- Improved error logging across all modules
- Enhanced callback system for AI responses
- Extensive backup file storage with timestamps
- Updated documentation and README files

- File storage improvements:
  * Thousands of backup files with proper metadata
  * Fix operations for broken file references
  * Project-specific backup and recovery systems
  * Comprehensive file integrity checking

Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
2025-10-16 11:17:21 +03:00

103 lines
4.4 KiB
PHP

<?php
/**
* Resolve file 394503 issue - PDFmaker failed to create file
*/
$ROOT = '/var/www/fastuser/data/www/crm.clientright.ru/';
require_once $ROOT . 'config.inc.php';
// Database connection
$mysqli = new mysqli($dbconfig['db_server'], $dbconfig['db_username'], $dbconfig['db_password'], $dbconfig['db_name']);
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
$mysqli->set_charset("utf8");
echo "=== Решение проблемы файла 394503 ===\n\n";
// Получаем данные файла
$query = "SELECT notesid, title, filename, filetype, filesize, s3_key, s3_bucket, s3_etag, nc_path
FROM vtiger_notes
WHERE notesid = 394503";
$result = $mysqli->query($query);
if ($result && $result->num_rows > 0) {
$row = $result->fetch_assoc();
echo "Текущее состояние файла:\n";
echo "ID: " . $row['notesid'] . "\n";
echo "Название: " . $row['title'] . "\n";
echo "URL: " . ($row['filename'] ?: 'ПУСТОЙ') . "\n";
echo "Размер: " . $row['filesize'] . " байт\n";
echo "S3 Key: " . ($row['s3_key'] ?: 'NULL') . "\n";
echo "S3 Bucket: " . ($row['s3_bucket'] ?: 'NULL') . "\n\n";
echo "ВАРИАНТЫ РЕШЕНИЯ:\n";
echo "1. Удалить некорректную запись из БД\n";
echo "2. Создать пустой файл-заглушку\n";
echo "3. Попытаться найти и восстановить файл\n";
echo "4. Переключить файл на локальное хранение\n\n";
// Вариант 1: Удаление некорректной записи
echo "=== ВАРИАНТ 1: Удаление некорректной записи ===\n";
echo "Создание резервной копии перед удалением...\n";
$backup_dir = $ROOT . 'crm_extensions/file_storage/backups/';
if (!is_dir($backup_dir)) mkdir($backup_dir, 0755, true);
$backup_file = $backup_dir . 'delete_394503_backup_' . date('Ymd_His') . '.json';
$backup = [
'action' => 'delete_broken_file',
'notesid' => $row['notesid'],
'title' => $row['title'],
'original_data' => $row,
'timestamp' => date('c'),
'reason' => 'PDFmaker failed to create file - removing broken record'
];
file_put_contents($backup_file, json_encode($backup, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
echo "Резервная копия сохранена: " . $backup_file . "\n";
// Удаляем связанные записи
echo "Удаление связанных записей...\n";
// Удаляем из vtiger_senotesrel
$delete_rel_query = "DELETE FROM vtiger_senotesrel WHERE notesid = ?";
$stmt1 = $mysqli->prepare($delete_rel_query);
$stmt1->bind_param('i', $row['notesid']);
if ($stmt1->execute()) {
echo "✅ Связанные записи удалены\n";
} else {
echo "❌ Ошибка удаления связанных записей: " . $stmt1->error . "\n";
}
$stmt1->close();
// Удаляем основную запись
$delete_query = "DELETE FROM vtiger_notes WHERE notesid = ?";
$stmt2 = $mysqli->prepare($delete_query);
$stmt2->bind_param('i', $row['notesid']);
if ($stmt2->execute()) {
echo "✅ Некорректная запись файла 394503 удалена\n";
echo "📝 Резервная копия сохранена для возможного восстановления\n";
echo "\n💡 РЕКОМЕНДАЦИЯ: Пересоздайте файл через PDFmaker\n";
} else {
echo "❌ Ошибка удаления записи: " . $stmt2->error . "\n";
}
$stmt2->close();
// Вариант 2: Создание файла-заглушки (альтернативный вариант)
echo "\n=== АЛЬТЕРНАТИВНЫЙ ВАРИАНТ 2: Создание файла-заглушки ===\n";
echo "Если вы хотите создать файл-заглушку вместо удаления,\n";
echo "запустите скрипт create_placeholder_394503.php\n";
} else {
echo "❌ Файл 394503 не найден в базе данных\n";
}
$mysqli->close();
echo "\n=== Решение завершено ===\n";
?>