# 레퍼런스 — 프로세스·상태 전이 > 상위: [개발가이드.md](./개발가이드.md) > SoT: `03.재원협의_실무협의_프로세스_통합_v완결.md` (v3.0, 2026-09-03) --- ## 1. 프로세스 개요 | 항목 | 내용 | | --- | --- | | Process No. | PR-AS-003 | | 메뉴 | 행정지원 > 2.2.2 재원협의 > 2.2.2.1 재원협의 관리 | | 목적 | 기초 → 광역(경유) → 환경청(승인) → 공단(기술검토/AI) 4자 협의로 사업규모·국비·분담금을 확정 | 2-Pass: - **Pass 1** 기술 타당성: `SV→ST→LE→FV→ER→AC→TE→TP→RM→RB` - **Pass 2** 조치결과·금액: `RB→RA→AV→EV→RK→RR→EP→TA` 자체종결(기술검토 생략): `LE→EP→TA` --- ## 2. 4-Lane 시퀀스 ```mermaid sequenceDiagram autonumber actor 기초 as 기초 (ROLE_USER05) actor 광역 as 광역 (ROLE_USER04) actor 환경청 as 환경청 (ROLE_USER03) actor 공단 as 공단 (ROLE_USER01) actor AI as AI 엔진 rect rgb(240, 248, 255) 기초->>기초: [저장] SV 기초->>광역: [신청완료] ST 광역->>환경청: [환경청제출] LE end rect rgb(255, 250, 240) alt 자체종결 환경청->>광역: [결과회신] LE → EP 광역->>기초: [결과회신] EP → TA else 기술검토 의뢰 환경청->>AI: [기술검토 의뢰] LE → FV end end rect rgb(245, 255, 245) AI-->>공단: 파일검증 콜백 FV → ER Note over 공단: 30분 미응답 시 ER + 수동 [파일검증] alt 파일 미비 공단->>기초: [파일보완] ER → SL 기초->>공단: [파일보완완료] SL → ER else 적격 공단->>AI: [검토자지정] ER → AC end end rect rgb(255, 245, 245) AI-->>공단: 초안 콜백 AC → TE Note over 공단: 30분 미응답 시 TE + 수동 [실무협의서생성] alt 설계 미비 공단->>기초: [보완요청] TE → SL 기초->>공단: [보완완료] SL → TE else 검토 완료 공단->>공단: [검토완료] 상신, [결재(승인)] TE 유지 공단->>환경청: [결재(회신)] TE → TP end end rect rgb(250, 240, 255) 환경청->>광역: [재원협의 결과 회신] TP → RM 광역->>기초: [지자체회신] RM → RB 기초->>환경청: [조치완료] RB → RA end rect rgb(240, 255, 255) 광역->>환경청: [조치결과서제출] RC → RA 환경청->>AI: [조치결과 검토의뢰] RA → AV AI-->>공단: 금액검증 콜백 AV → EV 공단->>공단: [검토자지정] EV → RK Note over 공단: EV에서 1차 결재선 시드로 2차 결재선 수동 배정 end rect rgb(255, 255, 230) alt 소명 미비 공단->>기초: [보완요청] RK → SL 기초->>공단: [보완완료] SL → RK else 확정 공단->>환경청: [결재(회신)] RK → RR end end rect rgb(255, 240, 240) 환경청->>광역: [결과회신] RR → EP 광역->>기초: [결과회신] EP → TA end ``` 거버넌스: ``` 기초 (USER05) --ST--> 광역 (USER04) --LE--> 환경청 (USER03) 기초 <-----TA------ 광역 <-----EP/RM------ 환경청 환경청 --FV/ER--> 공단 (USER01) --TP/RR--> 환경청 ``` --- ## 3. Activity 정의 (14) | No. | Activity | 주체 | From → To | FE 포인트 | | --- | --- | --- | --- | --- | | 1 | 재원협의 조회 | 기초 | — | 기본계획·자가점검 대조 | | 2 | 등록 및 제출 | 기초·광역 | `SV→ST`, 광역 `LE` | `save-apply`, `updatePrgrsStts` | | 3 | 접수 및 의뢰 | 환경청 | `LE→FV` / `EP` | 의뢰 vs 자체종결 분기 | | 4 | AI 파일검증 | 공단·AI | `FV→ER` / `SL` | 30분 Fallback, 파일보완 팝업 | | 5 | 자체종결 회신 | 환경청·광역 | `LE→EP→TA` | 공단 레인 없음 | | 6 | 검토자지정·초안 | 공단·AI | `ER→AC→TE` | `elapr-dmnd`, 초안 폴링 | | 7 | 1차 기술검토 | 공단 결재선 | `TE` / `SL` | 웹기안기, HWP 파싱은 서버 | | 8 | 기술검토 회신 | 공단 최종 | `TE→TP` | `process` 최종 | | 9 | 검토결과 회신 | 환경청·광역 | `TP→RM→RB` | 1차 회신. `EP`와 혼동 금지 | | 10 | 조치결과 작성 | 기초 | `RB→RA` | `submit-actn-result` `isSubmit:true` (조치완료) | | 11 | 조치 의뢰 | 환경청 | `RA→AV` | `request-actn-review` | | 12 | AI 금액검증 | AI·공단 | `AV→EV` | 콜백/Fallback 후 접수자 대기 | | 12a | 2차 검토자지정 | 공단 접수 | `EV→RK` | `elapr-dmnd` cycl=2 | | 13 | 2차 검토·결재 | 공단 | `RK→RR` / `SL` | 2차 결재선 | | 14 | 최종 회신 | 환경청·광역·기초 | `RR→EP→TA` | 종결 | --- ## 4. `FNRSSTTS` 상세 관리: `tb_cs_lwpo_cd` / `tb_as_fnrs_cnsltn_mng.prgrs_stts_com_cd` | 코드 | 국문 | 영문 | 화면 주체 | 전이 | | --- | --- | --- | --- | --- | | `SV` | 저장 | Save | 기초 작성 | 신규/`SV` → `SV` | | `ST` | 신청완료 | Submit to Province | 기초→광역 | `SV→ST` | | `LE` | 환경청 검토 | Local Environment Review | 광역→환경청 | `ST→LE` | | `FV` | 파일검증 | File Verification | AI | `LE→FV` | | `ER` | 기술검토 의뢰 | Examine Request | 공단 접수자 | `FV→ER`, `SL→ER` | | `SL` | 보완요청 | Supplement Loop | 공단→기초 | `ER\|TE\|RK → SL` | | `AC` | 초안생성 | AI Auto Creation | AI | `ER→AC` | | `TE` | 기술검토 | Technical Examine | 공단 1차 결재 | `AC→TE`, `SL→TE` | | `TP` | 기술검토 회신 | Technical Pass to Basin | 공단→환경청 | `TE→TP` | | `RM` | 재원협의결과회신 | Result Message to Province | 환경청→광역 | `TP→RM` | | `RB` | 재원협의결과회신(지자체) | Result Back to Municipality | 광역→기초 | `RM→RB` | | `RC` | 조치결과서 제출 | Result Complete | 기초→광역 | `RB→RC` | | `RA` | 조치결과서 제출(환경청) | Result Ask to Basin | 기초→환경청 | `RB→RA` | | `AV` | 금액검증 | Amount Verification | AI | `RA→AV` | | `EV` | 조치결과검토의뢰 | Examine Verify | 공단 접수자 | `AV→EV` | | `RK` | 조치결과서검토 | Result Check | 공단 2차 결재 | `EV→RK`, `SL→RK` | | `RR` | 조치결과서검토 회신 | Result Return to Basin | 공단→환경청 | `RK→RR` | | `EP` | 검토결과 회신 | Examine Pass to Province | 환경청→광역 | `LE→EP`(자체), `RR→EP`(최종) | | `TA` | 검토결과 회신(종료) | Technical Approval | 광역→기초 | `EP→TA` | ### 4-1. v2.1 → v3.0 대조 (프론트 폐기 대상) | 구간 | v2.1 | v3.0 | | --- | --- | --- | | 의뢰 직후 파일검증 | `ER` | **`FV` → `ER`** | | 검토자지정 후 초안 | `EE` → `DV` | **`ER` → `AC` → `TE`** | | 1차 내부 결재 | `TR` → `TP` | **`TE` 유지 → `TP`** | | 환경청→광역 1차 회신 | `EP` | **`RM`** | | 금액검증 | `RA` | **`RA` → `AV` → `RK`** | | 공단 2차 회신 | `TP` | **`RR`** | | 최종 완료 | `TP` / 고시 `TB` | **`TA`** (고시 없음) | 가이드 v1.0 `PWRKSTTS`(`DV`, `AR`, `TR`, `AA` 등)도 동일하게 폐기. --- ## 5. 보완(`SL`) 3루프 복귀 상태는 `tb_as_doc_stts_chg_hstry` 직전 코드. 프론트는 복귀 코드를 요청에 넣지 않고, 라벨만 이력으로 고른다. ```mermaid stateDiagram-v2 ER --> SL: 파일보완 팝업(파일리스트) SL --> ER: 파일보완완료 TE --> SL: 보완 검토팝업() SL --> TE: 보완완료 RK --> SL: 보완 검토팝업(금액) SL --> RK: 보완완료 ``` | 루프 | 팝업 | 요청 | 제출 버튼 | | --- | --- | --- | --- | | 파일 무결성 | 파일리스트 + 검증결과 | 공단 접수자 `ER` | [파일보완완료] | | 1차 기술 | 설계 미달·사유 | 공단 검토자 `TE` | [보완완료] | | 2차 금액 | 공종별 금액 체크 | 공단 검토자 `RK` | [보완완료] | --- ## 6. AI 3파이프라인·30분 Fallback | ID | 단계 | 진입 → 완료 | 프론트 진입 | Fallback | 수동 재실행 | | --- | --- | --- | --- | --- | --- | | AI-1 | 파일 무결성 | `FV→ER` | 환경청 [기술검토 의뢰] | 30분 → `ER` + [파일검증] | `POST /dcrag-to/documents/transfer` | | AI-2 | 초안 생성 | `AC→TE` | 공단 [검토자지정] | 30분 → `TE` + [실무협의서생성] | `POST /dcrag-to/documents/draft/generate` | | AI-3 | 금액 검증 | `AV→EV` | 환경청 [조치결과 검토의뢰] | 30분 → `EV` + 수동 [금액검증] | `POST /dcrag-to/documents/cost/verify` | - 예상 소요 안내는 **30분** (v1.0의 10분은 폐기). - 콜백 수신·스케줄러 전이는 서버. FE는 상세 refetch / draft status 폴링만. - `AC→TE` 성공 시에만 [실무협의서관리]·[검토결과조회] 활성. 실패·타임아웃이면 [실무협의서생성]. 초안 폴링 이벤트 예: | `eventType` | `eventMessage` | | --- | --- | | `REQUESTED` | 요청을 접수했습니다. | | `DOWNLOADING` | 신청서를 수신하는 중입니다. | | `ANALYZING` | 자료 준비가 완료되었습니다. | | `GENERATING` | 문서 저장이 완료되었습니다. | | `COMPLETED` | 문서 생성이 완료되었습니다. | | `FAILED` | `errorMessage` 표시 | 종료: `status === "COMPLETED" | "FAILED"` 또는 `events`에 해당 `eventType`. --- ## 7. 2차 결재선 (수동 검토자지정) 1. `TE`에서 1차 결재선(`elaprCycl = 1`) 완료. 2. 금액검증 콜백/Fallback → `AV→EV`. 3. 공단 접수자가 `EV`에서 [검토자지정]: 1차 결재선을 시드로 편집 후 `POST /elapr-dmnd` (`elaprCycl: 2`) → `RK`. 4. `copy-line` 자동 복사는 사용하지 않는다. 결재 `process`: - 상신·중간 승인: 문서 상태 `TE` 또는 `RK` 유지. - 1차 최종: 서버가 `TE→TP`. - 2차 최종: 서버가 `RK→RR`. - 반려: 직전 결재자 복귀. 문서 상태 유지. --- ## 8. 웹기안기 - `TE`/`RK` [실무협의서관리] → `webhwp/open` Blob 조회 후 팝업에서 `HwpCtrl.Open(File)`. - [검토완료] 시 HWP 파싱·DB 등재는 **서버**. FE는 결재 `process`만. - 편집본 저장: `POST /pwrk-cnsltn-doc-crt-rslt` multipart. `verSn`은 클라이언트가 보내지 않음.