fix: 작업자별 현황 테이블도 대분류로 그룹화

- renderWorkReportTable 함수에서 getMajorCategory() 사용
- 작업내용을 대분류(Base제작, 용기제작, 파이핑 등)로 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-02-05 10:25:26 +09:00
parent bea0fec4f1
commit 0ea253befd

View File

@@ -2483,40 +2483,42 @@
// 작업자별로 데이터 그룹화 (프로젝트별로 먼저 그룹화) // 작업자별로 데이터 그룹화 (프로젝트별로 먼저 그룹화)
const workerGroupedData = {}; const workerGroupedData = {};
// 상세 데이터에서 작업자별 프로젝트-작업유형 데이터 수집 // 상세 데이터에서 작업자별 프로젝트-작업유형 데이터 수집 (대분류 기준)
if (recentWorkData && Array.isArray(recentWorkData)) { if (recentWorkData && Array.isArray(recentWorkData)) {
recentWorkData.forEach(work => { recentWorkData.forEach(work => {
const workerName = work.worker_name || '알 수 없음'; const workerName = work.worker_name || '알 수 없음';
const projectName = work.project_name || '알 수 없는 프로젝트'; const projectName = work.project_name || '알 수 없는 프로젝트';
const workTypeName = work.work_type_name || `작업유형 ${work.work_type_id}`;
const workHours = parseFloat(work.work_hours) || 0; const workHours = parseFloat(work.work_hours) || 0;
const workDate = work.report_date; const workDate = work.report_date;
// 주말 연차/휴무는 집계에서 제외 // 주말 연차/휴무는 집계에서 제외
if (isVacationProject(projectName) && isWeekend(workDate)) { if (isVacationProject(projectName) && isWeekend(workDate)) {
console.log(`🚫 주말 연차/휴무 제외: ${workerName} - ${projectName} (${formatSimpleDate(workDate)})`); console.log(`🚫 주말 연차/휴무 제외: ${workerName} - ${projectName} (${formatSimpleDate(workDate)})`);
return; // 집계하지 않음 return; // 집계하지 않음
} }
if (!workerGroupedData[workerName]) { if (!workerGroupedData[workerName]) {
workerGroupedData[workerName] = {}; workerGroupedData[workerName] = {};
} }
if (!workerGroupedData[workerName][projectName]) { if (!workerGroupedData[workerName][projectName]) {
workerGroupedData[workerName][projectName] = {}; workerGroupedData[workerName][projectName] = {};
} }
// 연차/휴무 프로젝트는 작업내용을 통합 // 대분류로 작업내용 그룹화
let finalWorkTypeName = workTypeName; let finalWorkTypeName;
if (isVacationProject(projectName)) { if (isVacationProject(projectName)) {
finalWorkTypeName = '-'; // 연차/휴무는 작업내용을 '-'로 통합 finalWorkTypeName = '-'; // 연차/휴무는 작업내용을 '-'로 통합
console.log(`🏖️ 연차/휴무 통합: ${workerName} - ${projectName} (${workTypeName} → -)`); } else {
// 대분류 매핑 사용
const majorCategory = getMajorCategory(work.work_type_id);
finalWorkTypeName = majorCategory.name;
} }
if (!workerGroupedData[workerName][projectName][finalWorkTypeName]) { if (!workerGroupedData[workerName][projectName][finalWorkTypeName]) {
workerGroupedData[workerName][projectName][finalWorkTypeName] = 0; workerGroupedData[workerName][projectName][finalWorkTypeName] = 0;
} }
workerGroupedData[workerName][projectName][finalWorkTypeName] += workHours; workerGroupedData[workerName][projectName][finalWorkTypeName] += workHours;
totalHours += workHours; totalHours += workHours;
}); });