From b1d5bcfc98e835c2a7c7d82c7c4332f13b84578d Mon Sep 17 00:00:00 2001 From: thug0bin Date: Sat, 28 Feb 2026 11:43:18 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20APC=20=EC=97=86=EC=9D=84=20=EB=95=8C=20?= =?UTF-8?q?=EB=B0=94=EC=BD=94=EB=93=9C=EB=A1=9C=20PostgreSQL=20RAG=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/backend/app.py b/backend/app.py index 943d283..ed955dd 100644 --- a/backend/app.py +++ b/backend/app.py @@ -2737,10 +2737,15 @@ def _get_animal_drug_rag(apc_codes): def _get_animal_drugs(): - """보유 중인 동물약 목록 조회 (APC 이미지 포함)""" + """보유 중인 동물약 목록 조회 (APC 이미지 포함) + + APC 우선순위: + 1. CD_ITEM_UNIT_MEMBER에서 023%로 시작하는 APC 코드 + 2. 없으면 기존 BARCODE를 PostgreSQL에서 조회 (바코드=APC인 경우) + """ try: drug_session = db_manager.get_session('PM_DRUG') - # CD_ITEM_UNIT_MEMBER에서 APC 바코드 조회 (0230237로 시작하는 것) + # CD_ITEM_UNIT_MEMBER에서 APC 바코드 조회 (023%로 시작하는 것) query = text(""" SELECT G.DrugCode, @@ -2764,16 +2769,22 @@ def _get_animal_drugs(): result = [] for r in rows: apc = r.APC_CODE if hasattr(r, 'APC_CODE') else None + barcode = r.BARCODE or '' image_url = None - if apc: - # APC가 있으면 이미지 URL 생성 + + # APC가 없으면 바코드를 APC로 사용 (PostgreSQL에서 바코드=APC인 경우) + if not apc and barcode: + apc = barcode + + if apc and apc.startswith('023'): + # 023으로 시작하는 APC만 이미지 URL 생성 image_url = f"https://ani.0bin.in/img/{apc}_F.jpg" result.append({ 'code': r.DrugCode, 'name': r.GoodsName, 'price': float(r.Saleprice) if r.Saleprice else 0, - 'barcode': r.BARCODE or '', + 'barcode': barcode, 'apc': apc, 'image_url': image_url })