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