- 통합 분류기 구현으로 키워드 우선순위 체계 적용
- HEX.PLUG → FITTING 분류 수정 (기존 VALVE 오분류 해결)
- 플랜지/밸브가 볼트로 오분류되는 문제 해결 (A193, A194 재질 키워드 우선순위 적용)
- 피팅 재질(A234, A403, A420) 기반 분류 추가
- 니플 길이 정보 보존 로직 개선
- 파이프 끝단 가공 정보를 구매 단계에서 제외
- PostgreSQL 사용으로 RULES.md 업데이트
- 상호 배타적 키워드 시스템 구현 (Level 1 키워드 우선)
- 자재 리비전간 비교 기능 추가 (MaterialComparisonPage) - 버그 해결 필요
- 리비전간 추가 구매 필요 자재 분석 페이지 추가 (RevisionPurchasePage)
- 자재 비교 결과 컴포넌트 구현 (MaterialComparisonResult)
- 자재 비교 API 라우터 추가 (material_comparison.py) - 로직 개선 필요
- 자재 비교 시스템 데이터베이스 스키마 추가
- FileManager, FileUpload 컴포넌트 개선
- BOMManagerPage 제거 및 새로운 구조로 리팩토링
- 자재 분류기 및 스키마 개선
TODO: 자재 비교 알고리즘 정확도 향상 및 예외 처리 강화 필요
🧮 구매 수량 계산 로직:
- PIPE: 절단 손실(3mm/절단) + 6M 단위 올림 계산
- 일반 자재: 여유율 + 최소 주문 수량 적용
- 자재별 차별화된 여유율 (VALVE 50%, BOLT 20% 등)
🛒 구매 관리 API:
- /purchase/items/calculate: 실시간 구매 수량 계산
- /purchase/items/save: 구매 품목 DB 저장
- /purchase/revision-diff: 리비전간 차이 계산
- /purchase/orders/create: 구매 주문 생성
🧪 테스트 검증:
- PIPE 절단 손실 계산: 25,000mm → 5본 (정확)
- 여유율 적용: VALVE 2개 → 3개 (50% 예비)
- 최소 주문: BOLT 24개 → 50개 (박스 단위)
📱 프론트엔드:
- PurchaseConfirmationPage 라우팅 추가
- 구매확정 버튼 → 구매 페이지 이동
- 볼트 길이 추출 로직 개선: '70.0000 LG' 형태 인식 추가
- 재질 중복 표시 수정: 'ASTM A193 ASTM A193 B7' → 'B7'
- A193/A194 등급 추출 로직 개선: 'GR B7/2H' 형태 지원
- bolt_details 테이블에 pressure_rating 컬럼 추가
- 볼트 분류기 오분류 방지: 플랜지/피팅이 볼트로 분류되지 않도록 수정
- 업로드 성능 개선: 키워드 기반 빠른 분류기 선택 로직 추가
- 분류 키워드 대폭 확장: 피팅/파이프/플랜지 키워드 추가
🔧 주요 개선사항:
- EXCLUDE 분류기 추가 (WELD GAP 등 제외 대상 처리)
- FITTING 분류기 키워드 확장 (ELL, RED 추가)
- PIPE 재질 중복 문제 해결 (material_grade 파싱 개선)
- NIPPLE 특별 처리 추가 (스케줄 + 길이 정보 포함)
- OLET 타입 중복 표시 제거
📊 분류 정확도:
- UNKNOWN: 0개 (100% 분류 성공)
- EXCLUDE: 1,014개 (제외 대상)
- 실제 자재: 1,823개 정확 분류
🎯 해결된 문제:
- PIPE 재질 'ASTM A106 ASTM A106' → 'ASTM A106 GR B'
- WELD GAP 오분류 → EXCLUDE 카테고리
- FITTING 키워드 인식 실패 → ELL, RED 키워드 추가
- 프론트엔드 중복 표시 제거
- 모든 자재 카테고리별 상세 테이블 생성 (fitting, valve, flange, bolt, gasket, instrument)
- PIPE, FITTING, VALVE 분류 결과를 각 상세 테이블에 저장하는 로직 구현
- 프론트엔드 라우팅 정리 및 BOM 현황 페이지 기능 개선
- 자재확인 페이지 에러 처리 개선
TODO: FLANGE, BOLT, GASKET, INSTRUMENT 저장 로직 추가 필요
🎯 주요 성과:
- 8개 주요 자재군 완전 분류 시스템 구축
- 재질 분류 엔진 + 개별 자재별 특화 분류
- 스풀 관리 시스템 (파이프 절단 계획용)
- 실제 BOM 데이터 기반 설계 및 테스트
📁 새로 추가된 자재 분류 시스템:
- app/services/pipe_classifier.py (파이프 + 스풀 관리)
- app/services/fitting_classifier.py (피팅 10가지 타입)
- app/services/flange_classifier.py (플랜지 SPECIAL/STANDARD)
- app/services/valve_classifier.py (밸브 단조/주조 구분)
- app/services/gasket_classifier.py (가스켓 8가지 타입)
- app/services/bolt_classifier.py (볼트/너트/와셔 통합)
- app/services/instrument_classifier.py (계기류 기본)
🔧 분류 성능:
- PIPE: 제조방법, 끝가공, 스케줄, 절단계획
- FITTING: 타입, 연결방식, 압력등급, 제작방법
- FLANGE: SPECIAL(10종)/STANDARD(6종), 면가공
- VALVE: 9가지 타입, 단조/주조 구분, 작동방식
- GASKET: 8가지 타입, 재질별, 온도/압력 범위
- BOLT: 체결재 3종, 나사규격, 강도등급
📊 기술적 특징:
- 정규표현식 기반 패턴 매칭 엔진
- 신뢰도 점수 시스템 (0.0-1.0)
- 증거 기반 분류 추적 (evidence tracking)
- 모듈화 구조로 재사용성 극대화
- 실제 DAT_FILE + DESCRIPTION 패턴 분석
🎯 분류 커버리지:
- 재질: ASTM/ASME 표준 + 특수합금 (INCONEL, TITANIUM)
- 제작방법: FORGED, CAST, SEAMLESS, WELDED 자동 판단
- 압력등급: 150LB ~ 9000LB 전 범위
- 연결방식: BW, SW, THD, FL 등 모든 방식
- 사이즈: 1/8" ~ 48" 전 범위
💾 데이터 통합:
- 기존 materials 테이블과 완전 호환
- 프로젝트/도면 정보 자동 연결
- 스풀 정보 사용자 입력 대기 (파이프만)
- 구매 정보 자동 생성 (공급업체, 납기)
🧪 테스트 완료:
- 각 시스템별 10+ 테스트 케이스
- 실제 BOM 데이터 기반 검증
- 예외 상황 처리 테스트
- 신뢰도 검증 완료
Version: v2.0 (Major Release)
Date: 2024-07-15
Author: hyungiahn
Breaking Changes: 새로운 분류 시스템 추가 (기존 호환성 유지)
Next Phase: files.py 통합 및 웹 인터페이스 연동
🎯 주요 기능:
- 재질 분류 모듈 (ASTM/ASME 규격 자동 인식)
- PIPE 분류 시스템 (제조방법, 끝가공, 스케줄, 절단계획)
- FITTING 분류 시스템 (10가지 타입, 연결방식, 압력등급)
- FLANGE 분류 시스템 (SPECIAL/STANDARD 구분, 면가공)
- 스풀 관리 시스템 (도면별 A,B,C 넘버링, 에리어 관리)
📁 새로 추가된 파일들:
- app/services/materials_schema.py (재질 규격 데이터베이스)
- app/services/material_classifier.py (공통 재질 분류 엔진)
- app/services/pipe_classifier.py (파이프 전용 분류기)
- app/services/fitting_classifier.py (피팅 전용 분류기)
- app/services/flange_classifier.py (플랜지 전용 분류기)
- app/services/spool_manager_v2.py (수정된 스풀 관리)
- app/services/test_*.py (각 시스템별 테스트 파일)
🔧 기술적 특징:
- 정규표현식 기반 패턴 매칭
- 신뢰도 점수 시스템 (0.0-1.0)
- 증거 기반 분류 (evidence tracking)
- 모듈화된 구조 (재사용 가능)
🎯 분류 정확도:
- 재질 분류: 90-95% 신뢰도
- PIPE 분류: 85-95% 신뢰도
- FITTING 분류: 85-95% 신뢰도
- FLANGE 분류: 85-95% 신뢰도
💾 데이터베이스 연동:
- 모든 분석 결과 자동 저장
- 프로젝트/도면 정보 자동 연결
- 스풀 정보 사용자 입력 대기
🧪 테스트 커버리지:
- 실제 BOM 데이터 기반 테스트
- 예외 케이스 처리
- 10+ 개 테스트 시나리오
Version: v1.0
Date: 2024-07-15
Author: hyungiahn