# 한화오션 EPU Work Time Manager (WTM) ## Spring Boot 3.5 기반 시수관리 시스템 > 원본: `d:\sc\wtmgr.pdf` + `d:\sc\requierment.xlsx` > 작성일: 2026-03-24 / 수정일: 2026-03-25 --- ## 전제조건 > **본 계획서는 `plans/wbx-spring/` 프레임워크가 구축되어 있음을 전제로 합니다.** > > wbx-spring이 제공하는 기능 (본 계획서에서 다루지 않음): > - JWT 인증 / Azure Entra ID SSO / 비밀번호 정책 > - RBAC 권한 (역할-모듈-액션, dept_scope) > - 통합 결재 엔진 (Handler Registry, Post-Action Event) > - SSE 실시간 알림 > - WBX No-Code 플랫폼 연동 (API 응답 호환, 페이징 변환, 에러 포맷) > - 파일 업로드 (Azure Blob) > - Nginx URL 라우팅, Multi-DataSource > > 상세: `plans/wbx-spring/00-overview.md` --- ## 프로젝트 개요 | 항목 | 내용 | |------|------| | 프로젝트명 | WTM (Work Time Manager) | | 고객 | 한화오션 EPU | | 목적 | EPC 프로젝트 인력 시수 관리, WBS 연동, 결재, 리포트 | | 기능요구사항 | 86개 (PH1 Y=62건 / PH1→PH2 이관=24건) | | 비기능요구사항 | 17개 (NF.1~NF.17) | | 총 화면 수 | 49개 (PH1-1차 26 / PH1-2차 11 / PH2 12) | | API Prefix | `/api/wtm/` | | Java 패키지 | `kr.co.accura.wtm` | | Gradle artifact | `wtm-api` | | DB | `wtm_db` (Azure SQL) | --- ## 단계별 추진 구조 ### PH1-1차 (9주: 4/1 ~ 5/31, ~10.0 M/M) - 핵심 시수 입력 3종 (Non-Project / Other Project / EPC) - WBS · TEAL 업로드/관리 + P6 파싱 - 결재 핸들러 구현 (wbx-spring 결재 엔진 위에) - 기본 리포트 2종 - HR 파일 업로드, 프로젝트/인력 관리 ### PH1-2차 (4주: 6/1 ~ 6/30, ~5.0 M/M) - WBS 버전 비교 UI, EPC Revision 관리 - 결재 초과 알림, SA 권한 고도화 - SAP BTP 배치 연동 (HR 자동 동기화) - Phase · NP 비율 리포트 ### PH2 (TBD) - Cognite 연계 (NF.15), 외주 접속 포털, Discipline 생산성 분석 - Location/Role별 Unit Rate (No.65), 벤치마킹 (No.63) ### 확인필요사항 (7건) | # | 항목 | 관련 요구사항 | 상태 | |---|------|-------------|------| | 1 | 외주 사용자 등록 방식 (파일 vs 개별) | No.4, 5, 6 | 미확정 | | 2 | User 관리 정책 (권한별 홈 라우팅) | No.17, 18 | 확인중 | | 3 | SA 전체 기능 컨트롤 범위 | No.19 | PH2 이관 | | 4 | Resource Assignment 규칙 상세 | No.42, 46 | PH2 이관 | | 5 | EPC L5 Revision 관리 방안 | No.64 | PH1-2차 | | 6 | Approval 프로세스 상세 | No.70, 71 | 확인중 | | 7 | Change Order MH 관리 방안 | No.67 | 확인중 | --- ## WTM이 구현하는 것 (비즈니스 로직) | 모듈 | 역할 | wbx-spring 활용 | |------|------|----------------| | **Timesheet** | 시수 입력 3종, 규칙 엔진 | - | | **WBS/TEAL** | P6 파싱, Canonical WBS, 버전 관리 | - | | **Approval Handler** | `TimesheetApprovalHandler` 구현 | `ApprovalHandler` interface 구현 | | **Report** | 프로젝트별/WBS별 시수 분석 | - | | **HR 연동** | SAP BTP, Excel 업로드 | `ExcelParserBase` 활용 | | **프로젝트** | 프로젝트 CRUD, 인력 배정 | - | | **사용자** | HR 필드 확장, 역할 부여 | `PermissionEvaluator` 활용 | | **알림** | 미완료 Timesheet 리마인더 | `SseNotificationService` 활용 | ## WTM이 구현하지 않는 것 (wbx-spring 제공) | 기능 | 제공처 | |------|--------| | JWT 발급/검증, SSO | wbx-spring-core `auth/` | | 통합 결재 API (`/approvals/unified/action/...`) | wbx-spring-core `approval/` | | SSE 실시간 알림 인프라 | wbx-spring-core `notification/` | | RBAC dept_scope 권한 체크 | wbx-spring-core `rbac/` | | API 응답 호환 (detail, items) | wbx-spring-core `compat/` | | skip/limit → Pageable 변환 | wbx-spring-core `compat/` | | 파일 업로드 (Azure Blob) | wbx-spring-core `file/` | --- ## 문서 구성 | 문서 | 내용 | |------|------| | `00-overview.md` | 프로젝트 개요 (본 문서) | | `01-architecture.md` | WTM 모듈 구조 (wbx-spring 위에 구축) | | `02-database-schema.md` | wtm_db 스키마 (비즈니스 테이블만) | | `03-timesheet-module.md` | 시수 입력 3종 + 규칙 엔진 | | `04-wbs-teal-module.md` | WBS · TEAL · P6 파싱 | | `05-approval-handlers.md` | 결재 핸들러 구현 (wbx-spring 엔진 위에) | | `06-reporting-module.md` | 리포트 모듈 | | `07-api-spec.md` | WTM REST API 스펙 (/api/wtm/) | | `08-sap-btp-integration.md` | SAP SuccessFactors BTP 연동 | | `09-security-infra.md` | 한화오션 표준 보안 SW, Azure 인프라 | | `10-schedule-milestones.md` | 일정 · 마일스톤 | | `11-requirements-traceability.md` | 요구사항 추적표 (86+17+7건) |