- pets 테이블 추가 (이름, 종류, 품종, 사진 등) - 반려동물 CRUD API (/api/pets) - 확장 마이페이지 (/mypage) - 카카오 로그인 기반 - 기존 마이페이지에 퀵 메뉴 추가 (반려동물/쿠폰/구매내역/내정보) - 카카오 로그인 시 세션에 user_id 저장 - 동물약 APC 매핑 가이드 문서 추가
177 lines
5.7 KiB
Markdown
177 lines
5.7 KiB
Markdown
# 동물약 APC 매핑 가이드
|
|
|
|
> 최종 업데이트: 2026-03-02
|
|
|
|
## 개요
|
|
|
|
POS(PIT3000)의 동물약 제품을 APDB의 APC 코드와 매핑하여 제품 정보(용법, 용량, 주의사항) 및 이미지를 표시하기 위한 작업 가이드.
|
|
|
|
---
|
|
|
|
## 현재 상태
|
|
|
|
### 매핑 현황
|
|
|
|
| 구분 | 개수 | 비율 |
|
|
|------|------|------|
|
|
| 동물약 총 | 39개 | 100% |
|
|
| APC 매핑됨 | 7개 | 18% |
|
|
| **APC 미매핑** | **32개** | **82%** |
|
|
|
|
### 매핑 완료 제품
|
|
|
|
| POS 제품명 | DrugCode | APC |
|
|
|------------|----------|-----|
|
|
| (판)복합개시딘 | LB000003140 | 0231093520106 |
|
|
| 안텔민킹(5kg이상) | LB000003158 | 0230237810109 |
|
|
| 안텔민뽀삐(5kg이하) | LB000003157 | 0230237010107 |
|
|
| 파라캅L(5kg이상) | LB000003159 | 0230338510101 |
|
|
| 파라캅S(5kg이하) | LB000003160 | 0230347110106 |
|
|
| 세레니아정16mg(개멀미약) | LB000003353 | 0231884610109 |
|
|
| 세레니아정24mg(개멀미약) | LB000003354 | 0231884620107 |
|
|
|
|
---
|
|
|
|
## 매핑 구조
|
|
|
|
### 데이터베이스 연결
|
|
|
|
```
|
|
MSSQL (192.168.0.4\PM2014) PostgreSQL (192.168.0.87:5432)
|
|
┌─────────────────────────┐ ┌─────────────────────────┐
|
|
│ PM_DRUG.CD_GOODS │ │ apdb_master.apc │
|
|
│ - DrugCode │ │ - apc (PK) │
|
|
│ - GoodsName │ │ - product_name │
|
|
│ - BARCODE │ │ - image_url1 │
|
|
│ │ │ - llm_pharm (JSONB) │
|
|
├─────────────────────────┤ └─────────────────────────┘
|
|
│ PM_DRUG.CD_ITEM_UNIT_ │
|
|
│ MEMBER │
|
|
│ - DRUGCODE (FK) │
|
|
│ - CD_CD_BARCODE ◀───────┼── APC 코드 저장 (023%로 시작)
|
|
│ - CHANGE_DATE │
|
|
└─────────────────────────┘
|
|
```
|
|
|
|
### APC 매핑 방식
|
|
|
|
1. `CD_ITEM_UNIT_MEMBER` 테이블에 **추가 바코드**로 APC 등록
|
|
2. 기존 바코드는 유지, APC를 별도 레코드로 INSERT
|
|
3. APC 코드는 `023%`로 시작 (식별자)
|
|
|
|
---
|
|
|
|
## 1:1 매핑 가능 후보
|
|
|
|
### ✅ 확실한 매핑 (1개)
|
|
|
|
| POS 제품명 | DrugCode | APC | APDB 제품명 | 이미지 |
|
|
|------------|----------|-----|-------------|--------|
|
|
| **제스타제(10정)** | LB000003146 | 8809720800455 | 제스타제 | ✅ 있음 |
|
|
|
|
### ⚠️ 검토 필요 (1개)
|
|
|
|
| POS 제품명 | DrugCode | APC 후보 | 비고 |
|
|
|------------|----------|----------|------|
|
|
| 안텔민 | S0000001 | 0230237800003 | "안텔민킹"과 "안텔민뽀삐"는 이미 별도 매핑됨. 이 제품이 무엇인지 확인 필요 |
|
|
|
|
### ❌ APDB에 없음 (3개)
|
|
|
|
| POS 제품명 | 사유 |
|
|
|------------|------|
|
|
| (판)클라펫정50(100정) | APDB엔 "클라펫 정"만 있음 (함량 불일치) |
|
|
| 넥스가드xs(2~3.5kg) | 사이즈별 APC 없음 |
|
|
| 캐치원캣(2.5~7.5kg)/고양이 | APDB에 캐치원 자체가 없음 |
|
|
|
|
---
|
|
|
|
## 1:N 매핑 필요 제품 (27개)
|
|
|
|
사이즈별로 세분화된 제품들. 하나의 APDB APC에 여러 POS 제품을 매핑해야 함.
|
|
|
|
### 브랜드별 현황
|
|
|
|
| 브랜드 | POS 제품 수 | APDB 존재 | 비고 |
|
|
|--------|-------------|-----------|------|
|
|
| 다이로하트 | 3개 (SS/S/M) | ✅ | 다이로하트 츄어블 정 |
|
|
| 하트세이버 | 4개 (mini/S/M/L) | ✅ | 하트세이버 플러스 츄어블 |
|
|
| 하트웜솔루션 | 2개 (S/M) | ❌ | APDB에 없음 |
|
|
| 리펠로 | 2개 (S/M) | ✅ | 리펠로액 (이미지 있음!) |
|
|
| 캐치원 | 5개 (SS/S/M/L/캣) | ❌ | APDB에 없음 |
|
|
| 셀라이트 | 5개 (SS/S/M/L/XL) | ✅ | 셀라이트 액 |
|
|
| 넥스가드 | 2개 (xs/L) | ✅ | 넥스가드 스펙트라 |
|
|
| 가드닐 | 3개 (S/M/L) | ✅ | 가드닐 액 |
|
|
| 심피드 | 2개 (M/L) | ❌ | APDB에 없음 |
|
|
| 하트캅 | 1개 | ✅ | 하트캅-츄어블 정 |
|
|
|
|
---
|
|
|
|
## APDB 통계
|
|
|
|
| 항목 | 수치 |
|
|
|------|------|
|
|
| 전체 APC | 16,326개 |
|
|
| 이미지 있음 | 73개 (0.4%) |
|
|
| LLM 정보 있음 | 81개 (0.5%) |
|
|
| 동물 관련 키워드 | ~200개 |
|
|
|
|
⚠️ **주의:** APDB에 이미지가 거의 없음. 이미지 표시가 목적이라면 다른 소스 필요.
|
|
|
|
---
|
|
|
|
## 매핑 스크립트
|
|
|
|
### 매핑 후보 찾기
|
|
```bash
|
|
python backend/scripts/batch_apc_matching.py
|
|
```
|
|
|
|
### 1:1 매핑 가능 후보 추출
|
|
```bash
|
|
python backend/scripts/find_1to1_candidates.py
|
|
```
|
|
|
|
### 매핑 실행 (수동)
|
|
```python
|
|
# backend/scripts/batch_insert_apc.py 참고
|
|
MAPPINGS = [
|
|
('제스타제(10정)', 'LB000003146', '8809720800455'),
|
|
]
|
|
```
|
|
|
|
### INSERT 쿼리 예시
|
|
```sql
|
|
INSERT INTO CD_ITEM_UNIT_MEMBER (
|
|
DRUGCODE, CD_CD_UNIT, CD_NM_UNIT, CD_MY_UNIT, CD_IN_UNIT,
|
|
CD_CD_BARCODE, CD_CD_POS, CHANGE_DATE
|
|
) VALUES (
|
|
'LB000003146', -- DrugCode
|
|
'015', -- 단위코드
|
|
1.0, -- 단위명
|
|
<기존값>, -- CD_MY_UNIT (기존 레코드에서 복사)
|
|
<기존값>, -- CD_IN_UNIT (기존 레코드에서 복사)
|
|
'8809720800455', -- APC 바코드
|
|
'',
|
|
'20260302' -- 변경일자
|
|
)
|
|
```
|
|
|
|
---
|
|
|
|
## 다음 단계
|
|
|
|
1. **제스타제** 1:1 매핑 실행
|
|
2. **안텔민(S0000001)** 제품 확인 후 결정
|
|
3. 1:N 매핑 정책 결정 (사이즈별 제품 → 동일 APC?)
|
|
4. 이미지 소스 대안 검토 (필요시)
|
|
|
|
---
|
|
|
|
## 관련 파일
|
|
|
|
- `backend/db/dbsetup.py` - DB 연결 설정
|
|
- `backend/scripts/batch_apc_matching.py` - 매칭 후보 찾기
|
|
- `backend/scripts/batch_insert_apc.py` - 매핑 실행
|
|
- `backend/scripts/find_1to1_candidates.py` - 1:1 후보 추출
|
|
- `backend/app.py` - `_get_animal_drugs()`, `_get_animal_drug_rag()`
|