fix bug
This commit is contained in:
30
main.py
30
main.py
@@ -89,19 +89,14 @@ def Pars():
|
||||
messagebox.showwarning("Предупреждение", "Кадастровые номера не найдены в XML файлах")
|
||||
return
|
||||
|
||||
# 4. Создаем карту номер -> файл для быстрого поиска
|
||||
# 4. Создаем карту номер -> файл для быстрого поиска (для обратной совместимости)
|
||||
cadastral_to_file_map = {}
|
||||
file_to_numbers_map = {} # файл -> множество номеров для поиска смежных
|
||||
|
||||
for record in records:
|
||||
# Для основной карты берем первое вхождение номера
|
||||
if record.number not in cadastral_to_file_map:
|
||||
cadastral_to_file_map[record.number] = record.file_path
|
||||
|
||||
# Для карты файл->номера добавляем все номера из каждого файла
|
||||
if record.file_path not in file_to_numbers_map:
|
||||
file_to_numbers_map[record.file_path] = set()
|
||||
file_to_numbers_map[record.file_path].add(record.number)
|
||||
# Добавляем все номера из объекта в карту
|
||||
for number in record.all_numbers:
|
||||
if number not in cadastral_to_file_map: # Берем первый найденный файл
|
||||
cadastral_to_file_map[number] = record.file_path
|
||||
|
||||
# 5. Обработка Excel файла и организация файлов
|
||||
excel_updated = False
|
||||
@@ -115,13 +110,14 @@ def Pars():
|
||||
excel_numbers = excel_processor.get_cadastral_numbers()
|
||||
|
||||
# Находим пересечения между Excel и найденными номерами
|
||||
found_numbers = set(cadastral_to_file_map.keys())
|
||||
matching_numbers = excel_numbers.intersection(found_numbers)
|
||||
# Теперь ищем по всем номерам в объектах, не только по основным
|
||||
all_found_numbers = seeker.get_all_cadastral_numbers()
|
||||
matching_numbers = excel_numbers.intersection(all_found_numbers)
|
||||
|
||||
if matching_numbers:
|
||||
# Обновляем Excel файл информацией о найденных файлах
|
||||
# Обновляем Excel файл информацией о найденных объектах
|
||||
output_excel_path = str(output_directory / "updated_cadastral_list.xlsx")
|
||||
excel_processor.update_excel_with_file_info(cadastral_to_file_map, output_excel_path)
|
||||
excel_processor.update_excel_with_cadastral_records(records, output_excel_path)
|
||||
excel_updated = True
|
||||
|
||||
# Копируем файлы с номерами из Excel в отдельную папку
|
||||
@@ -221,8 +217,10 @@ def create_report(output_directory, stats, unique_numbers, moved_files, excel_up
|
||||
f.write(f"Общая статистика:\n")
|
||||
f.write(f"- Всего XML файлов найдено: {stats['total_xml_files']}\n")
|
||||
f.write(f"- Файлов с кадастровыми номерами: {stats['files_with_numbers']}\n")
|
||||
f.write(f"- Всего кадастровых номеров: {stats['total_cadastral_numbers']}\n")
|
||||
f.write(f"- Уникальных номеров: {stats['unique_cadastral_numbers']}\n")
|
||||
f.write(f"- Всего кадастровых объектов: {stats['total_cadastral_objects']}\n")
|
||||
f.write(f"- Уникальных основных номеров: {stats['unique_main_numbers']}\n")
|
||||
f.write(f"- Всего номеров во всех объектах: {stats['total_all_numbers']}\n")
|
||||
f.write(f"- Всего уникальных номеров: {stats['unique_all_numbers']}\n")
|
||||
f.write(f"- Файлов скопировано в 'all_xml_files': {len(moved_files)}\n")
|
||||
|
||||
if matching_files_count > 0:
|
||||
|
||||
Reference in New Issue
Block a user