fix(baekje): /orders/summary-by-kd에서 새 API 사용

- get_order_list(include_details=True)로 한 번에 조회
- 접수 상태(확정 전)도 집계에 포함
- pending_count, approved_count 응답에 추가
This commit is contained in:
thug0bin 2026-03-07 22:20:15 +09:00
parent 497aeee75f
commit 1088720081

View File

@ -321,8 +321,9 @@ def api_baekje_orders_by_kd():
try:
session = get_baekje_session()
# 1. 주문 목록 조회
orders_result = session.get_order_list(start_date, end_date)
# 주문 목록 + 상세를 한 번에 조회 (include_details=True)
# 접수 상태(확정 전)도 포함됨!
orders_result = session.get_order_list(start_date, end_date, include_details=True)
if not orders_result.get('success'):
return jsonify({
@ -340,22 +341,16 @@ def api_baekje_orders_by_kd():
'order_count': 0,
'period': {'start': start_date, 'end': end_date},
'by_kd_code': {},
'total_products': 0
'total_products': 0,
'pending_count': 0,
'approved_count': 0
})
# 2. 주문 상세 정보 배치 조회 (items 포함)
details_result = session.get_order_details_batch(orders=orders)
if not details_result.get('success'):
logger.warning(f"백제 주문 상세 조회 실패: {details_result.get('error')}")
details = details_result.get('details', {})
# KD코드별 집계
# KD코드별 집계 (items가 이미 각 order에 포함됨)
kd_summary = {}
for order_num, detail in details.items():
for item in detail.get('items', []):
for order in orders:
for item in order.get('items', []):
# 취소 상태 제외
status = item.get('status', '').strip()
if '취소' in status or '삭제' in status:
@ -383,11 +378,16 @@ def api_baekje_orders_by_kd():
kd_summary[kd_code]['boxes'] += quantity
kd_summary[kd_code]['units'] += total_units
logger.info(f"백제 주문량 집계: {start_date}~{end_date}, {len(orders)}건 주문, {len(kd_summary)}개 품목")
pending_count = orders_result.get('pending_count', 0)
approved_count = orders_result.get('approved_count', 0)
logger.info(f"백제 주문량 집계: {start_date}~{end_date}, {len(orders)}건 (접수:{pending_count}, 승인:{approved_count}), {len(kd_summary)}개 품목")
return jsonify({
'success': True,
'order_count': len(orders),
'pending_count': pending_count, # 접수 상태 (확정 전)
'approved_count': approved_count, # 승인 상태 (확정됨)
'period': {'start': start_date, 'end': end_date},
'by_kd_code': kd_summary,
'total_products': len(kd_summary)