fix: D(도즈) 단위는 boxes=units로 처리 (나잘스프레이 등)
This commit is contained in:
parent
dc2a992c12
commit
0f69b50c49
31
backend/check_raninex.py
Normal file
31
backend/check_raninex.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import requests
|
||||||
|
|
||||||
|
# 지오영 확인
|
||||||
|
geo = requests.get('http://localhost:7001/api/geoyoung/orders/summary-by-kd?start_date=2026-03-07&end_date=2026-03-07', timeout=120).json()
|
||||||
|
print("=== 지오영 ===")
|
||||||
|
for kd, info in geo.get('by_kd_code', {}).items():
|
||||||
|
if '라니넥스' in info['product_name'] or '나잘' in info['product_name']:
|
||||||
|
print(f" KD: {kd}")
|
||||||
|
print(f" product_name: {info['product_name']}")
|
||||||
|
print(f" spec: {info['spec']}")
|
||||||
|
print(f" boxes: {info['boxes']}")
|
||||||
|
print(f" units: {info['units']}")
|
||||||
|
print()
|
||||||
|
|
||||||
|
# 수인 확인
|
||||||
|
sooin = requests.get('http://localhost:7001/api/sooin/orders/summary-by-kd?start_date=2026-03-07&end_date=2026-03-07', timeout=120).json()
|
||||||
|
print("=== 수인약품 ===")
|
||||||
|
found = False
|
||||||
|
for kd, info in sooin.get('by_kd_code', {}).items():
|
||||||
|
if '라니넥스' in info['product_name'] or '나잘' in info['product_name']:
|
||||||
|
print(f" KD: {kd}")
|
||||||
|
print(f" product_name: {info['product_name']}")
|
||||||
|
print(f" spec: {info['spec']}")
|
||||||
|
print(f" boxes: {info['boxes']}")
|
||||||
|
print(f" units: {info['units']}")
|
||||||
|
found = True
|
||||||
|
print()
|
||||||
|
|
||||||
|
if not found:
|
||||||
|
print(" (없음)")
|
||||||
24
backend/check_search_spec.py
Normal file
24
backend/check_search_spec.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import requests
|
||||||
|
|
||||||
|
# 스틸녹스 검색해서 spec 필드 확인
|
||||||
|
res = requests.get('http://localhost:7001/api/geoyoung/stock?keyword=스틸녹스', timeout=30)
|
||||||
|
data = res.json()
|
||||||
|
|
||||||
|
print("=== 지오영 제품 검색 결과 ===")
|
||||||
|
for item in data.get('items', [])[:3]:
|
||||||
|
print(f" product_name: {item.get('product_name')}")
|
||||||
|
print(f" specification: {item.get('specification')}")
|
||||||
|
print(f" stock: {item.get('stock')}")
|
||||||
|
print()
|
||||||
|
|
||||||
|
# 수인도 확인
|
||||||
|
res2 = requests.get('http://localhost:7001/api/sooin/stock?keyword=스틸녹스', timeout=30)
|
||||||
|
data2 = res2.json()
|
||||||
|
|
||||||
|
print("=== 수인 제품 검색 결과 ===")
|
||||||
|
for item in data2.get('items', [])[:3]:
|
||||||
|
print(f" name: {item.get('name')}")
|
||||||
|
print(f" spec: {item.get('spec')}")
|
||||||
|
print(f" stock: {item.get('stock')}")
|
||||||
|
print()
|
||||||
@ -600,15 +600,19 @@ def api_geoyoung_orders_by_kd():
|
|||||||
"""
|
"""
|
||||||
규격에서 수량 추출 (30T → 30, 100C → 100)
|
규격에서 수량 추출 (30T → 30, 100C → 100)
|
||||||
|
|
||||||
우선순위:
|
단위 처리:
|
||||||
1. spec에서 T/C/P/D 단위 숫자 (예: 14T → 14)
|
- T/C/P: 정/캡슐/포 → 숫자 그대로 (30T → 30)
|
||||||
2. product_name에서 T/C/P/D 단위 숫자
|
- D: 도즈/분사 → 1로 처리 (140D → 1, 박스 단위)
|
||||||
3. spec의 첫 번째 숫자 (fallback)
|
- mg/ml/g: 용량 → 1로 처리
|
||||||
"""
|
"""
|
||||||
combined = f"{spec} {product_name}"
|
combined = f"{spec} {product_name}"
|
||||||
|
|
||||||
# T/C/P/D 단위가 붙은 숫자 우선 추출 (예: 14T, 100C, 30P, 140D)
|
# D(도즈) 단위는 박스 단위로 계산 (140D → 1)
|
||||||
qty_match = re.search(r'(\d+)\s*[TCPD]\b', combined, re.IGNORECASE)
|
if re.search(r'\d+\s*D\b', combined, re.IGNORECASE):
|
||||||
|
return 1
|
||||||
|
|
||||||
|
# T/C/P 단위가 붙은 숫자 추출 (예: 14T, 100C, 30P)
|
||||||
|
qty_match = re.search(r'(\d+)\s*[TCP]\b', combined, re.IGNORECASE)
|
||||||
if qty_match:
|
if qty_match:
|
||||||
return int(qty_match.group(1))
|
return int(qty_match.group(1))
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user