промежуточно. Работает все, неверно формируется вчерашний отчет (нет выхода).
This commit is contained in:
+9
-11
@@ -3,7 +3,8 @@ import pandas as pd
|
||||
import warnings
|
||||
from config import (
|
||||
normalize_fio, clean_scud_fio_light, load_exceptions,
|
||||
DATA_DIR, SCUD_FILE, SCUD_FILE_TODAY, SCUD_FILE_YESTERDAY
|
||||
DATA_DIR, SCUD_FILE, SCUD_FILE_TODAY, SCUD_FILE_YESTERDAY,
|
||||
STAFF_FILE_1C, ABSENT_FILE_1C
|
||||
)
|
||||
|
||||
warnings.filterwarnings('ignore', category=UserWarning, module='pandas')
|
||||
@@ -20,19 +21,17 @@ def is_excluded(fio, dept, pos, exceptions):
|
||||
return False
|
||||
|
||||
def load_staff_data():
|
||||
staff_path = os.path.join(DATA_DIR, "Штатные сотрудники - ОУП.xlsx")
|
||||
if not os.path.exists(staff_path):
|
||||
raise FileNotFoundError(f"Файл штатного расписания не найден: {staff_path}")
|
||||
df_staff = pd.read_excel(staff_path, skiprows=7)
|
||||
if not os.path.exists(STAFF_FILE_1C):
|
||||
raise FileNotFoundError(f"Файл штатного расписания не найден по пути: {STAFF_FILE_1C}")
|
||||
df_staff = pd.read_excel(STAFF_FILE_1C, skiprows=7)
|
||||
df_staff = df_staff.rename(columns={df_staff.columns[1]: 'ФИО'})
|
||||
df_staff['fio_clean'] = df_staff['ФИО'].apply(normalize_fio)
|
||||
return df_staff
|
||||
|
||||
def load_absent_data():
|
||||
absent_path = os.path.join(DATA_DIR, "Отсутствия сотрудников - выгрузка.xlsx")
|
||||
if not os.path.exists(absent_path):
|
||||
raise FileNotFoundError(f"Файл отсутствий не найден: {absent_path}")
|
||||
df_absent_raw = pd.read_excel(absent_path, skiprows=3)
|
||||
if not os.path.exists(ABSENT_FILE_1C):
|
||||
raise FileNotFoundError(f"Файл отсутствий не найден по пути: {ABSENT_FILE_1C}")
|
||||
df_absent_raw = pd.read_excel(ABSENT_FILE_1C, skiprows=3)
|
||||
df_absent = df_absent_raw[1:].copy().reset_index(drop=True)
|
||||
df_absent = df_absent.rename(columns={df_absent.columns[0]: 'ФИО', df_absent.columns[2]: 'Вид_отсутствия'})
|
||||
df_absent['fio_clean'] = df_absent['ФИО'].apply(normalize_fio)
|
||||
@@ -41,7 +40,7 @@ def load_absent_data():
|
||||
def load_scud_data():
|
||||
scud_path = SCUD_FILE_TODAY if os.path.exists(SCUD_FILE_TODAY) else (SCUD_FILE_YESTERDAY if os.path.exists(SCUD_FILE_YESTERDAY) else SCUD_FILE)
|
||||
if not os.path.exists(scud_path):
|
||||
raise FileNotFoundError(f"Файл СКУД не найден в папке {DATA_DIR}")
|
||||
raise FileNotFoundError(f"Файл СКУД не найден в папке data/scud: {scud_path}")
|
||||
|
||||
df_scud = pd.read_excel(scud_path)
|
||||
exceptions = load_exceptions()
|
||||
@@ -63,7 +62,6 @@ def load_scud_data():
|
||||
|
||||
df_scud['Пришел'] = df_scud.apply(is_person_present, axis=1)
|
||||
|
||||
# Отмечаем флаг исключений, но НЕ удаляем сразу
|
||||
df_scud['is_excluded'] = df_scud.apply(
|
||||
lambda r: is_excluded(r.get('Сотрудник', ''), r.get('Подразделение', ''), r.get('Должность', ''), exceptions),
|
||||
axis=1
|
||||
|
||||
Reference in New Issue
Block a user