Files
sam-docs/plans/kd-quote-logic-plan.md
권혁성 cc049ce5e0 docs: 품목 마이그레이션 완료 및 견적 로직 계획 추가
- 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>
2026-01-28 23:01:40 +09:00

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. 관련 문서


7. 변경 이력

날짜 항목 변경 내용
2026-01-28 문서 생성 초기 계획 수립, 레거시 DB 분석 결과 반영

이 문서는 5130 분석 진행에 따라 지속 업데이트됩니다.