thug0bin
e1711d9176
fix(animal-chat): 프롬프트 + RAG 최적화
...
1. 프롬프트 개선:
- 상세 요청 감지 ('자세히', '설명해줘' 등)
- 상세 요청 시 10-15문장 응답
- RAG 검색 결과 적극 활용 지시
2. 벡터 검색 수정:
- L2 거리 → 유사도 변환: 1/(1+distance)
- 음수 유사도 문제 해결
- 임계값 0.3 적용 (30% 미만 제외)
3. 컨텍스트 주입 개선:
- 상세 질문 시 n_results=5로 증가
- RAG 활용 지시 추가
2026-03-08 15:28:58 +09:00
thug0bin
5d7a8fc3f4
feat(animal-chat): 로깅 시스템 구축
...
- SQLite DB: animal_chat_logs.db
- 로거 모듈: utils/animal_chat_logger.py
- 단계별 로깅:
- MSSQL (보유 동물약): 개수, 소요시간
- PostgreSQL (RAG): 개수, 소요시간
- LanceDB (벡터 검색): 상위 N개, 유사도, 소스, 소요시간
- OpenAI: 모델, 토큰(입력/출력), 비용, 소요시간
- Admin 페이지: /admin/animal-chat-logs
- API: /api/animal-chat-logs
- 통계: 총 대화, 평균 응답시간, 총 토큰, 총 비용
2026-03-08 15:17:11 +09:00
thug0bin
be1e6c2bb7
feat(animal-chat): LanceDB 벡터 검색 RAG 통합
...
- LanceDB로 MD 문서 252개 청크 인덱싱
- /api/animal-chat에 벡터 검색 컨텍스트 주입
- 마지막 사용자 메시지로 관련 문서 검색 (top 3)
- ChromaDB Windows crash로 LanceDB 채택
2026-03-08 15:00:39 +09:00
thug0bin
3631da2953
fix(products): PC 촬영 시 이미지 데이터 null 버그 수정
...
- closeImageModal() 호출 전 imageData 로컬 변수에 저장
- closeImageModal()에서 capturedImageData = null 초기화로 인한 버그
2026-03-08 14:06:09 +09:00
thug0bin
3507d17dc5
fix(upload): 모바일 QR 업로드 이미지 처리 수정
...
- PIL 이미지 처리 추가 (product-images API와 동일)
- 800x800 리사이즈
- 200x200 썸네일 생성
- RGBA->RGB 변환
- 1:1 중앙 크롭
2026-03-08 13:57:32 +09:00
thug0bin
90cb91d644
fix(upload): product_name NOT NULL 에러 수정
...
- 세션 생성 시 product_name 저장
- 업로드 API에서 product_name INSERT
- 프론트엔드에서 product_name 전달
2026-03-08 13:49:23 +09:00
thug0bin
aef867645e
fix(upload): render_template_string import 추가
...
- 모바일 업로드 페이지 500 에러 수정
- Flask import에 render_template_string 추가
2026-03-08 13:45:50 +09:00
thug0bin
4614fc4c0d
feat(products): 모바일 이미지 업로드 QR 시스템 추가
...
- API 3개 추가:
- POST /api/upload-session (세션 생성)
- GET /api/upload-session/{id} (상태 확인/폴링)
- POST /api/upload-session/{id}/image (이미지 업로드)
- 모바일 업로드 페이지 (/upload/{session_id})
- 이미지 등록 모달에 '📱 모바일' 탭 추가
- QR 스캔 → 모바일 촬영 → PC 실시간 반영
- 2초 폴링으로 업로드 완료 감지
- 세션 10분 만료, 메모리 기반 관리
- Edit 툴로 부분 수정하여 인코딩 유지
2026-03-08 13:40:12 +09:00
thug0bin
a7bcf46aaa
feat(반품관리): 위치 지정 기능 추가
...
- 위치 뱃지 클릭 시 위치 수정 모달 표시
- '미지정' 뱃지 스타일 (점선 테두리, 클릭 유도)
- 기존 위치 선택 드롭다운 + 직접 입력 가능
- 위치 삭제 기능
- products 페이지와 동일한 API 재활용 (/api/locations, /api/drugs/.../location)
- 다크 테마에 맞는 모달 스타일
- Edit 툴로 부분 수정하여 인코딩 유지
2026-03-08 12:45:06 +09:00
thug0bin
e82f4be4af
feat(반품관리): 위치 컬럼 추가
...
- CSS: .location-badge (노란 배지 스타일)
- 테이블 헤더에 위치 컬럼 추가
- API의 location 필드 활용 (CD_item_position 조인)
- Edit으로 부분 수정하여 인코딩 유지
2026-03-08 11:16:13 +09:00
thug0bin
eda0429a85
fix(반품관리): 인코딩 수정 (UTF-8)
...
- admin_return_management.html 한글 깨짐 수정
- Python으로 UTF-8 인코딩으로 전체 파일 재작성
- 모든 기능 유지 (입고이력, 위치 컬럼 등)
2026-03-08 11:08:02 +09:00
thug0bin
71d1916efb
feat(반품관리): 약품 위치 컬럼 추가
...
- API: return-candidates에서 CD_item_position 조인하여 위치 정보 반환
- 테이블에 '위치' 컬럼 추가 (노란색 뱃지 스타일)
- 위치 미지정 약품은 '-' 표시
2026-03-08 10:46:43 +09:00
thug0bin
c71c9ad678
feat(반품관리): 약품 더블클릭 시 입고이력 모달 추가
...
- admin_return_management.html 업데이트:
- 입고이력 모달 스타일/HTML 추가 (다크테마 적용)
- tr ondblclick → openPurchaseModal()
- 도매상 전화번호 클릭 시 복사 기능
- 테이블 위에 더블클릭 힌트 추가
- 상태변경 버튼에 event.stopPropagation() 추가
2026-03-08 10:35:48 +09:00
thug0bin
91f8dea5b4
feat(재고): 약품 더블클릭 시 입고이력 모달 추가
...
- 새 API: GET /api/drugs/<drug_code>/purchase-history
- WH_sub + WH_main + PM_BASE.CD_custom 조인
- 도매상명, 입고일, 수량, 단가, 전화번호 반환
- admin_products.html 업데이트:
- tr ondblclick → openPurchaseModal()
- 입고이력 모달 UI/스타일 추가
- 도매상 전화번호 클릭 시 복사 기능
- 결과 카운트 옆에 더블클릭 힌트 추가
- 기타 onclick에 event.stopPropagation() 추가 (충돌 방지)
2026-03-08 10:33:21 +09:00
thug0bin
d6cf4c2cc1
feat: 반품관리 페이지 추가
2026-03-08 10:03:42 +09:00
thug0bin
09948c234f
feat(rx-usage): 선호 도매상 컬럼 추가
...
- 테이블에 '선호도매상' 컬럼 추가
- 입고장 기반 최다/최근 주문 도매상 표시
- API: /api/order/drugs/preferred-vendors 연동
- Python 스크립트로 안전하게 수정
2026-03-07 23:12:42 +09:00
thug0bin
a23e4bad43
feat: 약품별 선호 도매상 API + delivery_schedules 테이블
...
- GET /api/order/drug/{code}/preferred-vendor: 약품별 선호 도매상 조회
- POST /api/order/drugs/preferred-vendors: 일괄 조회
- MSSQL 입고장 데이터 활용 (WH_main, WH_sub)
- 최근 주문 도매상 + 최다 주문 도매상 반환
DB:
- delivery_schedules 테이블 생성 (orders.db)
- 도매상별 주문 마감시간/배송 도착시간 관리
2026-03-07 22:49:12 +09:00
thug0bin
1088720081
fix(baekje): /orders/summary-by-kd에서 새 API 사용
...
- get_order_list(include_details=True)로 한 번에 조회
- 접수 상태(확정 전)도 집계에 포함
- pending_count, approved_count 응답에 추가
2026-03-07 22:20:15 +09:00
thug0bin
497aeee75f
feat(baekje): order_api에서 선별 주문 사용
...
- submit_order_selective로 기존 장바구니 보존
- 지오영/수인과 동일한 방식 적용
2026-03-07 21:42:15 +09:00
thug0bin
0ae4ae66f0
fix(baekje): 장바구니 담기 시 internal_code 사용하도록 수정
...
- kd_code 대신 internal_code로 장바구니 추가
- internal_code 없으면 검색 후 규격 매칭으로 찾기
- 백제 장바구니 담기 정상 작동 확인
2026-03-07 21:29:00 +09:00
thug0bin
232a77006a
fix: 지오영 주문량 집계 시 취소/삭제 상태 제외
...
- status에 '취소' 또는 '삭제' 포함 시 집계 제외
- 예: '취소(삭제)' 상태
2026-03-07 18:14:00 +09:00
thug0bin
20fc528c2b
fix: 조회 버튼 클릭 시 주문량도 갱신
2026-03-07 18:10:11 +09:00
thug0bin
0f69b50c49
fix: D(도즈) 단위는 boxes=units로 처리 (나잘스프레이 등)
2026-03-07 17:49:03 +09:00
thug0bin
dc2a992c12
fix: 규격 파싱 - T/C/P/D 수량 단위 우선, mg/ml 용량 단위 무시
...
- parse_spec 함수 개선: product_name에서도 수량 단위 추출
- 예: '스틸녹스정10mg(PTP) 14T' → spec='10mg'이어도 14T에서 14 추출
2026-03-07 17:31:18 +09:00
thug0bin
21c8124811
fix: 지오영 summary-by-kd에 KD코드 enrich 추가
2026-03-07 17:08:18 +09:00
thug0bin
33c6cd2d5c
feat: 처방약품 사용량 페이지 - 주문량 지오영+수인 합산
...
- GET /api/geoyoung/orders/summary-by-kd 추가
- admin_rx_usage.html: 두 도매상 병렬 조회 후 합산 표시
- 콘솔에 도매상별 주문량 로깅
2026-03-07 17:07:25 +09:00
thug0bin
e5744e4f0f
feat(geoyoung): 주문 조회 API 엔드포인트 추가
...
- GET /api/geoyoung/order-list: 기간별 주문 목록
- GET /api/geoyoung/order-detail/<order_num>: 주문 상세
- GET /api/geoyoung/order-today: 오늘 주문 요약
수인약품 API와 동일한 엔드포인트 구조
2026-03-07 17:01:22 +09:00
thug0bin
1720c108b5
fix: 상세 모달 날짜도 UTC → KST 변환
2026-03-07 11:40:05 +09:00
thug0bin
d842c776c9
fix: 날짜 표시 UTC → KST 변환 (admin 페이지들)
2026-03-07 11:38:37 +09:00
thug0bin
c1fae04344
docs: PAAI 트러블슈팅 기록 (2026-03-07)
2026-03-07 11:06:07 +09:00
thug0bin
b6d0fadb3c
fix: OTC 라벨 모듈 import 경로 수정 (PM2 환경 호환)
2026-03-07 10:44:44 +09:00
thug0bin
ee300f80ca
feat: 소수 환자 약품 뱃지 표시
...
- 1년간 3명 이하 환자만 사용하는 약품에 환자 이름 뱃지 표시
- 조회 기간 내 사용한 환자는 핑크색으로 강조
- 매출액 컬럼명 변경 (약가 → 매출액)
- SUM(DRUPRICE)로 매출액 계산
2026-03-07 00:43:02 +09:00
thug0bin
846883cbfa
feat: 주문 모달 한도/매출 표시 및 UI 개선
...
- 도매상 한도 API 추가 (wholesaler_limits 테이블)
- 다중 도매상 모달: 월 한도 + 실제 월 매출 표시
- 주문 후 예상 사용량 계산 및 경고 표시
- 이모지 대신 로고 이미지 사용
- 약가 → 매출액 헤더 변경
- 매출액 계산: SUM(DRUPRICE)
2026-03-07 00:24:32 +09:00
thug0bin
29597d55fa
feat: 주문 모달에 금액 표시 추가
2026-03-07 00:01:02 +09:00
thug0bin
442815b65e
feat(rx-usage): 주문 모달 개선 - 버튼 3분할 + 총액 표시
...
- 🧪 테스트 / 🛒 장바구니만 / 🚀 즉시주문 버튼 분리
- cart_only 파라미터로 장바구니만 담기 기능 지원
- 주문 확인 모달에 총액 표시 추가
- 모달 너비 확장 (600px/650px)
2026-03-06 23:47:25 +09:00
thug0bin
a672c7a2a0
feat(order): 지오영/수인 선택적 주문 + 장바구니 보존 기능
...
- internal_code DB 저장 → 프론트에서 선택한 제품 그대로 주문
- 기존 장바구니 백업/복구로 사용자 장바구니 보존
- 수인약품 submit_order() 수정 (체크박스 제외 방식)
- 테스트 파일 정리 및 문서 추가
2026-03-06 23:26:44 +09:00
thug0bin
f48e657e12
fix(order): 지오영 internal_code 있으면 검색 스킵
...
- 프론트에서 이미 선택한 품목의 internal_code 사용
- 검색 없이 바로 add_to_cart 호출
- 재고 불일치 문제 해결
2026-03-06 22:19:48 +09:00
thug0bin
268f5bce8f
feat(order): 지오영 선별 주문 구현 완료
...
- full_order(auto_confirm=False)로 장바구니에 담기
- internal_code 사용 (product_code 아님)
- submit_order_selective()로 선별 주문
- 기존 장바구니 품목 보존, 복원 완료
2026-03-06 22:15:09 +09:00
thug0bin
ad58cde952
fix(order): 지오영 quick_order 파라미터명 수정 (specification → spec)
2026-03-06 22:03:58 +09:00
thug0bin
760aea6f89
feat(order): 지오영 주문도 선별 주문 적용
...
- quick_order로 장바구니 담기 (auto_confirm 제거)
- submit_order_selective로 선별 주문
- 기존 품목 보존, 이번에 담은 것만 주문
2026-03-06 22:00:50 +09:00
thug0bin
be95f8b3d1
feat(order): 수인약품 선별 주문 및 rx-usage 주문 전송 개선
...
- order_api.py: 수인 주문 시 submit_order_selective() 사용 (기존 품목 보존)
- admin_rx_usage.html: cart_only=false로 변경 (장바구니+주문확정)
- 버튼 텍스트 변경: 장바구니 담기 → 주문 전송
2026-03-06 21:52:40 +09:00
thug0bin
5519f5ae62
feat: 도매상 잔고 모달에 월간 매출 추가
...
- 백제/지오영/수인 월간매출 API 라우트 추가
- 모달 UI: 잔고 + 월간 매출 동시 표시
- 총 주문액 / 총 미수금 요약 표시
2026-03-06 18:01:37 +09:00
thug0bin
4b2d934839
feat: 백제약품 월간 매출 API 라우트 추가
2026-03-06 17:57:06 +09:00
thug0bin
06c975ce34
fix: 백제약품 로고를 공식 SVG로 교체
2026-03-06 17:22:08 +09:00
thug0bin
ad0b55ee2d
feat: 도매상 설정 중앙 관리 시스템
...
- config/wholesalers.json: 도매상 정보 중앙 관리 (ID, 이름, 로고, 색상, API)
- config/__init__.py: Python 헬퍼 (get_wholesalers, get_wholesaler)
- wholesaler_config_api.py: /api/config/wholesalers 엔드포인트
- 백제약품 로고(favicon) 추가: logo_baekje.ico
- 잔고 모달에 로고 표시 기능 추가
2026-03-06 17:18:40 +09:00
thug0bin
2d09f139ca
feat: Rx 사용량 페이지에 도매상 잔고 조회 버튼 추가
...
- 💰 도매상 잔고 버튼 (검색 바 옆)
- 모달로 백제/지오영/수인 3개 도매상 잔고 표시
- 총 미수금 합계 표시
- 새로고침 기능
2026-03-06 16:26:26 +09:00
thug0bin
1829c3efa7
feat: 지오영/수인 잔고 API 엔드포인트 추가
...
- GET /api/geoyoung/balance
- GET /api/sooin/balance
2026-03-06 16:15:23 +09:00
thug0bin
241e65aaf1
feat: 백제약품 잔고 API 엔드포인트 추가
...
GET /api/baekje/balance - 잔고액 조회
2026-03-06 15:00:15 +09:00
thug0bin
ddba17ae08
feat: 처방 사용량 페이지에 약품 위치 표시
...
- rx-usage API에 CD_item_position.CD_NM_sale 조인 추가
- 제품코드 옆에 위치 배지 표시 (📍 A-1 형태)
- 인디고 색상 작은 배지로 UI 해치지 않게
2026-03-06 13:41:39 +09:00
thug0bin
055fad574d
feat: 백제약품 프론트엔드 완전 통합
...
- 도매상 재고 조회에 백제 추가
- searchBaekjeAPI 함수 추가
- renderWholesaleResults에 백제 섹션 추가
- addToCartFromWholesale에 백제 처리 추가
- executeOrder에 백제 도매상 필터 추가
- CSS 스타일 추가 (주황색 테마)
2026-03-06 13:18:29 +09:00