feat: WTM 멀티프로젝트 플랫폼 구축 (BE + FE 전체 구현)
Phase 0: wbx-spring-core 라이브러리 전환 - java-library 플러그인, WbxAutoConfiguration, Admin 조건부 활성화 - 루트 settings.gradle + build.gradle (멀티모듈) Phase 1: wtm-api 모듈 생성 - 23개 JPA Entity, 14개 Controller, 79개 API 엔드포인트 - Flyway V100~V107 MySQL 마이그레이션 - TimesheetRuleEngine, TimesheetApprovalHandler, P6WbsParser Phase 2: wtm-frontend (Vue 3 + PrimeVue 4) - 10개 도메인 모듈, 17개 View, 5개 서브컴포넌트 - 반응형 레이아웃 (AppLayout, AppSidebar, AppTopbar) - BaseCrudTable, BaseFormDialog, BasePageHeader 표준 컴포넌트 - JWT 인터셉터, 역할 기반 메뉴 필터링 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
이 Commit은 다음에 포함되어 있습니다:
@@ -0,0 +1,119 @@
|
||||
# 한화오션 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건) |
|
||||
새 Issue에서 참조
사용자 차단