이 프로젝트의 1차 목표는 로그인, Redis, JWT, 프론트엔드 구현이 아니라
문서 작성, 결재선 지정, 상신, 승인, 반려, 회수, 이력 기록까지의 핵심 결재 흐름을 REST API로 구현하는 것이다.
Swagger 또는 Postman을 통해 다음 흐름이 검증되면 1차 기능 설계 및 구현 목표를 달성한 것으로 본다.
- Java 17
- Spring Boot 3.5.11
- Spring Data JPA
- OpenFeign QueryDSL 7.1
- MySQL
- Swagger
- Docker
| 브랜치 |
설명 |
| main |
최종 버전 |
| legacy |
기존 설계 백업 |
| v1 |
1차 기능 개발 |
| v2 |
2차 기능 개발 예정 |
- 전자결재 핵심 도메인 설계
- 문서 상태 전이 구현
- 결재선 및 결재 단계 관리
- 결재 승인/반려 흐름 구현
- 문서 이력과 결재 이력 분리 관리
- Swagger를 통한 API 테스트 및 시나리오 검증
- 문서 임시저장
- 문서 수정
- 문서 상신
- 문서 회수
- 문서 삭제
- 내가 작성한 문서 목록 조회
- 문서 상세 조회
- 결재선 등록 및 수정
- 내 결재 대기 문서 조회
- 결재 승인
- 결재 반려
- 결재 이력 조회
아래 기능은 2차 이후로 미룬다.
- 로그인/JWT
- Redis
- 첨부파일 업로드
- 알림
- 관리자 기능
- 대리결재
- 참조자/열람자
- 병렬결재
- 프론트엔드 화면
| 상태 |
설명 |
| DRAFT |
임시저장 |
| IN_PROGRESS |
결재 진행 중 |
| APPROVED |
최종 승인 왼료 |
| REJECTED |
반려 |
| WITHDRAWN |
회수 |
| DELETED |
삭제 |
| 상태 |
설명 |
| WAITING |
아직 결재 차례가 아님 |
| PENDING |
현재 결재 차례 |
| APPROVED |
승인 완료 |
| REJECTED |
반려 |
| CANCELED |
취소 |
| 상태 |
설명 |
| CREATED |
문서 생성/임시저장 |
| UPDATED |
문서 수정 |
| SUBMITTED |
문서 상신 |
| APPROVED |
문서 결재 승인 |
| REJECTED |
문서 결재 반려 |
| WITHDRAWN |
문서 회수 |
| DELETED |
문서 삭제 |
- 문서와 결재선은
DRAFT(임시저장) 상태에서만 수정할 수 있다.
- 문서가
IN_PROGRESS(결재 진행 중) 상태가 되면 제목, 내용, 결재선은 수정할 수 없다.
- 상신 시 첫 번째 결재 단계는
PENDING(나의 결재 차례), 나머지는 WAITING(나의 결재 차례가 아님) 상태가 된다.
- 현재
PENDING 상태인 결재자만 승인 또는 반려할 수 있다.
- 마지막 결재자가 승인하면 문서는
APPROVED(최종 승인 완료) 상태가 된다.
- 결재자가 반려하면 문서는
REJECTED(반려) 상태가 된다.
- 반려 이후 남은 결재 단계는
CANCELED(취소) 상태가 된다.
- 기안자는
IN_PROGRESS 상태의 문서를 회수할 수 있다.
- 문서 수정/삭제는 기안자 본인이
DRAFT 상태에서만 가능하다.
- 기능 설계서:
docs/전자결재_기능설계_v0.4.pdf
- DDL:
docs/eapproval_v0.1_ddl.sql
- ERD:
docs/전자결재_ERD_v0.2.png