Commit Graph

68 Commits

Author SHA1 Message Date
Hyungi Ahn
e8fb531fdb 🎯 선택 컬럼 대폭 축소 - 경계선 위치 수정
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 선택: 3.5% → 2% (체크박스에 딱 맞게)
- 종류: 6.5% → 8% (배지 표시 공간 확보)
- 본문의 border-right가 선택 컬럼 끝에 위치하도록 조정
- 모든 카테고리에 일괄 적용
2025-10-13 15:58:02 +09:00
Hyungi Ahn
e45bcf12c0 🔧 선택/종류 컬럼 비율 재조정
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 선택: 2.5% → 3.5% (체크박스 공간 확보)
- 종류: 7.5% → 6.5% (배지 크기에 맞게 축소)
- 모든 카테고리에 일괄 적용
2025-10-13 15:55:00 +09:00
Hyungi Ahn
48b100d0d4 🔧 PIPE 수량 셀 단순화 - wrapper div 제거
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- quantity-info, quantity-details wrapper 제거
- 단순 span으로 변경하여 grid 구조 정상화
- 추가 정보(단관 개수, 길이)는 제거
- 이제 헤더와 본문이 완벽히 정렬됨
2025-10-13 15:52:35 +09:00
Hyungi Ahn
f1fe614977 테이블 정렬 완료 - 백분율 기반 컬럼 너비
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 모든 카테고리의 컬럼을 백분율(%)로 통일
- 선택: 2.5%, 종류: 7.5%로 최적화
- 화면 너비에 맞게 꽉 차도록 표시
- 헤더와 본문이 완벽하게 정렬됨
- 엑셀과 유사한 깔끔한 테이블 완성
2025-10-13 15:50:55 +09:00
Hyungi Ahn
e3d0c4d9a0 💯 컬럼 너비를 백분율로 변경 - 화면 꽉 차게 표시
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 모든 고정 픽셀 너비를 백분율(%)로 변경
- 화면 너비에 맞게 테이블이 꽉 차도록 설정
- overflow-x: hidden으로 가로 스크롤 제거
- 헤더와 본문이 정확히 동일한 백분율 사용
- 예: PIPE 9개 컬럼 = 5% 8% 12% 8% 10% 20% 12% 15% 10%
- 이제 어떤 화면 크기에서도 헤더와 본문이 완벽히 정렬됨
2025-10-13 15:44:51 +09:00
Hyungi Ahn
5a9274d42b 🔧 테이블 border 구조 수정 - 양쪽 테두리 통일
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 헤더 행의 border-left, border-right 제거
- 본문 행의 border-left, border-right 제거
- 대신 첫/마지막 셀에 border 적용으로 통일
- materials-grid의 외곽 border가 전체를 감쌈
- 불필요한 이중 border 제거
2025-10-13 15:41:58 +09:00
Hyungi Ahn
1d2ab35d18 🎯 컬럼 고정 너비 적용 - minmax 제거
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 문제 원인: minmax(최소값, auto)로 인해 내용에 따라 컬럼 크기 변동
- 모든 minmax()를 고정 너비로 변경
- 헤더와 본문이 항상 정확히 동일한 너비 유지
- 예: minmax(130px, auto) → 130px
- 이제 모든 카테고리에서 완벽한 정렬 보장
2025-10-13 15:40:15 +09:00
Hyungi Ahn
805d164124 🔒 반응형 제거 및 고정 너비 적용
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 문제 원인: 반응형 구조로 인해 브라우저 크기에 따라 컬럼 너비가 변경됨
- materials-page: min-width: 1400px 적용
- materials-grid: min-width: 1200px, width: fit-content 적용
- 이제 테이블이 고정 너비를 유지하고 스크롤로 확인 가능
- 헤더와 본문이 항상 동일한 너비 유지
2025-10-13 15:38:48 +09:00
Hyungi Ahn
f09e494bd4 🗑️ 전체(ALL) 카테고리 제거 - 헤더/본문 정렬 문제 해결
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 전체 카테고리 버튼 제거
- 기본 선택 카테고리를 PIPE로 변경
- 문제 원인: 전체 카테고리에서 서로 다른 컬럼 수를 가진 자재들이 섞여서 표시됨
  (PIPE 9개, FLANGE 10개, GASKET 11개 등)
