프로젝트관리 (PM) — 와이어프레임

로우파이 데스크톱 와이어프레임 · Figma UI_Master 기준 재작성 (fileKey xFn4Tq2vnfAr42PpuxLbbP, SCR-PM-015 / 016 / 017) · 색·브랜딩 제외, 레이아웃·영역 배치만 표현.

← 와이어프레임 목록
회색 박스 = 실제 UI 컴포넌트의 자리표시(placeholder)입니다. 색·브랜딩·실데이터는 표현하지 않고 레이아웃·영역 배치만 담습니다. 필드·컬럼·상태값·예시 데이터는 Figma 목업(SCR-PM-015/016/017)을 그대로 옮긴 것입니다. Figma 미제공 상태(상세 오류·추가 모달)는 DE22-1 §06 기준을 유지하며 그 취지를 프레임에 표기했습니다.

화면 인덱스 (16 프레임 · SCR 4종 + 공통 알림벨)

SCR-PM-015프로젝트 목록/projects🎨 Figma: node 502:2132 (271:3538)
상단 KPI 카드 4종 + 탭·필터·목록을 한 카드에 담는다. 등록 진입은 타이틀 우측 버튼. 권한 ROLE_PM_VIEWER 이상.

진입 — 사이드바 1차 메뉴 [프로젝트] 클릭

  1. KPI 카드 4종 — 전체/내/관심/종료 프로젝트 건수를 상단 통계 카드로 보여준다. "전체" 카드는 강조(on) 스타일로 기본 선택 표시.
  2. + 프로젝트 등록 — 타이틀 우측 버튼. 클릭 시 SCR-PM-017 등록 화면으로 이동. 권한 ROLE_PM_EDITOR 이상만 노출.
  3. 상태 탭 — 전체/내 프로젝트/관심/종료. 목록 조회 범위를 좁히는 필터. 탭 전환 시 목록·페이지네이션 리셋.
  4. 검색 — 프로젝트명/현장주소 부분일치 검색.
  5. 종료된 프로젝트 토글 — 기본 OFF. ON 시 종료 상태 프로젝트도 목록에 포함.
  6. 상태 필터 드롭다운 — 예상/진행중/일시중단/완료/종료 5종 상태값으로 목록을 좁힌다.
  7. 목록 테이블 — ★/☆ 클릭으로 관심 등록·해제, 행 클릭 시 SCR-PM-016 상세로 이동.
  8. 페이지네이션 — 서버 페이징. 이전/다음 버튼 + 현재 페이지/전체 페이지 표시 + 페이지당 표시 개수 선택(20개/50개).
관련 API Swagger UI ↗
  • GET/api/pm/projects — 탭·상태·종료토글·검색 조건으로 목록 조회
  • GET/api/pm/projects/kpi — 상단 KPI 카드 4종(전체/내/관심/종료) 집계 조회
  • POST/api/pm/projects/{projectNo}/favorite — ☆ 클릭 시 관심 프로젝트 등록
  • DELETE/api/pm/projects/{projectNo}/favorite — ★ 클릭 시 관심 프로젝트 해제
프로젝트
CMD+K 검색
🔔3
프로젝트 목록
2+ 프로젝트 등록
1전체 프로젝트
48
이번 달 +6
내 프로젝트
12
진행 9
관심 프로젝트
5
즐겨찾기
종료 프로젝트
14
아카이브
3전체내 프로젝트관심종료
4프로젝트명/현장 검색 검색 5종료된 프로젝트 6상태 전체 ↻
☆7프로젝트명현장주소발주처상태생성일
★A 아파트 창호서울 강남구 테헤란로 222번지 000빌딩대우건설진행중YYYY.MM.DD
☆B 오피스텔부산 해운대구 센텀중앙로 에이스하이테크21현대건설진행중YYYY.MM.DD
★C 타워 커튼월인천 연수구 송도국제대로 00타워GS건설진행중YYYY.MM.DD
☆D 복합몰 리뉴얼대전 유성구 엑스포로롯데건설예상YYYY.MM.DD
★E 물류 센터경기 용인시 처인구 000-00번지 000한화건설진행중YYYY.MM.DD
☆A 아파트 창호서울 강남구 테헤란로 222번지 000빌딩대우건설종료YYYY.MM.DD
‹81 / 5›20개/페이지
SCR-PM-015프로젝트 목록빈 상태 (empty)🎨 Figma: node 269:1461
결과 0건이면 KPI 카드·탭·필터는 유지하고, 목록 카드 안에 EmptyState + 등록 CTA 를 표시한다.

진입 — 사이드바 1차 메뉴 [프로젝트] 클릭 (목록 결과 0건)

  1. KPI 카드 4종(유지) — 결과 0건이어도 상단 통계 카드는 그대로 노출되어 전체 맥락을 잃지 않는다.
  2. 상태 탭(유지) — 필터 값은 유지된 채 카드 본문만 빈 상태로 바뀐다.
  3. 검색·필터바(유지) — 조건을 바꾸면 다시 목록 조회를 시도할 수 있다.
  4. 빈 상태 카드 — "등록된 프로젝트가 없습니다" 안내 문구 + 설명 노출.
  5. 등록 CTA 버튼 — 클릭 시 SCR-PM-017 등록 화면으로 이동.
관련 API Swagger UI ↗
  • GET/api/pm/projects — 필터 결과 0건 조회(빈 상태 트리거)
  • GET/api/pm/projects/kpi — 빈 상태에서도 유지되는 KPI 카드 조회
프로젝트
CMD+K 검색
🔔3
프로젝트 목록
+ 프로젝트 등록
1전체 프로젝트
48
이번 달 +6
내 프로젝트
12
진행 9
관심 프로젝트
5
즐겨찾기
종료 프로젝트
14
아카이브
2전체내 프로젝트관심종료
3가상프로젝트000 검색 종료된 프로젝트 상태 전체 ↻
4등록된 프로젝트가 없습니다
새 프로젝트를 등록하여 프로젝트 관리를 시작하세요.
5+ 프로젝트 등록
로딩(skeleton)·4xx 목록 오류(인라인 배너) 상태는 같은 KPI·탭·필터 위에서 카드 본문만 대체한다 (Figma node 269:1164 loading · 271:3268 error 정합). 5xx 서버 오류는 §4.5 공통 규격에 따라 전면 error page(+[새로고침][홈])로 전환한다.
SCR-PM-016프로젝트 상세 · 기본정보 탭/projects/:projectNo🎨 Figma: node 108:140 (279:1870)
탭 바와 폼이 한 카드에 들어간다. 2열 폼(라벨 상단), 필수 = 프로젝트명 1종. 액션은 하단 가운데(삭제·취소·저장).

