From 26d0753579590de2dbd2a19629225d5a09cd51fb Mon Sep 17 00:00:00 2001 From: king Date: Thu, 25 Jun 2026 18:07:17 +0900 Subject: [PATCH] =?UTF-8?q?fix(dispatch):=20=EC=82=AC=EB=B0=A9=EB=84=B7=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EB=A7=B5=20=EB=B9=84=EB=A9=B4=20=EA=B3=B5?= =?UTF-8?q?=EB=9E=80=20=ED=8C=8C=EC=9D=BC=20=EB=8C=80=EC=8B=A0=20=EB=AA=85?= =?UTF-8?q?=ED=99=95=ED=95=9C=20=EC=97=90=EB=9F=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사방넷 코드 맵이 통째로 비어 상품코드[필수] 열이 전부 공란이 되는 경우, 조용히 잘못된 파일을 주지 않고 single_items/set_items SELECT 권한/등록 확인을 안내하는 422 를 반환. Co-Authored-By: Claude Opus 4.8 --- app/modules/dispatch/router.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/modules/dispatch/router.py b/app/modules/dispatch/router.py index 96996cb..4c8acf1 100644 --- a/app/modules/dispatch/router.py +++ b/app/modules/dispatch/router.py @@ -448,6 +448,20 @@ async def stock_export( detail += f" (itemcode 리더 오류: {hint})" raise HTTPException(status_code=422, detail=detail) + # 사방넷 코드 맵이 통째로 비어 있으면 A열(상품코드[필수])이 전부 공란이 된다. + # 보통 itemcode_ro 의 single_items/set_items SELECT 권한 누락이 원인. + reader = getattr(request.app.state, "malaysia_itemcode", None) + if getattr(reader, "enabled", False) and not sabangnet_map: + hint = getattr(reader, "last_error", "") or getattr(reader, "reason", "") + detail = ( + "사방넷 코드 맵이 비어 있어 상품코드[필수] 열을 채울 수 없습니다. " + "itemcode_db 의 single_items/set_items 에 sabangnet_code 가 등록돼 있는지, " + "읽기 전용 역할(itemcode_ro)에 두 테이블 SELECT 권한이 있는지 확인하세요." + ) + if hint: + detail += f" (itemcode 리더 오류: {hint})" + raise HTTPException(status_code=422, detail=detail) + xlsx_bytes = export.build_stock_xlsx(rows=rows, set_bom=set_bom, sabangnet_map=sabangnet_map) fname = export.stock_filename(d) headers = {