- kd-items-migration-plan.md: 정적 데이터 마이그레이션 완료 표시 - Phase 4 검증 결과 추가 (items 651건, prices 651건) - 후속 작업으로 kd-quote-logic-plan.md 연결 - kd-quote-logic-plan.md: 신규 생성 - 5130 견적 로직 분석 계획 - 동적 BOM 계산 (모터/제어기/부자재) - Phase 0~5 작업 계획 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
6.0 KiB
6.0 KiB
경동기업 견적 로직 분석 및 구현 계획
작성일: 2026-01-28 목적: 5130 레거시 견적 시스템 분석 → SAM 동적 BOM/견적 로직 구현 선행 작업: kd-items-migration-plan.md (정적 품목/단가 완료) 상태: 🔵 분석 대기
🚀 Quick Start
이 문서의 목적
정적 품목 데이터는 이관 완료 (items 651건, prices 651건). 이제 동적으로 BOM을 계산하고 견적을 산출하는 로직을 5130에서 분석하여 SAM에 구현.
환경 정보
| 항목 | 값 |
|---|---|
| 레거시 소스 | 5130/ (프로젝트 루트) |
| 대상 테넌트 | 287 (경동기업) |
| 관련 SAM 페이지 | https://dev.sam.kr/sales/quote-management/new |
📍 현재 진행 상태
| 항목 | 내용 |
|---|---|
| 현재 단계 | Phase 0: 분석 대기 |
| 다음 작업 | 5130 견적 로직 파일 탐색 |
| 진행률 | 0/5 (0%) |
| 마지막 업데이트 | 2026-01-28 |
1. 배경 및 문제 정의
1.1 현재 상황
SAM 견적 화면에서 FG-KSS01-벽면형-SUS 선택 시:
- 현재: 3개 항목만 표시 (가이드레일, 하단마감재, L-BAR)
- 기대: 본체, 절곡품, 모터/제어기, 부자재 등 전체 BOM
1.2 레거시 DB 구조 (분석 완료)
models (모델 마스터)
└─ parts (대분류 부품: 가이드레일, 하단마감재)
└─ parts_sub (세부 절곡품: 1번마감제, 2번본체, 3번-C, 4번-D...)
KSS01 벽면형 예시:
| 대분류 (parts) | 세부품 (parts_sub) | 재질 | 수량 |
|---|---|---|---|
| 가이드레일 | 1번(마감제) | SUS 1.2T | 1 |
| 2번(본체) | EGI 1.55T | 2 | |
| 3번(벽면형-C) | EGI 1.55T | 1 | |
| 4번(벽면형-D) | EGI 1.55T | 1 | |
| 하단마감재 | 1번(하장바) | SUS 1.5T | 1 |
1.3 동적 항목 (5130 분석 필요)
| 항목 | 설명 | 레거시 소스 |
|---|---|---|
| 모터 | W0, H0 기반 용량 자동 계산 | 5130 로직 분석 필요 |
| 제어기 | 모터 사양에 따라 연동 | 5130 로직 분석 필요 |
| 부자재 | 모델/규격별 자동 추가 | 5130 로직 분석 필요 |
| 절곡품 수량 | 파라미터 기반 동적 계산 | 5130 로직 분석 필요 |
2. 분석 대상
2.1 5130 디렉토리 구조 (예상)
5130/
├── estimate/ # 견적 관련 (우선 분석)
├── output/ # 출력/리포트
├── dbeditor/ # DB 관리
└── [기타 모듈]/
2.2 분석 우선순위
| 순위 | 대상 | 목적 |
|---|---|---|
| 1 | 견적 생성 로직 | BOM 자동 구성 방식 파악 |
| 2 | 모터 계산 로직 | W0/H0 → 모터 용량 공식 |
| 3 | 절곡품 계산 로직 | 파라미터 → 수량/단가 공식 |
| 4 | 부자재 추가 로직 | 모델별 자동 추가 규칙 |
| 5 | 가격 산출 로직 | 최종 견적 금액 계산 |
3. 작업 계획
Phase 0: 5130 탐색 및 구조 파악
- 5130/ 디렉토리 구조 분석
- 견적 관련 파일 식별
- 주요 함수/클래스 목록화
Phase 1: 견적 생성 로직 분석
- 모델 선택 → BOM 구성 흐름 파악
- 동적 항목 추가 조건 분석
- DB 조회 패턴 파악
Phase 2: 계산 공식 추출
- 모터 용량 계산 공식
- 절곡품 수량/단가 계산 공식
- 부자재 자동 추가 규칙
Phase 3: SAM 설계
- API 엔드포인트 설계
- Service 클래스 설계
- DB 스키마 변경 필요 여부
Phase 4: SAM 구현
- BOM 동적 계산 Service
- 견적 API 수정
- 프론트엔드 연동
Phase 5: 검증
- 레거시 vs SAM 결과 비교
- 사용자 테스트
- 배포
4. 레거시 분석 기록
4.1 분석된 테이블
| 테이블 | 용도 | 분석 상태 |
|---|---|---|
| models | 모델 마스터 | ✅ 완료 |
| parts | 대분류 부품 | ✅ 완료 |
| parts_sub | 세부 절곡품 | ✅ 완료 |
| BDmodels | BOM + 단가 JSON | ✅ 완료 |
| price_motor | 모터 단가 | ✅ 완료 |
| price_shaft | 샤프트 계산 참조 | ✅ 완료 |
| price_pipe | 파이프 계산 참조 | ✅ 완료 |
| price_raw_materials | 원자재 단가 | ✅ 완료 |
4.2 분석 예정 (5130 코드)
| 파일/모듈 | 예상 내용 | 분석 상태 |
|---|---|---|
| estimate/* | 견적 생성 로직 | ⏳ 대기 |
| (TBD) | 모터 계산 | ⏳ 대기 |
| (TBD) | 절곡품 계산 | ⏳ 대기 |
5. 기술적 고려사항
5.1 SAM 아키텍처 준수
// Service-First 패턴
class QuoteBomService extends Service
{
public function calculateDynamicBom(int $modelId, array $parameters): array
{
// 1. 정적 BOM 조회 (items.bom)
// 2. 파라미터 기반 동적 항목 계산
// 3. 모터/제어기 자동 추가
// 4. 부자재 자동 추가
// 5. 단가 계산
}
}
5.2 API 설계 (예상)
POST /api/v1/quotes/calculate-bom
Request:
{
"model_id": 13147, // FG-KSS01-벽면형-SUS
"parameters": {
"W0": 3000, // 폭
"H0": 2000, // 높이
"installation_type": "벽면형",
"power_source": "220V"
}
}
Response:
{
"static_bom": [...], // 기존 items.bom
"dynamic_items": [...], // 모터, 제어기, 부자재
"calculated_values": {
"motor_capacity": "150K",
"total_area": 6.0,
"estimated_weight": 45.5
},
"pricing": {...}
}
6. 관련 문서
- kd-items-migration-plan.md - 정적 품목/단가 이관 (완료)
- kd-orders-migration-plan.md - 입고/재고/주문 이관
- SAM API Rules - api/CLAUDE.md
7. 변경 이력
| 날짜 | 항목 | 변경 내용 |
|---|---|---|
| 2026-01-28 | 문서 생성 | 초기 계획 수립, 레거시 DB 분석 결과 반영 |
이 문서는 5130 분석 진행에 따라 지속 업데이트됩니다.