- 이제 각 카테고리별로만 표시되어 헤더와 본문이 완벽히 정렬됨
- quantity-info wrapper 제거로 셀 구조 단순화
2025-10-13 15:30:27 +09:00
Hyungi Ahn
a0d22508be 엑셀 스타일 테이블 완성 - 헤더/본문 완벽 정렬
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 헤더와 본문의 border 색상 통일 (#d1d5db)
- 테이블 전체에 일관된 border 적용
- 헤더 상단 border 추가로 완전한 박스 형태
- 모든 카테고리에서 헤더와 본문이 정확히 일치
- 엑셀과 동일한 깔끔한 그리드 스타일
2025-10-13 15:27:11 +09:00
Hyungi Ahn
fa032e95c6 📊 엑셀 스타일 테이블 완성 - 동적 컬럼 너비
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 모든 카테고리에 minmax() 적용으로 내용에 맞게 컬럼 자동 확장
- 헤더와 본문에 동일한 padding: 6px 4px 적용
- 모든 margin 제거하고 순수 grid로 구성
- materials-grid에 외곽 border 추가
- 엑셀처럼 명확한 셀 구분선
- 텍스트가 길어도 잘리지 않고 컬럼이 자동 확장됨
2025-10-13 15:25:11 +09:00
Hyungi Ahn
0ed1047839 📊 테이블을 엑셀 스타일로 완전 재구성
- 모든 margin, padding 제거하고 순수 grid로 재구성
- 헤더 셀: padding: 6px 4px (엑셀처럼 내부 여백만)
- 본문 셀: padding: 6px 4px (헤더와 동일)
- 모든 셀에 명확한 border (엑셀 그리드 스타일)
- materials-grid에 외곽 border와 border-radius 추가
- 헤더 배경: #f3f4f6 (엑셀 회색 헤더)
- 이제 헤더와 본문이 완벽히 정렬됨
2025-10-13 15:21:09 +09:00
Hyungi Ahn
511f5c4f19 🔧 헤더 패딩 제거로 그리드 정렬 완전 해결
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 근본 원인: 헤더 셀의 padding: 0 8px가 그리드 정렬을 방해
- 모든 헤더 div와 filterable-header의 padding 제거
- grid-template-columns 너비가 정확히 적용되도록 수정
- 이제 헤더와 본문의 컬럼이 완벽히 정렬됨
2025-10-13 15:09:38 +09:00
Hyungi Ahn
2ea7f2879f 🔄 테이블 헤더 고정 해제 및 가로 스크롤 개선
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 모든 카테고리 헤더의 position: sticky 제거
- 헤더와 본문이 함께 좌우로 스크롤되도록 변경
- 더 나은 UX: 전체 테이블을 좌우로 자유롭게 이동 가능
- 컬럼 너비 최적화 (타입, 재질 등 컬럼 크기 조정)
2025-10-13 15:04:43 +09:00
Hyungi Ahn
573f145f50 🎨 모든 카테고리 테이블 그리드 정렬 개선
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 모든 카테고리의 헤더와 본문 grid-template-columns를 통일
- FLANGE, FITTING, VALVE, GASKET, UNKNOWN 컬럼 너비 재조정
- 선택 컬럼: 40px → 60px (체크박스 공간 확보)
- 각 카테고리별 최적 컬럼 너비 적용으로 내용 잘림 방지
- 사용자요구 컬럼: 150px → 200px (입력 공간 확대)
2025-10-13 14:59:33 +09:00
Hyungi Ahn
cde930c263 SUPPORT 카테고리 전용 테이블 레이아웃 추가
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- NewMaterialsPage.jsx: SUPPORT 전용 헤더 및 본문 행 추가 (9개 컬럼)
- NewMaterialsPage.css: SUPPORT 전용 그리드 레이아웃 및 스타일 추가
- 헤더와 본문의 컬럼이 정확히 매칭되도록 수정
- SUPPORT 전용 배지 스타일 추가 (청록색)
2025-10-13 14:56:03 +09:00
Hyungi Ahn
2e0d91cf59 🔧 볼트 재질 정보 개선 및 A320/A194M 패턴 지원
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- bolt_classifier.py: A320/A194M 조합 패턴 처리 로직 추가
- material_grade_extractor.py: A320/A194M 패턴 추출 개선
- integrated_classifier.py: SPECIAL, U_BOLT 카테고리 우선 분류
- 데이터베이스: 492개 볼트의 material_grade를 완전한 형태로 업데이트
  - A320/A194M GR B8/8: 78개
  - A193/A194 GR B7/2H: 414개
- 프론트엔드: BOLT 카테고리 전용 UI (길이 표시)
- Excel 내보내기: BOLT용 컬럼 순서 및 재질 정보 개선
- SPECIAL, U_BOLT 카테고리 지원 추가
2025-10-01 08:18:25 +09:00
Hyungi Ahn
50570e4624 feat: 사용자 요구사항 기능 완전 구현 및 전체 카테고리 추가
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 사용자 요구사항 저장/로드/엑셀 내보내기 기능 완전 구현
- 백엔드 API 수정: Request Body 방식으로 변경
- 데이터베이스 스키마: material_id 컬럼 추가
- 프론트엔드 상태 관리 개선: 저장 후 자동 리로드
- 입력 필드 연결 문제 해결: 누락된 onChange 핸들러 추가
- NewMaterialsPage에 '전체' 카테고리 버튼 추가 (기본 선택)
- Docker 환경 개선: 프론트엔드 볼륨 마운트 및 포트 수정
- UI 개선: 벌레 이모지 제거, 디버그 코드 정리
2025-09-30 08:55:20 +09:00
Hyungi Ahn
0f9a5ad2ea 🔧 재질 정보 표시 개선 및 UI 확장
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
 주요 수정사항:
- 재질 GRADE 전체 표기: ASTM A106 B 완전 표시 (A10 잘림 현상 해결)
- material_grade_extractor.py 정규표현식 패턴 개선
- files.py 파일 업로드 시 재질 추출 로직 수정
- CSS 그리드 너비 확장으로 텍스트 잘림 현상 해결
- 사용자 요구사항 엑셀 다운로드 기능 완료

🎯 해결된 문제:
1. ASTM A106 B → ASTM A10 잘림 문제
2. 재질 컬럼 너비 부족으로 인한 표시 문제
3. 사용자 요구사항이 엑셀에 반영되지 않는 문제

📋 다음 단계 준비:
- 파이프 끝단 정보 제외 취합 로직 개선
- 플랜지 타입 정보 확장
- 자재 분류 필터 기능 추가
2025-09-25 08:32:17 +09:00
hyungi
af4ad25a54 fix: 리비전 업로드 시 누적 자재 조회 및 차이분 계산 로직 개선
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 리비전 업로드 시 모든 이전 리비전의 누적 자재를 조회하도록 수정
- 기존 단일 부모 파일 조회 → job_no 기준 누적 조회로 변경
- 차이분 계산 시 디버깅 로그 추가로 매칭 상태 확인 가능
- 자재 그룹핑과 라인 아이템 구분을 명확히 하는 로그 개선
- 기존 자재가 없는 경우 경고 메시지 추가
2025-09-16 09:07:06 +09:00
hyungi
04299542b5 [TEST] Cloudflare Tunnel 대응 및 리비전 증분 계산 수정
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
🌐 Nginx 프록시 설정 (테스트용):
- nginx-proxy.conf: /api 요청을 백엔드로 프록시
- docker-compose.proxy.yml: 프록시 서버 설정
- VITE_API_URL=/api 환경변수 설정으로 단일 도메인 접속

🎨 UI 텍스트 변경 (테스트용):
- LoginPage: TK-MP System → BOM 테스트 서버
- LoginPage: 통합 프로젝트 관리 시스템 → BOM 분류 시스템 v1.0
- LogMonitoringPage: 탭 네비게이션 추가 (로그인/활동/시스템 로그)
- SystemSettingsPage: 활동 로그 모니터링 기능 개선

🔧 백엔드 수정 (테스트용):
- files.py: 리비전 증분 계산 로직 수정 (전체 재분류 → 차이분만 분류)
- create_system_admin.py: database_url → get_database_url() 수정

⚠️ 주의: 이 커밋은 테스트 환경에서의 변경사항입니다.
2025-09-10 08:49:19 +09:00
Hyungi Ahn
fe3fd76112 feat: 최종 완전 통합 DB 스키마 - 사용자 요구사항 시스템 추가
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
🔬 추가된 마지막 테이블들:
- requirement_types (요구사항 타입 마스터)
- user_requirements (사용자 추가 요구사항)
- 임팩테스트, 열처리, 인증서, 비파괴검사 등 10종 기본 타입

📊 최종 통계 (정확한 수치):
- 총 테이블: 38개 (모든 backend/scripts 파일 통합 완료)
- 총 인덱스: 107개 (복합, GIN, 조건부 인덱스 포함)
- 총 뷰: 5개 (통계 및 성능 모니터링)
- 총 함수: 15개 이상 (트리거, 해시 생성 등)

 완전성 검증:
- 21개 SQL 파일 모두 통합 완료
- 성능 최적화 인덱스 전체 적용
- 자동화 트리거 및 함수 모두 포함
- 기본 데이터 자동 생성 완료

🚀 배포 준비 완료:
- 다른 환경에서 한 번에 모든 테이블 생성 가능
- 기본 계정, 프로젝트, 권한, 요구사항 타입 자동 설정
2025-09-10 07:48:45 +09:00
Hyungi Ahn
389a4c2026 fix: 완전한 통합 DB 스키마 완성 - 모든 누락 테이블 추가
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
🗄️ 추가된 주요 테이블:
- Jobs 테이블 (프로젝트 관리, project_type 포함)
- 자재 규격/재질 기준표 (8개 테이블)
- 자재 비교 시스템 (리비전 비교, 해시 기반)
- Tubing 시스템 (5개 테이블 + 제조사 데이터)

📊 성능 최적화:
- 복합 인덱스, GIN 인덱스, 조건부 인덱스
- 총 50+ 인덱스로 검색/정렬 성능 극대화

🔧 자동화 기능:
- 해시 자동 생성 함수 및 트리거
- updated_at 자동 갱신 트리거
- 정규화된 description 자동 생성

📈 통계 및 뷰:
- classification_summary (분류 통계)
- classification_performance (분류 성능)
- material_inventory_status (재고 현황)

📝 완전성:
- 총 30+ 테이블, 50+ 인덱스, 6개 뷰, 10+ 함수
- 모든 backend/scripts SQL 파일 통합 완료
- 다른 환경 배포 시 한 번에 모든 테이블 생성 가능
2025-09-10 07:44:01 +09:00
Hyungi Ahn
f674f3b350 feat: 완전한 자재 그룹핑 시스템 및 통합 DB 스키마 구현
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
🎯 주요 기능:
- 모든 카테고리 자재 그룹핑 (파이프, 피팅, 플랜지, 밸브, 볼트, 가스켓, UNKNOWN)
- 같은 재질/사이즈 자재 자동 통합 표시
- 리비전 업로드 시 차이분만 처리하는 스마트 시스템

🎨 UI/UX 개선:
- NewMaterialsPage: DevonThink 스타일 깔끔한 자재 목록
- SystemSettingsPage: 사용자 관리 기능 완성
- 과도한 디버그 로그 제거로 성능 향상

🗄️ 데이터베이스:
- 통합 초기화 스키마 (99_complete_schema.sql)
- 다른 환경 배포 시 모든 테이블 자동 생성
- 기본 계정/프로젝트/권한 자동 설정

🚀 배포 개선:
- docker-run.sh 스크립트 개선
- 환경 변수 설정 가이드 업데이트
2025-09-10 07:32:58 +09:00
Hyungi Ahn
529777aa14 feat: 완전한 사용자 관리 및 로그 모니터링 시스템 구현
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 시스템 관리자/관리자 권한별 대시보드 기능 추가
- 사용자 관리 페이지: 계정 생성, 역할 변경, 사용자 삭제
- 시스템 로그 페이지: 로그인 로그, 시스템 오류 로그 조회
- 로그 모니터링 대시보드: 실시간 통계, 최근 활동, 오류 모니터링
- 프론트엔드 ErrorBoundary 및 오류 로깅 시스템 통합
- 계정 설정 페이지: 프로필 업데이트, 비밀번호 변경
- 3단계 권한 시스템 (system/admin/user) 완전 구현
- 시스템 관리자 계정 생성 기능 (hyungi/000000)
- 로그인 페이지 테스트 계정 안내 제거
- API 오류 수정: CORS, 이메일 검증, User 모델 import 등
2025-09-09 12:58:14 +09:00
Hyungi Ahn
881fc13580 리비전 업로드 시 정확한 수량 차이분 계산 로직 구현
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 기존 자재와 새 자재의 수량을 비교하여 증가분만 저장
- Rev.0: 엘보 10개, Rev.1: 엘보 12개 → Rev.1에는 2개만 저장
- 완전 신규 자재는 전체 수량 저장
- 수량 감소/동일한 자재는 저장하지 않음
- 리비전별 정확한 차이분 관리 구현
2025-09-09 12:03:47 +09:00
Hyungi Ahn
83b90ef05c feat: 자재 관리 페이지 대규모 개선
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 파이프 수량 계산 로직 수정 (단관 개수가 아닌 실제 길이 기반 계산)
- UI 전면 개편 (DevonThink 스타일의 간결하고 세련된 디자인)
- 자재별 그룹핑 로직 개선:
  * 플랜지: 동일 사양별 그룹핑, WN 스케줄 표시, ORIFICE 풀네임 표시
  * 피팅: 상세 타입 표시 (니플 길이, 엘보 각도/연결, 티 타입, 리듀서 타입 등)
  * 밸브: 동일 사양별 그룹핑, 타입/연결방식/압력 표시
  * 볼트: 크기/재질/길이별 그룹핑 (8SET → 개별 집계)
  * 가스켓: 동일 사양별 그룹핑, 재질/상세내역/두께 분리 표시
  * UNKNOWN: 원본 설명 전체 표시, 동일 항목 그룹핑
- 전체 카테고리 버튼 제거 (표시 복잡도 감소)
- 카테고리별 동적 컬럼 헤더 및 레이아웃 적용
2025-09-09 09:24:45 +09:00
Hyungi Ahn
4f8e395f87 feat: SWG 가스켓 전체 구성 정보 표시 개선
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- H/F/I/O SS304/GRAPHITE/CS/CS 패턴에서 4개 구성요소 모두 표시
- 기존 SS304 + GRAPHITE → SS304/GRAPHITE/CS/CS로 완전한 구성 표시
- 외부링/필러/내부링/추가구성 모든 정보 포함
- 구매수량 계산 모달에서 정확한 재질 정보 확인 가능
2025-08-30 14:23:01 +09:00
Hyungi Ahn
78d90c7a8f Fix BOM API endpoints: Add trailing slash to /jobs/ endpoints
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- Fixed fetchJobs() and createJob() to use /jobs/ instead of /jobs
- Resolves 307 Temporary Redirect issue from FastAPI
- BOM feature now works properly without connection errors
2025-08-28 10:21:12 +09:00
Hyungi Ahn
28a1302cae 📝 RULES.md 업데이트: Docker 환경 구성 및 트러블슈팅 가이드 추가
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- Docker 컨테이너 구성 및 실행 방법 명시
- 해결된 주요 문제들 문서화:
  * 프론트엔드 API 연결 오류 (10080 포트 문제)
  * 백엔드 데이터베이스 연결 실패 (localhost vs postgres)
  * 환경별 설정 관리 개선
- 실행 전 체크리스트 제공으로 향후 헷갈림 방지
2025-08-01 13:46:37 +09:00
Hyungi Ahn
7dbb742981 🐳 Docker 환경별 설정 분리 및 실행 스크립트 추가
- docker-compose.dev.yml: 개발환경 전용 설정
- docker-compose.prod.yml: 프로덕션환경 전용 설정
- scripts/dev.sh, scripts/prod.sh: 환경별 실행 스크립트
- Dockerfile 및 nginx.conf 추가로 완전한 컨테이너화 구현
- 환경변수를 통한 유연한 API URL 설정
2025-08-01 13:46:22 +09:00
Hyungi Ahn
a7e4c0158e 🔧 프론트엔드 API URL 설정 개선
- 프로덕션에서 nginx 프록시를 통한 /api 경로 사용
- 환경변수 VITE_API_URL을 통한 유연한 설정 지원
- Docker Compose에서 환경변수 주입 설정 추가
2025-08-01 13:46:07 +09:00
Hyungi Ahn
f34eb0e210 🔧 백엔드 데이터베이스 연결 설정 수정
- localhost에서 postgres 컨테이너명으로 변경
- Docker 환경에서 컨테이너 간 통신 가능하도록 개선
- 환경변수를 통한 DATABASE_URL 오버라이드 지원
2025-08-01 13:45:54 +09:00
Hyungi Ahn
48f8f634d1 볼트 분류 기능 대폭 개선
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Failing after 2m11s
- 실제 볼트 사이즈 추출: 설명의 첫 번째 숫자를 실제 볼트 직경으로 사용
- 분수 표기 변환: 0.625 → 5/8, 0.75 → 3/4 등 현장 친화적 표기
- 특수 용도 볼트 분류: PSV(압력안전밸브), LT(저온용), CK(체크밸브), ORI(오리피스)
- 표면처리 정보 추출: ELEC.GALV, HOT DIP GALV 등 코팅 정보
- 복합 재질 규격 파싱: ASTM A193/A194 GR B7/2H 정확 분류
- 특수 용도별 색상 구분: PSV 빨강, LT 주황, CK 파랑, ORI 보라
- 프론트엔드 표시 개선: 분수 사이즈, 특수 용도 현황 별도 섹션
- inch 기호 제거: 깔끔한 분수 표시로 현장 가독성 향상
2025-07-29 14:34:33 +09:00
Hyungi Ahn
fc925974bb fix: Use actual container IPs for network communication
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Failing after 2m13s
2025-07-24 12:29:50 +09:00
Hyungi Ahn
501daf7360 test: retry after network connection
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Failing after 34s
2025-07-24 12:24:20 +09:00
Hyungi Ahn
4439c88d00 fix: Update checkout configuration for Docker network
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Failing after 33s
2025-07-24 12:19:33 +09:00
Hyungi Ahn
407d1cede6 ci: Add SonarQube integration
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Failing after 1m37s
2025-07-24 08:46:13 +09:00
Hyungi Ahn
9e5250a8f9 자재 분류 시스템 개선 및 통합 분류기 구현
- 통합 분류기 구현으로 키워드 우선순위 체계 적용
- HEX.PLUG → FITTING 분류 수정 (기존 VALVE 오분류 해결)
- 플랜지/밸브가 볼트로 오분류되는 문제 해결 (A193, A194 재질 키워드 우선순위 적용)
- 피팅 재질(A234, A403, A420) 기반 분류 추가
- 니플 길이 정보 보존 로직 개선
- 파이프 끝단 가공 정보를 구매 단계에서 제외
- PostgreSQL 사용으로 RULES.md 업데이트
- 상호 배타적 키워드 시스템 구현 (Level 1 키워드 우선)
2025-07-23 14:38:49 +09:00
Hyungi Ahn
0d31d8b3fc 엑셀 내보내기에서 라인 번호 제거
- 구매 업무에 불필요한 라인 번호 컬럼 제거
- 카테고리, 자재 설명, 사이즈, 필요 수량, 구매 단위만 표시
- 총 5개 컬럼으로 더욱 간결한 엑셀 파일 생성
2025-07-23 10:47:39 +09:00
Hyungi Ahn
ffa6e58a7c 엑셀 내보내기 간소화
- 불필요한 BOM 수량, 단위, 계산과정 컬럼 제거
- 필요 수량과 구매 단위만 표시하도록 개선
- 리비전 비교시에도 구매 수량 변화 정보만 표시
- 더 깔끔하고 실용적인 엑셀 파일 생성
2025-07-23 10:46:47 +09:00
Hyungi Ahn
905344681f 자재별 구매 수량 계산 시스템 구현
- 파이프: 6,000mm 단위 + 절단여유분 2mm/조각 계산
- 볼트/너트: +5% 후 4의 배수로 올림
- 가스켓: 5의 배수로 올림
- 피팅/계기/밸브: BOM 수량 그대로
- MaterialsPage에 '필요 수량' 칼럼 추가
- 엑셀 내보내기에 구매 수량 정보 포함
- 리비전 비교시 구매 수량 변화량도 계산
2025-07-23 10:41:50 +09:00
Hyungi Ahn
5fa0ac4202 프로젝트 개발 가이드라인 추가
- TK-MP-Project의 코딩 컨벤션과 패턴 정리
- 자주 발생하는 이슈와 해결법 문서화
- AI 세션 간 일관성 확보를 위한 Rules 파일 생성
2025-07-23 10:30:26 +09:00
Hyungi Ahn
2d178f8161 파이프 길이 계산 및 엑셀 내보내기 버그 수정
- 자재 비교에서 파이프 길이 합산 로직 수정
- 프론트엔드에서 혼란스러운 '평균단위' 표시 제거
- 파이프 변경사항에 실제 이전/현재 총길이 표시
- 엑셀 내보내기에서 '초기화되지 않은 변수' 오류 수정
- 리비전 비교에서 파이프 길이 변화 계산 개선
2025-07-23 08:12:19 +09:00
Hyungi Ahn
bef0d8bf7c fix: 자재 리비전 비교 시스템 완전 수정 및 UI 개선
🔧 백엔드 수정:
- 이전 리비전 탐지 로직을 문자열에서 숫자 기반으로 개선 (Rev.1에서 Rev.0 정상 탐지)
- get_materials_by_hash 함수 필드명 수정 및 단순화
- 자재 비교 API 응답 구조 개선

🎨 프론트엔드 UI 대폭 개선:
- MaterialComparisonPage를 MaterialsPage와 동일한 깔끔한 디자인으로 리뉴얼
- 요약 통계 카드 4개 추가 (신규/변경/삭제/총 자재)
- 탭으로 구분된 자재 목록 (신규/변경/삭제)
- 테이블 형태로 비교 결과 표시 (이전수량 → 현재수량 → 변경량)
- 색상별 카테고리 Chip과 변경량 강조 표시

🔄 네비게이션 개선:
- MaterialComparisonPage 돌아가기 버튼을 BOM 상태 페이지로 수정
- RevisionPurchasePage 버튼 텍스트를 'BOM 목록으로'로 명확화
- 모든 비교 관련 페이지의 네비게이션 일관성 확보

🐛 버그 수정:
- BOMStatusPage 리비전 업로드 시 불필요한 파라미터 제거 (네트워크 에러 해결)
- API 응답 데이터 처리 로직 개선 (result.data 처리)
- 에러 핸들링 및 디버깅 로그 강화

 완전 작동하는 리비전 비교 시스템 완성
2025-07-23 06:58:31 +09:00
Hyungi Ahn
534015cc7c feat: 자재 리비전 비교 및 구매 목록 시스템 구현
- 자재 리비전간 비교 기능 추가 (MaterialComparisonPage) - 버그 해결 필요
- 리비전간 추가 구매 필요 자재 분석 페이지 추가 (RevisionPurchasePage)
- 자재 비교 결과 컴포넌트 구현 (MaterialComparisonResult)
- 자재 비교 API 라우터 추가 (material_comparison.py) - 로직 개선 필요
- 자재 비교 시스템 데이터베이스 스키마 추가
- FileManager, FileUpload 컴포넌트 개선
- BOMManagerPage 제거 및 새로운 구조로 리팩토링
- 자재 분류기 및 스키마 개선

TODO: 자재 비교 알고리즘 정확도 향상 및 예외 처리 강화 필요
2025-07-22 15:56:40 +09:00
Hyungi Ahn
6ca1cd17e2 fix: BOMStatusPage 라우팅 및 API 호출 문제 해결
🔧 라우팅 문제 수정:
- ProjectSelectionPage에서 /bom → /bom-status로 경로 수정
- 'No routes matched location' 오류 해결

🔧 BOMStatusPage API 개선:
- fetchFiles, deleteFile API 함수 사용 (하드코딩된 fetch 제거)
- 디버깅용 console.log 추가
- jobNo 유효성 검사 강화

📝 백업 커밋:
- 안정적인 상태로 복원을 위한 백업용 커밋
2025-07-18 17:12:47 +09:00
Hyungi Ahn
28431ee490 feat: 구매 수량 계산 시스템 구현
🧮 구매 수량 계산 로직:
- 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 라우팅 추가
- 구매확정 버튼 → 구매 페이지 이동
2025-07-18 13:18:13 +09:00
Hyungi Ahn
92a78225f0 feat: 밸브 분류 시스템 및 구매 관리 시스템 기초 구현
 밸브 분류 시스템:
- VALVE 상세 정보 저장 로직 추가 (backend/app/routers/files.py)
- 프론트엔드 밸브 사양서 표시 로직 추가 (MaterialsPage.jsx)
- 밸브 분류기 테스트 스크립트 및 데이터 (test_valve_classifier.py, test_valve_bom.csv)

🛒 구매 관리 시스템:
- 구매 관리 테이블 스키마 (08_create_purchase_tables.sql)
- 구매확정 페이지 컴포넌트 (PurchaseConfirmationPage.jsx)
- MaterialsPage에 구매확정 버튼 추가

🎯 주요 기능:
- 밸브 타입, 연결방식, 압력등급, 재질 분류
- 구매 품목 마스터, 주문 관리, 리비전 추적
- 파이프 절단손실 및 6M 단위 계산 준비
2025-07-18 13:12:41 +09:00
Hyungi Ahn
3dd301cb57 볼트 분류 개선 및 업로드 성능 최적화
- 볼트 길이 추출 로직 개선: '70.0000 LG' 형태 인식 추가
- 재질 중복 표시 수정: 'ASTM A193 ASTM A193 B7' → 'B7'
- A193/A194 등급 추출 로직 개선: 'GR B7/2H' 형태 지원
- bolt_details 테이블에 pressure_rating 컬럼 추가
- 볼트 분류기 오분류 방지: 플랜지/피팅이 볼트로 분류되지 않도록 수정
- 업로드 성능 개선: 키워드 기반 빠른 분류기 선택 로직 추가
- 분류 키워드 대폭 확장: 피팅/파이프/플랜지 키워드 추가
2025-07-18 12:48:24 +09:00