9.7 KiB
9.7 KiB
레퍼런스 — 화면·버튼 매트릭스
상위: 개발가이드.md
SoT:03§4 화면 및 버튼별 상세 상태전이 명세서 (Row 4~42, 38행)
구현 위치: pages/fnrs-cnsltn/lib/button-config.ts + ui/components/floating-action-buttons.tsx
1. 화면 구분
| 화면 | 소유 | 라우트 (현행) | 비고 |
|---|---|---|---|
| 작성화면 | 기초 ROLE_USER05 |
/fnrs-cnsltn/new, /fnrs-cnsltn/{id}/edit |
SV |
| 수정화면 | 기초 | /fnrs-cnsltn/{id}/edit |
SL 보완 |
| 상세화면 | 광역·환경청·공단·기초(RB/TA) |
/fnrs-cnsltn/{id} |
조회 + 액션 버튼 |
| 자동화 | AI | 버튼 없음 | FV/AC/AV 진행 패널 |
공단 상세는 결재선 구분으로 같은 상태라도 버튼이 다르다.
atrzSeComCd |
역할 |
|---|---|
ATRZ01 |
접수자 |
ATRZ02 |
검토자 |
ATRZ03 |
승인자 |
ATRZ99 |
최종승인자 |
2. 38행 매트릭스
API 컬럼은 ref-endpoint.md와 동일.
| 순번 | 화면 | 권한 | 결재선 | 상태 | 버튼 | 전이 | 다음 담당 | FE 동작 |
|---|---|---|---|---|---|---|---|---|
| 1 | 작성 | USER05 | - | 빈값, SV |
저장 | SV |
본인 | save-apply SV |
| 2 | 작성 | USER05 | - | SV |
신청완료 | ST |
광역 | save-apply ST |
| 3 | 작성 | USER05 | - | SV |
삭제 | 삭제 | — | DELETE |
| 4 | 상세 | USER04 | - | ST |
환경청제출 | LE |
환경청 | updatePrgrsStts |
| 5 | 상세 | USER03 | - | LE |
결과회신 | EP |
광역 | tech-review 자체종결 |
| 6 | 상세 | USER03 | - | LE |
기술검토 의뢰 | FV |
공단 접수 | request-examine |
| 7 | 자동화 | AI | - | FV |
(파일검증) | ER |
공단 접수 | FE 호출 없음. 진행 패널 |
| 8 | 상세 | USER01 | 접수자 | ER |
파일보완 | SL |
기초 | 팝업(파일리스트) → reqsupplement |
| 9 | 상세 | USER01 | 접수자 | ER |
파일검증 | ER |
본인 | dcrag-to/transfer 재실행 |
| 10 | 상세 | USER01 | 접수자 | ER |
검토자지정 | AC |
다음 결재자 | POST /elapr-dmnd |
| 11 | 자동화 | AI | - | AC |
(초안생성) | TE |
공단 검토 | FE 호출 없음. 폴링 |
| 12 | 상세 | USER01 | 검토자 | TE |
실무협의서관리 | 유지 | — | 웹기안기 Open. 초안 성공 시만 |
| 13 | 상세 | USER01 | 검토자 | TE |
검토결과조회 | 유지 | — | 실무협의 상세 |
| 14 | 상세 | USER01 | 검토자 | TE |
실무협의서생성 | 유지 | — | 실패/타임아웃/초안 없음 시 |
| 15 | 상세 | USER01 | 검토자 | TE |
저장 | TE |
— | pwrk save-apply |
| 16 | 상세 | USER01 | 검토자 | TE |
검토완료 | TE |
다음 결재자 | elapr process 상신. 반려 시 직전 결재자 |
| 17 | 상세 | USER01 | 검토자 | TE |
보완요청 | SL |
기초 | 보완 팝업() → reqsupplement |
| 18 | 상세 | USER01 | 승인자 | TE |
결재(승인) | TE |
다음 결재자 | process |
| 19 | 상세 | USER01 | 최종승인자 | TE |
결재(회신) | TP |
환경청 | process 최종 |
| 20 | 수정 | USER05 | - | SL |
파일보완완료 | ER |
공단 접수 | submitsupplement (직전=ER) |
| 21 | 수정 | USER05 | - | SL |
보완완료 | TE |
공단 검토 | submitsupplement (직전=TE) |
| 22 | 수정 | USER05 | - | SL |
보완완료 | RK |
공단 검토 | submitsupplement (직전=RK) |
| 23 | 상세 | USER03 | - | TP |
재원협의 결과 회신 | RM |
광역 | tech-review |
| 24 | 상세 | USER04 | - | RM |
지자체회신 | RB |
기초 | updatePrgrsStts |
| 25 | 상세 | USER05 | - | RB |
실무협의서 관리 | 유지 | — | 웹기안기 Open |
| 26 | 상세 | USER05 | - | RB |
조치완료 | RA |
환경청 | submit-actn-result isSubmit:true |
| 27 | 상세 | USER04 | - | RC |
조치결과서제출 | RA |
환경청 | updatePrgrsStts |
| 28 | 상세 | USER03 | - | RA |
실무협의서 관리 | 유지 | — | 웹기안기 Open. 저장 불가 |
| 28a | 상세 | USER03 | - | RA |
조치결과 검토의뢰 | AV |
공단 검토 | request-actn-review |
| 29 | 자동화 | AI | - | AV |
(금액검증) | EV |
공단 접수 | FE 호출 없음. 진행 패널 |
| 29a | 상세 | USER01 | 접수자 | EV |
검토자지정 | RK |
공단 검토 | POST /elapr-dmnd cycl=2. 1차 결재선 시드 |
| 30 | 상세 | USER01 | 검토자 | RK |
실무협의서관리 | 유지 | — | 웹기안기 |
| 31 | 상세 | USER01 | 검토자 | RK |
금액검증 | RK |
— | dcrag-to/cost/verify |
| 32 | 상세 | USER01 | 검토자 | RK |
저장 | RK |
— | pwrk save-apply |
| 33 | 상세 | USER01 | 검토자 | RK |
검토완료 | RK |
다음 결재자 | process |
| 34 | 상세 | USER01 | 승인자 | RK |
결재(승인) | RK |
다음 결재자 | process |
| 35 | 상세 | USER01 | 최종승인자 | RK |
결재(회신) | RR |
환경청 | process 최종 |
| 36 | 상세 | USER03 | - | RR |
실무협의서 관리(조회), 검토결과 회신 | EP |
광역 | tech-review |
| 37 | 작성/상세 | USER04 | - | EP |
결과회신, 실무협의서 관리(조회) | TA |
기초 | updatePrgrsStts |
| 38 | 상세 | USER05 | - | TA |
결과회신, 실무협의서 관리(조회) | — | — | API 없음. 조회 |
SL 20~22행: 버튼은 직전 상태에 따라 하나만 노출. 파일 루프면 [파일보완완료], 그 외 [보완완료].
3. button-config 권장 구조
액션 키는 현행 FNRS_CNSLTN_VIEW_BUTTON_ACTION을 확장한다. 신규·이름 변경:
| 신규/변경 액션 | 라벨 | 비고 |
|---|---|---|
fileSplmnt |
파일보완 | ER 접수자. 현행에 없음 |
fileVrfc |
파일검증 | 유지. ER 재실행 |
dsgntRvwr |
검토자지정 | ER→AC(1차), EV→RK(2차) |
pwrkCnsltnDocMng |
실무협의서관리 | 유지. TE·RK·RB·RA(조회 전용) |
pwrkCnsltnDocCrt |
실무협의서생성 | 유지. 실패/타임아웃만 |
rvwRsltInq |
검토결과조회 | 신규 |
actnCmptn |
조치완료 | RB→RA. isSubmit:true |
actnSbmsn |
조치결과서제출 | 광역 RC→RA |
rqstActnRvw |
조치결과 검토의뢰 | 환경청 RA→AV |
costVrfc |
금액검증 | RK |
lclRply |
지자체회신 | 광역 RM→RB |
fnrsRsltRply |
재원협의 결과 회신 | 환경청 TP→RM |
rsltRply |
결과회신 | LE→EP, RR→EP, EP→TA, TA 조회 |
fileSplmntCmptn |
파일보완완료 | SL←ER |
splmntCmptn |
보완완료 | SL←TE|RK |
삭제: fnrsCnsltnAncmnt(고시→TB), sncnAprv(인가승인). EP/TA는 rsltRply로 통일.
3-1. 역할 × 상태 (공단 제외)
ROLE_USER05
"" | SV → 저장, 신청완료, 삭제
SL → (직전 ER) 파일보완완료 | (직전 TE|RK) 보완완료
RB → 실무협의서 관리, 조치완료
TA → 결과회신 (조회), 실무협의서 관리(조회)
ROLE_USER04
ST → 환경청제출 // 현행 반려(rjct→SV)는 SoT 38행에 없음. 유지 시 별도 합의
RM → 지자체회신
RC → 조치결과서제출
EP → 결과회신, 실무협의서 관리(조회)
ROLE_USER03
LE → 결과회신(자체종결), 기술검토 의뢰
TP → 재원협의 결과 회신
RA → 실무협의서 관리(조회), 조치결과 검토의뢰
RR → 실무협의서 관리(조회), 검토결과 회신 (`tech-review` → `EP`)
3-2. 공단 결재선 × 상태
ER / ATRZ01 접수자
→ 파일보완, 파일검증, 검토자지정
EV / ATRZ01 접수자
→ 검토자지정 (2차 결재선. 1차 결재선 시드, 서식 선택 없음)
TE / ATRZ02 검토자
→ (초안 성공) 실무협의서관리, 검토결과조회, 저장, 검토완료, 보완요청
→ (초안 실패·타임아웃) 실무협의서생성 (+ 위 항목 중 관리/조회는 초안 생긴 뒤)
TE / ATRZ03 승인자 → 결재(승인)
TE / ATRZ99 최종 → 결재(회신)
RK / ATRZ02 검토자
→ (초안 완료) 실무협의서관리
→ (초안 완료 + 결재 대기 ATRZ_PRGRS_002, cycl2) 보완요청, 검토완료
· 보완요청 UI: TE와 동일 SplmntDmndDialog
RK / ATRZ03 → (초안 완료) 실무협의서관리, (cycl2 pending) 결재(승인)
RK / ATRZ99 → (초안 완료) 실무협의서관리, (cycl2 pending) 결재(회신)
· 결재 UI: ElaprApprovalDialog (elaprCycl=2) 승인/반려 → PUT process
FV, AC, AV: 액션 빈 배열 + 진행 패널.
PENDING_APPROVAL_ACTIONS: dmndSplmnt, rvwCmptn, atrzAprv, atrzRply만.
pwrkCnsltnDocMng는 결재 대기와 무관(초안 완료만). ATRZ02·ATRZ03·ATRZ99라도 pending 없으면 관리만 노출.
4. 초안 성공 vs 실패 버튼
TE에서 crtDmndList[].crtSttsComCd / 폴링 status로 분기.
| 조건 | 노출 |
|---|---|
C / COMPLETED |
실무협의서관리, 검토결과조회, 저장, 검토완료, 보완요청 |
F / FAILED 또는 30분 Fallback 후 초안 없음 |
실무협의서생성 |
R/I 생성 중 |
진행 패널. 위 버튼 비활성 (AC와 동일 UX, 상태가 이미 TE면 패널+생성 버튼) |
RK는 금액검증 성공이 기본. Fallback 후 [금액검증] 재실행만 추가 노출.
5. 현행 button-config.ts와의 차이
| 항목 | 현재 | To-Be |
|---|---|---|
| USER05 | ""/SV/TA(고시) |
SL, RB 추가. TA는 조회 |
| USER04 | ST(제출+반려), EP(인가승인) |
RM/RC/EP 추가. 인가승인 삭제 |
| USER03 | LE, TP(→EP로 회신) |
RA, RR 추가. TP는 RM |
| USER01 | ER(파일검증, 검토자지정), TE |
ER에 파일보완. RK 전면 추가 |
| USER01 ATRZ | ER, TE만 needsRoleUser01AtrzResolve |
RK 포함 |