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;
});