Files
sam-api/CURRENT_WORKS.md
hskwon dd0da9f0c5 docs: BOM 계산 시스템 구현 작업 현황 정리
- CURRENT_WORKS.md에 2025-09-22 작업 내용 추가
- 1~3단계 완료 내용 상세 기록
- 추가/수정된 파일 목록 및 작업 내용 정리
- 검증 완료 사항 및 시스템 개선 효과 문서화

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 22:15:16 +09:00

7.5 KiB

SAM 프로젝트 작업 현황

2025-09-19 (목요일) - 프로젝트 리셋 및 환경 정리

주요 작업

  • 프로젝트 리셋: 785e367 커밋으로 전체 프로젝트 롤백
  • 환경 정리: 불필요한 시스템 파일 및 로그 파일 삭제 (52MB 절약)
  • 프로젝트 구조 개선: CLAUDE.md 파일 관리 체계 구축

저장소별 작업 내용

API 저장소 (/api)

수정된 파일:

  • CLAUDE.md - 프로젝트 가이드 파일 추가 (최상단에서 복사)

작업 내용:

  • Git 리셋: 785e367 (감사 로그 도입) 커밋으로 hard reset
  • 데이터베이스 마이그레이션 롤백 후 재실행 (batch 10 → 감사 로그까지)
  • 불필요한 Estimate 관련 임시 파일들 삭제
  • 시스템 파일 정리: .DS_Store, PHPUnit 캐시, Laravel 로그 (52MB) 삭제

마이그레이션 상태:

  • 최종 실행된 마이그레이션: 2025_09_11_000100_create_audit_logs_table
  • 현재 batch: 14

Frontend 저장소 (/front/www)

삭제된 파일:

  • application/views/kdcom/estimates/ (디렉토리)
  • application/views/kdcom/estimates_list.php
  • assets/ (디렉토리)

작업 내용:

  • 작업 중이던 estimates 관련 뷰 파일들 정리
  • 브랜치 상태: develop (최신 상태 유지)

Admin 저장소 (/admin)

삭제된 파일:

  • config/filament.php

작업 내용:

  • 추가된 Filament 설정 파일 정리
  • 브랜치 상태: develop (최신 상태 유지)

Shared 저장소 (/shared)

작업 내용:

  • 변경사항 없음 (깨끗한 상태 유지)
  • 브랜치 상태: develop (최신 상태)

환경 개선 사항

  1. 파일 정리: 총 52MB의 불필요한 파일 삭제

    • .DS_Store 파일들 (macOS 시스템 파일)
    • PHPUnit 캐시 파일 (3KB)
    • Laravel 로그 파일 (52MB)
  2. 프로젝트 관리 체계 구축:

    • CLAUDE.md 파일을 API 서버에도 복사
    • CURRENT_WORKS.md 파일 생성으로 작업 추적 체계 마련

추가 완료된 작업

  1. 프로젝트 관리 체계 구축:

    • CLAUDE.md 워크플로우 가이드 완성
    • Git 커밋 컨벤션 및 관리 체계 정립
    • 체크포인트 시스템 구축
  2. 데이터베이스 스키마 점검:

    • samdb 전체 테이블 구조 분석 (70개 테이블, 3.42MB)
    • 핵심 테이블 스키마 상세 문서화
    • Multi-tenant 아키텍처 및 감사 시스템 확인
  3. 문서화 시스템:

    • CHECKPOINT_2025-09-19.md: 완전한 복원 지점 생성
    • DATABASE_SCHEMA_2025-09-19.md: DB 스키마 상세 보고서
    • CLAUDE.md: 프로젝트 워크플로우 가이드 포함

최종 커밋 상태

  • API 저장소: 08f775e - 프로젝트 워크플로우 가이드 포함
  • Frontend 저장소: ec18d70 - 수주관리 화면 개발 완료
  • Admin/Shared: 깨끗한 상태 유지

최종 상태

  • 모든 저장소: 깨끗한 상태로 정리 완료
  • 문서화: 완전한 프로젝트 가이드 및 체크포인트 생성
  • 환경: 다른 장소에서 동일한 작업 환경 재현 가능
  • 백업: 안전한 복원 지점 확보

다른 장소에서 작업 시작 방법

  1. git pull origin develop (모든 저장소)
  2. Docker 서비스 실행 확인
  3. CLAUDE.md 파일 동기화 확인
  4. CHECKPOINT_2025-09-19.md 참조하여 환경 검증
  5. php artisan migrate:status로 DB 상태 확인

2025-09-22 (일요일) - 업체별 동적 BOM 계산 시스템 구현

