SES 제안서 관리 가이드
GIIP에 수집된 SES 제안서를 검토하고, 각 제안서의 FDE 점수와 조언을 확인한 뒤, 대상 담당자에게 제안 메일을 발송하는 작업을 하나의 관리자 화면에서 처리합니다.
📋 개요
SES 제안서 관리 페이지는 GIIP에 수집된 SES(프리랜서 엔지니어 소싱) 제안서를 표 형태로 보여줍니다. 각 제안서의 상태, FDE 점수/조언, 전체 본문을 검토하고, 등록된 대상 담당자에게 **제안 메일을 발송(큐 적재)**할 수 있습니다. 데이터는 SES 제안서 저장소에서 오며, 이 화면은 운영자가 제안서를 검토하고 발송하는 관제 화면입니다.
⚠️ 이 화면은 관리자 전용입니다. 접근하려면 관리자 레벨 **
uLevel >= 70**이 필요합니다. 그 미만 사용자는 홈으로 리다이렉트됩니다.
🔍 화면 구성
1. 상단 헤더
- 페이지 제목: "SES 제안서 관리"(현지화됨).
- 새로고침 버튼: 서버에서 제안서 목록을 다시 불러옵니다.
2. 상태 필터
상단 드롭다운으로 처리 상태별로 목록을 걸러냅니다.
| 필터 값 | 의미 |
|---|---|
| (전체) | 상태와 무관하게 모든 제안서 표시 |
| pending | 수집됨, 아직 분석 전 |
| analyzing | FDE 분석 진행 중 |
| sent | 제안 메일이 발송됨 |
| failed | 발송 또는 처리 실패 |
3. 제안서 표
각 행이 하나의 제안서를 나타냅니다.
| 컬럼 | 설명 |
|---|---|
| spSn | 제안서 일련번호(내부 ID) |
| SES 이름 | SES/엔지니어 이름 |
| 제목 | 제안서 제목 — 클릭하면 상세 모달이 열립니다 |
| 상태 | 색상 배지(pending / analyzing / sent / failed) |
| FDE 점수 | 자동 적합도 점수, NN/100 형식(미채점 시 -) |
| 등록일 | 등록 일시(사용자 로컬 시간으로 표시) |
| 작업 | 상세, 그리고 조건에 맞으면 메일 발송 |
4. 상세 모달
제목(또는 상세)을 클릭하면 제안서 전체를 담은 모달이 열립니다: spSn, SES 이름, 제목, 대상 이메일, 상태, FDE 점수, FDE 조언, 제안서 본문, 메일 발송 시각, 등록일. 이 모달에서 바로 메일을 발송할 수도 있습니다.
🛠️ 제안 메일 발송 방법
- 목록에서 제안서를 찾습니다(상태 필터로 좁히기, 예:
pending). - 상세를 눌러 본문, 대상 이메일, FDE 조언을 검토합니다.
- 메일 발송을 클릭합니다. 확인 대화상자가 뜨면 확인하여 진행합니다.
- 요청이 큐에 적재됩니다(
SESMailQueuePut). 성공하면 성공 메시지가 표시되고 목록이 새로고침되며, 상태가 sent 쪽으로 이동합니다. - 메일 발송 작업은
pending,analyzing,failed상태의 제안서에서만 제공됩니다. 이미sent인 제안서에는 버튼이 표시되지 않습니다.
💡 참고
- FDE 점수/조언은 자동 FDE 분석 파이프라인이 생성합니다. 점수가
-이면 아직 분석되지 않은 제안서입니다. - 발송은 비동기입니다: "메일 발송"은 메일을 큐에 넣을 뿐, 실제 전송은 메일 큐 워커가 처리하므로 상태는 이후 새로고침 시 갱신될 수 있습니다.
- 접근이 DB 모드(
mcMinLevel)로 보호되므로 필요한 레벨은 메뉴 설정에서 읽되, 관리자 잠금(lockout)을 막기 위해 70으로 상한이 적용됩니다.
API 참조
이 페이지는 두 개의 디스패치 커맨드(fetchAzureCommand 경유)로 백엔드와 통신합니다. 별도 API 가이드가 없으므로 핵심을 여기에 기술합니다.
| 커맨드 | 용도 | 주요 파라미터 |
|---|---|---|
SESProposalList | 제안서 목록 조회 | procStatus(선택 필터), limit(예: 100) |
SESMailQueuePut | 특정 제안서의 제안 메일을 큐에 적재 | spSn(제안서 일련번호) |
- 두 커맨드 모두 결과셋과 함께
RstVal상태 필드를 반환합니다.RstVal = 200은 성공,RstVal = 403은 세션 만료 또는 권한 없음(재로그인 필요)을 뜻합니다. - 목록 SP는 데이터 테이블과
RstVal테이블을 별도 결과셋으로 반환하며, 클라이언트는 첫 번째(데이터) 테이블을 읽습니다.
문제 해결
| 증상 | 원인 | 해결 |
|---|---|---|
| 접속 즉시 홈으로 튕김 | uLevel이 70 미만 | 관리자 계정(레벨 70+)으로 로그인하세요. |
| "세션 만료" / 403 오류 | 인증 토큰 만료 또는 없음 | 다시 로그인한 뒤 새로고침을 누르세요. |
| 목록이 비어 있음 | 현재 필터에 해당하는 제안서 없음 | 상태 필터를 (전체)로 바꾸거나 먼저 제안서를 수집/등록하세요. |
FDE 점수가 - | 아직 분석되지 않음 | FDE 파이프라인 실행을 기다린 뒤 새로고침하세요. |
| 메일 발송 버튼이 없음 | 이미 sent 상태 | 발송 완료된 제안서는 이 화면에서 재발송할 수 없습니다. |
| 상단 가이드 버튼(📖)이 안 보임 | 가이드 매핑 누락(구버전 배포) | 이 가이드가 배포·인덱싱되면 표시됩니다. |
버전: 1.0
최종 수정: 2026-08-02
소스 파일: giipv3/public/help/ses-proposal-manage.ko.md