진입 — SCR-PM-015 [행 클릭] / SCR-PM-017 [등록] 완료 후 자동 이동 / 글로벌 검색 ⌘K 프로젝트 점프

  1. 탭바 — 기본정보/멤버/체크리스트/파일관리/도면/견적/발주/제조/실측/노트/변경이력(#3168 ④). 도면·견적·발주·제조·실측은 타 서브시스템(ES/OM/MF/FS)으로의 외부 링크.
  2. 목록으로 돌아가기 — SCR-PM-015 목록으로 복귀.
  3. 2열 폼(라벨 상단) — 프로젝트명만 필수(★). 나머지는 선택 입력.
  4. 상태 선택 — 진행중/견적중/예상/종료 등 프로젝트 진행 상태.
  5. 설명 — 자유 텍스트, 프로젝트 개요 기록.
  6. 삭제 버튼 — 예상(Prospect) 상태이면서 견적서가 없는 프로젝트만 활성화.
  7. 저장 버튼 — 변경된 기본정보를 반영.
관련 API Swagger UI ↗
  • GET/api/pm/projects/{projectNo} — 프로젝트 상세 로드
  • PUT/api/pm/projects/{projectNo} — 기본정보 저장
  • DELETE/api/pm/projects/{projectNo} — 예상+견적서없음 조건 충족 시 삭제
프로젝트  ›  A 아파트 창호공사
CMD+K 검색
🔔3
A 아파트 창호공사
2목록으로 돌아가기
1기본정보멤버체크리스트파일관리 도면견적발주제조실측노트변경이력
3프로젝트 명 *프로젝트 명을 입력하세요.
고객사 명고객사 명을 입력하세요.
현장 주소현장 주소를 입력하세요.
설계사무소설계사무소를 입력하세요.
영업담당자영업담당자를 입력하세요.
현장 담당자 (읽기 전용 · 1명)박지민  [현장 관리 열기] [멤버 탭에서 지정 →]
시작일시작일을 선택하세요.
예상 종료일예상 종료일을 선택하세요.
4상태상태를 선택해주세요.
5설명프로젝트에 대한 설명을 입력하세요.
6삭제취소7저장
삭제 조건: 예상(Prospect) 상태이며 견적서가 없는 프로젝트만 가능 — 미충족 시 [삭제] 비활성.
SCR-PM-016프로젝트 상세 · 멤버 탭🎨 Figma: node 119:1841
탭 카드 아래 별도 카드에 안내 배너·필터·멤버 표·페이지네이션. 현장담당(SITE, 프로젝트마다 1명)은 그 현장을 직접 재고 제작 묶음·제작지시서 승인을 맡는다(2026-10-14 #3051 · 실측 요청은 2026-10-20 #3705 로 걷음). 다른 역할은 업무 분담 표시.

진입 — SCR-PM-015 [행 클릭] / SCR-PM-017 [등록] 완료 후 자동 이동 / 글로벌 검색 ⌘K 프로젝트 점프 → [멤버] 탭 전환

  1. 탭바(멤버 활성) — 프로젝트 상세 서브 화면 전환.
  2. 안내 배너 — 현장담당(1명)은 현장 결정권자이고 다른 역할은 업무 분담 표시임을 알림(2026-10-14 뒤집힘, #3052).
  3. 이름/사번 검색 — 멤버 표를 좁히는 검색 조건.
  4. 역할 필터 — 전체/PM/설계 담당/현장 담당 등 프로젝트 역할로 필터링.
  5. + 멤버 추가 버튼 — 클릭 시 멤버 추가 모달(프레임 5)을 연다.
  6. 멤버 표 — 이름·사번·부서·역할·참여 시작일·비고. "관리" 열에서 수정/제외.
  7. 페이지네이션 — 서버 페이징.
관련 API Swagger UI ↗
  • GET/api/pm/projects/{projectNo}/members — 이름/사번 검색·역할 필터로 멤버 목록 조회
  • PUT/api/pm/projects/{projectNo}/members/{memberId} — "수정" 클릭 시 역할·비고 수정
  • DELETE/api/pm/projects/{projectNo}/members/{memberId} — "제외" 클릭 시 멤버 제거
프로젝트  ›  A 아파트 창호공사
CMD+K 검색
🔔3
A 아파트 창호공사
목록으로 돌아가기
기본정보1멤버체크리스트파일관리 도면견적발주제조실측노트변경이력
2현장담당(프로젝트마다 1명)은 이 현장을 직접 재고, 제작 묶음과 제작지시서 승인을 맡습니다. 다른 역할은 업무 분담 표시입니다.
3이름/사번 검색 4전체 역할 검색 5+ 멤버 추가
6이름사번부서프로젝트 역할참여 시작일비고관리
김영희U-2104영업1팀PMYYYY.MM.DD주관수정 제외
이성호U-2207설계1팀설계 담당YYYY.MM.DD-수정 제외
박지민U-2308현장팀현장 담당YYYY.MM.DD-수정 제외
‹71 / 1›총 3명
SCR-PM-016+ 멤버 추가 · 모달Figma 미제공 · DE22-1 §06 기준
멤버 탭 위에 뜨는 추가 모달. 사용자·프로젝트 역할·참여 시작일 필수.

진입 — SCR-PM-016 [멤버] 탭 [+ 멤버 추가] 버튼

  1. 사용자 검색·선택 — 이름/사번으로 검색해 대상 사용자를 선택. 필수.
  2. 프로젝트 역할 — PM/영업담당/설계담당/현장담당/실측담당/기타(⛔ 실측담당은 #3704 사용자 결정 2026-10-20 으로 걷는다 · ✅ 화면 반영 #3718 `wims2.0_fe` PR #1483 병합 `9e0dd164`). 필수. 현장담당은 프로젝트마다 1명 — 이미 있으면 409 PROJECT_SITE_MANAGER_DUPLICATE(2026-10-14 #3052).
  3. 참여 시작일 — 날짜 선택. 필수.
  4. 비고 — 자유 텍스트, 선택 입력.
  5. 추가 버튼 — 입력값을 멤버 표에 반영하고 모달을 닫는다.
관련 API Swagger UI ↗
  • POST/api/pm/projects/{projectNo}/members — 사용자·역할·참여시작일로 멤버 추가
  • GET/api/cm/users — "이름/사번 검색 후 선택" 사용자 목록 조회
모달 (dim 배경 위)
SCR-PM-016프로젝트 상세 · 체크리스트 탭🎨 Figma: node 119:1842
진행률 바는 탭 바 우측에 함께 놓인다. 필터 우측에 지연 배지 + 항목 추가. 항목별 담당자·기한·상태 관리.

진입 — SCR-PM-015 [행 클릭] / SCR-PM-017 [등록] 완료 후 자동 이동 / 글로벌 검색 ⌘K 프로젝트 점프 → [체크리스트] 탭 전환

  1. 탭바(체크리스트 활성) — 프로젝트 상세 서브 화면 전환.
  2. 진행률 표시 — 탭바 우측. 완료건수/전체 건수 + 진행률 바.
  3. 상태 필터 — 전체/완료/진행중/일시중단/예상 등 상태값 필터.
  4. 담당자 필터 — 담당자별 필터링.
  5. 항목명 검색 — 부분일치 검색.
  6. 지연 배지 — 기한 경과 항목 수를 강조 표시.
  7. + 항목 추가 버튼 — 클릭 시 항목 추가 모달(프레임 7)을 연다.
  8. 체크리스트 표 — 항목명·이름·기한·상태·비고. 행별 수정/삭제.
관련 API Swagger UI ↗
  • GET/api/pm/projects/{projectNo}/checklists — 상태·담당자·항목명 필터로 체크리스트 목록·진행률 조회
  • PUT/api/pm/projects/{projectNo}/checklists/{checklistId} — "수정" 클릭 시 항목·상태 수정
  • DELETE/api/pm/projects/{projectNo}/checklists/{checklistId} — "삭제" 클릭 시 항목 제거
프로젝트  ›  A 아파트 창호공사
CMD+K 검색
🔔3
A 아파트 창호공사
목록으로 돌아가기
기본정보멤버1체크리스트파일관리 도면견적발주제조실측노트변경이력
2진행률60% (6/10)
3전체 상태 4전체 담당자 5항목명 검색 6지연 1건 7+ 항목 추가
☑8항목명이름기한상태비고관리
☑현장 실측 완료김영희YYYY.MM.DD완료-수정 삭제
☑설계 도면 1차 검토이성호YYYY.MM.DD완료-수정 삭제
☐발주서 초안 작성박지민YYYY.MM.DD진행중-수정 삭제
☐고객 승인 회의홍길동YYYY.MM.DD지연기한 경과수정 삭제
☐착공 보고서 제출홍길동YYYY.MM.DD대기-수정 삭제
‹1 / 1›총 10건
SCR-PM-016+ 체크리스트 항목 추가 · 모달Figma 미제공 · DE22-1 §06 기준
체크리스트 탭 위에 뜨는 항목 추가 모달. 항목명·담당자·기한 필수.

진입 — SCR-PM-016 [체크리스트] 탭 [+ 항목 추가] 버튼

  1. 항목명 — 자유 텍스트. 필수.
  2. 담당자 — 목록에서 선택. 필수.
  3. 기한 — 날짜 선택. 필수.
  4. 상태 — 기본값 "대기". 선택 항목.
  5. 비고 — 자유 텍스트, 선택 입력.
  6. 추가 버튼 — 입력값을 체크리스트 표에 반영하고 진행률을 재계산한다.
관련 API Swagger UI ↗
  • POST/api/pm/projects/{projectNo}/checklists — 항목명·담당자·기한·상태로 체크리스트 항목 추가
모달 (dim 배경 위)
SCR-PM-016프로젝트 상세 · 파일관리 탭🎨 Figma: node 119:1843
가운데 드롭존 + 파일 표(행별 관리: 다운로드·미리보기·삭제). 도면의 원본 파일도 이 탭에 둔다 — [도면] 탭은 여기 파일을 불러와 도면으로 쓴다(#3701).

진입 — SCR-PM-015 [행 클릭] / SCR-PM-017 [등록] 완료 후 자동 이동 / 글로벌 검색 ⌘K 프로젝트 점프 → [파일관리] 탭 전환

  1. 탭바(파일관리 활성) — 프로젝트 상세 서브 화면 전환. [도면] 탭은 ES 자원 도면 관리(변환·견적)로 따로 두고, 그 원본 파일은 이 탭에 있다(#3701).
  2. 목록으로 돌아가기 — SCR-PM-015 목록으로 복귀.
  3. 드롭존 — 드래그&드롭으로 계약서·공문·도면 파일(.dwg·.dxf) 업로드. 여기 올린 도면 파일을 [도면] 탭의 [파일관리에서 불러오기] 가 골라 도면으로 만든다(#3701 · ✅ 서버 반영 #3714 · ✅ 화면 반영 #3715).
  4. 파일 표 — 파일명·유형·크기·업로드자·업로드일·도면. 「도면」 열은 도면 보관함이 도면으로 불러온 파일에 「도면 · {용도}」 배지를 단다(#3701).
  5. 관리 액션 — 행별 다운로드·미리보기·삭제. 도면으로 쓰는 파일은 [삭제] 를 잠그고 「도면 보관함에서 도면을 먼저 지워야 합니다.」를 보인다(서버 409 PROJECT_FILE_USED_BY_DRAWING, #3701).
관련 API Swagger UI ↗
  • GET/api/pm/projects/{projectNo}/files — 파일 목록 조회. 줄마다 drawingId·drawingKind(#3701 · MISSING — 서버 반영 전)
  • POST/api/pm/projects/{projectNo}/files/upload-direct — 드롭존 드래그&드롭 업로드
  • DELETE/api/pm/projects/{projectNo}/files/{fileId} — 파일 표 "삭제" 액션. 프로젝트 파일 삭제 (ProjectController.deleteFile)
  • GET/api/external/s3/presign/download?fileKey= — "다운로드"·"미리보기" 액션. 개별 파일 전용 다운로드 API 는 신설하지 않고 기존 S3 다운로드 URL 발급(S3PresignController, IF-EXT-S3-002)을 재사용한다. 파일 행의 S3 key 로 발급받아 내려받는다
프로젝트  ›  A 아파트 창호공사
CMD+K 검색
🔔3
A 아파트 창호공사
2목록으로 돌아가기
기본정보멤버체크리스트1파일관리 도면견적발주제조실측노트변경이력
3파일을 여기에 드롭
4파일명유형크기업로드자업로드일도면5관리
설계도면_v2.dwgDWG12.4MB이성호YYYY.MM.DD도면 · 평면도다운로드 · 미리보기 · 삭제(잠김)
청계초_창호일람표.dwgDWG3.1MB이성호YYYY.MM.DD다운로드 · 미리보기 · 삭제
발주서_초안.xlsxXLSX320KB김영희YYYY.MM.DD다운로드 · 미리보기 · 삭제
계약서_초안.pdfPDF1.2MB박지민YYYY.MM.DD다운로드 · 미리보기 · 삭제
SCR-PM-016프로젝트 상세 · 변경이력 탭Figma 미제공 · DE22-1 §06 기준 (#3168 ④ · ⏳ 화면 반영 전)
기본정보 칸이 언제·누구에 의해·무엇에서 무엇으로 바뀌었는지 보는 읽기 전용 표. 되돌리기·내보내기·고르개는 없다.

진입 — SCR-PM-016 탭 줄 맨 끝 [변경이력] 탭 전환 (보이는 역할 = ROLE_PM_VIEWER 이상)

  1. 탭바(변경이력 활성) — [노트] 다음, 탭 줄 맨 끝. 라우팅 컨테이너가 아니라 이 화면 안의 탭이다.
  2. 일시·변경자 — 최근 것이 위. 변경자는 이름(changedByName), 없으면 아이디.
  3. 바뀐 칸·변경 전·변경 후 — 칸 이름은 기본정보 탭 이름으로 바꿔 적는다(예 status → 상태). 상태 값은 상태 이름으로, 빈 값은 「—」. 기록이 없으면 「아직 바뀐 기록이 없습니다.」
  4. 쪽 넘김 — 한 번에 20줄.
관련 API Swagger UI ↗
  • GET/api/pm/projects/{projectNo}/history?page=&size=20&sort=changedAt,desc — 프로젝트 변경이력 페이지 (IF-PM-PRJ-006)
프로젝트  ›  A 아파트 창호공사
CMD+K 검색
🔔3
A 아파트 창호공사
목록으로 돌아가기
기본정보멤버체크리스트파일관리 도면견적발주제조실측노트1변경이력
2일시변경자3바뀐 칸변경 전변경 후
YYYY.MM.DD HH:mm이성호상태예상진행중
YYYY.MM.DD HH:mm김영희영업 담당박지민김영희
YYYY.MM.DD HH:mm김영희현장주소—경기도 하남시 …
4‹1 / 1›
SCR-PM-016프로젝트 상세에러 상태 (error)Figma 미제공 · DE22-1 §06 기준 (chrome만 Figma 정합)
상세 데이터 로드 실패(404·서버 오류) 시 안내 문구 + [목록으로 돌아가기]만 표시. 하단 삭제·취소·저장 미표시 (ISS-0148).

진입 — SCR-PM-015 [행 클릭] / SCR-PM-017 [등록] 완료 후 자동 이동 / 글로벌 검색 ⌘K 프로젝트 점프 (대상 데이터 로드 실패 시)

  1. 탭바(골격 유지) — 오류 시에도 탭 구조는 유지해 다른 탭 이동을 시도할 수 있게 한다(단, 상세 데이터는 로드 실패 상태).
  2. 상단 목록으로 돌아가기 버튼 — 타이틀 우측, SCR-PM-015로 복귀.
  3. 오류 안내 배너 — "데이터를 불러올 수 없습니다." 문구로 로드 실패를 알림.
  4. 본문 목록으로 돌아가기 버튼 — 저장·삭제 대상이 없으므로 유일한 액션으로 카드 중앙에 강조 배치.
관련 API Swagger UI ↗
  • GET/api/pm/projects/{projectNo} — 상세 로드 실패(404·5xx) 시 이 상태로 전환
프로젝트  ›  프로젝트 상세
CMD+K 검색
🔔3
프로젝트 상세
2목록으로 돌아가기
1기본정보멤버체크리스트파일관리 도면견적발주제조실측노트변경이력
!3데이터를 불러올 수 없습니다.
4목록으로 돌아가기
하단 [삭제]·[취소]·[저장] 버튼은 미표시 (저장·삭제 대상 없음). ※ 상세 오류 상태는 Figma 미제공 — 골격은 Figma 정합, 본문은 DE22-1 §06 기준.
SCR-PM-017프로젝트 등록/projects/new🎨 Figma: node 360:1124 (360:2069)
신규 프로젝트를 등록한다. 가운데 정렬 2열 폼, 하단 가운데 [취소]·[등록]. projectNo 는 서버 자동 채번(입력 필드 없음). 권한 ROLE_PM_EDITOR.

진입 — SCR-PM-015 [+ 프로젝트 등록] 버튼 클릭 (목록/빈 상태 공통 CTA)

  1. 2열 폼(라벨 상단) — 프로젝트명만 필수(★, ISS-0192). 고객사명·현장주소·시작일은 선택 입력(PROSPECT 초기 미확정 허용). projectNo 입력란 없음(서버 자동 채번).
  2. 상태 선택 — 등록 시점 기본값은 "예상(Prospect)"로 추정.
  3. 설명 — 자유 텍스트, 선택 입력.
  4. 취소 버튼 — 입력을 버리고 목록으로 복귀.
  5. 등록 버튼 — 필수 4종 미충족 시 비활성. 완료 시 SCR-PM-016 상세로 이동.
관련 API Swagger UI ↗
  • POST/api/pm/projects — 프로젝트 등록(성공 시 상세로 이동)
프로젝트  ›  프로젝트 등록
CMD+K 검색
🔔3
프로젝트 등록
1프로젝트 명 *프로젝트 명을 입력하세요.
고객사 명고객사 명을 입력하세요.
현장 주소현장 주소를 입력하세요.
설계사무소설계사무소를 입력하세요.
영업담당자영업담당자를 입력하세요.
시작일시작일을 선택하세요.
예상 종료일예상 종료일을 선택하세요.
2상태상태를 선택해주세요.
3설명프로젝트에 대한 설명을 입력하세요.
4취소5등록①
① 필수 = 프로젝트명 1종만 (ISS-0192 결정, 등록·상세 대칭) — 고객사명·현장주소·시작일은 PROSPECT 초기 미확정을 허용하는 선택 입력. 미충족 시 [등록] 비활성. 프로젝트 번호는 서버 자동 채번 — 입력 필드 없음.
SCR-PM-025현장 관리 · 담당 현장 · 진행 상황/site-management/:projectNo2026-10-14 신설 (#3054) · 📌 #4181 다시 짬 2026-10-30 · ⏳ 화면 반영 전
현장담당(계약마다 1명)이 맡은 현장의 묶음(제작 묶음 — 번호는 1차 · 2차 …)마다 어디까지 왔고 지금 내 할 일이 무엇인지 한 줄로 보고, 그 자리에서 처리한다. 📌 #4181 결정(2026-10-30) — 탭은 업무 차례대로 넷(진행 상황 → 승인 대기함 → 견적 정보 → 결정 기록)이다. 종전 [제작 묶음] 탭은 없애고 이 탭에 합쳤다(묶음 목록 · [실측 생략 묶음 만들기] · 이름 고치기 · 개소 태그). 줄 끝 「할 일」 칸에는 주 단추를 많아야 하나 맨 앞에 두고, 보기는 글 링크, 그 밖은 [⋯] 메뉴로 내린다. 묶음은 현장담당이 짜지 않는다 — 앱으로 재어 올린 개소로 서버가 세운다(#3704). 쓰기는 현장담당 또는 ROLE_ADMIN(사유 필수). 정본 DE22-1 §06 SCR-PM-025 「📌 #4181 결정」 상자 · 공통 배치 규칙 §00 §4.7.

진입 — 사이드바 1차 메뉴 [현장 관리](견적설계와 발주관리 사이 · 할 일 배지) 클릭 → 마지막에 본 현장 상세(없으면 담당 현장 목록) / 다른 역할의 첫 화면이 없는 현장담당은 로그인 직후 바로 이 화면 / 담당 현장 목록에서 현장 줄 클릭 → 그 현장 [진행 상황] 탭 / SCR-PM-016 [기본정보] 「현장담당」 줄 [현장 관리 열기] 클릭 → 그 현장 상세 / 알림벨(#f14) 「현장담당으로 지정됐습니다」(① PJ_SITE_MANAGER_ASSIGNED) 클릭 → [진행 상황] 탭 / 알림벨 「제작지시서 승인 요청」(⑥) 클릭 → [승인 대기함] 탭(#f13) / SCR-FS-002 실측 검토 머리 [← 현장 관리로] 클릭 → 같은 현장 · [진행 상황] · 그 묶음 줄 강조 / 옛 주소 ?tab=request(없앤 [제작 묶음] 탭) → [진행 상황] 으로 넘김.

다음 단계 — 「실측 보기」 → SCR-FS-002 실측 검토(주소에 returnTo) · [타입 수 정하기] → 창(#f11b) · [제작지시서 승인하기] → [승인 대기함] 탭(#f13) · 「발주 보기」 → SCR-OM-003 발주 목록(그 묶음을 건 발주) · [실측 생략 묶음 만들기] · [⋯] 메뉴 창 → #f12 · [프로젝트 상세 →] → SCR-PM-016.

  1. 담당 현장 목록 — 내가 현장담당(SITE)인 현장만. 위에 검색칸(현장명 · 프로젝트 번호), 관리자에게만 그 아래 [모든 현장] 체크(종전 머리 오른쪽에서 옮김). 줄마다 현장명과 「할 일 N」 배지(승인할 제작지시서 + 타입 수를 정할 묶음, 0 이면 배지 없음), 할 일이 있는 현장이 위로. 빈 상태 「맡은 현장이 없습니다. 프로젝트 [멤버]에서 현장담당으로 지정되면 여기에 나옵니다.」 실측담당(MEASURER) 현장 · 「실측담당」 표시(#3612) ⛔ #3704 로 걷음.
  2. 현장 머리 — 제목은 「{현장명}」 한 겹(종전 「{현장명} — 현장 관리」 두 겹을 걷음). 요약 줄 「현장담당 {이름} · 계약 견적 버전 N · 진척 N% · {주소}」(「Rev.N」 대신 「버전 N」 은 이 화면만). 오른쪽 [프로젝트 상세 →] 보조 단추 — 프로젝트 상세 셸을 열 수 있는 사람에게만. 관리자 대리면 주황 안내 한 줄.
  3. 탭 넷 — 진행 상황 · 승인 대기함(대기 수) · 견적 정보 · 결정 기록. 처음 여는 탭은 진행 상황. 탭 열쇠 progress · approvals · estimate · history 그대로, request 는 넘김으로만.
  4. 단계 막대 — 작성중 → 실측중 → 실측완료 → 제작설계중 → 제작지시서 승인대기 → 제작지시서 승인됨 → 발주 승인됨 → 제작중 → 완료(이름은 DE22-1 §06 「화면 용어 표」, #3611). 제조 화면의 「N/5」 보정 진행은 「제작설계중」 칸 안의 세부 단계다(#4181 Q2 — 제조 화면도 「보정 중」 · 「승인 대기」 대신 이 이름을 쓴다).
  5. 할 일 띠 — 「승인할 제작지시서 N건 [보기] · 타입 수를 정할 묶음 N개 [보기]」. 둘 다 0 이면 그리지 않는다. 같은 합계가 사이드바 [현장 관리] 배지와 목록 「할 일 N」 배지다.
  6. 「할 일」 칸 — 주 단추(파랑)는 많아야 하나, 맨 앞 고정. 보기는 글 링크, 그 밖은 줄 끝 [⋯], 되돌리기 어려운 일은 [⋯] 안 빨간 글씨. 단계별: 작성중(실측 생략 묶음) [실측 생략으로 진행] · [⋯] 이름 고치기 · 묶음 취소 / 실측중 실측 보기 · [⋯] 이름 고치기 / 실측완료 — 정할 타입 수가 남음 [타입 수 정하기] · 실측 보기 · [⋯] 이름 고치기 / 실측완료 — 정함 글 「제작팀 보정 대기」 · 실측 보기 · [⋯] 타입 수 고치기 · 이름 고치기 / 제작설계중 글 「제작팀 보정 중」 · [⋯] 타입 수 고치기 · 이름 고치기 / 제작지시서 승인대기 [제작지시서 승인하기] · [⋯] 이름 고치기 (보정 차수면 묶음 취소) / 제작지시서 승인됨 [⋯] 승인 철회(보정 차수는 없음) / 발주 승인됨 · 제작중 발주 보기 · [⋯] 보정 차수 만들기 / 완료 발주 보기. [제조 › 묶음에서 보정 시작] ⛔ #4181 로 없앰 — 보정은 제작팀 일이라 글 「제작팀 보정 대기 · 중」 으로 두고, 제조 화면 권한이 있는 사람에게만 그 글이 SCR-MF-008 링크다. [승인 대기함에서 보기] → [제작지시서 승인하기].
  7. 권한 없는 링크 숨김 — 「실측 보기」(FS_VIEWER_PLUS 또는 그 현장 현장담당) · 「발주 보기」(OM_VIEWER_PLUS) · [프로젝트 상세 →](프로젝트 셸)는 도착 화면을 열 수 있을 때만 그린다. 없으면 「발주 입고」 칸 값만 본다. 쓰기 권한이 없으면 주 단추와 [⋯] 를 그리지 않는다.
  8. 발주 입고 칸 — 📌 #3635 (✅ 서버 반영 #3639 · ✅ 화면 반영 #3634 daa11fb5). 그 묶음을 담은 발주의 입고 진척. 발주에 들지 않은 묶음은 비움 · 발주확정 전이면 발주 상태 이름만(예: 「승인대기」) · 확정 뒤 「입고 66% (12/18줄)」, 일부만 들어온 줄이 있으면 「일부 입고 3줄」 · 한 발주에 묶음 둘 이상이면 「4차 · 5차 함께 발주」 · 줄이 없는 묶음 발주는 「입고할 줄 없음」. 칸 머리 도움말은 그대로.
  9. 타입 수 정하기 — 📌 #3589 · #4181 Q4(종전 이름 「사이즈 타입 정하기」). 정할 부호가 남은 실측완료 묶음(sizeTypesPending > 0)의 주 단추이고, 줄 아래에 「타입 수를 정해야 제작팀이 보정을 시작합니다 (N개 부호)」. 정한 뒤 다시 고치는 일은 [⋯] 「타입 수 고치기」(실측완료 · 제작설계중). 창은 #f11b.
  10. 표 위 · 표 아래 · 빈 상태 — 표 위 오른쪽 [실측 생략 묶음 만들기] 하나(#f12 ①). 표 아래 접힌 구역 「묶음에 못 담은 잰 개소 N곳」(#4086, 비면 숨김) · 「묶음 밖 발주 N건 — 입고 80% (40/50줄)」(#3635, 없으면 숨김) · 「개소 태그」(#f12 ④). 열린 차수(아직 제작팀이 보정을 시작하지 않은 묶음 하나)에는 「열린 차수 — 새로 재는 개소가 여기에 담깁니다」 표시(#3704). 빈 상태 「아직 묶음이 없습니다. 현장에서 앱으로 실측을 올리면 1차 묶음이 생깁니다.」 + [실측 생략 묶음 만들기].
  11. 부호 × 묶음 수량 — 🔄 #4181 로 [견적 정보] 탭의 접힌 「차수별 나눔 보기」로 옮겼다(이 탭에서 걷음). 실측담당 보기(⑦) ⛔ #3704 로 걷어 기록으로만 둔다.
관련 API Swagger UI ↗
  • GET/api/fs/site-manager/projects — 내 담당 현장 목록 · 진척 · 승인 대기 수 — 사이드바 메뉴 보임 · 배지도 이 목록으로 정한다 — IF-FS-BATCH-001, DE24-1 §5.4.38 [구현] · 「현장별 할 일 수」(승인 대기 + 타입 수를 정할 묶음)를 지금 응답으로 셀 수 없으면 칸을 더한다(#4181 BE 단계)
  • GET/api/pm/projects/{projectNo} — 현장 머리(이름 · 주소 · siteManagers)
  • GET/api/fs/projects/{projectId}/batches — 묶음 목록 · 단계 · sizeTypesPending(#3589) · 발주 입고 orderReceiving · unbatchedReceiving(#3635) · 못 담은 잰 개소 unbatchedMeasuredAreas[](#4086) — §5.4.38 [구현]
현장 관리  ›  A 아파트 창호공사
CMD+K 검색
🔔3
1담당 현장
현장명 · 프로젝트 번호
☐ 모든 현장 (관리자만)
A 아파트 창호공사
진척 30% · 버전 2
할 일 2
B 오피스텔 창호공사
진척 10% · 버전 1
할 일 1
C 타워 커튼월
진척 0% · 버전 1
2A 아파트 창호공사
프로젝트 상세 →
현장담당 박지민 · 계약 견적 버전 2 · 진척 30% · 서울시 ○○구 ○○로 12
5승인할 제작지시서 1건 [보기] · 타입 수를 정할 묶음 1개 [보기]
3진행 상황승인 대기함 (1)견적 정보결정 기록
차수묶음 이름부호별 수량개소 수4단계8발주 입고 ⓘ6할 일
1차1차 실측AW1 3030제작지시서 승인대기 (버전 2)제작지시서 승인하기 ⋯
2차2차 실측AW1 5050제작설계중제작팀 보정 중 ⋯
3차AW7 추가분 (실측 생략)AW7 4 (추가 진행)0작성중실측 생략으로 진행 ⋯
⋯ = 이름 고치기 · 묶음 취소
4차4차 실측AW2 1212발주 승인됨입고 66% (12/18줄) · 일부 입고 3줄
4차 · 5차 함께 발주
7발주 보기 ⋯
5차5차 실측AW2 1010발주 승인됨입고 66% (12/18줄) · 일부 입고 3줄
4차 · 5차 함께 발주
발주 보기 ⋯
6차6차 실측
열린 차수
새로 재는 개소가 여기에 담깁니다
AW1 20 · AW3 626실측완료9타입 수 정하기 실측 보기 ⋯
타입 수를 정해야 제작팀이 보정을 시작합니다 (2개 부호)
▸ 묶음 밖 발주 2건 — 입고 80% (40/50줄)
다른 꼴: 발주확정 전이면 「승인대기」처럼 발주 상태 이름만 · 줄이 없는 묶음 발주는 「입고할 줄 없음」 · 발주 조회 권한이 없으면 「발주 보기」 링크 없이 칸 값만
SCR-PM-025현장 관리 · 「타입 수 정하기」 창 (종전 「사이즈 타입 정하기」, #4181 Q4)모달 · /site-management/:projectNo?tab=progress📌 #3589 결정 2026-10-19 · ✅ 서버 반영 #3585 · ⏳ 화면 반영 전
같은 부호가 여러 곳에 달려 설계는 같은 크기인데 실측이 위치마다 다를 때, 실측 데이터를 보고 부호마다 몇 가지 크기(타입)로 만들지 정한다. 현장담당이 정한다(관리자 대리는 사유 필수). 현장담당이나 실측담당 가운데 한 사람이 정하면 된다. ⛔ 뒤집힘 (#3704 — 실측담당 걷음). 정본은 DE22-1 §06 SCR-PM-025 ⑤ 「사이즈 타입 정하기」와 DE24-1 §5.8.13 「사본 부호 나누기 · 수량별 색 이름」 6.

진입 — SCR-PM-025 [진행 상황] 탭의 실측완료 묶음 줄 주 단추 [타입 수 정하기] 클릭(#f11 ⑨ — 현장담당), 또는 실측완료 · 제작설계중 묶음 줄 [⋯] 「타입 수 고치기」 클릭(📌 #4181) → 그 묶음의 창이 열린다 / 그리고 #3612 로 현장 관리에 들어온 실측담당 · 알림벨 「실측 완료 — 타입을 정하세요」(⑤) 클릭 → [진행 상황] 의 그 묶음 행이 펼쳐진 채 도착한 뒤 같은 단추로 연다 ⛔ 뒤집힘 (#3704 — 실측담당과 알림 ⑤ 를 걷음, ⏳ 화면 반영 전) / SCR-FS-002 실측 검토의 「사이즈 타입 정하기」 진입은 field-survey 와이어프레임 몫.

  1. 정해야 하는 부호 — 처음 값이 2 이상인 부호를 위에 둔다. 부호 줄에 실측 개소 수와 개소별 실측 가로·세로를 점으로 찍은 작은 그림.
  2. 타입 수 칸 — 처음 값이 미리 채워져 있다(1 이상 · 개소 수 이하). 숫자를 바꾸면 미리보기로 타입 표를 다시 짠다.
  3. 짜 본 타입 표 — 타입 이름(AW-1-1 · AW-1-2 · AW-1-3) · 개소 수 · 몰린 크기 · 가장 많이 줄인 양.
  4. 줄임 한계 — 한계를 넘는 타입 줄은 빨간 글씨와 「한계를 지키려면 {최소}개 이상」 안내, [저장] 잠김(서버 422 SIZE_GROUP_REDUCE_EXCEEDED). 줄임 한계 칸은 시스템 설정 값이 처음 값이고 이 묶음에서만 늘릴 수 있다.
  5. 한 크기로 몰리는 부호 — 아래에 접어 둔다.
  6. 저장 — 토스트 「타입 수를 정했습니다. 제작팀이 보정을 시작할 수 있습니다.」(#4181 Q4 — 종전 「사이즈 타입 수를 …」) 제작설계중 묶음에서 바꾸면 저장 전 확인창 「제작팀이 이미 나눈 타입은 다음 절단 재계산 적용 때 다시 나뉘고, 타입에서 손본 치수는 사라집니다.」 관리자 대리만 사유 필수(실측담당·현장담당 본인은 사유 없음 — ⛔ 실측담당은 #3704 로 걷음, ✅ 화면 반영 #3718 `wims2.0_fe` PR #1483 병합 `9e0dd164`). 제작지시서 승인대기부터는 창이 읽기 전용. 정한 사람·시각을 창 아래에 보인다. 저장하면 서버가 그 묶음 제작팀에게 ⑤′ 알림을 보낸다(DE24-1 §6.6).
  7. 부호 그림 (#4166 · #4167 · FR-ES-025 · ⏳ 서버 · 화면 반영 전) — 부호 줄 머리, 개소별 실측 점 그림 왼쪽에 작은 칸 56 px. 칸이 몇 개로 나뉜 창인지 보고 타입을 몇 가지로 나눌지 정한다. 마우스를 올리면 240 px 미리보기가 뜬다. 이 창의 부호는 견적 부호라 꼬리표가 붙지 않는다. SCR-FS-002 에서 열어도 같은 창이라 같게 보인다. 칸이 없는 부호는 같은 크기 빈 자리에 「그림 없음」 이다. 이 자리 정본은 06_프로젝트관리 SCR-PM-025 「부호 그림」 묶음이다. 크기 · 상태 문구 · 56 px 이하 줄여 그리기 · 꼬리표 규칙은 DE22-1 §00 §10 이 정본이다.
관련 API Swagger UI ↗
  • GET/api/fs/projects/{projectId}/batches/{batchId}/size-types — 부호마다 실측 개소 가로·세로·처음 값·저장 값·정한 사람·짠 타입 목록·minCountWithinLimit — DE24-1 §5.8.13 [구현] (#3585)
  • POST/api/fs/projects/{projectId}/batches/{batchId}/size-types/preview — 저장하지 않고 타입을 짜 본다(한계를 넘어도 막지 않음) — §5.8.13 [구현]
  • PUT/api/fs/projects/{projectId}/batches/{batchId}/size-types — 타입 수 저장 { items:[{sectionId,count}], maxReduceMm?, reason? } · 422 SIZE_GROUP_REDUCE_EXCEEDED — §5.8.13 [구현]
  • GET/api/fs/projects/{projectId}/batches/{batchId}/size-types — 사이즈 타입 조회 응답 items[] 부호 줄마다 부호 그림 칸 cropPictureUrl(그림 주소 — 읽을 때마다 서버가 한 시간짜리를 새로 발급, 화면이 오래 들고 있지 않는다) · cropPictureStatus(그림 상태 PENDING · RENDERED · SKIPPED · FAILED, null 은 SKIPPED 로 읽는다). 원본 부호의 그림이다. 미리보기(POST …/size-types/preview) 응답도 같은 모양이고, 저장(PUT) 응답에는 싣지 않는다(§5.8.13). DE24-1 §5.4.13 「부호 그림 칸」(#4168) · ⏳ 서버 반영 전 #4171
SCR-PM-025현장 관리 · [견적 정보] 탭 — 제작 도면 금액 · 금액 변경 기록 창/site-management/:projectNo?tab=estimate📌 #3656 결정 2026-10-20 · ✅ 서버 반영 #3654 · ✅ 화면 반영 #3655 0a8c9884
현장담당이 제작용 사본의 단가 · 할증 · 공차와 실행예산을 고치고, 누가 언제 무엇을 바꿨는지 기록으로 본다. 제작 도면 금액은 현장 관리용 참고 값이라 견적서 · 계약 · 경영 집계에는 원본 금액이 쓰인다. 정본 DE22-1 §06 SCR-PM-025 ⑤ 「제작 도면 금액」 · §08 #3053 상자의 #3656 불릿 · DE24-1 §5.8.13 「#3656 결정」.

진입 — SCR-PM-025 현장 상세(#f11)에서 [견적 정보] 탭 클릭 → 부호 수량 표 아래에 「제작 도면 금액 (참고 값)」 카드가 보인다. 카드의 [모두 보기] 클릭 → 「금액 변경 기록」 창이 열린다.

다음 단계 — [단가 · 할증 · 공차 고치기] → SCR-ES-016 사본 모드 · [실행예산 고치기] → SCR-ES-008 사본 모드. 두 화면 머리의 [현장 관리로] 로 이 탭에 돌아온다.

  1. 카드 머리 안내 — 「현장 관리용 참고 값입니다. 견적서 · 계약 · 경영 집계에는 원본 금액이 쓰입니다.」 사본이 아직 없으면 카드에 「제작 도면이 아직 없습니다. 제작팀이 첫 보정을 시작하면 만들어집니다.」만 적는다.
  2. 제작 도면 견적 금액 — 금액 결과의 quoteAmount(부가세 별도). 원본 계약 금액은 견적 역할이 있어야 읽히므로 이 카드에 두지 않는다.
  3. 고치기 단추 둘 — 그 현장의 현장담당과 관리자에게 보인다. 관리자가 [모든 현장] 으로 열었으면 단추 곁에 「관리자 대리 — 사유 필수」 표시. 저장 때 사유는 현장담당은 선택, 관리자 대리는 필수(서버 400 BATCH_REASON_REQUIRED).
  4. 최근 기록 5줄 — 저장 한 번이 한 줄(언제 · 누가 · 바뀐 칸 수). [모두 보기] 로 창을 연다.
  5. 금액 변경 기록 창 — 저장 한 번이 한 묶음이다. 묶음 머리 줄에 언제 · 누가(「현장담당」 또는 「관리자 대리」) · 사유, 아래에 「항목 — 칸: 바꾸기 전 → 바꾼 값」 줄. 행을 더하면 바꾸기 전 칸에 「(없음)」, 빼면 바꾼 값 칸에 「(뺌)」. 거르개 [전체] · [가격 설정] · [실행예산]. 기록이 없으면 「아직 고친 기록이 없습니다.」 사본 모드 SCR-ES-016 · SCR-ES-008 의 [변경 기록] 도 이 창을 연다.
  6. 탭 자리 · 차수별 나눔 · 낱말 (📌 #4181) — [견적 정보] 는 셋째 탭이다(진행 상황 → 승인 대기함 → 견적 정보 → 결정 기록). 부호별 수량 표 아래에 접힌 「차수별 나눔 보기」(종전 [진행 상황] 의 부호 × 묶음 수량 표)를 두고, 그 아래에 이 카드. 카드 단추는 카드 머리 오른쪽 보조 단추. 부호 링크는 견적 조회 권한이 있을 때만. 빈 상태 「계약된 견적이 없어 실측 생략 묶음을 만들 수 없습니다.」 화면 문구의 「사본」은 「제작 도면」으로 부른다(Q2). 이 카드 이름도 「제작 도면 금액」이다(🔄 #4184, 종전 「제작용 사본 금액」). 「금액 변경 기록」 창은 읽기 전용이라 [닫기] 하나다.
관련 API Swagger UI ↗
  • GET/api/mf/projects/{projectId}/production-estimate — 사본 머리(사본 견적 번호). 현장담당에게 열려 있다 — DE24-1 §5.8.13 [구현]
  • GET/api/es/estimates/{사본}/amount — 사본 견적 금액. 사본이면 그 프로젝트 현장담당에게도 연다 — #3656 ⏳ 서버 반영 전
  • GET/api/es/estimates/{사본}/amount-history?target=PRICING|BUDGET — 금액 변경 기록(저장 묶음 · 바뀐 칸) — #3656 신설 ⏳ 서버 반영 전
A 아파트 창호공사
프로젝트 상세 →
진행 상황승인 대기함 (1)견적 정보결정 기록
(부호별 견적 · 묶음 · 남은 · 추가 진행 수량 표 — 종전 그대로)
제작 도면 금액 (참고 값)
1현장 관리용 참고 값입니다. 견적서 · 계약 · 경영 집계에는 원본 금액이 쓰입니다.
2제작 도면 견적 금액 (VAT 별도) 412,300,000 원
3단가 · 할증 · 공차 고치기 실행예산 고치기
4언제누가무엇을사유
2026-10-20 15:12박지민 (현장담당)가격 설정 — 2칸—
2026-10-19 10:03관리자 (관리자 대리)실행예산 — 1칸현장담당 휴가 중 대리 입력
모두 보기
SCR-PM-025현장 관리 · [진행 상황] 의 창 · 개소 태그모달 · /site-management/:projectNo?tab=progress📌 #4181 2026-10-30 · ⏳ 화면 반영 전
[진행 상황] 묶음 표에서 손으로 하는 일의 창이다 — 실측 생략 묶음 만들기 · 묶음 이름 고치기 · 묶음 취소 · 개소 태그. 📌 #4181 로 [제작 묶음] 탭(?tab=request)을 없애고 이 일들을 [진행 상황] 의 표 위 단추와 줄 끝 [⋯] 메뉴로 옮겼다. 모든 창은 아래 왼쪽 [취소] · 오른쪽 실행(§00 §4.7 R6) — 입력 · 사유 창의 [닫기] 는 [취소] 로 바꾼다. 정본 DE22-1 §06 SCR-PM-025 「📌 #4181 결정」 상자 5 · ⑤ 「차수 목록에서 하는 일」(#3704). 이 프레임의 종전 본문(개소 고르기 · 수량 나누기 · 범위 고치기 · 저장 전 확인창 — #3704 로 뒤집힘)은 걷었다. 그 기록은 §06 SCR-PM-025 ⑤ 의 취소선 불릿에 남아 있다.

진입 — #f11 [진행 상황] 표 위 오른쪽 [실측 생략 묶음 만들기] 클릭(빈 상태의 같은 단추도) → ① / 작성중 줄 주 단추 [실측 생략으로 진행] → 사유 창 / 줄 끝 [⋯] → 「이름 고치기」 ② · 「묶음 취소」(빨강) ③ · 「승인 철회」(빨강) · 「보정 차수 만들기」 / 표 아래 접힌 「개소 태그」 펼침 → ④. 옛 주소 ?tab=request 로 들어오면 [진행 상황] 으로 넘어온다.

다음 단계 — 창에서 실행에 성공하면 창을 닫고 [진행 상황] 의 그 묶음 줄을 강조한다. [취소] 는 아무것도 바꾸지 않고 닫는다.

  1. 실측 생략 묶음 만들기 — 개소 없이 부호 · 수량만 고르고 사유를 적는다. 저장하면 곧바로 제작설계로 넘어간다(사본에만 있는 부호 · 재지 않기로 한 부호, #3704). 부호 검색 칸 · 남은 수량을 넘기면 빨간 칸과 「AW1 남은 수량은 20개입니다」(422 BATCH_QTY_EXCEEDED) · 「견적에 없던 추가 진행」 칸(켜면 부호 줄마다 「추가 수량」, 금액 · 계약은 다루지 않는다는 안내). 계약 견적이 없으면 단추를 잠그고 「계약된 견적이 없어 실측 생략 묶음을 만들 수 없습니다.」 종전 이름 「실측 생략 차수 만들기」(#4181 Q1).
  2. 묶음 이름 고치기 — 이름 한 칸. 서버가 붙인 「{N}차 실측」을 바꾼다. 범위는 바꾸지 못한다(409 BATCH_SCOPE_LOCKED). 칸 이름 「묶음 이름」 · 메뉴 「이름 고치기」 · 창 제목 「묶음 이름 고치기」(#4181 W4).
  3. 묶음 취소 — 사유 필수, 실행 단추는 빨강. 보통 묶음은 실측 생략 묶음이 작성중일 때만, 보정 차수는 실측완료 · 제작설계중 · 제작지시서 승인대기에서만 [⋯] 에 보인다. 종전 이름 「차수 취소」(#4181 W1). 승인 철회 창(제작지시서 승인됨, 보정 차수는 없음) · 실측 생략으로 진행 창 · 보정 차수 만들기 창도 같은 꼴(사유 칸 + 왼쪽 [취소] · 오른쪽 실행).
  4. 개소 태그 — 개소 목록(개소 코드 · 부호 · 태그)과 태그 거르기, 개소 줄 [태그] 로 단다. 개소를 고르면 [고른 개소에 태그 더하기](기존 태그는 지우지 않음, 500곳을 넘게 고르면 단추를 끄고 안내 — #3609 · #3632). 태그는 사유를 받지 않는다(관리자 대리여도, #3111).
  5. 관리자 대리 — ROLE_ADMIN 이 [모든 현장] 으로 연 현장이면 ① ② ③ 과 승인 철회 · 실측 생략으로 진행 창에 사유 칸이 필수로 붙고 「관리자 대리 — 사유 필수」 표시가 선다(④ 태그는 제외).
관련 API Swagger UI ↗
  • GET/api/fs/projects/{projectId}/batches/remaining — 부호별 남은 수량 — DE24-1 §5.4.38 [구현]
  • POST/api/fs/projects/{projectId}/batches — 실측 생략 묶음 만들기(개소 없이 부호 · 수량 · 사유 — 개소를 담으면 409 BATCH_SCOPE_LOCKED) — §5.4.38 [구현]
  • POST/api/fs/projects/{projectId}/batches/{batchId}/measure-skip — 실측 생략으로 진행(사유 필수) — §5.4.38 [구현]
  • PUT/api/fs/projects/{projectId}/batches/{batchId} — 이름 고치기(범위 고치기는 409 BATCH_SCOPE_LOCKED) — §5.4.38 [구현]
  • POST/api/fs/projects/{projectId}/batches/{batchId}/cancel — 묶음 취소(사유 필수) — §5.4.38 [구현] · 보정 차수 만들기 POST /api/mf/batches/{batchId}/corrections · 승인 철회 POST /api/mf/batches/{batchId}/withdraw-approval — §5.8.13 [구현]
  • GET/api/fs/projects/{projectId}/batches/areas?tag= — 개소 목록(담긴 묶음 · 태그) — §5.4.38 [구현]
  • PUT/api/fs/projects/{projectId}/areas/{areaId}/tags — 개소 태그 바꾸기 · POST /api/fs/projects/{projectId}/areas/tags — 고른 개소(1~500)에 같은 태그 더하기 (#3609) — §5.4.38 [구현]
현장 관리  ›  A 아파트 창호공사
CMD+K 검색
🔔3
진행 상황승인 대기함 (1)견적 정보결정 기록
4개소 태그 (펼침)
태그: 101동 1층~3층 + 태그
☐개소부호태그
☑A-101AW1101동
☑A-102AW1101동
☐B-201AW3—
고른 개소 2곳고른 개소에 태그 더하기
SCR-PM-025현장 관리 · 승인 대기함/site-management/:projectNo?tab=approvals2026-10-14 신설 (#3054) · 📌 #4181 탭 차례 · 단추 자리 · ⏳ 화면 반영 전
제작팀이 낸 묶음 제작지시서 한 버전을 현장담당이 보고 승인하거나 사유를 적어 돌려보낸다. 제작지시서 버전 = ① 묶음 범위 ② 사본 확정 구성표 ③ 절단·제작지시서 ④ 원본 대비 차이 표(정의 정본 DE24-1 §5.8.13).

진입 — SCR-PM-025 현장 상세 [승인 대기함] 탭 클릭 / [진행 상황] 묶음 줄 주 단추 [제작지시서 승인하기] 클릭(종전 이름 [승인 대기함에서 보기], #4181) / 현장 머리 할 일 띠 「승인할 제작지시서 N건 [보기]」 클릭 / 알림벨 「제작지시서 승인 요청」 클릭 → 그 제작지시서 버전이 열린 채

  1. 대기 목록 — 내가 현장담당인 현장의 제작지시서 승인대기 버전. 📌 #4181 — 탭은 둘째 자리(진행 상황 다음). 빈 상태 「승인할 제작지시서가 없습니다. 제작팀이 승인을 요청하면 여기에 나옵니다.」 범위 표 칸 이름은 [진행 상황] 과 맞춘다(담은 수량 → 부호별 수량, 개소 → 개소 수).
  2. 차이 표 — 원본 견적 대비 ADDED·CHANGED·REMOVED·ADDITIONAL(추가 진행 강조). 버전을 열면 먼저 보인다. 📌 #3577 — 바뀜 종류 「나눔」(SPLIT, 사본 부호 나누기)을 더한다. 원본 부호 한 줄 아래에 서브섹션 줄을 들여 쓰고 서브섹션마다 이름·수량을 보인다(✅ 서버 반영 #3585 · ⏳ 화면 반영 전). 사이즈 타입으로 나뉜 결과도 현장담당은 이 「나눔」 줄로 확인하고 승인한다(#3589).
  3. 범위·구성표·절단 — 묶음 범위, 확정 구성표, 제작지시서 xlsx 내려받기.
  4. 승인 — 확인 창 하나. 관리자 대리면 사유 필수. 📌 #4181 — 펼친 버전 아래 단추는 왼쪽 [제작지시서 내려받기], 오른쪽 [반려] · [승인](주). 확인 창 아래 왼쪽 [취소] · 오른쪽 [승인](종전 [닫기]).
  5. 반려 — 사유 필수. 묶음은 제작설계중으로 돌아간다.
  6. 승인 철회 — 승인한 제작지시서 버전, 발주 승인 전까지. 사유 필수. 보정 차수는 승인 철회가 없다(#3236 — 철회해도 승인 때 취소한 원래 작업지시가 되살아나지 않는다).
  7. 부호 그림 (#4166 · #4167 · FR-ES-025 · ⏳ 서버 · 화면 반영 전) — 제작지시서 버전의 ① 범위 표 · ② 확정 구성표 · ④ 차이 표 부호 칸 앞에 작은 칸 48 px. 승인하기 전에 잘못 담긴 부호를 모양으로 거른다. 마우스를 올리면 240 px 미리보기가 뜬다. 사본 부호는 원본 부호 그림을 쓰고 미리보기 아래에 「견적 일람표 기준」 꼬리표, 보정 작업 ③ 에서 도면을 고친 부호에는 그림 귀퉁이에 「도면 고침」 배지. 이 자리 정본은 06_프로젝트관리 SCR-PM-025 「부호 그림」 묶음이다. 크기 · 상태 문구 · 56 px 이하 줄여 그리기 · 꼬리표 규칙은 DE22-1 §00 §10 이 정본이다.
관련 API Swagger UI ↗
  • GET/api/mf/approvals/pending?siteManager=me — 내 승인 대기함 — IF-MF-BATCH-001, DE24-1 §5.8.13 [구현]
  • GET/api/mf/projects/{projectId}/production-estimate/diff?batchId= — 원본 대비 차이 표(ADDED·CHANGED·REMOVED·ADDITIONAL · SPLIT #3577) — §5.8.13 [구현]
  • GET/api/mf/batches/{batchId}/revisions/{revNo} — 제작지시서 버전 ①~④ · 제작지시서 xlsx 내려받기 주소 — §5.8.13 [구현]
  • POST/api/mf/batches/{batchId}/approve — 현장담당 승인 { revNo, reason? } — §5.8.13 [구현]
  • POST/api/mf/batches/{batchId}/reject — 반려(사유 필수) — §5.8.13 [구현]
  • POST/api/mf/batches/{batchId}/withdraw-approval — 승인 철회(사유 필수, 보정 차수는 409 BATCH_INVALID_STATE) — §5.8.13 [구현]
  • GET/api/mf/batches/{batchId}/revisions/{revNo} — 판 상세 응답의 sectionPictures[] — 이 판에 나오는 사본 부호마다 한 줄(sectionId · sourceSectionId · sectionCode)과 부호 그림 칸 cropPictureUrl(그림 주소 — 읽을 때마다 서버가 한 시간짜리를 새로 발급, 화면이 오래 들고 있지 않는다) · cropPictureStatus(그림 상태 PENDING · RENDERED · SKIPPED · FAILED, null 은 SKIPPED 로 읽는다), 그리고 cropPictureRedrawn(그 사본 부호를 고쳐 마쳤으면 참 — 「도면 고침」 배지). 사본 부호는 원본 부호의 그림이다. 제출 때 굳힌 scope · diff 안에는 넣지 않고 읽을 때 채운다. ① 범위 표 · ② 확정 구성표 · ④ 차이 표가 부호 번호로 줄을 맞춘다 — ② 를 위해 …/revisions/{revNo}/resolved-boms 의 lines[] 에 sectionId 를 더한다(§5.8.13). 「견적 일람표 기준」 꼬리표는 응답 칸 없이 화면이 단다. DE24-1 §5.4.13 「부호 그림 칸」(#4168) · ⏳ 서버 반영 전 #4171
현장 관리  ›  A 아파트 창호공사  ›  승인 대기함
CMD+K 검색
🔔3
진행 상황승인 대기함 (1)견적 정보결정 기록
1승인 대기
1차 101동 저층부
버전 2 · 제출 10-21 김제작
2원본 대비 차이 (버전 2 기준)
부호구분바뀐 것
7AW1나눔서브섹션 둘로 나눔 · 30개 (#3577, ⏳ 화면 반영 전)
↳ 도면 고침AW1-118개
↳ AW1-212개
도면 고침AW1-1CHANGEDW 1500 → 1488 (실측 반영) · 18개
그림 없음AW7ADDITIONAL추가 진행 4개 (견적에 없음)
견적 일람표 기준AW1-1 그림에 마우스를 올리면 — 사본 부호(AW1-1 · AW1-2)는 원본 부호 AW1 의 그림을 쓰고, 미리보기 아래에 「견적 일람표 기준」 꼬리표를 단다. AW1-1 귀퉁이 「도면 고침」 배지는 제작팀이 보정 작업 ③ 에서 이 사본 도면을 고쳤다는 뜻이다 — 그림이 지금 사본 모양과 다르다. 「나눔」 줄도 같은 원본 그림이다. 견적에 없던 AW7 은 그릴 칸이 없어 「그림 없음」 이다. ① 범위 표 · ② 확정 구성표의 부호 칸도 같은 크기 · 같은 규칙이다.
3범위 — 부호별 수량 AW1 30 · 개소 수 30  |  확정 구성표 2건
제작지시서 내려받기 (xlsx)5반려 (사유)4승인
승인한 버전은 발주 승인 전까지 6[승인 철회](사유) 가능 · 보정 차수는 철회 없음
§00 4.3공통 머리 줄 · 알림벨 펼친 목록모든 화면 상단 헤더 오른쪽📌 #3596 결정 2026-10-19 · ⏳ 서버·화면 반영 전
제작 묶음이 다음 사람 손으로 넘어갈 때 오는 화면 안 알림을 읽는 자리다. 모든 와이어프레임의 머리 줄 ⌘K 검색 오른쪽에 같은 알림벨을 두고, 펼친 목록은 이 프레임에서 한 번만 그린다. 모양 정본 DE22-1 §00 4.3 「알림벨」, 알림 종류·문구·누르면 열리는 자리 정본 DE24-1 §6.6.

진입 — 어느 화면이든 상단 헤더 오른쪽(⌘K 검색 옆) 알림벨 클릭 → 최근 알림 펼친 목록이 열린다. 목록의 줄 클릭 → 그 줄을 읽음으로 표시하고 응답 link 로 이동한다(예: 「제작지시서 승인 요청」 → SCR-PM-025 [승인 대기함] #f13, 「현장담당으로 지정됐습니다」 → SCR-PM-025 [진행 상황] #f11). 「실측 완료」·「실측 요청」 → [진행 상황] ⛔ 뒤집힘 — ② 실측 요청은 #3705, ⑤ 실측 완료는 #3704 로 걷었다(DE24-1 §6.6, ⏳ 서버·화면 반영 전).

  1. 알림벨 — 종 아이콘 + 안 읽은 수 배지. 0 이면 배지 없음, 99 를 넘으면 「99+」. 1분마다, 그리고 창이 다시 앞에 올 때 안 읽은 수를 묻는다(실시간 연결은 두지 않는다).
  2. 펼친 목록 — 최근 알림 20개를 새것부터. 줄마다 제목 · 본문 한 줄 · 「3분 전」 같은 시각. 안 읽은 줄은 굵게.
  3. [모두 읽음] — 목록 머리. 내 안 읽은 알림을 전부 읽음으로 바꾼다.
  4. 줄 누르기 — 읽음 표시 후 link 로 이동. link 가 없으면(가리키는 대상이 지워졌다) 토스트 「찾을 수 없는 항목입니다」를 띄우고 머문다.
  5. 빈 상태 — 「새 알림이 없습니다」.
관련 API Swagger UI ↗
  • MISSINGGET /api/cm/notifications/unread-count — 안 읽은 수 { count } (IF-CM-NOTIF-001, DE24-1 §6.6.5 — #3596 신설, 서버 반영 전)
  • MISSINGGET /api/cm/notifications?unreadOnly=false&page=0&size=20 — 내 알림 목록(새것부터, title·body·link·readAt) (IF-CM-NOTIF-001, §6.6.5 — 서버 반영 전)
  • MISSINGPOST /api/cm/notifications/read-all — 모두 읽음 { updated } (IF-CM-NOTIF-001, §6.6.5 — 서버 반영 전)
  • MISSINGPOST /api/cm/notifications/{notificationId}/read — 읽음 표시 204 · 남의 알림이면 404 NOTIFICATION_NOT_FOUND (IF-CM-NOTIF-001, §6.6.5 — 서버 반영 전)
현장 관리
CMD+K 검색
1🔔3
2알림3모두 읽음
4제작지시서 승인 요청
1차 실측 버전 2 제작지시서가 승인을 기다립니다
3분 전 · ⑥ → 승인 대기함
제작지시서 자동 철회
2차 실측 버전 1 제작지시서가 제작용 사본을 고쳐 거둬져 제작설계중으로 돌아갔습니다. 고친 사람: 이제작
1시간 전 · ⑦′ → 제조 › 묶음
현장담당으로 지정됐습니다
A 아파트 창호공사 현장을 맡았습니다. 실측 앱에서 이 현장을 재세요
10-14 · ① → 진행 상황 · 읽음
알림모두 읽음
5새 알림이 없습니다
빈 상태 · 배지 없음