feat: BOM 페이지 개선 및 구매관리 기능 향상
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled

- BOM 페이지에서 모든 카테고리 이모지 제거 (깔끔한 UI)
- 구매신청된 자재 비활성화 기능 개선
- 구매관리 페이지에서 선택된 프로젝트만 표시하도록 수정
- 파이프 카테고리 Excel 내보내기 개선:
  * 끝단처리, 압력등급 컬럼 제거
  * 사용자요구(분류기 추출) 및 추가요청사항 컬럼 추가
  * 품목명에서 끝단처리 정보 제거
  * 납기일 P열 고정 및 관리항목 자동 채움
- 파이프 분류기에서 사용자 요구사항 추출 기능 추가
- 재질별 스케줄 표시 개선 (SUS: SCH 40S, Carbon: SCH 40)
This commit is contained in:
hyungi
2025-10-16 13:27:14 +09:00
parent 64fd9ad3d2
commit 22baea38e1
11 changed files with 273 additions and 108 deletions

View File

@@ -161,13 +161,9 @@ const formatMaterialForExcel = (material, includeComparison = false) => {
const manufacturingMethod = pipeDetails.manufacturing_method || '';
const endPreparation = pipeDetails.end_preparation || '';
// 제조방법과 끝단처리 조합으로 상세 타입 생성
if (manufacturingMethod && endPreparation) {
itemName = `${manufacturingMethod} PIPE (${endPreparation})`;
} else if (manufacturingMethod) {
// 제조방법으로 상세 타입 생성 (끝단처리 정보 제거)
if (manufacturingMethod) {
itemName = `${manufacturingMethod} PIPE`;
} else if (endPreparation) {
itemName = `PIPE (${endPreparation})`;
} else {
// description에서 제조방법 추출 시도
const desc = cleanDescription.toUpperCase();
@@ -666,17 +662,17 @@ const formatMaterialForExcel = (material, includeComparison = false) => {
// F~O열: 카테고리별 전용 컬럼 구성 (10개 컬럼)
if (category === 'PIPE') {
// 파이프 전용 컬럼 (F~O) - 타입 제거, 품목명에 포함됨
// 파이프 전용 컬럼 (F~O) - 끝단처리, 압력등급 제거
base['크기'] = material.size_spec || '-'; // F열
base['압력등급'] = pressure; // G열
base['스케줄'] = schedule; // H열
base['재질'] = grade; // I열
base['제조방법'] = material.pipe_details?.manufacturing_method || '-'; // J열
base['끝단처리'] = material.pipe_details?.end_preparation || '-'; // K열
base['사용자요구'] = material.user_requirement || ''; // L열
base['관리항목1'] = ''; // M열
base['관리항목2'] = ''; // N열
base['관리항목3'] = ''; // O열
base['스케줄'] = schedule; // G열
base['재질'] = grade; // H열
base['제조방법'] = material.pipe_details?.manufacturing_method || '-'; // I열
base['사용자요구'] = material.user_requirements?.join(', ') || ''; // J열 (분류기에서 추출)
base['추가요청사항'] = material.user_requirement || ''; // K열 (사용자 입력)
base['관리항목1'] = ''; // L열
base['관리항목2'] = ''; // M열
base['관리항목3'] = ''; // N열
base['관리항목4'] = ''; // O열
} else if (category === 'FITTING') {
// 피팅 전용 컬럼 (F~O) - 타입 제거, 품목명에 포함됨
base['크기'] = material.size_spec || '-'; // F열