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

@@ -35,13 +35,13 @@ const BOMManagementPage = ({
// 카테고리 정의
const categories = [
{ key: 'PIPE', label: 'Pipes', icon: '🔧', color: '#3b82f6' },
{ key: 'FITTING', label: 'Fittings', icon: '⚙️', color: '#10b981' },
{ key: 'FLANGE', label: 'Flanges', icon: '🔩', color: '#f59e0b' },
{ key: 'VALVE', label: 'Valves', icon: '🚰', color: '#ef4444' },
{ key: 'GASKET', label: 'Gaskets', icon: '⭕', color: '#8b5cf6' },
{ key: 'BOLT', label: 'Bolts', icon: '🔩', color: '#6b7280' },
{ key: 'SUPPORT', label: 'Supports', icon: '🏗️', color: '#f97316' }
{ key: 'PIPE', label: 'Pipes', color: '#3b82f6' },
{ key: 'FITTING', label: 'Fittings', color: '#10b981' },
{ key: 'FLANGE', label: 'Flanges', color: '#f59e0b' },
{ key: 'VALVE', label: 'Valves', color: '#ef4444' },
{ key: 'GASKET', label: 'Gaskets', color: '#8b5cf6' },
{ key: 'BOLT', label: 'Bolts', color: '#6b7280' },
{ key: 'SUPPORT', label: 'Supports', color: '#f97316' }
];
// 자료 로드 함수들
@@ -398,9 +398,6 @@ const BOMManagementPage = ({
}
}}
>
<div style={{ fontSize: '20px', marginBottom: '8px' }}>
{category.icon}
</div>
<div style={{ marginBottom: '4px' }}>
{category.label}
</div>

View File

@@ -13,15 +13,23 @@ const PurchaseRequestPage = ({ onNavigate, fileId, jobNo, selectedProject }) =>
useEffect(() => {
loadRequests();
}, [fileId, jobNo]);
}, [fileId, jobNo, selectedProject]);
const loadRequests = async () => {
setIsLoading(true);
try {
const params = {};
if (fileId) params.file_id = fileId;
if (jobNo) params.job_no = jobNo;
// 선택된 프로젝트가 있으면 해당 프로젝트만 조회
if (selectedProject) {
params.job_no = selectedProject.job_no || selectedProject.official_project_code;
} else if (jobNo) {
params.job_no = jobNo;
}
if (fileId) params.file_id = fileId;
console.log('🔍 구매신청 목록 조회:', params);
const response = await api.get('/purchase-request/list', { params });
setRequests(response.data.requests || []);
} catch (error) {