From 9dab27529de3f6a42674268117170328607dbc6d Mon Sep 17 00:00:00 2001 From: KWON Date: Mon, 27 Oct 2025 15:07:03 +0900 Subject: [PATCH] =?UTF-8?q?DB=EC=97=90=20=EC=A0=80=EC=9E=A5=EB=90=9C=20?= =?UTF-8?q?=EC=B5=9C=EA=B7=BC=20=EB=82=A0=EC=A7=9C=EB=A5=BC=20=EC=B6=9C?= =?UTF-8?q?=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/file_watch.py | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/lib/file_watch.py b/lib/file_watch.py index 4fc7ba6..14375bc 100644 --- a/lib/file_watch.py +++ b/lib/file_watch.py @@ -1,18 +1,26 @@ import time -import os +import os, sys +import threading from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler -import threading +from sqlalchemy import select, func +# 상위 경로를 sys.path에 추가해 프로젝트 내 모듈 임포트 가능하게 설정 +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) +from conf import db, db_schema + +# 처리 스크립트 import pos_update_bill import pos_update_daily_product +# 데이터 폴더 DATA_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), '../data')) FILE_EXTENSIONS = ('.xls', '.xlsx') BILL_PREFIX = "영수증별매출상세현황" DAILY_PRODUCT_PREFIX = "일자별 (상품별)" + class NewFileHandler(FileSystemEventHandler): def __init__(self): super().__init__() @@ -63,6 +71,32 @@ class NewFileHandler(FileSystemEventHandler): with self._lock: self._processing_files.discard(filename) + +def check_latest_dates(): + """pos 및 pos_billdata 테이블의 최신 일자 조회""" + try: + engine = db.engine + with engine.connect() as conn: + # pos 테이블 + pos_latest = conn.execute( + select(func.max(db_schema.pos.c.date)) + ).scalar() + + # pos_billdata 테이블 + bill_latest = conn.execute( + select(func.max(db_schema.pos_billdata.c.sale_date)) + ).scalar() + + print("============================================") + print("[DB] 최근 데이터 저장일") + print(f" - pos : {pos_latest if pos_latest else '데이터 없음'}") + print(f" - pos_billdata : {bill_latest if bill_latest else '데이터 없음'}") + print("============================================") + + except Exception as e: + print(f"[DB] 최근 날짜 조회 중 오류 발생: {e}") + + def start_watching(): print(f"[WATCHER] '{DATA_DIR}' 폴더 감시 시작") event_handler = NewFileHandler() @@ -77,5 +111,7 @@ def start_watching(): observer.stop() observer.join() + if __name__ == "__main__": + check_latest_dates() # ✅ 감시 시작 전 DB의 최신 날짜 출력 start_watching()