작업관리 기능 설계서 v0.1
[!note] 수정이력 | 2026-05-02, 분홍 (hermes)
- 주영 요청: 공사 상세 페이지에 작업등록/완료 기능 설계
1. 개요
섹션 제목: “1. 개요”공사(프로젝트) 상세 페이지에서 작업의 흐름을 관리하고, 각 작업에 작업자를 지정하여 완료 처리할 수 있도록 함.
핵심 개념
섹션 제목: “핵심 개념”- 작업유형: “선로포설”, “선번조사”, “절체”, “선로철거” 등 공사유형별 템플릿으로 관리
- 작업(Work): 1개 공사(Project)에 속한 개별 실처리 단위
- 작업자: 작업마다 1명의 사용자(User)를 지정 (Phase A는 개인 우선)
- 완료보드: 작업자/팀이 완료한 작업 리스트를 확인하고 “확인완료”/“수정요청” 처리
2. DB 모델 변경
섹션 제목: “2. DB 모델 변경”2.1 새 테이블: work_types (작업유형 템플릿)
섹션 제목: “2.1 새 테이블: work_types (작업유형 템플릿)”CREATE TABLE work_types ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), company_id UUID NOT NULL REFERENCES companies(id), project_type_id UUID REFERENCES project_types(id), name VARCHAR(100) NOT NULL, code VARCHAR(50), description TEXT, sort_order INT DEFAULT 0, is_active BOOLEAN DEFAULT TRUE, created_by UUID NOT NULL REFERENCES users(id), created_at TIMESTAMP DEFAULT NOW(), updated_at TIMESTAMP DEFAULT NOW());2.2 기존 works 테이블 확장
섹션 제목: “2.2 기존 works 테이블 확장”ALTER TABLE works ADD COLUMN work_type_id UUID REFERENCES work_types(id);ALTER TABLE works ADD COLUMN completed_note TEXT;ALTER TABLE works ADD COLUMN reviewed_by UUID REFERENCES users(id);ALTER TABLE works ADD COLUMN reviewed_at TIMESTAMP;ALTER TABLE works ADD COLUMN review_note TEXT;ALTER TABLE works ADD COLUMN review_status VARCHAR(20) DEFAULT 'pending';2.3 ENUM 확장
섹션 제목: “2.3 ENUM 확장”- WorkStatus 기존: pending / in_progress / completed
- 추가: reviewed / revision_sent
3. API 설계
섹션 제목: “3. API 설계”| Method | Path | 설명 | 권한 |
|---|---|---|---|
| GET | /api/v1/work-types | 작업유형 목록 | 로그인 |
| POST | /api/v1/work-types | 작업유형 등록 | 현장대리+ |
| PATCH | /api/v1/work-types/{id} | 수정 | 현장대리+ |
| DELETE | /api/v1/work-types/{id} | 삭제(soft) | 현장대리+ |
| GET | /api/v1/projects/{pid}/works | 공사별 작업 목록 | 로그인 |
| POST | /api/v1/projects/{pid}/works | 작업 등록 | 현장대리+ |
| PATCH | /api/v1/works/{id} | 작업 수정 | 현장대리+ |
| POST | /api/v1/works/{id}/complete | 작업 완료 | 해당 작업자 |
| POST | /api/v1/works/{id}/review | 확인완료/수정요청 | 감독/관리자 |
| GET | /api/v1/works/completed-board | 완료보드 | 감독+ |
4. 권한 매트릭스
섹션 제목: “4. 권한 매트릭스”| 기능 | 관리자 | 감독 | 현장대리 | 현장팀 | 공무팀 |
|---|---|---|---|---|---|
| 작업유형 등록/수정 | O | X | O | X | X |
| 작업 등록/취소 | O | O | O | X | X |
| 작업자 지정 | O | O | O | X | X |
| 본인 작업 완료 | O | O | O | O | O |
| 확인완료/수정요청 | O | O | X | X | X |
| 완료보드 보기 | O | O | O | O | X |
5. 화면 흐름
섹션 제목: “5. 화면 흐름”5.1 공사 상세 페이지 - 작업 영역
섹션 제목: “5.1 공사 상세 페이지 - 작업 영역”- 작업 목록 테이블 (작업유형 | 작업자 | 상태 | 완료일)
-
- 작업등록 버튼 (현장대리+)
- 행 클릭 → 작업 상세 (할당/완료/검토)
5.2 작업 등록 모달
섹션 제목: “5.2 작업 등록 모달”- 작업유형 드롭다운
- 작업자 선택 드롭다운
- 메모 / 기대사항
5.3 완료보드 페이지
섹션 제목: “5.3 완료보드 페이지”- 탭: 내 작업 | 팀 작업 | 전체
- 필터: 기간 | 공사명 | 작업유형 | 완료상태
- 확인완료 / 수정요청 버튼
6. Phase A vs Phase B
섹션 제목: “6. Phase A vs Phase B”Phase A (즉시 구현)
섹션 제목: “Phase A (즉시 구현)”- work_types 테이블
- works 확장 컬럼
- API: 작업유형 CRUD, 작업 CRUD+완료+검토
- 완료보드 화면
- 개인별 작업자 지정
Phase B (팀 기능 후)
섹션 제목: “Phase B (팀 기능 후)”- 팀(Team) 테이블 + 회원가입 팀 지정
- 팀단위 배정 기능
- 팀별 완료보드
C → A → B 순서로 작업