From cf8559ab6cd1faa04afa1759771702487f143a98 Mon Sep 17 00:00:00 2001 From: "MH.Dmitrii" Date: Wed, 29 Oct 2025 20:07:16 +0300 Subject: [PATCH] validation file 1.0 --- server/backend/excel.py | 18 +++---- server/backend/validating_files.py | 75 ++++++++++++++++++++++-------- 2 files changed, 62 insertions(+), 31 deletions(-) diff --git a/server/backend/excel.py b/server/backend/excel.py index bcc22cf..71a2b8a 100644 --- a/server/backend/excel.py +++ b/server/backend/excel.py @@ -1,14 +1,8 @@ import pandas as pd -def read_excel(dir, sheet1, sheet2): - if sheet1 and sheet2: - dfs = pd.read_excel(dir, sheet_name=[sheet1, sheet2]) - df1 = dfs[sheet1] - df2 = dfs[sheet2] - cols1 = df1[["Артикул поставщика", "Кол-во", "Вайлдберриз реализовал Товар (Пр)"]] - print(df1.head(), df2.head(), cols1.head()) - elif sheet1: - dfs = pd.read_excel(dir, sheet_name=[sheet1]) - df1 = dfs[sheet1] - cols1 = df1[["Артикул поставщика", "Кол-во", "Вайлдберриз реализовал Товар (Пр)"]] - print(cols1.head()) +def read_excel(base_dir): + try: + dfs = pd.read_excel(base_dir, sheet_name=None) + return dfs + except Exception as e: + raise f"⚠️ Ошибка при чтении {file.name}: {e}" diff --git a/server/backend/validating_files.py b/server/backend/validating_files.py index c41f8e4..30e2014 100644 --- a/server/backend/validating_files.py +++ b/server/backend/validating_files.py @@ -1,31 +1,68 @@ +from server.backend.excel import read_excel + from dotenv import load_dotenv #Работа с env import os from pathlib import Path load_dotenv() -dir = Path(os.getenv("DIR")) +base_dir = Path(os.getenv("DIR")) + #Проход по всем файлам в директории def validating(): - for file in dir.rglob("*.xlsx"): - name = file.stem + if not base_dir.exists(): + raise (f"Директория {base_dir} не существует") #Проверка существует ли директория + for file in base_dir.rglob("*.xlsx"): + + if file.name.startswith("~$"): #Проверка не редактируемый ли файл + continue + + name = file.stem.lower() + print(f"\n🔹 Файл: {file.name}") match file: - case _ if "period_closure_income" in name.lower(): - #Проверять более подробно - print("Реализация Яндекс ", name) - + case _ if "period_closure_income" in name: + dfs = read_excel(file) + if "Получено от потребителей" and "Возвращено потребителям" in dfs : + print("Реализация Яндекс ", name) + else: + raise Exception(f"В файле {name} отсутствуют необходимые листы") case _ if name == "0": - print("Реализация ВБ", name) + dfs = read_excel(file) + if "Sheet1" in dfs : + print("Реализация ВБ", name) + else: + raise Exception(f"В файле {name} отсутствуют необходимые листы") + case _ if "отчет о реализации товара" in name: + dfs = read_excel(file) + if "Отчет о реализации" in dfs : + print("Реализация ОЗОН", name) + else: + raise Exception(f"В файле {name} отсутствуют необходимые листы") + case _ if "вб" in name.lower() or "озон" in name.lower() or "яндекс" in name: + dfs = read_excel(file) + if "Лист_1" in dfs : + df = dfs["Лист_1"] + if df.iloc[1,0] == "«Интернет решения» ООО": + print("Товары, переданные на комиссию", name) + elif df.iloc[1,0] == "Яндекс Маркет ООО": + print("Товары, переданные на комиссию", name) + elif df.iloc[1,0] == '"Вайлдберриз" ООО': + print("Товары, переданные на комиссию", name) + else: + raise Exception(f"В файле {name} неизвестный контрагент") + else: + raise Exception(f"В файле {name} отсутствуют необходимые листы") - case _ if "отчет о реализации товара" in name.lower(): - print("Реализация ОЗОН", name) - - case _ if "вб" in name.lower() or "озон" in name.lower() or "яндекс" in name.lower(): - print("Товары, переданные на комиссию", name) - - case _ if "realizationreportcis" in name.lower(): - print("Выкупы озон ", name) - - case _ if "уведомление о выкупе" in name.lower(): - print("Выкупы вб ", name) + case _ if "realizationreportcis" in name: + dfs = read_excel(file) + if "Отчет о выкупленных товарах" in dfs : + print("Выкупы озон", name) + else: + raise Exception(f"В файле {name} отсутствуют необходимые листы") + case _ if "уведомление о выкупе" in name: + dfs = read_excel(file) + if "Sheet1" in dfs : + print("Выкупы вб", name) + else: + raise Exception(f"В файле {name} отсутствуют необходимые листы") case _: print("Неизвестный файл")