주요 작업

  • BOM 계산 시스템 구현: 경동기업 하드코딩 산출식을 업체별 동적 시스템으로 전환
  • 1~3단계 완료: 데이터베이스 스키마 확장 → 계산 엔진 개발 → API 구현
  • 견적 시스템 개선: BOM에서 필요 조건 추출하여 동적 견적 화면 구현 기반 마련

추가된 파일

  • database/migrations/2025_09_22_215127_add_calculation_fields_to_bom_tables.php - BOM 테이블 계산 필드 확장
  • database/migrations/2025_09_22_215217_create_calculation_configs_table.php - 업체별 산출식 설정 테이블
  • app/Services/Calculation/CalculationEngine.php - 계산 프로세스 오케스트레이션
  • app/Services/Calculation/FormulaParser.php - 업체별 산출식 파싱/실행
  • app/Services/Calculation/ParameterValidator.php - 파라미터 검증 엔진
  • app/Models/Calculation/CalculationConfig.php - 업체별 산출식 설정 모델
  • app/Services/Design/BomCalculationService.php - BOM 계산 비즈니스 로직
  • app/Http/Controllers/Api/V1/Design/BomCalculationController.php - BOM 계산 API 컨트롤러
  • app/Http/Requests/Design/GetEstimateParametersRequest.php - 견적 파라미터 조회 검증
  • app/Http/Requests/Design/CalculateBomRequest.php - BOM 계산 요청 검증
  • app/Http/Requests/Design/SaveCompanyFormulaRequest.php - 업체 산출식 저장 검증

수정된 파일

  • routes/api.php - BOM 계산 API 라우트 5개 추가

작업 내용

1단계: 데이터베이스 스키마 확장

  • bom_templates 테이블 확장:

    • calculation_schema (JSON) - 견적 파라미터 스키마
    • company_type (VARCHAR 50) - 업체 타입 (경동기업, 삼성물산 등)
    • formula_version (VARCHAR 20) - 산출식 버전
  • bom_template_items 테이블 확장:

    • is_calculated (BOOLEAN) - 계산식 적용 여부
    • calculation_formula (TEXT) - 계산식 표현식
    • depends_on (JSON) - 의존성 파라미터
    • calculation_config (JSON) - 계산 설정
  • calculation_configs 테이블 신규:

    • 업체별 산출식 버전 관리, 멀티테넌트 지원, JSON 기반 파라미터 정의

2단계: 계산 엔진 개발

  • CalculationEngine: BOM 파라미터 추출 → 중간값 계산 → 아이템별 수량 산출
  • FormulaParser: 경동기업/삼성물산 산출식 지원, 안전한 수식 파싱
  • ParameterValidator: JSON 스키마 기반 검증, 한국어 에러 메시지

3단계: API 구현

  • API 엔드포인트 5개:
    • GET /design/models/{id}/estimate-parameters - BOM별 필요 파라미터 동적 추출
    • POST /design/bom-templates/{id}/calculate-bom - 실시간 BOM 수량 계산
    • GET /design/companies/{name}/formulas - 업체별 산출식 목록 조회
    • POST /design/companies/{name}/formulas/{type} - 업체별 산출식 등록/수정
    • POST /design/formulas/test - 산출식 배포 전 테스트

검증 완료 사항

  • FormulaParser: 경동기업 스크린 사이즈 계산 정상 작동
  • ParameterValidator: 파라미터 검증 및 한국어 에러 메시지 정상
  • CalculationConfig: 데이터베이스 CRUD 및 버전 관리 정상
  • API Routes: 5개 엔드포인트 정상 등록 및 라우트 캐시 성공

마이그레이션 상태 변경

  • 이전: batch 11까지 실행 완료
  • 현재: batch 12로 마이그레이션 2개 추가 실행

Git 커밋 정보

  • 커밋 해시: bd678df
  • 브랜치: develop
  • 파일 변경: 15개 파일 (11개 신규 생성, 4개 수정)
  • 라인 변경: +2039 추가, -3 삭제

시스템 개선 효과

  • 개발 효율성: 하드코딩 → 설정 기반 동적 계산으로 전환
  • 운영 편의성: 코드 수정 없이 관리자 화면에서 업체별 산출식 등록 가능
  • 확장 가능성: 새로운 업체 추가 시 코드 변경 없이 설정만으로 지원

다음 단계 (4단계)

  • front/www 저장소: 견적 화면 BOM별 동적 파라미터 입력 폼 구현
  • admin 저장소: 업체별 산출식 관리 인터페이스 구현

최종 업데이트: 2025-09-22 23:15 KST 상태: BOM 계산 시스템 구현 완료