견적설계 (ES) 와이어프레임

위치: 프로젝트 상세(SCR-PM-016) › [견적] 탭 하위 — 독립 영역이 아니라 프로젝트를 열고 [견적] 탭으로 들어가는 견적 작성 흐름입니다. 사이드바 🧮견적설계 1차 메뉴는 프로젝트와 무관한 전역 현황(설계 진행 현황 SCR-ES-011·실행예산 총괄 SCR-ES-013)만 담습니다.
로우파이 웹 와이어프레임 · ES 화면 14종은 Figma 시안(fileKey xFn4Tq2vnfAr42PpuxLbbP)을 참고해 레이아웃 재작성 · 정본은 Figma 가 아니라 DE22-1 §08 명세다(디자인 맞춤 정책 v1.4 Spec-First, 2026-06-02 — Figma 는 명세를 그리는 도구다. 시안과 명세가 어긋나면 명세를 따르고 시안을 고친다) · 나머지(ES-008·017·018·019)도 DE22-1 §08 근거 · 18화면 (SCR-ES-001~019, ES-012 폐기)
← 프로젝트 상세 ← 와이어프레임 목록
SCR-ES-014도면 보관함 (프로젝트) /projects/:projectNo/drawings표준Figma: node 1310:10054

절차 단계 ① — 프로젝트 [파일관리]의 도면 파일을 불러와(#3701) 프로젝트 자원으로 변환·관리. 올리는 것만으로 변환이 시작되지는 않는다 — 올린 도면은 「미변환」으로 담기고 사람이 변환을 걸어야 돈다 (#1499 확정). 견적은 단계 ③에서 이 보관함의 도면을 선택해 공유한다.

진입 — SCR-PM-016 프로젝트 상세 [도면] 탭 / 사본 모드: [제조] 묶음 행 [사본 열기] → 같은 주소 + ?estimateId={사본 견적 번호} (#3258).

사본 모드 — 사본 머리의 estimateId 가 쿼리 값과 같을 때만 머리에 「제작 도면 — 원본 {원본 견적 번호} 기준」 배지(🔄 #4186 — 종전 「제작용 사본 — …」)와 [원본과 비교]를 단다. 제작팀만 가진 사람에게는 지우기·폴더 옮기기·축척 보정·[다시 변환]을 감추고, [변환]은 자기가 올린 미변환 도면에만 보인다. 섹션 매핑으로 갈 때 사본 견적을 가지고 간다. 목록은 원본과 함께 쓰므로 거르지 않는다. 정본 §08 #3053 상자 「도면 보관함 사본 모드」.

다음 단계 — 변환이 끝난 줄의 [이 도면으로 견적 만들기 →] → SCR-ES-002 견적 생성(그 도면을 골라 둔 채, 견적 편집 권한) · 곁가지: 상단 「사용 견적」 줄의 견적 이름 → SCR-ES-003 (#2109 ①).

  1. 사용 견적 참조 — 이 도면 보관함을 사용 중인 견적 버전 목록을 역참조로 보여준다(예: v.1·v.3·v.4). 여러 견적 버전이 도면을 공유함을 알려준다.
  2. 파일관리에서 불러오기 (#3701) — 종전 [업로드] 자리다. 창이 이 프로젝트 [파일관리]의 .dwg·.dxf 파일을 보이고(이미 도면인 파일은 잠그고 「이미 도면 — {용도}」), 한 파일과 도면 용도를 골라 도면으로 만든다. 창 안의 [새 파일 올리기] 는 파일을 [파일관리]에 올리면서 곧바로 도면으로 만든다. 도면의 원본 파일은 언제나 [파일관리]에 있고, 거기서 도면으로 쓰는 파일은 지우지 못한다. 제작용 사본 모드도 같다. 정본 §08 §4.1 #3701 결정 상자 (✅ 서버 반영 #3714 · ✅ 화면 반영 #3715). 불러오거나 올린 도면도 등록까지만 하고 변환을 걸지 않는다 (#1499 확정) — 서버가 올린 도면을 PENDING(미변환)으로 담고, 변환(CAD→JSON)은 사람이 따로 걸어야 시작한다. 서버 DrawingUploadService 가 스스로 「변환 auto-chain 안 함」이라 적어 두었다.
  3. 목록 테이블 — 썸네일·파일명·용도·포맷·크기·변환 상태·업데이트일·업로더를 보여준다.
  4. 변환 상태 — 완료 / 진행 중(%) / 미변환 3단계 배지. 변환 완료 도면부터 섹션 매핑(ES-004)에 쓸 수 있다. 대기 중이면 배지 옆에 「앞에 N건 · 보통 M분」을 붙인다(#1575) — 종전에는 「미변환」이라는 글자 하나가 줄 서 있음과 멈춤에 똑같이 쓰여 기다림을 멈춤으로 읽는 일이 실제로 일어났다(#1531). 표본이 5건 미만이거나 중앙값을 잰 적이 없으면 예상 시간을 감추고 대기 건수만 보인다 — 값만 보이면 그럴듯한 숫자가 된다. 진행 중인데 중앙값의 세 배를 넘으면 「예상보다 오래 걸립니다」를 덧붙인다. ⚠️ 대기 건수를 화면이 스스로 세지 않는다 — 화면은 제 프로젝트 도면만 보므로 늘 적게 센다(계약 IF-ES-DRAWING-STATUS-001 이 서버 전체 수를 준다). 정본 §4.1 결정 상자.
  5. 동작(다운로드) — 행별 원본 CAD 파일을 다운로드한다.
  6. 페이지네이션 — 도면 목록 서버 페이징.
  7. 용도 필터 — 평면도·창호일람표·입면·기타 4종 드롭다운으로 목록을 좁힌다(drawing.drawing_kind, #445). 불러올 때 지정한 용도가 목록 '용도' 열에 표시된다(#3701, 종전 「업로드 시」).
  8. 썸네일 — 목록 첫 열의 도면 미리보기 이미지다(thumbnailUrl, #705). 도면 비율이 제각각이라 잘라내지 않고 여백을 채워 맞춘다(contain). 그림이 없을 때는 왜 없는지를 thumbnailStatus 로 갈라 그린다(#1614) — PENDING(곧 생긴다)은 파란 점선 테두리 + 옅은 가로 막대이고, FAILED(만들다 실패)·SKIPPED(만들 수 없는 환경이거나 아직 변환하지 않은 도면)는 회색 점선 테두리 + 도면 아이콘이다. 뒤 둘을 눈으로 가르지 않는 까닭은 사람이 할 일이 「기다려도 안 생긴다」로 같기 때문이다. 빈칸으로 남기지 않는다. PENDING 인 줄이 하나라도 있으면 10초마다 목록을 다시 부르고, 없으면 멈추며, 15분이 지나면 멈춘다 — 「몇 초 뒤 생깁니다」는 적지 않는다(실측 29~162초이고 파일 크기로는 예측이 안 된다). 이 값들은 정상 경로라 썸네일이 없다고 변환 상태를 실패로 읽지 않는다. 상세는 화면설계서 §4.1.3.
  9. 외부참조 빠짐 (#3479) — 다른 도면 파일을 끼워 보이게 하는 연결(외부참조)이 함께 올라오지 않아 그 부분이 안 그려진 도면이면, 「변환 상태」 칸의 변환 배지 아래에 주의 배지 「외부참조 빠짐 N」 을 단다. 마우스를 올리면 빠진 이름을 쉼표로 이어 보인다. 변환은 「완료」 그대로다. 값(missingXrefNames)이 빈 배열(빠진 것 없음)이거나 null(모름 — 옛 변환본·다시 변환 중)이면 그리지 않고 「빠진 것 없음」 같은 글도 적지 않는다. 정본 §08 §4.1 「빠진 외부참조를 알린다」 상자 (✅ 화면 반영 e5cde3d4).
  10. 도면 뷰어 안내 띠 (#3479) — 줄의 [보기]로 연 도면 뷰어 위쪽에 주의 띠를 쌓는다(도면을 덮지 않는다). 문구는 「이 도면이 불러오는 다른 도면 파일 N개가 함께 올라오지 않아 그 부분이 그려지지 않았습니다: 이름, 이름. CAD 에서 외부참조를 묶어(바인드) 다시 올리면 함께 보입니다.」 이고 이름을 모두 적는다. 값은 목록 행에서 넘기고 상태 조회를 따로 부르지 않는다.
관련 API Swagger UI ↗
  • GET/api/es/projects/{projectId}/drawings — 프로젝트 귀속 도면 목록·변환 상태·썸네일(thumbnailUrl, presign-on-read)·빠진 외부참조 이름(missingXrefNames, #3478) 조회
  • GET/api/es/projects/{projectId}/drawing-source-files — 불러오기 후보: 이 프로젝트 [파일관리]의 dwg·dxf 파일, 이미 도면이면 drawingId (IF-ES-DRAWING-IMPORT-001, #3701 · MISSING — 서버 반영 전)
  • POST/api/es/projects/{projectId}/drawings/import — 고른 [파일관리] 파일로 도면 만들기 {fileId, drawingKind} (#3701 · MISSING — 서버 반영 전)
  • POST/api/es/projects/{projectId}/drawings — [새 파일 올리기]: 파일을 [파일관리]에 올리면서 곧바로 도면으로 만든다(#3701 뒤로 [파일관리] 줄도 함께 만든다). 변환은 걸지 않는다 — PENDING 으로 담기까지만, #1499 확정
  • POST/api/es/projects/{projectId}/drawings/{drawingId}/convert — 미변환·변환 실패 도면 재변환 (ES-001 행 펼침의 [재변환]과 공용)
프로젝트  ›  프로젝트 상세  ›  도면
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기

도면 보관함

1사용 견적: 미사5중_프로그램용 → v.1 · v.3 · v.4폴더 생성2파일관리에서 불러오기
용도 필터7전체
8썸네일3파일명용도포맷크기4변환 상태업데이트업로더5동작
▤미사5중_프로그램용.dwg창호일람표CAD 파일698.85 KB변환 완료2026-05-14성윤정다운로드
◻지킴이실_프로그램용.dwg평면도CAD 파일698.85 KB변환 중 42% · 예상보다 오래 걸립니다2026-05-14성윤정다운로드
◻미사5중.dwg기타CAD 파일698.85 KB미변환 · 앞에 3건 · 보통 2분2026-05-14유진이다운로드
▤A-701~704 창호부호도.dwg창호일람표CAD 파일3.1 MB변환 완료
9외부참조 빠짐 2
2026-10-17jkRaccoon다운로드
[보기] 로 연 도면 뷰어 창 — 빠진 외부참조가 있는 도면 (#3479)
10이 도면이 불러오는 다른 도면 파일 2개가 함께 올라오지 않아 그 부분이 그려지지 않았습니다: XR-FORM(평면), XR-FORM(도농초). CAD 에서 외부참조를 묶어(바인드) 다시 올리면 함께 보입니다.
도면 뷰어 (띠 아래 남은 높이를 쓴다 — 띠가 도면을 덮지 않는다)
6‹1 / 1›
이 화면은 프로젝트 상세 도면 탭 — 브레드크럼 아래 프로젝트 상세 탭 스트립으로 현재 탭을 표시한다. 상태 variant: empty · loading · error(변환 실패 → 재업로드) · drawing-empty(빈 도면 — [보기] 창에 「이 도면에는 그릴 선 · 글자가 없습니다. 원본을 CAD 로 열어 확인해 주세요.」, 오류 색 아님, 목록 배지는 「변환 완료」 그대로, #3549).
새 단추 (#2112 — 정본 「이탈」 행)이 도면으로 견적 만들기 →자리: 변환 완료 줄의 [동작] 칸v.1 (견적 이름 링크)자리: 상단 「사용 견적」 줄
SCR-ES-001견적 버전 목록 /projects/:projectNo/estimates풀Figma: node 1081:3488

프로젝트에 병존하는 견적 버전(v.N)들의 목록·지표(중량·금액·도급·실행률·진행률)·계약 지정. 행 펼침(▾)으로 귀속 도면·메모 관리.

진입 — SCR-PM-016 프로젝트 상세 [견적] 탭 / SCR-ES-011 설계 진행 현황 행 클릭(전역 → 프로젝트 진입, 발신 상호 인정) / SCR-ES-003·SCR-ES-010 [계약 지정하러 견적 목록으로 →](그 버전 줄 강조 — #2112 결정 3) / 선택 창의 [견적 탭으로 →](고를 버전이 없을 때).

다음 단계 — 행 클릭 → SCR-ES-003 · [견적 생성하기] → SCR-ES-002 · 계약 줄 [발주(OM)] → 견적 버전·라인 선택 창 → SCR-OM-004. SCR-ES-003·010 의 [계약 지정하러 견적 목록으로 →] 로 오면 그 버전 줄을 강조한 채 도착한다(#2112 결정 3).

계약 지정 확인 창 — 확정 버전 행 [계약 지정] → 현장 담당자 한 명을 함께 고르는 확인 창. 현장담당이 없으면 계약 지정을 할 수 없다(#3602 · ✅ 화면 반영 #3619). 아래 계약 지정 확인 창 프레임.

  1. + 견적 생성하기 — 새 견적 버전(v.N) 생성 화면(ES-002)으로 이동한다.
  2. 상태 배지 — 신규/설계중/검토/확정/계약 5단계. 계약 지정된 버전만 발주(OM) 인계 대상이 된다.
  3. 실행률(대 도급) — 도급 금액 대비 계획 원가 합 비율(🔄 #4144 — 실행예산 화면 머리의 기준 값과 같은 수, ⏳ 서버 반영 전).
  4. 진행률 — 섹션 설계·라인 확정 진행 비율.
  5. 동작(복제/삭제/발주/계약) — 버전 복제, 삭제(계약·발주 파생 버전은 차단), 계약 버전은 발주(OM)로 인계. 확정 버전은 [계약 지정], 계약 버전은 [계약 해제] 토글. 계약 지정·계약 해제는 이 목록 화면이 맡는다(#741 결정, DE22-1 §4.2 R-ES-CONTRACT-PLACE) — 나머지 전이 4종(검토 제출·검토 승인·보완 반려·개정 개시)은 SCR-ES-003 견적 상세 허브에 있다. [계약 지정] 은 ROLE_ADMIN 과 그 견적의 담당 설계자(목록 응답 assignedToMe, #3810), [계약 해제] 는 ROLE_ADMIN 전용이고, 프로젝트당 계약은 동시 1건이라 계약 버전이 이미 있으면 나머지 확정 버전의 [계약 지정] 은 비활성이다(서버 409 CONTRACT_ALREADY_EXISTS).
  6. 행 펼침 패널 — 버전 귀속 도면과 버전 간 차이 메모를 확인·수정한다.
  7. 재변환 — 미변환/실패 도면을 인라인에서 재업로드·재변환.
  8. 메모 저장 — 버전 간 차이 메모를 저장.
  9. 견적 (버전) 칸 — 한 칸에 견적명(굵게)·견적번호·버전을 담는다(#786 결정). 지표 넷 가운데 셋이 Phase 1 금액 숨김(#522)으로 가려지고 견적 중량도 서버가 채우지 않아, 어느 견적인지 가려 주는 것은 이 칸뿐이다. 견적명이 비면 윗줄을 감추고 아랫줄만 남긴다. 이 칸을 링크로 만들지 않는다 — 진입 수단은 행 클릭 하나로 둔다.
관련 API Swagger UI ↗
  • GET/api/es/projects/{projectId}/estimates — 견적 버전 목록·지표 조회
  • DELETE/api/es/estimates/{estimateId} — 버전 삭제 (삭제 가드 셋: 계약 지정·발주 파생 409 ESTIMATE_NOT_DELETABLE · 확정 409 ESTIMATE_LOCKED)
  • POST/api/es/estimates/{estimateId}/contract — 계약 지정 (해제는 POST .../uncontract)
프로젝트  ›  프로젝트 상세  ›  견적 탭  ›  견적 버전 목록
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기

견적 버전 목록

1+ 견적 생성하기
9견적 (버전)2상태견적 중량 (KG)견적 금액도급 금액3실행률
(대 도급)
4진행률마지막 수정일5동작
▾3층 커튼월 증축
EST-2026-002 · V.5 · 발행 전
신규—준비 중——0%2026-05-14복제 삭제
▾3층 커튼월 증축
EST-2026-002 · V.4 · 발행 전
설계중141.99준비 중——62%2026-06-11복제 삭제
▾3층 커튼월 증축
EST-2026-002 · V.3 · Rev.1
계약31,596.03준비 중₩ 516,784,897준비 중100%2026-05-14발주(OM) 복제 계약 해제
▾1층 로비 창호
EST-2026-001 · V.2 · Rev.1
확정31,587.71준비 중——100%2026-05-07복제 삭제 계약 지정 — 비활성(V.3 계약 중)
▾EST-2026-001 · V.1 · Rev.2확정25,823.06준비 중——100%2026-04-11복제 삭제 불가 — 발주 파생 계약 지정 — 비활성
[견적 (버전)] 칸은 견적명을 굵게 윗줄에, 견적번호와 버전을 작게 아랫줄에 담는다(#786 결정). 버전 옆에 회차(Rev.)를 함께 적고, 회차 0 은 「발행 전」 으로 적는다(#2961 — ⏳ 화면 반영 전). [계약 지정] 확인 창 문구도 「견적 EST-2026-001 · v.1 · Rev.2 의 상태가 「계약」 으로 바뀝니다」 처럼 회차를 함께 적는다. 견적명이 비면 윗줄을 감추고 아랫줄만 남긴다(맨 아래 행). 금액 3칸은 #2099 가 다시 갈랐다 — 도급 금액은 실행예산에서 넣은 값(목록 응답 contractAmount)을 그대로 보이고 넣지 않았으면 — 다. 견적 금액은 견적 행의 금액 칸을 채우는 자리가 아직 없어 「준비 중」이다. 실행률은 도급 금액이 없으면 —, 있으면 서버가 채우기 전까지 「준비 중」이다. 두 칸의 말풍선은 기다리는 것이 달라 갈라 적는다(DE22-1 §08 §4.2 R-ES-AMOUNT-PLACEHOLDER 「#2099 결정」 표). 종전에는 세 칸 모두 Phase 1 금액 숨김(#522)으로 「준비 중」이었고, 그 전에는 (Phase 2) 를 적었다(#1084).
‹1 / 1›
6행 펼침(▾) 인라인 패널 — V.4 귀속 도면 · 버전 메모 (Figma: 견적 펼침 variant node 1104:1408)
도면: 미사5중_프로그램용.dwg 변환 완료 7재변환 ↻ 버전 간 차이를 입력하세요. 8메모 저장
Figma 대비 DE22-1 차이: 브라우저 크롬 대신 전역 좌측 모듈 네비 + 브레드크럼 + CMD+K 검색 셸. 상태 variant: empty · error · 견적 펼침(미변환 / 변환 완료 / 변환 중 / 변환 실패 — 대기는 「변환 중」에 합치지 않는다, #1541).
SCR-ES-001· 계약 지정 확인 창 (현장 담당자 선택 · 단가·할증 검사) ES-001 확정 버전 행 [계약 지정]풀

확정 버전을 계약으로 올리는 확인 창. 견적 책임자(담당 설계자) 한 사람이 계약 지정까지 한다(#3810 결정 2026-10-22 · ✅ 화면 반영 PR #1460 4c928459(#3840) · ✅ 서버 반영 db449af0(#3839)). 현장 담당자는 함께 골라도 되고 비워 두고 계약 뒤 [멤버] 탭에서 정해도 된다 — #3602 의 「현장담당이 없으면 계약 지정을 할 수 없다」를 다시 뒤집었다. 단가·할증·공차가 비면 [계약 지정] 이 꺼진다. 정본 §08 §4.2 「#3810 결정」 상자 · §3.3 #3810 상자 · #2822 상자.

진입 — SCR-ES-001 견적 버전 목록에서 상태가 「확정」인 버전 행의 [계약 지정] 을 누르면 열린다(ROLE_ADMIN · 그 견적의 담당 설계자 — 목록 응답 assignedToMe). 프로젝트에 계약 버전이 이미 있으면 [계약 지정] 이 꺼져 있어 이 창이 열리지 않는다.

다음 단계 — [계약 지정] 성공 → 「계약으로 지정했습니다.」 알림과 「계약 금액·조건은 [발주] 탭 [계약 등록]에서 넣습니다」 안내 + [계약 등록 →](SCR-OM-001, #3201 ③ 그대로). 현장담당 없이 지정했으면 「현장 담당자가 지정되지 않았습니다. 프로젝트 [멤버] 탭에서 지정하세요」 경고가 이어 뜬다(#3810 으로 되살림). 빈 항목 줄의 단추 → SCR-ES-016 단가·할증·공차 설정 · SCR-ES-009 견적서 미리보기.

  1. 확인 문구 — 「견적 EST-2026-001 · v.1 · Rev.2 의 상태가 「계약」 으로 바뀝니다. 계속하시겠습니까?」 회차를 함께 적는다(#2961 — ⏳ 화면 반영 전, 지금 문구는 v.1 까지만 적는다).
  2. 현장 담당자 고르기 칸 (선택) — 한 명만 고른다(#3051 D2). 고르개는 프로젝트 [멤버] 탭 멤버 추가 창과 같은 사용자 고르개다. 고른 사람 이름 곁에 [빼기], 칸 아래에 「고른 사람은 이 프로젝트 멤버의 역할 「현장담당」이 됩니다.」
  3. 현장담당이 없을 때 (A) — 칸을 열어 두고 [계약 지정] 은 켠다(#3810). 칸 아래 안내는 「지금 고르지 않으면 계약 뒤 프로젝트 [멤버] 탭에서 정합니다.」다. 비운 채 지정하면 성공 뒤 「현장 담당자가 지정되지 않았습니다…」 경고를 띄운다(#2840·#3201 ① 문구 그대로).
  4. 이미 현장담당이 있을 때 (B) — 고르기 칸을 잠그고 지금 현장담당 이름을 보인다: 「지금 현장담당은 {이름} 입니다. 현장담당은 프로젝트마다 한 명이라 여기서 다른 사람으로 바꿀 수 없습니다. 바꾸려면 프로젝트 [멤버] 탭에서 지금 현장담당의 역할을 먼저 바꾸세요.」(#3448 ⑦). 「지금 현장담당」은 가입 계정만 센다(#3640). 다른 사람을 보내 409 PROJECT_SITE_MANAGER_DUPLICATE 가 오면 창을 닫지 않고 창 안에 같은 뜻의 오류 글을 보인다.
  5. 단가·할증 검사 (#3810 · #3889) — 창을 열 때 contract-readiness 를 부른다. ready 가 거짓이면 [계약 지정] 을 끄고 빈 항목을 한 줄씩 보인다 — PRICE_MISSING 「단가가 비어 금액이 덜 셈해진 자리가 있습니다.」 [견적서 받기 →] (정본 표의 옛 이름 [견적서 미리보기 →] — #3890 결정 ① 의 이름, #3840) · SURCHARGE_EMPTY 「할증 항목이 없습니다. 할증이 없으면 0 % 한 줄을 넣어 주세요.」 이 줄은 [단가·할증·공차 설정 →]. 공차 줄은 없다 — 제작공차 칸은 늘 값이 있어(기본 1.05) TOLERANCE_EMPTY 를 걷었다(#3889, 서버 96d4c9e1). 표 아래 「확정된 견적은 값을 고칠 수 없습니다. 견적 상세에서 [개정 개시] 로 검토 상태로 돌린 뒤 채우고 다시 승인하세요.」 판정 조회를 못 받았으면 단추를 켜 두고 서버 422 CONTRACT_PRICING_INCOMPLETE 를 같은 줄로 보인다.
관련 API Swagger UI ↗
  • GET/api/pm/projects/{projectNo}/members — 지금 현장담당(역할 SITE, 가입 계정)이 있는지 가른다 (IF-PM-PRJ-003)
  • GET/api/cm/users — 현장 담당자 고르개의 사용자 검색 (멤버 추가 창과 같은 고르개)
  • GET/api/es/estimates/{estimateId}/contract-readiness — 계약 지정 미리 보기 { ready, unsatisfied[] } (#3810 신설 · ✅ 서버 반영 db449af0, §5.4.11)
  • POST/api/es/estimates/{estimateId}/contract — 계약 지정. 본문 siteManagerAdminIds(한 명까지, 선택 — #3810 으로 현장담당이 없어도 비울 수 있다). 둘 이상이면 400 VALIDATION_ERROR · 이미 다른 현장담당이 있으면 409 PROJECT_SITE_MANAGER_DUPLICATE · 값이 비면 422 CONTRACT_PRICING_INCOMPLETE · 관리자도 담당 설계자도 아니면 403 WORKFLOW_NOT_ASSIGNEE (§5.4.11 IF-ES-WORKFLOW-001 #3810 상자)
상태 variant: (A) 에서 한 명을 고르면 검색 칸 아래에 「김현장 [빼기]」 한 줄이 서고 안내(마커 3)가 사라진다 · 비운 채 지정이 끝나면 「현장 담당자가 지정되지 않았습니다…」 경고가 뜬다 · 409 PROJECT_SITE_MANAGER_DUPLICATE 는 창 안 오류 글.
SCR-ES-002견적 생성 (도면 선택) /projects/:projectNo/estimates/new풀Figma: node 1145:3747

단계 ②③ — 견적 버전 생성. 좌측 기본 정보 폼 + 우측 도면 선택(보관함 도면 중 이 버전 귀속분)이 플로우의 본체. 생성만으로 변환이 시작되지는 않는다 — 미변환 도면은 [미변환 도면 변환 시작] 을 눌러야 변환된다 (#1477 확정).

진입 — SCR-ES-001 [견적 생성하기] / SCR-ES-014 [이 도면으로 견적 만들기 →] (그 도면을 골라 둔 채 — #2112).

다음 단계 — [생성] 성공 → SCR-ES-003 견적 상세(자동 이동).

  1. 견적명 — 새 견적 버전의 명칭을 입력한다.
  2. 담당 설계자 — 이 버전을 담당할 설계자를 지정한다.
  3. 창호부호 존 구분 — 섹션 부호를 구획할 존 구분 기준을 선택한다.
  4. 도면 선택 — 도면 보관함(ES-014)의 도면 중 이 버전이 쓸 도면을 체크로 선택한다. 「용도」 열을 「포맷」 열 옆에 둔다(#2949, ⏳ 화면 반영 전 — 종전 「유형」 열은 파일 형식만 보였다). 평면도와 창호일람표가 한 파일에 든 도면은 한 번만 올려 한 줄로 고르고, 섹션 매핑과 대조 검증에서 같은 도면을 고른다.
  5. 변환 상태 — 캐시된 완료 도면은 즉시 재사용. 미변환 도면은 저절로 변환되지 않는다 — 고른 뒤 [미변환 도면 변환 시작] 을 눌러야 시작한다 (#1477 확정). 서버 EstimateService 는 변환을 걸지 않고, 변환을 부르는 자리는 DrawingConversionController 하나뿐이며 그것은 사람이 눌러야 돈다.
  6. 생성 — 필수 입력 전에는 비활성. 충족 시 활성화되어 견적 버전만 만든다 — 미변환 도면 변환은 함께 걸리지 않는다 (#1477 확정). 변환은 위 ⑤ 대로 [미변환 도면 변환 시작] 을 눌러야 시작한다.
  7. 버전 자동 채번 — 다음 버전 번호(v.5)를 미리 보여준다.
관련 API Swagger UI ↗
  • GET/api/es/projects/{projectId}/drawings — 도면 선택 표에 보관함 도면 목록·변환 상태 표시
  • POST/api/es/projects/{projectId}/estimates — 견적 버전 생성
견적설계  ›  견적 생성
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기

견적 생성

7버전 자동 채번: v.5
기본 정보
1견적명견적명 입력
2담당 설계자담당 설계자 선택
시공비율 (%) · 기타비율 (%) ⛔ 뒤집힘 (#3691 · 10-20 회의) — 두 칸을 뗀다. 제작비·시공비는 제품 단가 × 셈량으로 자동 계산한다(⏳ 화면 반영 전)
3창호부호 존 구분창호부호 존 구분 선택
4도면 선택 — 도면 보관함
☑파일명용도포맷5변환 상태업데이트
☑미사5중_프로그램용.dwg창호일람표CAD 파일변환 완료 (캐시)YYYY.MM.DD
☑지킴이실_프로그램용.dwg평면도CAD 파일미변환 [변환 시작] 을 눌러야 변환YYYY.MM.DD
☐미사5중.dwg기타CAD 파일미변환YYYY.MM.DD
‹1 / 2›
취소6생성
미변환 도면은 저절로 변환되지 않는다 — [미변환 도면 변환 시작] 을 눌러야 돈다(#1477 확정) · 변환 결과는 도면 단위 캐시로 공유 (FR-ES-001 ETag 재사용). 상태 variant: empty · error · filled(생성 활성). Figma는 도면 선택 테이블이 카드 우측 넓은 영역 본체.
SCR-ES-003견적(버전) 상세 — 섹션 허브 /projects/:projectNo/estimates/:estimateId풀Figma: node 1377:8241

단계 ③~⑥ 허브 — 좌측 사용 도면·제품 후보·합계 패널 + 우측 상단 필터바 + 섹션 목록 테이블. 진행률은 헤더 우측 인라인 바. 후속 단계(일괄 변경·단가·산식·견적서·실행예산) 분기.

진입 — SCR-ES-001 행 클릭 / ES-002 생성 직후 / SCR-ES-011 설계 진행 현황 행 클릭(전역 발신 상호 인정).

사본 모드 — [제조] › [묶음] 묶음 행 [사본 열기] 로 오면 제작용 사본이 열린다 — 머리 띠 「N차 묶음 보정 중 — 묶음 이름」 · [빈 섹션 추가] · 제작팀 일괄 변경 막음. 아래 사본 모드 프레임 (#3606 · #3590 · #3616).

다음 단계 — 섹션 줄 → SCR-ES-015 · [BOM] → SCR-ES-005 · 섹션 0건이면 빈 상태 안 [섹션 매핑으로 →] → SCR-ES-004 · 검토 제출이 막히면 막힌 항목(부호·걸린 라인·자재 코드)마다 고칠 화면으로 · 확정이면 [계약 지정하러 견적 목록으로 →] → SCR-ES-001(관리자) · 계약이면 [발주 만들기 →] → 견적 버전·라인 선택 창(발주 편집 권한) · 하단 후속 분기 (#2112 결정 3 · #2109 ②⑫⑯⑰).

  1. 진행률 바 — 라인 확정 건수/전체 섹션 비율을 헤더에 인라인 표시.
  2. 사용 도면 패널 — 이 버전이 쓰는 도면과 도면별 섹션 수.
  3. 제품 후보 변경 — 이 버전이 쓸 제품군을 다시 선택하는 모달(ES-003-modal)을 연다.
  4. 합계 패널 — 견적 중량·견적 금액·라인 확정 진행을 요약. 견적 금액은 금액 조회(GET .../amount)의 quoteAmount 를 보인다(#2099 — 종전 「준비 중」). 부가세 별도라 칸 이름을 「견적 금액 (VAT 별도)」로 적는다 — 미리보기의 공급가액과 같은 값이다. 확정 라인이 하나도 없으면 —, 단가가 하나도 없으면(422) 「자재 단가가 없어 견적 금액을 산출할 수 없습니다」, 제품 단가가 비면 값 아래 「제품 단가(원/kg)를 넣어야 금액이 나옵니다.」와 [단가·할증·공차 설정으로 이동] 단추를 둔다. 부호 수량은 화면이 따로 곱하지 않는다(#2098 서버 몫).
  5. 필터바 — 도면·상태·부호/제품 검색으로 섹션 목록을 좁힌다.
  6. 선택 일괄 변경 — 체크한 섹션들을 일괄 변경(ES-007) 화면으로 넘긴다.
  7. 섹션 목록 테이블 — 부호·도면·수량·설계 상태·확정 여부·섹션 금액·BOM·작업 9열. 섹션 금액은 같은 금액 조회의 sections[].quoteAmount 를 sectionId 로 맞춰 보인다(#2099) — 섹션 목록 응답의 sectionAmount 는 서버가 채우지 않아 읽지 않는다. 확정 라인이 없는 섹션(설계중·미설계 행)은 — 다.
  8. 하단 후속 단계 — 단가·산식·실행예산·견적서로 분기하는 버튼 그룹. 📌 #3890 결정 ① — 조달 가격 모드의 단가 단추 이름은 [견적서](→ SCR-ES-016 목록, 원가 가산 모드는 [단가·할증·공차] 그대로), [견적서 미리보기] 는 기존 이름 [견적서 받기](→ SCR-ES-009, 두 모드 모두).
  9. 섹션 매핑 이동 — 상단 액션에서 섹션 매핑(ES-004)으로 이동.
  10. 기본정보 수정 — 견적명·버전 메모를 고치는 창을 연다. ROLE_ES_EDITOR 이상에게만 버튼이 보이고, 견적이 확정·계약이면 잠긴다(그 뒤의 변경은 개정(Rev.) 절차로만 한다). 같은 창 아래에 「견적서에 찍히는 값」 묶음이 있다(#3204 · 화면 #3216) — 공사명(128자) · 유효기간(개월, 1 이상 정수) · 조건문 여섯(납품조건 · 규격서 특수조건 · 견적외 별도조건 · 견적포함 조건 · 견적 특이사항 · 납품기한 및 정산, 문단마다 2,000자). 비운 칸은 쓰일 값을 흐린 글자로 보인다(「비우면 프로젝트명: …」 · 「비우면 회사 설정: N개월」 · 조건문은 그 문단의 회사 설정 글). 공사명·조건문 칸 아래에 「n / 128」·「n / 2,000」 글자 수를 보인다. 바꾼 칸만 보내고, 조건문은 바꾼 문단만 보낸다.
  11. 상태 전이 버튼 그룹 — 고정된 버튼 묶음이 아니라 지금 상태와 내 권한에서 실행할 수 있는 전이만 그린다. 이 그림은 설계중 상태의 ROLE_ES_EDITOR 사례라 [검토 제출] 하나가 떴다. 이 화면이 맡는 전이는 검토 제출·검토 승인·보완 반려·개정 개시 4종이고, 계약 지정·계약 해제 2종은 SCR-ES-001 견적 버전 목록에 있다(#741 결정, DE22-1 §4.2 R-ES-CONTRACT-PLACE). 개정 개시는 ROLE_ADMIN 전용이며, 신규·계약 상태에는 이 화면에 전이 버튼이 하나도 없다. 단추가 하나도 안 뜨는 자리는 비워 두지 않고 그 자리에 다음 할 일을 한 줄로 적는다(#1643 결정, DE22-1 §08 §4.4 · 요청 FB-25) — 신규는 「담당 설계자를 배정하면 설계중으로 넘어갑니다.」, 계약은 「계약 해제는 견적 목록에서 합니다.」다. 상태로는 할 수 있는데 내 권한으로 못 하는 자리에는 누가 할 수 있는지를 적는다(확정에서 관리자가 아니면 「개정(Rev.)은 관리자가 시작합니다.」). 신규 모습은 아래 딸림 프레임이 그린다.
  12. BOM 열 — 행 클릭(ES-015)과 도착지가 다르다. 그 섹션에 달린 견적 라인 1건의 SCR-ES-005(BOM 자동 구성·라인 확정)로 간다. 라인이 여러 건이면 라인 선택 창을 먼저 띄우고, 라인이 없는 섹션(미설계)에서는 비활성이다.
  13. 작업 열 — 섹션 표의 마지막 열이며, 도면 없이 만든 수기 섹션 행에만 [수정]·[삭제] 를 그린다(#810). 이 그림의 네 섹션은 모두 도면에 묶여 있어 이 열이 비어 있다(—). 도면에 묶인 섹션의 편집 정본 자리는 섹션 매핑(ES-004)이다. [수정] 은 부호·수량을 다시 받는 창을 열고, [삭제] 는 무엇이 함께 사라지는지 알리는 확인창을 거친다 — 섹션을 지우면 그 안의 견적 내역(라인)과 설계 자료가 함께 사라지고, 확정된 내역이 있는 섹션은 서버가 막는다. 편집 권한이 없으면 두 단추를 그리지 않고, 견적이 확정·계약이면 그리되 잠근다.
  14. 진행 이력 — 이 견적이 지나온 상태 전이를 시간 역순으로 모아 보여 주는 창을 연다(#856 결정, DE22-1 §08 §4.4). 한 줄은 「이전 상태 → 이후 상태(전이 이름) · 그때의 회차(Rev.) · 바뀐 시각 · 바꾼 사람 · 사유」 다섯을 담고, 반려·개정·배정 사유를 접지 않고 그대로 편다. 전건을 보이며 건수를 자르지 않는다. 조회 권한이면 누구나 열고 상태·권한으로 감추거나 잠그지 않는다 — 보는 일이지 고치는 일이 아니다. 읽는 자료는 새 표 estimate_status_history 이고 회차 표 estimate_revision 이 아니다 — 회차는 승인마다 하나 오르는 축이고 상태 전이는 한 회차 안에서 여러 번 돌기 때문이다. 표를 만들기 전에 생긴 견적은 이력이 비어 있다 — 지나간 전이는 자료가 없어 거슬러 채우지 않고, 창 안에 「이 견적은 이력을 쌓기 시작하기 전에 만들어져 그전 전이가 남아 있지 않습니다.」 안내 한 줄만 띄운다. ✅ 조회 주소와 표가 계약으로 섰다(#862) — 조회는 GET /api/es/estimates/{estimateId}/status-history(DE24-1 §5.4.11)이고 표는 estimate_status_history(DE33-1 §3.X)다. 시간 역순 전건, 조회 권한이면 누구나, 이력 0건이면 빈 목록 200 이다. 기록하는 자리는 전이 여섯과 담당 설계자 배정 하나, 담당 설계자 재배정 하나를 더해 여덟이다 — 상태를 갈아 끼우는 자리는 그대로 일곱이다(재배정은 상태를 건드리지 않는다). ✅ 담당 설계자 재배정 줄도 이 창에 함께 뜬다(#897 결정, DE24-1 §5.4.12) — 상태가 바뀌지 않는 유일한 줄이라 「확정 → 확정 (담당 재배정)」처럼 두 상태 값이 같게 보이고, 감추거나 다른 창으로 빼지 않는다. 그때까지 재배정 사유는 받아 놓고 아무 데도 저장되지 않았다. ✅ 서버 작업도 들어갔다(#901, V319) — 재배정 줄이 실제로 쌓이고, 배정·재배정 응답의 시각·사람도 그 줄에서 읽는다. ✅ 화면 결선도 들어갔다(#896) — 이 창이 조회 주소를 불러 이력 줄을 그대로 그린다. ✅ 「바꾼 사람」 칸은 로그인 아이디가 아니라 이름을 보인다(#1140 결정, DE22-1 §08 §4.4 결정 상자) — 같은 사람이 설계자별 보드에서는 이름으로 불리는데 이 창에서만 아이디로 불리던 자리다. 이름은 그때 값을 굳히지 않고 창을 열 때마다 이어 붙인다 — 로그인 아이디가 재사용되지 않고 사람 행도 지워지지 않아 회사를 떠난 사람의 줄에서도 이름이 나오며, 표에 이름 칸을 새로 두지 않는다. 이름을 못 찾으면(로그인 정보 없이 일어난 전이의 SYSTEM) 아이디를 그대로 보인다. 계약은 transitionedByName(DE24-1 §5.4.11 ④)이고 ✅ 서버·화면 반영이 모두 들어갔다 — 조회가 이름을 담고(#1183), 창이 그 이름을 그린다(#1184, wims2.0_fe@d759c8c).
  15. 반려 안내 줄 (#2965 · #3148) — 보완 반려되어 돌아온 견적에만 헤더 아래에 뜬다(이 그림은 그 경우를 함께 그렸다). 조건은 상태가 설계중이고, 담당 재배정 줄을 건너뛴 마지막 전이가 보완 반려일 때다. 담는 것은 「검토에서 보완 반려된 견적입니다.」·반려한 사람·시각·「반려 사유 「…」」 셋이다. 사유가 석 줄을 반 줄 넘게 넘칠 때만 석 줄로 접히고, 사유 줄 자체를 누르면 펴진다([더 보기] 단추는 없다). 다시 [검토 제출] 하면 사라지고, 재배정으로는 사라지지 않는다. 지난 반려까지 보려면 [진행 이력] 창을 연다. 다시 제출할 때 반려에 답하는 메모 칸은 두지 않는다(#3148 결정).
  16. 부호 그림 (#4166 · #4167 · FR-ES-025 · ⏳ 서버 · 화면 반영 전) — 「섹션 목록」 표 부호 칸 안, 부호 글자 앞에 작은 칸 48 px. 칸을 새로 만들지 않아 열 수는 그대로다. 마우스를 올리면 240 px 미리보기가 뜨고, 그림을 눌러도 줄을 누른 것과 같다(ES-015 로 간다). 표 아래 「부호 그림 상태 보기」 가 네 갈래(완료 · 만드는 중 · 건너뜀 · 실패) 모양과 사본 모드의 「도면 고침」 배지 · 미리보기를 함께 그렸다. 이 자리 정본은 §08 §4.4 「주요 기능」 부호 그림 줄이다. 크기 · 상태 문구 · 56 px 이하 줄여 그리기 · 꼬리표 규칙은 DE22-1 §00 §10 이 정본이다.
관련 API Swagger UI ↗
  • GET/api/es/estimate-lines — estimateNo 필터로 섹션(라인) 목록·확정 상태·금액 조회. [BOM] 열이 어느 라인으로 갈지도 이 응답의 라인 수로 가른다
  • GET/api/es/estimates/{estimateId} — 헤더 진행률·사용 도면·합계 요약 조회 (요약은 GET .../summary 병용)
  • GET/api/es/estimates/{estimateId}/amount — 합계 「견적 금액 (VAT 별도)」과 섹션 금액 (§5.4.27 IF-ES-AMOUNT-001, #2099). 한 번 불러 두 값을 함께 얻는다
  • PUT/api/es/estimates/{estimateId}/palette — [제품 후보 변경] 확정 저장 — '제품 후보' 는 팔레트와 같은 개념이다 (§5.4.19, 구현 완료)
  • GET/api/es/estimates/{estimateId}/status-history — [진행 이력] 창과 반려 안내 줄이 같은 조회 결과를 함께 쓴다. 반려 안내 줄은 설계중일 때만 부른다 (§5.4.11, #2965)
  • PUT/api/es/estimates/{estimateId} — [기본정보 수정] 저장 (견적명·버전 메모 · 공사명 constructionName · 유효기간 validMonths · 조건문 quoteTerms, §5.4.10 IF-ES-EST-001 · #3204). 흐린 글자는 회사 설정 GET /api/cm/settings/QUOTE 와 프로젝트명으로 화면이 채운다
  • POST/api/es/estimates/{estimateId}/submit-review · .../approve-review · .../reject-review · .../revise — 이 화면이 맡는 상태 전이 4종 (§5.4.11 IF-ES-WORKFLOW-001). 계약 지정 .../contract 와 계약 해제 .../uncontract 는 SCR-ES-001 이 부른다
  • PUT/api/es/sections/{sectionId} — 「작업」 열 [수정] 저장 (§5.4.13 IF-ES-SECTION-001). 통째로 갈아 끼우는 요청이라 부호·수량만 고쳐도 절취 사각형·층고·기준선을 현재 값으로 함께 보낸다 — 빠뜨리면 서버가 그 값을 비운다. 검토 중에는 막힌다 — 409 SECTION_ESTIMATE_IN_REVIEW(#855 결정, 만들기와 같은 코드). 부호·수량이 견적서에 그대로 실리는 승인 대상이라서다. 통째로 갈아 끼우는 요청이므로 공간 앵커만 고치려는 요청도 함께 막힌다. 확정·계약에서는 409 SECTION_ESTIMATE_LOCKED 다. #2027 이전에 담긴 깨진 절취 구역 값을 되보내면 400 SECTION_CROP_RECT_INVALID 다 — 화면은 「이 섹션의 절취 구역 값을 읽을 수 없어 저장하지 못했습니다. 섹션을 지운 뒤 다시 만드세요.」로 안내한다(#2053 결정, DE22-1 §08 §4.5 「400 안내 — 절취 구역」 행 · 화면 반영 전)
  • DELETE/api/es/sections/{sectionId} — 「작업」 열 [삭제] (§5.4.13 IF-ES-SECTION-001). 그 섹션의 견적 내역(라인)이 함께 지워지고, 확정된 내역이 있으면 409 SECTION_HAS_FROZEN_LINE 으로 막힌다
  • GET/api/es/estimates/{estimateId}/sections — 섹션 목록 응답(SectionResponse)의 부호 그림 칸 cropPictureUrl(그림 주소 — 읽을 때마다 서버가 한 시간짜리를 새로 발급, 화면이 오래 들고 있지 않는다) · cropPictureStatus(그림 상태 PENDING · RENDERED · SKIPPED · FAILED, null 은 SKIPPED 로 읽는다). DE24-1 §5.4.13 「부호 그림 칸」(#4168) · ⏳ 서버 반영 전 #4171
프로젝트  ›  프로젝트 상세  ›  견적 탭  ›  견적(버전) 상세 - 섹션 허브
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기

견적(버전) 상세 - 섹션 허브

14진행 이력10기본정보 수정9섹션 매핑11검토 제출
미사5중 신축공사EST-2026-014 · v.1 · 발행 전설계중1진행률 53% · 라인 확정 9 / 17 섹션
15검토에서 보완 반려된 견적입니다.
김검토 · 2026-10-14 16:20
반려 사유 「AW01 유리 두께를 24t 로 바꿔 주세요. 견적 금액을 다시 확인해 주세요.」
2사용 도면 (단계 ③)
미사5중_프로그램용.dwg변환 완료 · 섹션 14
지킴이실_프로그램용.dwg변환 완료 · 섹션 3

제품 후보 (단계 ③)
미서기140 미서기창(V1)
교출-양개140 행거 교실출입문
3제품 후보 변경
4합계
견적 중량141.99 kg
견적 금액 (VAT 별도)₩ 5,892,068.33
라인 확정9 / 17 섹션
5도면 전체상태 전체 부호/제품 검색검색 6선택 일괄 변경
줄을 누르면 그 섹션 견적설계로, [BOM] 을 누르면 자재 구성으로 갑니다. 도면 없는 수기 섹션은 「작업」 열에서 고치거나 지웁니다 (도면에 묶인 섹션은 섹션 매핑에서)
☑7섹션 (부호)도면수량설계확정섹션 금액12BOM13작업
☑16AAW01미사5중27설계중——BOM—
☑AW01미사5중13완료잠금₩ 1,342,598.40BOM—
☑ACW01미사5중1미설계——BOM — 비활성—
☑그림 없음지킴이실-AD01지킴이실1완료잠금₩ 412,300.00BOM—
16부호 그림 상태 보기 — 줄마다 그림 자리는 상태와 상관없이 같은 크기다(줄 높이를 지킨다). 「그림 없음」 두 갈래는 모양이 같고 마우스를 올렸을 때 뜨는 도움말만 다르다.
완료 RENDERED가는 실선 테두리 · 56 px 이하라 바깥 틀과 칸 선만
만드는 중 PENDING파란 점선 + 옅은 가로 막대 · 글자 없음 · 10초마다 목록을 다시 부르고 15분이면 멈춘다
그림 없음건너뜀 SKIPPED「일람표 그림 없음 — 견적에서 이 부호의 일람표 칸을 지정하지 않았습니다」
그림 없음실패 FAILED「일람표 그림을 그리지 못했습니다 — 견적 도면 보관함의 일람표를 확인하세요」
도면 고침사본 모드에서만그림 오른쪽 위 「도면 고침」 배지 — 보정 작업 ③ 에서 고친 사본 부호. 「견적 일람표 기준」 꼬리표는 작은 칸이라 미리보기 아래에만 단다

마우스 올림 미리보기 240 px — 줄이지 않은 그림(치수선 · 글자 포함)
‹1 / 1›
견적서 산식 검토 실행예산 8견적서 받기
상태 variant: empty · loading · error · frozen(섹션 행 잠금) · 팝업(제품 후보 변경 모달, 아래 프레임 · 진행 이력 창 — 창 안의 빈 상태는 「이력을 쌓기 시작하기 전에 만들어진 견적」 안내 한 줄이다, #856). 기본정보 수정의 저장 막힘(409)은 창 안에서 알리므로 이 화면에는 편집 충돌 배너를 두지 않는다(#1043·#1081).
새 단추 (#2112 — 정본 「이탈」 행)섹션 매핑으로 →자리: 섹션 0건 빈 상태 안 — [섹션 수동 추가] 옆계약 지정하러 견적 목록으로 →자리: 확정 · 헤더 오른쪽 한 줄 곁 (관리자). 같은 프로젝트에 계약 견적이 이미 있으면 단추 대신 「이 프로젝트는 {견적번호} 버전 {버전} 가 계약 견적입니다.」 한 줄 (#2656)발주 만들기 →자리: 계약 · 헤더 오른쪽 한 줄 곁 (발주 편집 권한)1AW → · 라인 #65 → · UNI-A225-90KN →자리: 검토 제출 막힘 안내 안 — 항목마다 고칠 화면으로
SCR-ES-003· 신규 · 미배정 (다음 할 일 안내) 상태가 「신규」이고 담당 설계자가 없을 때 — 같은 주소, 상태만 다르다풀

전이 단추가 하나도 안 뜨는 자리에 다음 할 일을 한 줄로 적는 모습. 발주처 검수자가 「섹션에 제품 추가 후 저장했는데 이 다음 스텝이 뭔지 모르겠어요」라고 물어 온 자리다(요청 FB-25). 위 본체 프레임과 같은 화면이고 헤더 오른쪽과 담당 설계자 자리만 다르다 — 아래는 그 두 자리만 떼어 그렸다. (정본 §4.4 #1643 결정 상자)

진입 — 본체 프레임과 같다. 담당 설계자를 비운 채 만든 견적(DE24-1 §5.4.10 assigneeUserId 는 선택)에 들어오면 이 모습이다.

  1. 다음 할 일 한 줄 — 전이 단추가 서던 헤더 오른쪽 그 자리에 적는다. 「담당 설계자를 배정하면 설계중으로 넘어갑니다.」 물어 온 사람이 다음 단추를 찾던 자리라 답을 거기 놓는다. 화면 위 안내 띠로 두지 않는다 — 「신규 · 미배정」은 늘 생기는 정상 상태여서 경고 띠를 늘 띄우면 진짜 경고가 묻힌다. 문구는 정본이 정하고 화면이 지어내지 않는다.
  2. 단추 이름을 가른다 — 담당 설계자가 없으면 [담당 설계자 배정], 있으면 [재배정] 이다. 「재」는 두 번째부터 붙는 말이다. 위 한 줄이 가리키는 단추가 이것이다.
  3. 진행률은 그대로 100% 일 수 있다 — 「신규」인 채로 섹션 설계와 라인 확정이 끝난 견적이 실제로 있다. 막지 않기로 정했다(#1643 ⑤) — 담당 설계자가 만들 때 선택이라, 막으면 만드는 길이 아무 데도 못 가는 견적을 만드는 길이 된다. 섹션을 만들 때 자동으로 설계중으로 올리지도 않는다 — 그러면 담당자 없는 설계중이 생긴다.
  4. 계약 상태도 같은 자리다 — 계약에도 이 화면에는 전이 단추가 없다. 그 자리 문구는 「계약 해제는 견적 목록에서 합니다.」다. 확정에서 관리자가 아닐 때는 「개정(Rev.)은 관리자가 시작합니다.」다.
  5. 조회 권한만 있을 때도 같은 자리다 — 설계중·검토에서 조회 권한만 있으면 전이 단추가 하나도 안 뜬다. 설계중은 「검토 제출은 견적을 고칠 수 있는 사람이 합니다.」, 검토는 「검토 승인·보완 반려는 견적을 고칠 수 있는 사람이 합니다.」다(#1682).
  6. 담당자가 있는 채로 신규일 때 — 만들 때·복제할 때 담당자를 받아도 상태는 신규다. 그 견적에는 「담당 설계자를 배정하면」이 아니라 「[재배정] 으로 담당 설계자를 확정하면 설계중으로 넘어갑니다.」를 적는다(#1682).
관련 API Swagger UI ↗
  • GET/api/es/estimates/{estimateId} — 헤더의 상태·담당 설계자·진행률을 읽는다. 이 셋으로 어떤 한 줄을 적을지 가른다 (§5.4.10 IF-ES-EST-001)
  • PUT/api/es/estimates/{estimateId}/assignee — [담당 설계자 배정] 저장. 서버가 이 호출로 신규 → 설계중 승격을 함께 한다 (§5.4.12 IF-ES-ASSIGN-001) — 화면이 상태를 따로 바꾸지 않는다
헤더 오른쪽과 담당 설계자 자리만 떼어 그렸다 — 나머지는 본체 프레임과 같다
지금 (안내가 없다) — 물어 온 사람이 본 화면이다

견적(버전) 상세 - 섹션 허브

진행 이력기본정보 수정섹션 매핑
신규진행률 100% · 라인 확정 1 / 1 섹션
헤더 오른쪽에 전이 단추가 없고, 그 자리가 비어 있다. 할 일은 다 끝났는데 다음으로 넘어갈 길이 화면에 없다.
정한 모습 — 그 자리에 한 줄이 선다

견적(버전) 상세 - 섹션 허브

진행 이력기본정보 수정섹션 매핑1담당 설계자를 배정하면 설계중으로 넘어갑니다.
신규3진행률 100% · 라인 확정 1 / 1 섹션
담당 설계자미배정
2담당 설계자 배정
4같은 자리에 서는 다른 문구 — 계약: 「계약 해제는 견적 목록에서 합니다.」 · 확정에서 관리자가 아닐 때: 「개정(Rev.)은 관리자가 시작합니다.」 · 설계중에는 두지 않는다([검토 제출] 이 떠 있고, 문턱을 못 넘으면 서버가 못 채운 항목을 돌려주어 화면이 그대로 보여 준다).
SCR-ES-003· 제품 후보 변경 (모달) ES-003 [제품 후보 변경]풀Figma: node 1426:9093

제품 카탈로그 선택 모달 — PM 표준제품 목록(SCR-PM-010) 4축 분류 필터·검색 재활용. 좌측 카탈로그(체크 다중 선택) + 우측 선택된 후보 요약. 배치 사용 중 제품 해제 시 영향 확인.

진입 — SCR-ES-003 [제품 후보 변경] 버튼.

  1. 분류 필터 — 형식·등급·형태 3축 필터와 코드/제품명/제품식별번호 검색(PM 표준제품 목록 재활용). 모델명으로는 찾지 않는다.
  2. 제품 카탈로그 표 — 체크박스 다중 선택으로 제품 후보를 고른다.
  3. 선택된 후보 요약 — 현재 선택한 후보 수와 목록을 우측에 미리 보여준다.
  4. 영향 확인 경고 — 이미 배치에 쓰이는 제품을 해제하면 영향 확인이 필요함을 안내.
  5. 후보 확정 — 선택 결과를 저장하고 섹션 허브 제품 후보 패널·ES-015/018 팔레트에 반영한다.
  6. 제품식별번호 — 조달청이 제품마다 매기는 번호다. 계약을 이 번호로 하므로 비슷한 제품 가운데 맞는 것을 번호로 가려 고른다(#3700). 제품 몸체로 대응한 식별번호의 번호만 보인다. 대응이 없으면 「—」, 번호가 비었으면 「미등재」, 서로 다른 번호가 둘 이상이면 첫 번호와 「외 N」이고, 마우스를 올리면 격자마다 「{격자 또는 모든 격자} · {번호 또는 미등재} · {모델명}」 한 줄씩 보인다. 검색칸도 번호로 찾는다. 정본 §4.4 설계 주석 4.
관련 API Swagger UI ↗
  • GET/api/pm/products?withProcurement=true — 형식/등급/형태 4축 분류 필터·검색으로 제품 카탈로그 조회 (SCR-PM-010 재활용). withProcurement=true 면 항목에 제품식별번호 대응 procurementItems[] 가 실리고 검색이 번호도 찾는다 (§5.3.4 #3700 상자, ✅ 서버 반영 #3709)
  • PUT/api/es/estimates/{estimateId}/palette — 체크 다중 선택한 제품 후보 확정 저장 — 팔레트 큐레이션과 같은 주소 (§5.4.19)
SCR-ES-003· 검토 승인 사유 창 (계약 지정 미리 보기) ES-003 [검토 승인]풀

검토 승인을 누르면 먼저 열리는 사유 창. 사유는 누가 승인하든 선택이다 — 견적 책임자 한 사람이 스스로 승인하는 것이 정상 흐름이라 #1646 의 본인 승인 경고와 필수 사유를 걷었다(#3810 결정 2026-10-22 · ✅ 화면 반영 PR #1460 4c928459(#3840)). 대신 계약 지정에 필요한 값이 비었는지를 미리 보인다 — 승인은 막지 않는다. 정본 §4.4 「#3810 — 승인 창이 계약 지정 판정을 미리 보인다」 줄 · #1646 결정 상자.

진입 — 상태가 「검토」일 때 헤더 오른쪽 [검토 승인] 버튼.

  1. 값이 바뀌었다는 안내가 위다 — #855 가 정한 「검토에 올린 뒤 값이 고쳐졌습니다」 안내다. 본인 승인 경고보다 위에 둔다 — 이 안내는 이 견적의 사실을 말해 읽고 나가서 다시 볼 수 있고, 본인 승인 경고는 누가 누르는가에 대한 말이라 승인을 멈추지 않는다. 판단을 되돌릴 수 있는 쪽을 먼저 보인다. ⚠️ 자기 견적을 자기가 승인할 때는 금액을 다시 볼 사람이 없어 이 차례가 더 중요해진다.
  2. 계약 지정 미리 보기 (#3810) — 창을 열 때 contract-readiness 를 부르고, ready 가 거짓이면 「계약 지정에 필요한 값이 비어 있습니다. 이대로 승인하면 계약 지정 전에 개정해야 합니다.」와 빈 항목 줄(§4.2 #3810 상자의 문구)을 보인다. 곁에 [단가·할증·공차 설정 →] — 검토 중에는 단가가 열려 있어 승인 전에 채울 수 있다. 승인은 막지 않는다. ⛔ 종전 「본인 승인 경고」(createdByMe 로 가르던 것)는 #3810 으로 걷었다.
  3. 사유는 선택이다 (#3810) — 본인 승인도 사유를 비워도 된다. ⛔ 종전 「본인 승인은 사유를 적어야 합니다」와 422 SELF_APPROVAL_REASON_REQUIRED 는 #3810 으로 걷었다. 적은 사유는 [진행 이력] 에 남는다.
  4. 적은 사유가 자국으로 남는다 — [진행 이력] 창에 「검토 → 확정 (검토 승인 · 본인 승인)」으로 한 줄이 서고 그 사유가 함께 보인다. #897 의 재배정 줄이 「확정 → 확정 (담당 재배정)」으로 보이는 것과 같은 꼴이다. 새 표 칸을 만들지 않는다 — 그 줄의 「바꾼 사람」과 견적 작성자를 서버가 견줘 낸다.
  5. 막히면 까닭을 보인다 — 승인은 사유 없음 말고도 문턱 미충족·검토 상태 아님으로 막힐 수 있다. 까닭이 안 보이면 사람이 같은 단추를 거듭 누른다 — 검수자가 2초 사이에 다섯 번 눌러 다섯 번 다 409 를 받은 자리다.
관련 API Swagger UI ↗
  • GET/api/es/estimates/{estimateId}/contract-readiness — 계약 지정에 필요한 값이 비었는지 미리 본다 { ready, unsatisfied[] } (#3810 신설 · ✅ 서버 반영 db449af0, §5.4.11)
  • POST/api/es/estimates/{estimateId}/approve-review — 검토 승인. 본문 { reason } 은 누가 승인하든 선택이다(#3810 — 본인 승인 사유 필수를 걷음, ✅ 서버 반영 db449af0). 종전 409 WORKFLOW_SELF_APPROVAL_FORBIDDEN 은 걷혔다 (#1655, §5.4.11 IF-ES-WORKFLOW-001)
  • GET/api/es/estimates/{estimateId}/status-history — 승인 줄의 본인 승인 표시를 읽는다 (§5.4.11)
상태 variant: 계약 지정에 필요한 값이 다 차 있으면 마커 2 안내가 없다 · 값이 안 바뀌었으면 마커 1 안내가 없다 · 본인 승인이든 아니든 사유를 비워도 [승인] 이 된다(#3810).
SCR-ES-003· 사본 모드 — 제작용 사본 견적 상세 (제작팀) /projects/:projectNo/estimates/:estimateId?batchId=풀

제작팀이 제작 묶음을 보정할 때 여는 제작용 사본의 견적 상세. 본체 프레임과 같은 화면이고, 머리 띠 · [빈 섹션 추가] · 일괄 변경 자리만 다르다. 정본 §10 #3053 상자 「보정의 세 경로」 · #3590 불릿 · 「편집 권한」 ① 의 #3616 줄 · §08 §4.4 「수기 견적」 행 사본 모드 예외.

진입 — SCR-MF [제조] › [묶음] 의 묶음 행 [사본 열기](실측완료 묶음이면 먼저 [보정 시작]) → 사본 견적 상세. [사본 열기] 가 주소에 ?batchId= 를 실어 넘기고, 화면은 그 번호를 이 탭에 프로젝트별로 기억해 사본 화면 사이를 옮겨도 띠를 유지한다(#3606).

다음 단계 — 띠 [절단 계산으로 돌아가기] → SCR-MF-004 절단 재계산(그 묶음) · 띠 [묶음 목록으로] → [제조] › [묶음] · 띠 [원본과 비교] → 차이 표 창 · 섹션 줄 → SCR-ES-015 캔버스(사본 모드, 아래 사본 모드 캔버스) · [빈 섹션 추가] 저장 → 새 부호가 목록에 서고 그 줄을 눌러 캔버스에서 제품 배치 또는 [자재 추가] → [라인 확정] → 현장 관리(SCR-PM-025)에서 현장담당이 「사본에만 있는 부호」로 묶음에 담는다.

  1. 사본 머리 띠 (✅ 화면 반영 fe de48a137, #3606) — 「제작 도면 — 원본 {원본 견적 번호} 기준」 배지(🔄 #4186 결정 2026-10-30 · ✅ 화면 반영 fe 78ca6841, #4189 — 종전 「제작용 사본 — …」, 원본 번호가 없으면 「제작 도면 — 원본 기준」) 곁에 「N차 묶음 보정 중 — 묶음 이름」과 [절단 계산으로 돌아가기] · [묶음 목록으로] 를 둔다. 묶음 번호가 없으면(다른 길로 들어옴) 「보정 중」 줄과 [절단 계산으로 돌아가기] 없이 [묶음 목록으로] 만 둔다. 같은 띠가 SCR-ES-004 · SCR-ES-015 · SCR-ES-019 사본 모드 머리에도 선다.
  2. 원본과 비교 — 사본 전체와 원본의 차이 표를 창으로 연다(묶음 번호 없이). 표는 현장 관리 승인 대기함과 같은 표다. 빈 섹션과 자재 줄은 추가 진행 줄로 강조된다(#3590).
  3. [빈 섹션 추가] (📌 #3590 결정 2026-10-19 · ✅ 화면 반영 #3594) — 영업 견적의 [섹션 수동 추가] 단추를 사본에서는 도면 유무와 상관없이 보이고 이름을 [빈 섹션 추가] 로 바꾼다. 제조 편집 권한에서만 보인다. 창은 수기 견적과 같다(부호 이름·수량, 크기는 캔버스 눈금자에서). 원본(영업 견적)의 단추 조건(도면이 귀속되지 않은 견적만)은 그대로다.
  4. 일괄 변경은 제작팀에 열지 않는다 (📌 #3616 결정 2026-10-19) — 제작팀에게는 [선택 일괄 변경] 단추 대신 「선택 일괄 변경 — 제작용 사본에서는 쓸 수 없습니다.」 를 보인다. 관리자에게만 단추를 연다(지금 화면 그대로). 제작팀은 캔버스에서 라인을 하나씩 고치고, 많은 부호를 한꺼번에 바꿔야 하면 관리자에게 요청한다.
  5. 빈 섹션 줄 — 도면도 원본 부호도 없이 만든 부호라 「도면」 칸이 — 다. 「작업」 열 [수정]·[삭제] 는 수기 섹션 행과 같다. [수정] 창에는 사본 모드에서만 「색 이름」 칸이 있다(아래 부호 나누기 · 색 이름 프레임).
  6. 사본에서 감추거나 막는 것 — 대조 검증 무시(관리자만) · 사선 절단 · 부속 자리 · 일괄 변경 · 도면 지우기·폴더 옮기기 · 견적 머리 쓰기. 그래서 이 그림에는 [기본정보 수정]·[검토 제출] 같은 견적 머리 쓰기 단추가 없다.
  7. 섹션 목록 「상태」 칸 = 보정 상태 (📌 #3781 결정 2026-10-21 · ⏳ 서버·화면 반영 전) — 띠에 묶음이 있으면 섹션 목록 「상태」 칸이 라인 확정 대신 보정 전 · 보정 중 · 보정 완료 배지와 초과 개소 수(「보정 전 · 초과 2」)를 보인다. 목록 머리에 「보정 완료 7/12 부호」를 둔다. 보정 전 줄에는 [변경 없이 완료] 를 둔다(제조 편집 권한). 묶음이 없으면 종전 칸 그대로다. 🔄 #4213 결정 (2026-11-02 · ⏳ 화면 반영 전) — 꼬리 「· 초과 N」은 「· 공간 부족 N」으로 바뀐다. N 은 도면대로 개소 가운데 공간 부족(designFit.status = SHORT)인 개소 수이고, 0 이면 배지만 둔다. 같은 줄 [고칠 것 없음] 확인 창과 같은 셈이다(DE22-1 §08 「#4213 결정」). 캔버스 쪽은 아래 보정 상태 · 실측 대조 패널 프레임.
  8. 부호 그림 (#4166 · #4167 · FR-ES-025 · ⏳ 서버 · 화면 반영 전) — 본체 프레임과 같은 표라 같게 그린다(작은 칸 48 px). 사본 부호는 원본 부호의 그림을 쓰고, 마우스 올림 미리보기 아래에 「견적 일람표 기준」 꼬리표, 보정 작업에서 도면을 고친 부호에는 그림 오른쪽 위에 「도면 고침」 배지를 단다. 빈 섹션은 「그림 없음」 이다. 크기 · 상태 문구 · 56 px 이하 줄여 그리기 · 꼬리표 규칙은 DE22-1 §00 §10 이 정본이다.
관련 API Swagger UI ↗
  • GET/api/fs/projects/{projectId}/batches/{batchId} — 띠의 「N차 묶음 보정 중 — 묶음 이름」(묶음 차수 · 이름). 묶음 번호는 [사본 열기] 가 넘긴 ?batchId= (IF-FS-BATCH-001, #3606)
  • GET/api/mf/projects/{projectId}/production-estimate/diff — [원본과 비교] 차이 표 (묶음 번호 없이 사본 전체, §5.8.13 IF-MF-BATCH-001)
  • POST/api/es/estimates/{estimateId}/sections — [빈 섹션 추가] 저장. drawingId · sourceSectionId 없이 부른다 — 계약은 수기 견적과 같다. 부호 겹침 409 SECTION_CODE_DUPLICATE (§5.8.13 「빈 섹션 추가 · 자재 줄」 1, ✅ 서버 반영 #3593)
  • POST/api/es/estimates/{estimateId}/sections/bulk-change — 일괄 변경. 제작팀에게는 부르는 자리를 열지 않는다 — 관리자만 (#3616, 서버 반영 #3629 — §5.8.13 「편집 권한」 #3616 상자)
  • GET/api/es/estimates/{estimateId}/sections — 사본 견적의 섹션 목록 응답 — 부호 그림 칸 cropPictureUrl(그림 주소 — 읽을 때마다 서버가 한 시간짜리를 새로 발급, 화면이 오래 들고 있지 않는다) · cropPictureStatus(그림 상태 PENDING · RENDERED · SKIPPED · FAILED, null 은 SKIPPED 로 읽는다). 사본 부호는 원본 부호의 그림을 싣는다. 사본 견적이면 cropPictureRedrawn 도 싣는다 — 취소되지 않은 묶음 가운데 하나라도 그 사본 부호를 보정 중이거나 고쳐 마쳤으면 참이고, 참이면 「도면 고침」 배지를 단다. 「견적 일람표 기준」 꼬리표는 응답 칸 없이 화면이 단다. DE24-1 §5.4.13 「부호 그림 칸」(#4168) · ⏳ 서버 반영 전 #4171
프로젝트  ›  프로젝트 상세  ›  견적 탭  ›  견적(버전) 상세 - 섹션 허브
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기
1제작 도면 — 원본 EST-2026-014 기준2차 묶음 보정 중 — 3층 동측절단 계산으로 돌아가기묶음 목록으로2원본과 비교

견적(버전) 상세 - 섹션 허브

섹션 매핑
도면 전체상태 전체 부호/제품 검색검색 4선택 일괄 변경 — 제작용 사본에서는 쓸 수 없습니다. 3빈 섹션 추가
☑섹션 (부호)도면수량설계확정BOM작업
☑8도면 고침AW01미사5중13완료잠금BOM—
☑AAW01미사5중27설계중—BOM—
☑5그림 없음EX-01—4미설계—BOM — 비활성수정 삭제
맨 아래 줄은 [빈 섹션 추가] 로 만든 부호다 — 도면·원본 없이 사본에만 있다. 관리자로 열면 마커 4 자리에 [선택 일괄 변경] 단추가 그대로 선다.
견적 일람표 기준AW01 그림에 마우스를 올리면 뜨는 240 px 미리보기 — 사본 부호라 미리보기 아래에 「견적 일람표 기준」 꼬리표를 단다. 그림 귀퉁이 「도면 고침」 배지는 보정 작업 ③ 에서 이 사본을 고쳤다는 뜻이다 — 그림은 원본 부호의 일람표 칸 모양이라 지금 사본 모양과 다르다. 빈 섹션(EX-01)은 그릴 칸이 없어 「그림 없음」 이다.
[빈 섹션 추가] 창 — 수기 견적의 [섹션 수동 추가] 창과 같다
상태 variant: 묶음 번호 없이 들어옴(띠에 「보정 중」 줄과 [절단 계산으로 돌아가기] 없음, [묶음 목록으로] 만) · 관리자(일괄 변경 단추 열림) · 영업 견적(띠 없음, 단추 이름 [섹션 수동 추가] — 도면이 귀속되지 않은 견적에서만).
SCR-ES-004섹션 매핑 (창호일람표) /projects/:projectNo/estimates/:estimateId/drawing풀Figma: node 1200:4008

단계 ④ 작업대 — 상단 도면 선택 드롭다운 + 도구 툴바(자동·사각형·지우개·팬·줌) 아래 창호일람표 시트를 가로 나열하고 창호 입면마다 마커(부호/수량)를 찍어 섹션 추출. 우측 섹션 작업 패널.

진입 — ES-003 [섹션 매핑] 버튼(견적 생성 직후 착지는 ES-003 — ES-002 발신 정합).

사본 모드 — 사본 견적 상세의 [섹션 매핑] 으로 오면 섹션 목록 부호 행에 [부호 나누기] 가 서고, 부호 편집 창에 「색 이름」 칸이 붙는다. 아래 부호 나누기 · 색 이름 프레임 (#3577).

다음 단계 — 게이트 전: [대조 검증] → SCR-ES-019 · 게이트를 통과한 도면: 섹션 줄마다 [견적설계 →] · 요약 카드 [견적설계 시작 →] → SCR-ES-015 (통과 전이면 「대조 검증을 통과하면 여기서 견적설계로 들어갑니다」 + [대조 검증] 만) (#2112 결정 1 · #2109 ③④).

  1. 도면 선택 — 매핑 대상 도면과 변환 상태를 드롭다운으로 표시한다. 후보 줄은 「파일명 · 용도」 로 적는다(#2949, ⏳ 화면 반영 전). 평면도와 창호일람표가 한 파일에 든 도면은 한 줄로 나온다.
  2. 섹션 자동 인식 — 디멘션 교차를 자동 인식해 섹션 후보를 제안한다.
  3. 대조 검증 — 매핑 완료 후 대조 검증 게이트(ES-019)로 진입한다. 게이트를 통과해야 섹션 견적설계(ES-015)로 넘어간다 (ES-015 직행 없음).
  4. 도구 툴바 — 자동/사각형/지우개/팬/줌 5종 도구로 마킹한다. [부호] 도구는 뺐다(#3825) — 부호·수량은 섹션 목록 [수정] 으로 고치고, 마커 옮기기는 [사각형] 도구에서 마커를 끌어 한다. 도구 없이 또는 [사각형] 에서 마커를 누르면(끌지 않고) 섹션 목록의 그 줄을 짚는다 — 창은 열지 않는다.
  5. 창호일람표 캔버스 — 여러 시트를 가로 나열하고 창호 입면마다 부호/수량 마커를 찍는다.
  6. 섹션 작업 패널 — 섹션 목록/자동 인식 제안 2탭으로 구성.
  7. 섹션 목록 표 — 부호·수량·확정 상태.
  8. 매핑 진행 요약 — 전체 도면 대비 매핑 완료 섹션 수.
  9. 접기·밀도 — SCR-ES-015 가 정한 접기 방식을 그대로 물려받는다(#1913 결정, #1935 as-built). 레이어 목록(256 px, 처음은 접힘)과 섹션 작업 패널(368 px, 처음은 펴짐) 둘을 접는다 — 접으면 40 px 세로 띠가 남고 단추는 패널 왼쪽 위 모서리 «▶» 다. 접은 상태는 브라우저에 담고 열쇠를 사람·화면별로 가른다. 캔버스는 창에 남은 세로를 다 쓰고 최소 400 px 를 지킨다(고정 492 px 를 걷었으나 실측 결과 아래에 빈 자리는 0 px 였다). 도면 고르개 줄 오른쪽 끝의 [넓게 보기](단축키 F)가 좌우 두 패널과 머리말 셋(이름줄·제목줄·캔버스 머리말)을 한 번에 접고 도구 탭 줄은 남긴다(#2042 결정 — SCR-ES-015 와 같은 규칙이다. 캔버스 머리말을 접는 것은 화면 반영 전이다). 목표 — 도면 1,141 × 445 px · 넓이 27.46%(고치기 전 925 × 445 · 22.26%)는 실측값을 정본으로 받았다(§4.5 「접기·밀도」 as-built, 2026-09-11). 넓게 보기에서는 51.6%(1,469 × 650)로 셈한다 — 캔버스 머리말 93 px 를 더 접은 값이고, 반영 전 as-built 는 44.25% 다.
  10. 자동 인식 후보 캔버스 표시 — 「자동 인식 제안」 목록이 나오면 캔버스에도 후보 사각형을 번호와 함께 그린다(#1911). 후보는 주황 점선(6 3)이고 확정 섹션은 실선이라 갈린다. 번호 뱃지(22×16 px)는 사각형 오른쪽 위에 붙고 값은 목록 줄 번호와 같다(index+1). 사각형이 26×16 px 보다 작으면 뱃지를 생략하고, 가리킨·고른 후보는 크기와 무관하게 늘 그린다. 목록 줄 ↔ 캔버스 강조는 양방향이다. 섹션과 자리가 겹치는 후보는 화면 기준 최대 3 px 안쪽으로 들여 점선이 실선 안쪽에 나란히 보이게 한다. 후보 210 건에서도 확대·축소·밀기가 버틴다. 정본 §4.5 「자동 인식 후보 캔버스 표시」 행.
  11. 몸통 크기 (#3168 ③) — 섹션 목록 줄마다 [몸통 크기] 단추. 작은 창에 「가로 (mm)」·「세로 (mm)」 두 칸과 [저장]·[값 지우기]·[취소]. 비어 있으면 「값 없음 — 절취 구역 크기를 자로 씁니다」. 저장하면 「이미 저장한 눈금은 바뀌지 않습니다」 를 알린다. 검토 중에도 열고 확정·계약·보기 권한에서는 잠근다. 정본 DE22-1 §08 §4.5 「#3168 결정 ③」 (⏳ 화면 반영 전).
  12. 빠진 외부참조 안내 띠 (#3479) — 고른 도면에 함께 올라오지 않은 외부참조(다른 도면 파일을 끼워 보이게 하는 연결)가 있으면 캔버스 위쪽에 주의 띠를 단다. 문구·숨김 규칙은 SCR-ES-014 ⑩ 과 같다 — 빈 배열·null 이면 띠가 없다. 값은 도면 고르개 목록 행(missingXrefNames)에서 온다. 정본 §08 §4.1 「빠진 외부참조를 알린다」 상자 (✅ 화면 반영 e5cde3d4).
  13. 후보 줄 제안 부호 (#3247 · #3479) — 「자동 인식 제안」 탭 후보 줄의 크기 아래 작은 한 줄에 「제안 부호 AW2」 를 적는다(서버가 도면에서 읽은 codeHint, 못 읽으면 없다). 고른 도면에 이미 있는 섹션 부호와 같은 부호면 「제안 부호 AW2 · 있는 AW02 와 같음」. 겹침 안내가 있으면 「·」로 이어 한 줄로 자르고 전문은 마우스를 올려 본다(줄 높이 고정). 같은 부호로 보는 열쇠 — 대문자로 · 공백과 줄표 지움 · 끝 숫자의 앞쪽 0 지움(AW2=AW02=AW-2). 열쇠는 견줄 때만 쓰고 저장 값은 사람이 넣은 글자 그대로다. 정본 §08 §4.5 「같은 부호로 보는 열쇠」 상자.
  14. 후보 확정 창 부호 칸 (#3479 · #3811) — 후보 [확정] 으로 여는 섹션 입력 창은 부호 칸에 추천값을 넣어 연다(#3811). 추천값은 제안 부호이고, 없으면 직전 부호의 다음 번호다(AW01→AW02, 끝 숫자가 없으면 비운다). 커서는 부호 칸에 있고 값 전체가 골라져 있다. 고치지 않고 Enter 한 번이면 저장되고, 확정·치우기 하지 않은 다음 후보의 창이 바로 열린다. 칸 아래에 「도면에서 읽은 제안 부호: AW2」(직전 부호로 셈했으면 「직전 부호 AW01 의 다음 번호입니다.」)를 적는다. 「 — 적은 부호와 같은 부호입니다.」 는 걷었다(늘 같다고 나와서다). 사람이 칸을 고쳐 다르면 「 — 적은 부호와 다릅니다. 도면의 부호를 한 번 더 확인해 주세요.」 를 덧붙이고 저장은 막지 않는다. 사각형으로 그린 [섹션 추가] 창도 같은 규칙으로 열리고, 저장 뒤 사각형 도구가 켜진 채 다음 사각형을 그릴 수 있다.
  15. 부호 그림 (#4166 · #4167 · FR-ES-025 · ⏳ 서버 · 화면 반영 전) — 「섹션 목록」 탭의 부호 줄 왼쪽에 카드 84 × 56. 찍은 영역이 맞는지 줄에서 바로 본다. 마우스를 올리면 240 px 미리보기가 뜬다. 섹션을 막 만들거나 영역 · 부호를 고친 줄은 「만드는 중」 으로 와서 목록을 10초마다 다시 부르고 15분이면 멈춘다. 사본 모드에서만 꼬리표 · 배지를 단다. 이 자리 정본은 §08 §4.5 기능 표 부호 그림 줄이다. 크기 · 상태 문구 · 56 px 이하 줄여 그리기 · 꼬리표 규칙은 DE22-1 §00 §10 이 정본이다.
관련 API Swagger UI ↗
  • GET/api/es/projects/{projectId}/drawings — 매핑 대상 도면 선택 드롭다운·변환 상태 표시·빠진 외부참조 이름(missingXrefNames) — 견적 축 목록 /api/es/estimates/{estimateId}/drawings 도 같은 행 모양
  • POST/api/es/estimates/{estimateId}/drawings/{drawingId}/section-candidates — 섹션 자동 인식 후보(저장하지 않음). 후보마다 제안 부호 codeHint(못 읽으면 빠짐)
  • POST/api/es/estimates/{estimateId}/sections — 섹션 영역·부호/수량 저장 — 견적 버전 기준 경로 (도면 기준 경로가 아니다)
  • PUT/api/es/sections/{sectionId} — 섹션 목록 [수정] 저장(부호·수량을 포함한 다섯 필드 전부) · [사각형] 도구에서 마커를 끌어 옮기기(영역만 바꿔 같은 다섯 필드를 싣는다) (#3825)
  • PUT/api/es/sections/{sectionId}/body-size — [몸통 크기] 저장. { widthMm, heightMm } 두 값을 늘 함께 보내고 빈 칸은 널(그 축을 지움). 확정·계약이면 409 SECTION_ESTIMATE_LOCKED (#3168 ③ · 서버 #2047)
  • GET/api/es/estimates/{estimateId}/sections — 섹션 목록 응답(SectionResponse)의 부호 그림 칸 cropPictureUrl(그림 주소 — 읽을 때마다 서버가 한 시간짜리를 새로 발급, 화면이 오래 들고 있지 않는다) · cropPictureStatus(그림 상태 PENDING · RENDERED · SKIPPED · FAILED, null 은 SKIPPED 로 읽는다). DE24-1 §5.4.13 「부호 그림 칸」(#4168) · ⏳ 서버 반영 전 #4171
프로젝트  ›  미사5중학교  ›  견적설계  ›  견적 v.1  ›  섹션 매핑
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기

섹션 매핑 (창호일람표)

1미사5중_프로그램용.dwg · 창호일람표변환 완료9넓게 보기2섹션 자동 인식3대조 검증
5창호일람표 시트 캔버스
도구: 자동 인식 · 사각형 영역 추가 · 지우개 · 팬 · 줌
12이 도면이 불러오는 다른 도면 파일 1개가 함께 올라오지 않아 그 부분이 그려지지 않았습니다: XR-FORM(평면). CAD 에서 외부참조를 묶어(바인드) 다시 올리면 함께 보입니다.
자동4사각형지우개팬줌80%
A-201 창호일람표
AW09/1AW11/1
A-201 창호일람표
AAW01/27
A-201 창호일람표
미지정/-4
JSON 25MB 첫 화면 2초 (NFR-PF-ES-001)
자동 인식 후보: 주황 점선 + 오른쪽 위 번호 뱃지(목록 줄 번호와 같다) · 섹션은 실선 · 겹치면 3 px 안쪽으로 들인다 · 후보 210 건에서도 버틴다 (#1911)
▶ 레이어 목록
6섹션 작업 패널 ▶
섹션 목록자동 인식 제안
715부호수량상태11작업
AW091확정몸통 크기
AW111확정몸통 크기
AAW0127확정몸통 크기
그림 없음(미지정)—제안—
‹1 / 1›
15부호 그림은 카드 84 × 56 — 「자동 인식 제안」 탭 후보 그림과 같은 크기라 두 탭의 줄 모양이 같다. AAW01 은 영역을 막 고쳐 「만드는 중」 이다(목록을 10초마다 다시 부른다). 후보 그림은 화면이 도면에서 바로 오린 확정 전 그림이고, 이 그림은 서버가 만든 확정 섹션의 그림이다 — 둘을 섞지 않는다.
「자동 인식 제안」 탭을 고르면 — 후보 줄 (#3479)
#크기
31,500 × 2,100
13제안 부호 AW2 · 있는 AW02 와 같음 · AW09 와(과) 겹침
확정 · 치우기
42,400 × 1,350
제안 부호 ACW3
확정 · 치우기
후보 [확정] 으로 연 섹션 입력 창 (#3479 · #3811 — 추천값을 넣어 열고 Enter 로 다음 후보)
부호AW2
14도면에서 읽은 제안 부호: AW2
8매핑 진행17 섹션 / 도면 2장
견적설계 가능변환·매핑 완료 도면부터
상태 variant: empty · loading · error · converting(변환 진행 — [대조 검증] 비활성) · drawing-error(변환 실패 → ES-014 재업로드) · drawing-empty(빈 도면 — 도면 캔버스 자리에 빈 도면 안내, 오류 색 아님, #3549). 매핑 완료 → [대조 검증]으로 SCR-ES-019 게이트 진입 (ES-015 직행 없음).
새 단추 (#2112 — 정본 「이탈」 행)견적설계 →자리: 섹션 목록 줄마다 (대조 검증 통과 견적 — #2248)견적설계 시작 →자리: 요약 카드 「견적설계 가능」 — 아직 설계하지 않은 첫 섹션「대조 검증을 통과했습니다. 부호를 골라 [견적설계 →] 로 들어가세요.」자리: 화면 위 한 번 — SCR-ES-019 에서 돌아왔을 때
SCR-ES-004· 사본 모드 [부호 나누기] 창 · 부호 편집 창 「색 이름」 (SCR-ES-015 와 같은 창) 사본 모드 부호 행 [부호 나누기]풀

같은 부호를 수량으로 나눠 서브섹션마다 따로 고치는 일(예: AW1 100개 → AW1-1 30 · AW1-2 70)을 제작용 사본에서 한다. 원본(계약 견적)은 그대로 둔다. 정본 §10 #3053 상자 「#3577 결정 — 사본 부호 나누기 · 수량별 색 이름」(📌 2026-10-19).

진입 — ① 사본 모드 SCR-ES-004 섹션 매핑의 섹션 목록 부호 행 [부호 나누기] ② 사본 모드 SCR-ES-015 캔버스 머리의 [부호 나누기] (제조 편집 권한에서만 보인다 — ⏳ 화면 반영 전). 부호 편집 창은 섹션 매핑의 부호 편집과 사본 견적 상세(SCR-ES-003) 수기·빈 섹션 줄 「작업」 열 [수정] 으로 연다(✅ 화면 반영 #3586 69f8934d).

다음 단계 — [나누기] 저장 → 섹션 목록과 묶음 조회를 다시 받아 서브섹션 부호가 목록에 선다 → 서브섹션마다 SCR-ES-015 캔버스에서 라인 치수·옵션(도장 방식 OPT-FIN)을 고치고 확정 → 차이 표에 「나눔」 줄로 나온다.

  1. [부호 나누기] 단추 — 사본 모드 부호 행에 둔다(SCR-ES-004 섹션 목록 · SCR-ES-015 캔버스 머리). 영업 견적 부호에는 없다(서버도 400 SECTION_SPLIT_COPY_ONLY). ⏳ 화면 반영 전 · ✅ 서버 반영 #3585.
  2. 서브섹션 줄 — 서브섹션마다 부호 이름(기본 AW1-1·AW1-2) · 수량 · 담을 묶음(그 부호를 담은 묶음 가운데 고르기, 비워도 됨)을 적는다. 서브섹션은 둘 이상이다.
  3. 서브섹션 합 / 부호 수량 — 아래에 「서브섹션 합 {합} / 부호 수량 {수량}」을 보인다. 합이 다르면 [나누기] 가 잠긴다 — 늘리는 것은 추가 진행이고 줄이는 것은 수량 고치기라 나누기로 하지 않는다.
  4. [나누기] — 저장하면 섹션 목록과 묶음 조회를 다시 받는다. 409 BATCH_SCOPE_LOCKED 면 사본 라인과 같은 안내를 띄운다. 합치기 단추는 없다 — 잘못 나눴으면 서브섹션 부호를 지우고 남은 서브섹션의 수량을 고친다.
  5. 부호 편집 창 「색 이름」 칸 (✅ 화면 반영 #3586 69f8934d) — 사본 모드에서만 보인다. 64자까지, 비워도 되고 비우면 지운다. 색 이름은 제작지시서 (외)와 절단지시서 무리 머리에 찍힌다. 마감 종류는 새 칸 없이 서브섹션 라인의 도장 방식 옵션으로 다르게 준다.
  6. 「담을 묶음」을 비울 때 (📌 #3646 결정 2026-10-20 · ⏳ 화면 반영 전) — 제작팀이 묶음 행의 서브섹션을 채우는 길은 이 창의 「담을 묶음」(parts[].batchId) 하나다. 고를 수 있는 묶음은 그 부호를 서브섹션 없이 담은 행의 수량이 그 서브섹션 수량과 같은 묶음이다(맞지 않으면 서버 400). 「담지 않음」으로 둔 줄이 있고 그 부호를 담은 묶음이 있으면 [나누기] 위에 「담을 묶음을 비우면 그 묶음은 [승인 요청] 전에 [묶음] 탭에서 서브섹션 줄을 골라야 합니다.」를 보인다. 막지는 않는다. 묶음 행의 서브섹션 고르개는 이 창이 아니라 제조 [묶음] 탭(SCR-MF-008)의 [서브섹션 줄 싣기](manufacture.html #f-mf008 ⑬)에 있고, 같은 탭은 안 고른 행이 있으면 [승인 요청] 을 미리 막는다(⑫). 📌 #3704 사용자 결정(2026-10-20, ⏳ 화면 반영 전) — 「… 현장담당이 서브섹션을 골라야 합니다.」 · 고르개는 현장 관리 묶음 고치기(SCR-PM-025, project.html #f12 ⑧)에 있다 ⛔ 뒤집힘, 줄 싣기는 제작팀 몫이다.
관련 API Swagger UI ↗
  • POST/api/es/sections/{sectionId}/split — 사본 부호를 서브섹션 둘 이상으로 나눈다. 본문 { parts: [{ sectionCode?, qty, batchId? }] }. 400 SECTION_SPLIT_COPY_ONLY · 409 SECTION_ESTIMATE_LOCKED · 409 BATCH_SCOPE_LOCKED · 400 값 검사(서브섹션 2개 이상 · 수량 합 · 묶음 행 수량) · 409 SECTION_CODE_DUPLICATE (§5.8.13 「사본 부호 나누기 · 수량별 색 이름」 1, ✅ 서버 반영 #3585 0ad82e9b)
  • MISSING담을 묶음 고르개의 후보(그 부호를 담은 묶음) 조회 — 정본이 화면이 부를 주소를 따로 정하지 않았다
  • PUT/api/es/sections/{sectionId} — 부호 편집 저장. 칸 colorName(64자) — 안 보내거나 null 이면 그대로, 빈 글자면 지운다. 영업 견적 부호에 값을 보내면 400 VALIDATION_ERROR (§5.4.13 · #3585)
사본 모드 섹션 목록 (SCR-ES-004 섹션 작업 패널)
부호수량작업
AW1100몸통 크기 1부호 나누기
AW212몸통 크기 부호 나누기
SCR-ES-015 사본 모드에서는 캔버스 머리에 같은 [부호 나누기] 가 선다.
상태 variant: 서브섹션 합이 부호 수량과 다르면(예: 「서브섹션 합 90 / 부호 수량 100」) [나누기] 잠김 · 409 BATCH_SCOPE_LOCKED 는 사본 라인과 같은 안내 · 「담을 묶음」을 모두 고르면 ⑥ 안내는 사라진다 · 묶음 행의 서브섹션 고르개는 제조 [묶음] 탭의 [서브섹션 줄 싣기](manufacture.html SCR-MF-008 ⑬, 📌 #3704)에 그렸다(현장 관리 묶음 고치기(#3646 결정) ⛔ 뒤집힘).
SCR-ES-019평면도 설치위치 대조 검증 (PRC-ES-08) /…/estimates/:estimateId/crosscheck풀

단계 ④·⑤ 사이 게이트 — 창호일람표 매핑으로 뽑은 섹션(부호·수량)을 평면도 위 실제 설치 위치에 개소별로 직접 배치해, 부호별 배치 개수가 매핑 수량과 맞는지 검증한다. 우측에서 섹션을 고르고 평면도를 클릭하면 그 위치에 부호 태그가 추가되고, 배치/미배치 카운트가 실시간 갱신된다. 배치한 개소 위치는 실측(FS)의 입력이 된다. 진입은 SCR-ES-004 매핑 완료 후 [대조 검증] 이며(ES-015 직행 없음), 전 섹션 일치 → [견적설계 진입]. 불일치는 사유 입력 후 오버라이드(감사 로그). 이 작업은 두 시점에 할 수 있다 — 견적 단계(이 게이트)와 계약 뒤다(#844). 계약 뒤로 미루려면 오버라이드 사유 갈래를 「계약 뒤로 미룸」으로 고른다. 상단 고르개는 개소를 찍을 배경만 고르고, 오른쪽 부호 목록·게이트는 고른 도면과 상관없이 그 견적 하나다(#2248). 정본 §4.5.1 (v2.1-r288).

다음 단계 — 게이트를 통과하면(전 부호 일치 또는 사유 통과) [견적설계 진입] → SCR-ES-004 섹션 매핑(통과 안내 한 번) → 거기서 부호를 골라 [견적설계 →] 로 SCR-ES-015 (#378 그대로 — #2112 결정 1).

  1. 배경 평면도 선택 (#2248) — 진입은 SCR-ES-004 매핑 완료 후 [대조 검증]. 개소를 찍을 배경 평면도를 이 화면 상단 드롭다운에서 고른다 (여러 장이면 번갈아 깐다). 후보 줄은 「파일명 · 용도」 로 적는다(#2949, ⏳ 화면 반영 전 — 종전에는 고른 뒤에야 용도 배지가 보였다). 고른 도면은 배경·개소 표식·새 태그의 도면 번호만 정한다 — 부호 목록·합계·게이트는 이 값과 상관없다. 주소에 도면 번호가 없으면 평면도를 먼저 깐다.
  2. 견적설계 진입 게이트 — 그 견적의 전 섹션 배치=매핑(일치)일 때 활성 — 어느 배경을 골라도 같은 판정이다(#2248). 통과하면 SCR-ES-004 목록에서 부호를 고른 뒤 SCR-ES-015 로 진입.
  3. 사유 입력 후 진입 (오버라이드) — 도면 오류 등으로 못 맞추면 ROLE_ES_EDITOR 가 사유를 입력해 진입. 통과자·시각·사유를 감사 로그로 남긴다.
  4. 평면도 배경·태그 배치 — 평면도(변환 JSON 벡터 절취)를 배경으로 깔고, 선택한 섹션을 실제 설치 위치에 클릭해 개소별 태그로 배치. 태그 이동·삭제. 배경·좌표계는 ES-015 §4.6.2 재사용.
  5. 섹션 목록 (배치/매핑) — 그 견적의 부호 전체(창호일람표 부호·수기 부호)를 두고 부호별 배치 개수/매핑 수량을 실시간 표시. 배치=매핑(일치)·배치<매핑(미배치)·배치>매핑(초과). 배치 개수는 배경 평면도 여러 장을 합쳐 센다(#1045). 부호가 0개면 「이 견적에는 아직 부호가 없습니다. 섹션 매핑에서 창호일람표 부호를 먼저 추출하세요.」 한 줄을 두고 [사유 입력 후 진입]을 감춘다(#2248·#1030).
  6. 층에 걸친 부호 (#3244 · #3399) — 실물 한 틀은 한 번만 찍는다. 층마다 평면도에 같은 표식이 있어도 일람표가 수량을 적은 층(적지 않았으면 가장 아래 층) 하나에 찍는다. 「초과」 부호가 있으면 불일치 안내에 「초과 부호가 여러 층에 걸친 한 틀이면 한 번만 찍습니다. 일람표가 수량을 적은 층(적지 않았으면 가장 아래 층)의 태그 하나만 남기고 다른 층 태그는 지우세요.」 한 줄을 더한다. 사유 입력은 그대로 두되 이 경우에는 권하지 않는다 — 남은 태그마다 실측 개소가 된다(⏳ 화면 반영 전).
  7. 배치 집계·판정 — 전체 배치·미배치 잔량을 집계해 전량 배치 여부를 한눈에 확인.
  8. 계약 뒤에도 이 화면을 연다 (#844) — 견적이 만들어지는 동안에는 부호·수량이 자주 바뀌어 개소를 몇 번씩 다시 찍게 되므로, 게이트에서 사유 갈래를 「계약 뒤로 미룸」으로 골라 넘기고 계약 뒤에 한 번만 할 수 있다. 진입 자리·주소는 견적 단계와 같다(견적 상세 → 섹션 매핑 → [대조 검증]).
  9. 계약 뒤 화면 차이 (#844 · #2376) — 이 그림은 설계중 상태다(⑨ 상자만 계약 뒤 모습을 함께 그렸다). 확정·계약 견적에서 들어오면 이렇게 달라진다. ⓐ 상단에 「확정된 견적입니다. 개소 배치는 고칠 수 있고 매핑 수량은 고칠 수 없습니다.」 안내 띠가 뜬다. ⓑ 불일치 안내에서 「매핑으로 돌아가 수량을 바로잡으세요」를 빼고 남은 두 길만 말한다 — 개정(Rev.)을 시작하거나, 사유를 적어 넘긴다. ⓒ 견적 라인이 있으므로 [개소 찍기] 도구에서 부호를 고르면 「견적 라인 잇기」 상자(⑨)가 뜨고, 빈 개소가 남았으면 그 수를 알린다. 태그를 더 찍고 지우는 조작 자체는 그대로다.
  10. 견적 라인 잇기 (#844 · #2376) — 고른 부호에 딸린 견적 라인만 늘어놓는다(다른 부호의 라인은 올리지 않는다). 개소 여럿이 라인 하나를 함께 가리킬 수 있어 라인마다 「연결한 개소 N곳」을 센다. 라인이 하나뿐인 부호는 그 라인이 골라져 있고, 여럿이면 미리 고르지 않는다 — 사람이 라인이나 「연결하지 않음」을 고르기 전에는 찍지 않는다. 고른 값은 같은 부호 안에서 찍은 뒤에도 그대로이고 부호를 갈아타면 풀린다. 상자는 [개소 찍기] 도구일 때만 뜬다. 견적 단계에 찍어 둔 개소는 [개소 찍기] 도구로 태그를 눌러 고른 뒤 [고른 개소에 연결] 로 연결한다. 견적 라인이 없으면(견적 단계) 상자가 뜨지 않는다. 빈 개소 수는 라인이 있을 때만 알린다.
관련 API Swagger UI ↗
  • GET/api/es/estimates/{estimateId}/crosscheck — 견적 단위 대조 검증 상태·부호 목록(배치/매핑)·게이트 조회 (#2248 결정 — 서버 반영 전)
  • POST/api/es/sections/{sectionId}/crosscheck/override — [게이트 통과] 오버라이드 — 사유 입력 후 감사 로그 기록
  • POST/api/es/estimates/{estimateId}/drawings/{drawingId}/placements — 고른 배경 평면도에 개소 태그(좌표) 추가 — 조회는 GET, 수정·삭제는 PUT·DELETE .../placements/{placementId}
  • GET/api/es/estimate-lines?estimateId={estimateId} — 그 견적의 견적 라인 목록. 고른 부호의 라인만 잇기 상자에 올린다 (#2376)
  • PUT/api/es/estimates/{estimateId}/drawings/{drawingId}/placements/{placementId} — [고른 개소에 연결] — 본문은 estimateLineId 하나다 (#2376)
  • POST/api/es/estimates/{estimateId}/crosscheck/override — 그 견적의 부호를 한 번에 넘기는 일괄 오버라이드. 「계약 뒤로 미룸」을 고를 때 쓴다 (#844 · #2248 결정 — 서버 반영 전)
프로젝트  ›  미사5중학교  ›  견적설계  ›  견적 v.1  ›  대조 검증
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기

평면도 설치위치 대조 검증

1배경 평면도: 미사5중_평면도.dwg · 평면도 ▾변환 완료3사유 입력 후 진입2견적설계 진입
6미배치 5개소 — 전 섹션 배치(일치)여야 견적설계 진입. 못 맞추면 ROLE_ES_EDITOR 가 사유 입력 후 오버라이드(통과자·시각·사유 감사 로그). 부호 하나의 배치 개수는 배경 평면도 여러 장에 흩어져 있어도 합쳐 센다(#1045).
4평면도 배경 — 우측 섹션 선택 후 설치 위치 클릭 = 부호 태그 추가
변환 JSON 벡터 절취 · 줌 · 팬 · 태그 이동·삭제 · 배경·좌표계 ES-015 §4.6.2 재사용
평면도 (변환 JSON 벡터 절취 · 줌 · 팬) ◎ AW01◎ AW01◎ AD03◎ AW11 (초과) 선택 섹션: AW01 — 평면도를 클릭해 남은 3개소를 배치 (개소 태그는 이동·삭제)
5섹션 목록 (이 견적의 부호 전체 — 배경과 무관) — 배치 / 매핑
부호배치 / 매핑상태
AW012 / 5미배치
AW090 / 3미배치
AD031 / 1일치
AW114 / 3초과
9견적 라인 연결 — AW01 (계약 뒤 · [개소 찍기] 도구 · 라인이 있을 때만 · 라인이 여럿이라 사람이 #1 을 고른 상태)
● #1 미서기 이중창연결한 개소 0곳
○ #2 미서기 이중창연결한 개소 1곳
○ 연결하지 않음
이 부호의 빈 개소 1곳 (고른 배경 평면도 한 장 안의 수)
고른 개소 AW01 #100 — 연결한 라인: 없음  고른 개소에 연결
전체 배치7 / 12
미배치 잔량5
개소별 태그 좌표는 영속되어 실측(FS)이 개소 단위 실측값 입력 자료로 쓴다. 개소 좌표 레코드(section_placement)·도면 용도 구분 컬럼(drawing)은 후속 #444·#445. 진입 = SCR-ES-004 [대조 검증] · 게이트 통과 → 부호 선택 → SCR-ES-015. 작업 시점은 두 자리다 — 견적 단계(이 게이트)와 계약 뒤(#844). 두 시점이 쌓는 자료는 한 벌이고, 계약 뒤 배치를 따로 쌓지 않는다. 계약 뒤에 찍는 태그는 견적 라인이 이미 있으므로 처음 찍을 때 라인 번호(section_placement.estimate_line_id)를 바로 채운다. 정본 §4.5.1 (v2.1-r65).
SCR-ES-015섹션 견적설계 (제품 선택 → 형태대로 배치 → 규격 자동) /…/estimates/:estimateId/sections/:sectionId/design풀Figma: node 904:2803

단계 ⑤ 본체 — 좌측 카테고리별 제품 팔레트에서 제품 선택 → 중앙 캔버스(도면 절취 뷰·치수선·FL 기준선)에 형태대로 그려 배치 → 그린 치수에서 규격(W/H) 자동 산정. 우측 [추가된 제품] 목록에 배치 누적·선택 인스턴스 규격·OPT 슬롯. 좌측 하단 선택·편집(V·M·Del)·히스토리(⌃Z·⌃Y)·배경·정밀배치. (정본 §4.6, 2026-06-19 확정)

진입 — SCR-ES-004 섹션 매핑의 [견적설계 →]·[견적설계 시작 →] (대조 검증을 통과한 도면에만 선다 — #2112 결정 1) / ES-003 섹션 행 클릭 / SCR-ES-005 [캔버스로 돌아가기 →] / SCR-ES-018 [캔버스로].

사본 모드 — 사본 견적 상세의 섹션 줄로 오면 캔버스 머리에 [부호 나누기], 라인 목록 머리에 [자재 추가] 가 서고 자재 줄은 「자재」 꼬리표로 보인다. 아래 사본 모드 자재 추가 프레임 (#3577 · #3590 · #3645).

다음 단계 — 마지막 섹션: 전 섹션 끝이면 [다음 단계: 단가·할증·공차 →] → SCR-ES-016, 남았으면 [남은 섹션으로 →] · [BOM 구성] → SCR-ES-005 · 확정한 배치물을 고르면 [확정 해제하러 가기 →] → 그 라인의 SCR-ES-005 · 옵션 패널 [옵션구성 만들기] → SCR-PM-013B (새 창 · 구성 수와 상관없이 늘 둔다, #2951 ①) · 떠나는 단추는 저장 안 한 배치가 있으면 확인창 먼저 (#2112 결정 2·5 · #2109 ⑦⑧⑨ · #2107 6-1).

  1. 제품 팔레트 — 카테고리별(커튼월=선형 / 미서기·갤러리·도어=사각) 단계 ③ 확정 제품 후보. 제품을 먼저 골라야 그리기 형태가 정해진다.
  2. 선택·편집·히스토리 — 선택(Esc 로 돌아감)·이동(M)·삭제(Del)·undo(⌃Z)·redo(⌃⇧Z). V 는 선택이 아니라 이전 시스템대로 PJ 그리기, ⌃Y 는 다시 하기가 아니라 유리받침 자동 배치다(#3812). 삭제는 도구줄 [삭제]·Del·선 우클릭 「삭제」 모두 같은 확인 창(「고른 배치물을 지울까요?」)을 거친 뒤 지운다(DE22-1 §08 R-ES015-DELETE-CONFIRM, #2502). 그리기 프리미티브는 도구가 아니라 선택한 제품의 형태에서 자동 결정된다.
  3. 배경 제어 — 배경 숨김 토글 하나다. 그 토글은 캔버스 오른쪽 위 보기 조절 상자 안에 있고 상자는 처음에 접혀 있다(⑩ · #2080). 투명도 조절대와 잠금 끄개는 #857 이 걷었다. 배경은 자동으로 흐리지 않는다 — 그린 설계는 굵은 부재 띠로 가른다(아래 부재 띠, #3848). 배경은 도면 벡터를 Three.js 로 그리고 그 위에 SVG 오버레이를 얹는다(#845) — SCR-ES-004 가 쓰는 짜임 그대로다. 벡터는 도면 단위로 한 번 받아 두고(서버가 섹션 단위로 자르지 않는다) 섹션의 절취 사각형에 카메라를 맞춰 보여 준다. 배경 잠금은 항상 켜져 있다 — 배경이 도면 좌표계 자체라 옮기면 저장한 배치가 통째로 어긋나므로 위치 미세 조정을 없앴다. 정본 §4.6 ① (v1.7-r164). 늘 켜져 있어 캔버스 상태 배지로 띄우지 않는다(⑪ · #2097). 배경 위에 이 섹션의 절취 구역을 점선으로 그린다(#1583) — 화면을 끌거나 줌하면 어느 구역이 지금 섹션이었는지 알 수 없어지기 때문이다. 옆 섹션 구역도 옅게 함께 그리고 구역 왼쪽 위에 섹션 부호를 적는다. 배치물이 실선 사각형이라 구역은 점선으로 그어 갈라 놓는다. 끄는 자리는 보기 조절 상자의 토글 하나이며(상자를 접어도 구역 그림은 처음부터 보인다, #2080) 새 켜를 만들지 않는다(#1579 가 정한 밀도). 좌표는 겹쳐 그리는 것 모두가 쓰는 cropRectToScreenBox 하나로 얻는다 — 정본 §4.6.2 ② 「겹쳐 그리기 공통 규칙」.
  4. 정밀 배치 — 배치물의 꼭짓점은 언제나 디멘션 교차점에 놓이고 사람이 이 규칙을 끌 수 없다(R-ES015-SNAP-FORCE, #1827). 흡착에 허용 오차(반경)를 두지 않고, 눈금이 모자라면 그리기를 막으며, 균일 그리드 보조와 Alt 자유 배치는 폐지했다. 섹션 가운데 선은 #1706 이 세웠으나 이제 보여 주기만 하는 안내선이고, [가운데 맞춤]은 가운데 셈 값을 가장 가까운 디멘션 교차점으로 맞춰 놓는다. 가운데 값은 섹션 절취 사각형에서 바로 셈한다(x + w/2·y + h/2, 도면 unit) — FL·층고·창호 중심선과 달리 배경 도면 기하가 필요 없다. 배치물 좌표를 낼 때는 축척을 곱한다 — xMm = mmPerUnit × crop.x + (mmPerUnit × crop.w − wMm) / 2 이고 세로도 같은 꼴이다(도면좌표 밀리미터, 세로는 위로 갈수록 커진다 · R-ES015-CENTER-PLACE 정정 #1906). 단추는 배치물을 하나 고른 때만 켠다. 안내선은 처음에 꺼져 있고, 안내선 토글과 이 단추는 보기 조절 상자 안에 있다(⑩ · #2080 — 가운데 선은 가운데에 놓으려 할 때만 쓰는 도구이고, 정확히 놓는 일은 단추가 한다). 잠긴 까닭은 단추 밑 본문 글자로 적는다 — 「격자 없음」(#1924)에 더해 도면 없는 수기 섹션 · 절취 구역 깨짐 두 갈래의 문구·차례는 R-ES015-CENTER-LOCK-NOTICE(#1941)가 정했다. 화면 몫은 #1984 가 마쳤다 — 두 갈래는 절취 사각형이 널이라는 것만으로는 갈리지 않아 배경 상태를 함께 본다. 축척을 못 낸 도면에서도 절취 구역 문구는 적는다(#2026 결정 ② — 「격자 없음」 문구만 적지 않는다).
  5. 칸별 세로 눈금 (칸 고르개) — 캔버스 아래 눈금자 조작줄의 칸 고르개(공통 · 1칸 · 2칸 …, 자리는 #1588 이 2026-09-02 에 정했다)로 칸마다 세로 나눔을 따로 적는다. 칸마다 나눔이 다른 창이 원천 여섯 세트에 창호부호로 넷 있다(수평연창 AW41B·AW42A · 도어구간 AW17 · 수직연창 CW02). 갈라 둔 칸은 캔버스 배경 표시와 고르개 이름의 점으로 드러나고, 그 칸에서는 배치 스냅·합 검산도 그 칸 눈금을 쓴다. 기본은 공통이고 칸을 하나도 가르지 않으면 종전과 똑같이 돈다.
  6. 디멘션 눈금자 + 캔버스 스테이지 — 상단 가로·좌측 세로 디멘션 눈금자(도면 DXF DIMENSION 자동추출 seed + 편집본이 정본 · 추가/삭제/편집). 가로 경계 × 세로 경계 교차점 = 배치 자리. 도면 절취 뷰(치수선·FL 보존) 위에 제품을 교차점 사이에 걸쳐 그려 배치 → 그린 치수에서 규격(W/H) 자동 산정. 균일 그리드 대체는 폐지했다 — 눈금이 없는 구간에는 제품을 놓을 수 없다(#1827).
  7. 치수선 칸 키 (#3812 · 이전 시스템 코드 그대로 · ⏳ 화면 반영 전) — 눈금자 칸을 누르면 그 칸이 골라지고(굵은 막대) 칸 아래에 길이 입력칸이 뜬다. Enter 뒤 경계 하나만 옮겨 다음 칸이 차이를 떠안는다(합 그대로 · 맨 끝 칸만 전체 길이가 바뀜) → 다음 칸을 고르고, 맨 끝 칸이면 닫힌다. 다음 경계를 넘는 값은 무시한다 · 방향키(가로 ←·→ / 세로 ↓·↑) 옆 칸, 끝에서 더 누르면 닫힌다 · A 자 끝(가로 오른쪽 · 세로 위쪽)에 1000 칸 더하기, 고른 칸은 그대로 · S 반으로 나누기(1mm 정수 — 1551 → 775 · 776) · D 다음 칸과 합치기(합 그대로), 맨 끝 칸이면 그 칸을 지운다, 칸이 하나면 아무 일 없음. 커튼월 · 미서기 · 수기 섹션 모두 같다. 칸이나 경계가 골라진 동안 방향키는 배치물이 아니라 눈금자가 받는다. 입력칸에 값을 치는 중에는 A·S·D 를 듣지 않는다. 한글 조합 중 · Ctrl·⌘·Alt 와 함께일 때도 듣지 않는다. 확정 · 계약 견적에서는 편집 키가 잠긴다. 정본 DE22-1 §08 §4.6.2 ③ 「치수선 칸 키」 · 출처 표 R-ES015-SHORTCUT-ORIGIN.
  8. 단축키 (#3812 · 이전 시스템 키 · ✅ 화면 반영 #3894 · #3871) — 도구 키 A→W 미서기 · A→G 갤러리 · V PJ · L 노출바 · H→L 히든바 · H 홈마개 단계 · Y 유리받침 단계 · S→V 슬리브(예약). Ctrl+H·Ctrl+Y 는 그 단계로 가서 [자동선택]. Ctrl+C 뒤 누른 자리에 붙이기(Shift+클릭 연속) · Shift+C 사이 눈금마다 다중 복사. Shift+끌기 상자는 선택에서 빼기(부속 단계는 넣은 자리 빼기). 그리기 도구에서 Ctrl 누름 = 치수선 칸 미리 보기, Ctrl+클릭 = 칸에 꼭 맞게 배치. 스페이스 끌기 · 가운데 단추 끌기는 모든 섹션에서 화면 이동. 삭제는 확인 창을 거친다(이전 시스템과 다름). 맥은 ⌘+H 대신 control+H. 키마다 출처 표 = 정본 DE22-1 §08 §4.6 ④.
  9. 추가된 제품 목록 — 배치된 인스턴스가 제품·규격으로 누적된다. 하나 선택하면 아래에 규격·옵션 슬롯이 표시된다.
  10. 규격·옵션 슬롯 — 선택 인스턴스의 OPT-DIM(W×H)·OPT-* 값. 맨 위에 옵션 구성 고르개가 있다(#1590). 옵션 구성이 둘 이상이면 미리 고르지 않는다(#2099 R-ES015-CONFIG-NO-PRESELECT) — 제품을 놓으면 고르개가 「옵션 구성을 고르세요」로 빈 채 열리고, 고르기 전에는 슬롯이 비며, 저장한 뒤 [확정]은 잠금 사유 8 로 잠긴다. 종전에는 목록 첫 번째를 미리 골랐는데 서버 목록 차례가 새로 만든 차례라 창과 상관없는 구성이 붙었다. 하나뿐이면 그것을 쓰고 고르개를 감춘다. 미서기는 캔버스 창배열에 맞는 구성을 고른다(#3821 R-ES015-CONFIG-BY-LAYOUT) — 맞는 구성이 하나로 좁혀지면 고르고, 여럿이면 고르지 않고 「레이아웃이 맞는 구성」 무리를 고르개 맨 위에 모은다. 맞는 구성이 없으면 비우고 「이 창배열에 맞는 옵션구성이 없습니다 — 제품관리에서 옵션구성을 추가하세요」와 [옵션구성 만들기]를 보인다. 사람이 고른 구성은 레이아웃이 바뀌어도 바꾸지 않고 경고만 한다(⏳ 화면 반영 전). 세로 단 치수 칸(H1·H2·H3)은 배치물이 덮은 세로 눈금 구간을 아래부터 채운다 — 구간 수가 칸 수와 다르면 채우지 않고, 사람이 넣은 값은 덮지 않는다(#2099). 편창 옆 칸 가로 칸(WL)은 3편창·편 제품이면 창배열과 관계없이 선다(1×1 에서도) — 서버가 주는 활성 슬롯에 OPT-DIM-WL 이 오면 연다. 칸 이름은 「WL · 편창 옆 칸 가로 (mm)」이고 아래에 「도면·원장의 W1」을 적는다. 연창 3편창에서는 W1(모듈 한 개의 가로)과 함께 서기 때문이다(#2295, 서버 반영 전).
  11. 좌표 입력·섹션 네비 — 선택 인스턴스 X/Y/W/H/∠ 직접 입력·이전/다음 섹션 이동. X·Y 칸은 섹션좌표로 보이고 받는다(#2099 R-ES015-COORD-ORIGIN) — 절취 사각형 좌하단이 원점이고 위로 갈수록 커지며 기준점은 프레임 좌하단이다. 눈금 경계 값과 그대로 맞는다(1AW: 종전 X 3553 · Y -18580 → X 610 · Y 26). 저장은 도면좌표 그대로다(#962). 절취 사각형이 없는 섹션은 원점을 옮기지 않는다. 넣은 값이 가까운 눈금으로 맞춰져 바뀌면 그 칸 아래에 「가까운 눈금 {X} 로 맞췄습니다. 다른 자리에 놓으려면 눈금자에 점을 더하세요」 를 띄운다(#2960, ⏳ 화면 반영 전). 개구부 안 작은 창을 가운데 놓으려면 창 끝이 될 자리에 눈금자 점을 더한 뒤 그 교차점에 놓는다. 선형(커튼월) 부재는 네 칸이다 — X · Y · 길이 · ∠(R-ES015-LINE-LENGTH, #2079). W·H 대신 「길이」 한 칸을 두고 축은 ∠(0 가로 · 90 세로)가 정한다. 인스턴스 패널에서도 선형 치수 칸은 「길이」 하나이고 「개구부 높이」 칸은 없다(#2221 R-ES015-LINE-ONE-MEMBER) — 선 한 줄이 자재 한 본이라 높이를 받지 않고, 저장 열쇠는 W 그대로다. 섹션을 넘기면 도면이 줌아웃되며 다음 섹션 자리로 카메라가 이동한 뒤 다시 줌인한다(#845) — 기본 500ms(줌아웃 불필요 300ms · 먼 거리 800ms), 양 끝이 완만한 3차 대칭 곡선, 줌아웃 범위는 두 절취 사각형을 함께 담는 상자 + 5% 여백, 도착 배율은 도착 사각형 + 5% 여백. 시스템이 「움직임 줄이기」면 움직이지 않고 곧바로 바꾸고 어디서 어디로 갔는지 글자로 알린다. 차례는 섹션 목록 표시순이고 경계에서 순환하지 않는다. ⚠️ 이 두 단추는 명세에만 있고 화면 코드에는 아직 없다(2026-08-05 실측). 정본 §4.6 ⑤ (v1.7-r164).
  12. 보기 조절 상자 — 캔버스 오른쪽 위, 가로 눈금자 띠 바로 아래에 겹쳐 뜨는 판이다(줌 · 배경 숨김 · 섹션 구역 표시 · 섹션 가운데 안내선 · [가운데 맞춤]). 처음 들어오면 한 줄 칩 「보기 조절 · 116% ▾」 으로 접혀 있고 칩을 누르면 편다. 편 판의 머리 줄 오른쪽 끝 «▴» 로 다시 접는다. 접힘은 좌우 패널처럼 브라우저에 사람·화면별로 기억하고 서버에 담지 않는다. [넓게 보기]와는 묶지 않는다. 섹션 구역 표시는 처음에 켜져 있고, 섹션 가운데 안내선은 처음에 꺼져 있다. 펼친 모습은 아래 「보기 조절 상자」 딸림 프레임이다. 정본 §4.6 「화면 밀도·접기」 ② 표 · #2080 결정 상자 (요청 FB-42).
  13. 구간 합 배지 · 상태 배지 — 구간 합이 몸통 크기(비었으면 절취 범위)와 어긋나면 캔버스가 아니라 눈금자 조작줄에 배지가 선다(잣대는 #2960 이 바꾸었다 — 종전에는 절취 범위였다, ⏳ 화면 반영 전)(칸 고르개 바로 오른쪽 · 「가로 합 200 모자람」 · 칸별 세로면 「세로(3칸) 합 140 남음」). 전체 문장은 말풍선에 담는다. 종전에는 캔버스 왼쪽 위·왼쪽 아래에 안내 상자가 떠서 배경 도면을 덮었다(요청 FB-42 갈무리). 캔버스 상태 배지는 오른쪽 아래에 그리는 중·배경 숨김·읽기 전용일 때만 뜬다 — 늘 켜진 background-locked 는 띄우지 않는다. 배지가 여럿이면 왼쪽으로 늘어서다가 세로 띠 앞에서 위로 접힌다. 두 모습은 아래 「캔버스 가장자리」 딸림 프레임이다. 정본 §4.6 「화면 밀도·접기」 #2097 결정 상자.
  14. 미서기 칸 나누기 (#2452) — 미서기는 그린 뒤 치수 점에 붙는 선으로 칸을 나누고 칸마다 고정창·갤러리를 고르며 중간살을 직접 긋는다. 아래 「미서기 칸 나누기」 프레임과 정본 §4.6.1 ② R-ES015-MISAGI-DIVIDE.
  15. 통재 방향 (#2296) — 캔버스 아래 줄, [이전 섹션]·[다음 섹션] 옆의 고르개다. 값은 없음(처음) · A 트랜섬 관통 · B 멀리언 관통 셋이고 부호에 딸린다(선마다 고르지 않는다). 커튼월 선으로 그린 틀의 모서리(ㄱ)에서 어느 선이 관통하는지를 정한다 — 가로 한 칸 틀은 그림만으로는 늘 A 로 읽혀 멀리언이 틀 높이를 관통하는 틀(성호고 ACW01 등)은 B 를 골라야 멀리언 4,300 · 트랜섬 640 이 나온다. 고르면 곧바로 담기고 실시간 산출이 다시 돈다. 부호에 선형 라인이 있을 때만 보이고, 확정·계약 견적이거나 부호에 확정 라인이 있으면 잠긴다. 정본 §4.6 ③ R-ES015-THROUGH-DIRECTION.
  16. 규격 표기 (#3242 · ⏳ 화면 반영 전) — 통재 방향 고르개 옆 글칸이다. 원천 절단지시서 부호표의 규격(보기 P-159X60X4.0)을 그대로 적는다. 머리가 P- 면 끼움 부재가 끼움 끝마다 1 mm 짧아지고, M- 면 그대로다. 비면 제품 값 그대로다. 담는 주소는 PUT /api/es/sections/{sectionId}/spec-notation 이고 꼴이 틀리면 SECTION_SPEC_NOTATION_INVALID 를 칸 아래에 보인다.
  17. 커튼월 부속 단계 · 선 우클릭 메뉴 (#2468) — 커튼월은 선을 다 그은 뒤 캔버스 왼쪽 위 단계 고르개 「선 긋기 · 홈마개 · 유리받침」 으로 부속 단계에 가서 자리 띠를 눌러 홈마개·유리받침을 넣고 뺀다. 처음에는 셈 결과가 채워져 있고 [자동선택] 이 셈 결과로 되돌린다. 선을 우클릭하면 기존 화면의 열한 줄 메뉴가 뜬다. 아래 「커튼월 부속 단계」 프레임과 정본 §4.6 ③ R-ES015-CW-ACCESSORY-STEP · R-ES015-LINE-CONTEXT-MENU.
  18. 커튼월 부재 종류 메뉴 (#3849 · ✅ 화면 반영 #3871 · 벤딩바 지름 창 ✅ #3843) — 커튼월 제품을 고르면 왼쪽 도구 줄 옆에 이전 시스템과 같은 메뉴 열한 줄이 열린다. 노출바 · 히든바 · 코너바 · 장식바를 골라 한 제품 안에서 섞어 긋고, 홈마개 · 유리받침 · 스틸보강 줄은 그 단계로 간다. 제품에 없는 종류는 흐리다. 아래 「커튼월 부재 종류 메뉴」 프레임과 정본 §4.6 ③ R-ES015-CW-MEMBER-MENU.
  19. 우측 패널 탭 (#3167) — 우측 패널 머리에 [제품 설정]·[각도 절단] 두 탭을 둔다. 처음 선택은 [제품 설정] 이다. 실시간 중량·산출은 [제품 설정] 탭 아래에 그대로 있어 셋째 탭을 두지 않는다. 탭을 옮겨도 [제품 설정] 의 적용 전 옵션이 남는다(늘 그려 둔다, EstimateDesignPage.tsx forceMount). 섹션이 바뀌면 각도 절단 초안을 새로 그린다. 제작용 사본에서는 [각도 절단] 탭을 감춘다(#3058). [각도 절단] 탭의 모양은 아래 「우측 패널 [각도 절단] 탭」 프레임과 정본 §4.6 ⑥.
관련 API Swagger UI ↗
  • POST/api/es/estimate-lines — 캔버스 배치 저장 → 견적 라인(ESTIMATE_LINE) 생성
  • PUT/api/es/estimate-lines/{lineId} — 배치 위치·치수·옵션 수정
  • POST/api/es/estimate-lines/evaluate-preview — 배치·옵션 변경 시 실시간 중량·산출 미리보기
  • GET·PUT/api/es/sections/{sectionId}/dimensions — 디멘션 눈금자 조회·교체(IF-ES-DIMENSION-001, DE24-1 §5.4.29). GET=DXF DIMENSION 자동추출 seed + 편집본 정본 / PUT=집합 교체(추가·삭제·편집). 교차점 = 배치 스냅. 누적 경계는 서버가 spanMm 누적으로 다시 계산해 저장한다(서버 계산값이 이긴다). 첫 행 offsetMm 는 눈금 사슬의 시작점이라 받은 값 그대로 둔다(#2056 결정 — 서버 #2064·화면 #2067 반영 완료) (as-built(구현 실측) — 서버 구현 완료 #929, 이전 파일 V329)
  • GET·PUT/api/es/sections/{sectionId}/angle-cuts — 사선창 부재별 각도 절단 조회·교체(IF-ES-ANGLECUT-001, DE24-1 §5.4.35). 우측 패널 [각도 절단] 탭의 표를 한 벌 통째로 저장한다(빈 배열을 보내면 그 부호의 각도 절단을 전부 지운다). 산식을 돌리지 않는다 — 가공도에서 옮겨 적은 절단 길이·각도를 그대로 담는다. 적힌 것이 없는 부호는 404 가 아니라 빈 목록으로 답한다(사선창이 아닐 뿐이다) (as-built(구현 실측) — 서버 구현 완료 #930, 이전 파일 V330 · 화면 반영 #3167(wims2.0_fe e414aaa8))
  • MISSINGPUT /api/es/sections/{sectionId}/through-direction — 부호의 통재 방향(throughDirection = "A"·"B"·null) 고치기 — IF-ES-SECTION-001, DE24-1 §5.4.13 R-ES013-THROUGH-DIRECTION. 확정·계약이면 409 SECTION_ESTIMATE_LOCKED · 확정 라인이 있으면 409 SECTION_HAS_FROZEN_LINE. 서버 반영 전 (#2296)
  • GET/api/es/estimates/{estimateId}/palette — 좌측 제품 팔레트에 노출할 카테고리별 제품 후보 조회 (ES-018 큐레이션 결과 소비)
프로젝트  ›  견적  ›  섹션 견적설계
제품 선택 → 형태대로 그려 배치섹션 목록으로
1제품 팔레트
커튼월 (선형)
CW 노출바
미서기 (사각)
140 미서기창(V1)
갤러리·도어·기타 (사각)
교출-양개
그리기 형태는 선택 제품에서 자동 결정 (미서기·갤러리·도어=사각 / 커튼월=선)
2선택·편집
Esc
선택
✎
그리기 · 모양=고른 제품
M
이동 · 빈 곳 끌기=화면 밀기
Del
삭제
히스토리
⌃Z
undo
⌃⇧Z
redo
3배경
배경 잠금은 늘 켜짐 (끄개 없음, #857)
배경 숨김 · 섹션 구역 표시 토글은 캔버스 오른쪽 위 보기 조절 상자 안 — 처음 접힘 (⑩ · #2080)
4정밀 배치
디멘션 포인트 스냅 — 늘 켜짐 (끄개 없음, #1827)
섹션 가운데 안내선(처음 꺼짐) · [가운데 맞춤] 도 보기 조절 상자 안 (⑩ · #2080)
5디멘션 눈금자 — 캔버스 안쪽 위·왼쪽 가장자리에 겹쳐 붙는 반투명 띠(#1588 · 캔버스 밖 별도 켜가 아니다) · 도면 DXF DIMENSION 자동추출 seed + 편집본 정본 · 가로×세로 경계 교차점 = 1차 스냅 포인트 · 더블클릭 편집 · + 추가 · 선택+Del 삭제 (Alt 자유배치는 #1827 이 폐지했다)
칸 고르개 — 캔버스 아래 눈금자 조작줄에 둔다(공통 · 1칸 · 2칸 · 3칸 …, 기본 공통). 얇은 띠에 들어가지 않아 2026-09-02 에 이 자리로 정했다(#1588). 칸 이름은 가로 눈금의 「칸」 구간을 왼쪽부터 센 차례이고 신축이음은 세지 않는다. [이 칸만 따로] 로 가르면 그 순간의 공통 눈금을 베껴 시작하고, [공통으로 되돌리기] 는 한 번 묻는다. 갈라 둔 칸은 캔버스 배경의 옅은 표시와 고르개 이름의 점 두 곳에서 눈에 띈다 — 그 칸에서는 배치 스냅도 그 칸의 세로 경계를 쓴다. 칸을 하나도 가르지 않으면 종전과 똑같이 돈다(단창은 이 고르개를 볼 일이 없다).
● 3칸만 따로 (400·640·140)
AW-1 (지금 섹션)
AW-2
A-01 미서기
1800×600
✛ ✛ ✛ ✛ ✛
FL ±0 ■ 교차점 = 배치 자리 (언제나 여기 붙는다, #1827)
600
1200
900
900
1200
+ 눈금 추가
10보기 조절 · 116% ▾
공통 ● 이 칸만 따로 11가로 합 200 모자람 구간을 고르면 치수·구간 종류를 고칩니다 ⓘ 도면 값으로 되돌리기 되돌리기 눈금자 저장
선택 제품: 미서기 · 사각 그리기 모드 캔버스 상태 배지 — 오른쪽 아래, 그리는 중·배경 숨김·읽기 전용일 때만 뜬다. background-locked 는 늘 켜져 있어 띄우지 않는다 (#2097) snap: 디멘션 교차점 강제 (반경 없음·끌 수 없음, #1827) · 갈라 둔 칸에서는 그 칸의 세로 경계 섹션 구역: 지금 섹션 진한 점선 · 옆 섹션 옅은 점선 · 확대·축소를 따라 움직인다 (#1583) 캔버스 세로 703px · 넓이 53.23% (실측 2026-09-02) — 눈금자 띠 28 은 캔버스 안이라 켜 셈에서 빼고, 캔버스 아래 눈금자 조작줄은 켜로 센다 (§4.6 ④ · #1588)
13제품 설정각도 절단
6추가된 제품 (배치 누적)
제품규격 (W×H / 길이)
A-01 140 미서기W1040 × H520
A-02 140 미서기W1040 × H520
CW 노출바L 2500
7선택 제품 규격·옵션 슬롯
옵션 구성DHS-AE225-U#2×2 ▾
둘 이상이면 미리 고르지 않는다 — 처음에는 「옵션 구성을 고르세요」로 빈 채 열린다 (#2099)
OPT-DIM (W×H)1040 × 520
WL · 편창 옆 칸 가로 (mm)710
3편창은 옆 칸 한 칸, 편은 좁은 칸의 가로 — 도면·원장의 W1. 3편창·편 제품일 때만 선다(격자와 관계없음, #2295 서버 반영 전)
선형(커튼월) 부재를 고르면 치수 칸이 길이 (mm) 하나만 남는다 — 선 한 줄이 자재 한 본이라 높이를 받지 않는다 (#2221 R-ES015-LINE-ONE-MEMBER · 칸 이름 #2079)
OPT-LAY2짝
OPT-CUT2 × 2
OPT-GLZ24mm 복층
OPT-MATAL 6063
OPT-FIN2코팅
OPT-ACC기본
취소적용
8X입력 Y입력 W입력 H입력 ∠입력 선형 부재를 고르면 X · Y · 길이 · ∠ (H 칸 감춤, #2079) X·Y 는 섹션 좌하단에서 잰 mm (예 1AW = X 610 · Y 26, #2099) 12통재 방향없음 이전 섹션‹1 / 3›다음 섹션
캔버스 상태 variant (Figma: node 933:11783)
background-locked · 배경 선택/이동 금지 (항상 — 늘 켜져 있어 캔버스에 배지로 띄우지 않는다, #2097) background-hidden · 배경 숨김·배치만 검토 zooming · 포인터 기준 확대/축소 panning · 스페이스+드래그 이동 drawing · 프리미티브 그리기 중 section-travel · 섹션 전환 카메라 이동 중 frozen · 읽기 전용
좌측 카테고리별 제품 팔레트에서 제품 선택 후 형태대로 배치 (정본 §4.6, 2026-06-19 확정 — 구 '빈 프레임 그리기 → 제품 할당' 모델 폐기). 우측 [추가된 제품] 목록에 배치 누적·선택 인스턴스 규격·OPT 슬롯. 상단에 CMD+K 검색·전역 모듈 네비 없는 집중 캔버스 셸.
새 단추 (#2112 — 정본 「이탈」 행)다음 단계: 단가·할증·공차 →자리: 마지막 섹션의 [다음 섹션] 자리 — 전 섹션 끝남은 섹션으로 →자리: 같은 자리 — 남은 섹션이 있을 때확정 해제하러 가기 →자리: 옵션 패널 위 — 확정한 배치물을 골랐을 때옵션구성 만들기 ↗자리: 옵션 패널 옵션구성 고르개 아래 — 새 창 · 구성 수와 상관없이 늘 둔다 (#2951 ①, ⏳ 화면 반영 전)
SCR-ES-015· 사본 모드 — [자재 추가] 창 · 라인 목록 「자재」 꼬리표 · [부호 나누기] 사본 모드 캔버스풀

제작용 사본 캔버스에서 제품 없이 자재(부자재·하드웨어)만 더하는 길. 도면 없이 협의로 더하는 제품·자재를 넣는 「빈 섹션 추가」 경로의 ③ 단계다. 정본 §10 #3053 상자 #3590 불릿 「[자재 추가]」 · #3645 결정 줄 · #3577 불릿 「[부호 나누기]」.

진입 — 사본 모드 견적 상세(SCR-ES-003 사본 모드)에서 섹션 줄(빈 섹션도, 원본에서 온 사본 부호도)을 누르면 사본 모드 캔버스가 열린다. [자재 추가] 창은 오른쪽 라인 목록 머리의 [자재 추가] 를 누르면 열린다(제조 편집 권한 · 📌 #3590 · ✅ 화면 반영 #3594).

다음 단계 — [라인 확정] → 현장 관리(SCR-PM-025)에서 현장담당이 그 부호·수량을 묶음에 담는다(빈 섹션이면 「사본에만 있는 부호」, 늘 추가 진행) → SCR-MF-004 [재계산 실행] → [재계산 결과 적용] → [승인 요청] · 머리 띠 [절단 계산으로 돌아가기] → SCR-MF-004 · 머리 [부호 나누기] → 부호 나누기 창.

  1. 사본 머리 띠 — SCR-ES-003 사본 모드와 같은 띠(「제작 도면 — 원본 … 기준」(🔄 #4186) · 「N차 묶음 보정 중 — 묶음 이름」 · [절단 계산으로 돌아가기] · [묶음 목록으로] · [원본과 비교], ✅ #3606).
  2. [부호 나누기] — 캔버스 머리에 둔다(제조 편집 권한, 📌 #3577 · ⏳ 화면 반영 전). 창 모양은 SCR-ES-004 사본 모드 프레임과 같다.
  3. [자재 추가] — 사본 모드의 섹션 라인 목록 머리에 둔다. 누르면 자재 고르기 창(자재 코드·이름 검색)과 수량 칸(부호 한 대에 드는 수량, 자재 단위 표시)이 열린다. 빈 섹션에도, 원본에서 온 사본 부호에도 넣을 수 있다. 영업 견적에는 없다.
  4. 형재는 고를 수 없다 (#3645 결정 2026-10-20 · ✅ 서버 반영 #3647 · ✅ 화면 반영 #3594) — 자재 고르기 창은 형재 원자재(알루미늄 바 · PVC 형재 · 커튼월 바처럼 바 한 본 단위로 사서 잘라 쓰는 자재)를 목록에서 뺀다. 검색에 걸려도 고를 수 없게 하고 「형재는 제품 라인으로 넣습니다」 안내를 보인다. 형재는 제품 라인으로 넣어야 절단 계획이 바 수를 세고 자재 누적 대조·발주량 대조가 맞는다.
  5. 「자재」 꼬리표 — 저장하면 그 섹션에 자재 줄이 생긴다. 캔버스 그림에는 나타나지 않고 라인 목록에 「자재」 꼬리표로 보인다. 확정·확정 풀기·지우기는 제품 라인과 같은 단추다.
  6. 어디까지 실리나 — 자재 줄은 제작지시서 버전의 확정 구성표 · 제작지시서 「추가 자재」 무리 · 발주에만 실리고, 절단과 작업지시(그래서 MES)에는 실리지 않는다. 차이 표는 자재 줄을 추가 진행 줄로 강조한다.
관련 API Swagger UI ↗
  • MISSING자재 고르기 창의 자재 검색(자재 코드·이름, 형재 원자재 제외) — 정본이 화면이 부를 주소를 정하지 않았다
  • POST/api/es/estimate-lines — 자재 줄 저장. lineKind = MATERIAL · itemId · qty(부호 한 대에 드는 수량), productId 는 비운다. 영업 견적이면 400 VALIDATION_ERROR (§5.8.13 「빈 섹션 추가 · 자재 줄」 4, ✅ 서버 반영 #3593 4c14e282). 형재 원자재(갈래 PROFILE)는 저장·확정 모두 400 VALIDATION_ERROR — #3645 · ✅ 서버 반영 #3647 fcce38c9
  • DELETE/api/es/estimate-lines/{lineId} — 자재 줄 [지우기] (제품 라인과 같은 주소 · 확정·확정 풀기도 제품 라인과 같다)
  • POST/api/es/sections/{sectionId}/split — 머리 [부호 나누기] (✅ 서버 반영 #3585, 창은 SCR-ES-004 사본 모드 프레임)
프로젝트  ›  견적  ›  섹션 견적설계
1제작 도면 — 원본 EST-2026-014 기준2차 묶음 보정 중 — 3층 동측절단 계산으로 돌아가기묶음 목록으로원본과 비교
EX-01 · 수량 42부호 나누기섹션 목록으로
캔버스 — 제품 라인만 그려진다. 자재 줄은 그림에 나타나지 않는다.
라인 목록3자재 추가
라인수량상태
140 미서기창(V1)1확정
5자재 크리센트2 EA미확정
확정확정 풀기지우기
자재 이름·코드는 보기 값이다. 형재 원자재 줄(맨 아래)은 검색에 걸려도 흐리게 두고 고를 수 없다(#3645 · ✅ 화면 반영 #3594) · 영업 견적 캔버스에는 [자재 추가] · [부호 나누기] 가 없다.
SCR-ES-015· 사본 모드 — 보정 상태 · [보정 완료] · [다시 보정] · [변경 없이 완료] · 실측 대조 패널 사본 모드 캔버스 (띠에 묶음이 있을 때)풀

제작용 사본은 계약 견적 라인을 확정 그대로 옮기므로 열자마자 「확정」이 보여 끝난 일처럼 읽혔다. 사본 모드에서는 섹션(사본 부호)마다 보정 전 → 보정 중 → 보정 완료 로 보이고, 옆 패널에서 개소별 설계·실측 차이를 보며 고친다. 서버의 확정 구조는 그대로다. 정본 §08 #3053 상자 「#3781」 불릿 · DE24-1 §5.8.13 「보정 진행 · 실측 대조」. 📌 #3781 결정 2026-10-21 · ⏳ 서버·화면 반영 전.

진입 — [제조] › [묶음] 행 [사본 열기] → 사본 견적 상세 → 섹션 줄, 또는 [묶음] 펼침 · 절단 재계산 실측 대조의 부호 줄 [사본에서 열기]. 띠에 묶음(「N차 묶음 보정 중」)이 있어야 보정 상태와 대조 패널이 보인다.

다음 단계 — 모든 부호가 보정 완료면 [묶음] 행의 [승인 요청] 이 켜진다 · 띠 [절단 계산으로 돌아가기] → SCR-MF-004.

  1. 보정 상태 배지 — 캔버스 머리 섹션 이름 곁. 보정 전(회색) · 보정 중(주황) · 보정 완료(초록, 고치지 않고 마쳤으면 「변경 없이 완료」 꼬리표). 라인을 고치거나 확정을 풀면 서버가 보정 중으로 옮긴다. 상태는 띠의 묶음 기준이다.
  2. 보정 전 — [고치기 시작 (N)] · [변경 없이 완료] — 🔄 #4160 기획 확정(2026-10-30): 화면 이름은 [도면 보정 (N)] · [고칠 것 없음], 보정 중의 [보정 완료] 는 [확인 끝], 보정 완료의 [다시 보정 (N)] 은 [도면 보정 (N)] 이다. [고치기 시작] 은 종전 [섹션 확정 해제 (N)] 과 같다(확정 라인 N개를 푼다, #3448 ①). [변경 없이 완료] 는 아무것도 풀지 않고 보정 완료로 옮긴다. 허용 편차를 넘은 개소가 있으면 「허용 편차를 넘은 개소가 N곳 있습니다. 고치지 않고 마칠까요?」를 묻는다. 🔄 #4204 · #4213 — 지금은 공간 부족 개소가 있을 때 「공간이 모자란 개소가 N곳 있습니다(사유 적음 M곳). 도면을 고치지 않고 마칠까요?」를 묻는다.
  3. 보정 중 — [보정 완료] — 종전 [섹션 전체 확정] 자리다. 남은 초안 라인을 같은 차례로 확정한 뒤 그 부호를 보정 완료로 옮긴다(POST /api/mf/batches/{batchId}/section-progress/{sectionId}/complete).
  4. 보정 완료 — [다시 보정 (N)] — 종전 [섹션 확정 해제 (N)] 과 같다. 확인 창은 「이 부호의 확정 라인 N개를 풀어 고칠 수 있게 합니다. … 다 고친 뒤 [보정 완료] 를 누르세요. 풀까요?」. 되돌아갈 묶음 미리 알림(#3653)은 그대로 붙는다.
  5. 실측 대조 패널 (🔄 #4213 결정 2026-11-02 · ⏳ 화면 반영 전) — 오른쪽 패널 탭 「실측 대조 (공간 부족 N)」(0 이면 「실측 대조」). 고른 부호의 개소마다 설계 · 실측 · 차이(mm, 읽기 정보) · 공간 맞춤 · 사이즈 타입. 공간 맞춤은 도면대로 개소면 사본 치수와 실측의 판정(designFit), 실측대로 개소면 회색 「② 에서 판정」이다. 공간 부족 개소를 맨 위에 둔다. 공간 부족이 있는 섹션을 열면 이 탭이 먼저 열린다. 허용 편차 「초과」는 실측 검토(SCR-FS-002)에서만 본다. ~~탭 「실측 대조 (초과 N)」 · 「초과 (허용 ±5mm)」 칸~~
  6. 라인 한 건 단추는 그대로 — 라인 목록의 [확정] · [확정 풀기] 는 이름을 바꾸지 않고, 「확정」 배지에서 잠금 표시만 뺀다. 치수 칸 곁 안내(#3706 ⓒ)도 그대로다. 영업 견적 캔버스와 묶음 없이 연 사본은 종전 [섹션 전체 확정] · [섹션 확정 해제 (N)] 그대로다.
관련 API Swagger UI ↗
  • GET/api/mf/batches/{batchId}/measurement-comparison — 부호별 보정 상태 · 개소별 설계 · 실측 · 차이 · 초과. 📌 #3781 신설 · ⏳ 서버 반영 전 (DE24-1 §5.8.13 「보정 진행 · 실측 대조」 5)
  • POST/api/mf/batches/{batchId}/section-progress/{sectionId}/complete — [보정 완료] · [변경 없이 완료]. 라인이 모두 확정이 아니면 422 ORDER_SCOPE_LINE_NOT_FROZEN. 📌 #3781 신설 · ⏳ 서버 반영 전 (같은 소절 2)
  • POST/api/es/estimate-lines/{lineId}/unfreeze — [고치기 시작] · [다시 보정] 이 라인마다 부른다(종전 [섹션 확정 해제] 와 같은 주소). 확정 해제가 그 부호를 보정 중으로 옮긴다
  • POST/api/es/estimate-lines/{lineId}/freeze — [보정 완료] 가 남은 초안 라인을 확정한다(종전 [섹션 전체 확정] 과 같은 차례)
제작 도면 — 원본 EST-2026-014 기준2차 묶음 보정 중 — 4층 남측절단 계산으로 돌아가기묶음 목록으로원본과 비교
AW3 · 수량 21보정 전2도면 보정 (3)고칠 것 없음부호 나누기
다른 상태일 때 머리 — 보정 중 3확인 끝   보정 완료 4도면 보정 (3)
캔버스 — AW3 라인 셋 (확정)
라인 목록5실측 대조 (공간 부족 1)
개소설계실측차이 가로 · 세로공간 맞춤타입
AW3-02 도면대로1800×24001800×23920 · −8세로 8mm 모자람 · 설치 안 됨—
AW3-011800×24001838×2401+38 · +1② 에서 판정—
공간 맞춤은 만들 치수와 실측을 견줍니다. 도면대로 개소는 이 사본의 치수로, 실측대로 개소는 보정 작업 ② 에서 판정합니다. 손으로 정할 치수는 절단 재계산의 수기 보정 칸에 넣는다.
라인 목록 (접힘)
라인수량상태
6140 미서기창(V1)1확정
개소 · 치수는 보기 값이다. 위 둘째 머리 줄은 같은 자리가 보정 중 · 보정 완료일 때 보이는 단추를 함께 그린 것이다.
SCR-ES-015· 프레임 배치·선택 상태 (frame status · 계산 미리보기) §4.6 캔버스 인터랙션 명세풀Figma: node 917:1622 · 933:11784 · 933:11785

캔버스 상세 — 배치된 프레임의 상태(선택 / 미할당 / 완료 / 오류)를 테두리색·상태 칩으로 표시하고 다중 선택 시 선택 갯수 뱃지 노출. 프레임 선택 시 우측 제품·옵션 패널에 OPT 슬롯 값이 채워지고 하단 계산 미리보기(예상 중량) 갱신.

진입 — SCR-ES-015 캔버스에서 배치된 프레임을 선택 도구(V)로 클릭(동일 화면 내 상태 전환 — 별도 라우트 아님).

  1. 제품 팔레트 — 카테고리별(커튼월=선형 / 미서기·갤러리·도어=사각) 제품 후보. 제품 선택이 그리기 형태를 결정한다(본체 ES-015와 동일).
  2. 선택 도구(V) 활성 — 캔버스에서 배치된 프레임을 클릭 선택하는 기본 도구.
  3. 프레임 상태 칩 — 선택/미할당/완료/오류 4종 상태를 테두리·칩으로 구분.
  4. 제품·옵션 패널 — 선택한 프레임 인스턴스의 제품·규격 값이 채워진다.
  5. 옵션 슬롯 값 — 선택 인스턴스의 OPT-* 값(다중 선택 시 공통 슬롯만 일괄 적용).
  6. 계산 미리보기 — 선택 인스턴스의 예상 중량을 실시간 재평가.
  7. 적용/취소 — 옵션 변경을 확정하거나 되돌린다.
관련 API Swagger UI ↗
  • PUT/api/es/estimate-lines/{lineId} — 선택 인스턴스 이동·리사이즈·옵션(OPT-*) 변경
  • POST/api/es/estimate-lines/evaluate-preview — 옵션 변경 시 계산 미리보기(예상 중량) 재평가
  • POST/api/es/estimates/{estimateId}/sections/bulk-change — 다중 선택 시 공통 옵션 슬롯 일괄 적용 (§4.6.1 ③ 정책)
프로젝트  ›  견적  ›  섹션 견적설계 섹션 목록으로
1제품 팔레트
커튼월 (선형)
CW 노출바
미서기 (사각)
140 미서기창(V1)
갤러리·도어·기타 (사각)
교출-양개
선택·편집
2
Esc
선택
M
이동 · 빈 곳 끌기=화면 밀기
Del
삭제
히스토리
⌃Z
undo
⌃⇧Z
redo
정밀 배치
디멘션 포인트 스냅 — 늘 켜짐
섹션 가운데 안내선 — 보기 조절 상자 안 · 처음 꺼짐 (#2080)
도면 절취 뷰 · 배치된 프레임의 상태(선택 / 미할당 / 완료 / 오류)를 테두리·칩으로 표시
3
선택A-01 140 미서기창2분할 · W 268 / H 190↻ 회전 · 🔒 · ☑
미할당배치
완료A-01 140 미서기창
오류A-01 140 미서기창
frame status = 선택 · 미할당 · 완료 · 오류 (테두리색 구분) · 선택 갯수 뱃지: 다중 선택 시 "N개 선택".
제품·옵션 (단일 선택)
A-01 / 3개 중 1
4140 미서기창 (V1)
OPT-DIM (W×H)W 268 / H 190
5옵션 슬롯
OPT-LAY2짝
OPT-CUT2 × 2
OPT-GLZ24mm 복층
OPT-MATAL 6063
OPT-FIN2코팅
OPT-ACC기본
6계산 미리보기
제품A-01 140 미서기창
치수W 2680 / H 1900
옵션2Track · 복층유리 · 실버
예상 중량34.71 kg
취소7적용
인스턴스 선택 → 옵션 편집·계산 미리보기 (§4.6.1 정본). 좌측 상단 제품 팔레트에서 제품 선택 후 형태대로 배치하고(본체 ES-015), 선택 도구(V)로 배치된 인스턴스를 골라 우측 OPT 슬롯·계산 미리보기(예상 중량)를 편집한다. 인스턴스 다중관리(선택·이동·회전·복제·z-order·그룹). 상태: background-locked · zooming · panning · drawing · frozen (snap-enabled 는 #1827 이 걷었다).
SCR-ES-015· 눈금자 확대·축소 (자와 그림이 함께 움직인다) §4.6.2 ③ 눈금자 줌·팬 대응풀

눈금자가 캔버스와 같은 카메라를 따르는 모습 두 가지. 확대하면 눈금 간격이 그림과 같은 비율로 커지고 끌면 함께 밀린다. 많이 축소해 라벨이 들어갈 자리가 없으면 그 라벨만 감추고 경계선은 남긴다. 기존(레거시) 시스템 관례를 그대로 따른다 — 얇은 띠 한 줄 · 나눈 치수만 · 구간 끝 세로선. (정본 §4.6.2 ③ 결정 상자, #1587)

진입 — SCR-ES-015 캔버스에서 휠·핀치로 확대·축소(같은 화면 안의 상태 바뀜 — 따로 난 주소가 아니다).

  1. 눈금자 띠 — 캔버스 안쪽 위 가장자리에 겹쳐 붙은 얇은 띠(세로 자는 안쪽 왼쪽 가장자리). 캔버스 밖 별도 켜가 아니고, 캔버스를 가리지 않게 반투명 바탕을 쓴다(#1588, 정본 §4.6.2 ③ 결정 상자 「눈금자 띠는 캔버스 안쪽 가장자리에 겹쳐 붙인다」). 나눈 치수만 적는다(900 │ 900 │ 1200) — 전체 치수(3,000)는 눈금자에 올리지 않는다. 화면에 고정하는 것은 띠가 놓이는 가장자리뿐이고 띠 안의 눈금 경계·구간 폭은 고정하지 않는다.
  2. 구간 끝 세로선 — 고른 구간의 좌우 끝에 캔버스를 가로지르는 세로선을 세워 도면 어디인지 못박는다. 띠만으로는 그 구간이 도면 어디인지 짚지 못한다.
  3. 확대하면 함께 커진다 — 눈금 간격이 그림과 같은 비율로 커지고, 끌면 함께 밀린다. 배치물 흡착이 이 경계를 따르므로(#1516) 자와 그림이 어긋나 보이면 어디에 붙을지 눈으로 가늠할 수 없다.
  4. 좁아지면 라벨만 감춘다 — 구간의 화면 폭이 라벨 글자 폭보다 좁으면 그 구간의 라벨만 감추고 경계선은 남긴다. 경계가 스냅 자리를 말하므로 지우면 자로서의 뜻이 사라진다. 겹쳐 그리거나 돌려 쓰거나 줄여 쓰지 않는다 — 치수는 숫자라 잘못 읽으면 틀린 값을 그대로 믿는다. ✅ 기존 시스템의 축소 모습은 끝내 확인하지 못했으나 까닭이 그 자체로 서서 기획자가 이대로 정했다(§4.6.2 ③, v2.1-r173). 라벨이 하나도 안 보이는 상태도 정상이다 — 경계선이 남아 자리는 보이고 확대하면 값이 돌아온다. 다만 띠의 배경과 경계선은 늘 그린다(눈금자가 있다는 것 자체는 보여야 한다).
  5. 편집 중에도 끊기지 않는다 — 구간을 고치는 중에 줌·팬을 해도 편집이 유지되고 편집 상자가 그 구간을 따라 움직인다. 고치던 구간이 화면 밖으로 밀리면 상자를 화면 가장자리에 붙여 둔다.
눈금자 확대·축소 — 같은 섹션, 배율만 다르다
3모습 A — 기본 배율 · 라벨 셋이 모두 보인다
A-01 미서기 1800×600
600
1200
900
900
1200
■ 구간 끝 세로선이 도면 자리를 못박는다 — 띠 안의 눈금 경계와 캔버스를 가로지르는 선이 같은 자리다. 구간이 넓어 라벨 셋이 모두 들어간다.
4모습 B — 많이 축소 · 좁은 두 구간은 라벨을 감추고 경계선만 남긴다
1200
눈금 간격이 그림과 같은 비율로 줄었다 — 자와 그림이 함께 움직인다. 자리가 좁아진 라벨은 감췄고, 경계선은 그대로 남아 스냅 자리를 알린다.
눈금자도 ViewportState 를 읽는다 — 정본 §4.6.2 ② 겹쳐 그리기 공통 규칙 전체 치수(3,000)는 눈금자에 올리지 않는다 — 나눈 치수만 라벨이 하나도 안 보이는 상태도 정상 — 경계선이 자리를 남긴다 (§4.6.2 ③, v2.1-r173)
SCR-ES-015· 보기 조절 상자 (처음 접힘 · 펼친 모습) §4.6 「화면 밀도·접기」 ②풀

캔버스 오른쪽 위에 겹쳐 뜨는 보기 조절 상자의 두 모습. 처음 들어오면 한 줄 칩으로 접혀 있어 도면을 거의 가리지 않고, 칩을 누르면 판이 펴진다. 발주처 검수자가 노트북 화면(1204 × 963)에서 「상자가 화면을 너무 많이 가린다」로 짚은 자리다(요청 FB-42). (정본 §4.6 「화면 밀도·접기」 #2080 결정 상자)

진입 — SCR-ES-015 캔버스에서 칩이나 «▴» 를 누른다(같은 화면 안의 상태 바뀜 — 따로 난 주소가 아니다).

  1. 접힌 칩 — 판이 서던 오른쪽 위 모서리 그대로(가로 눈금자 띠 바로 아래)에 한 줄로 남는다. 「보기 조절」과 지금 배율을 적는다 — 배율은 이 판에서 가장 자주 눈으로 보는 값이다. 칩 어디를 눌러도 편다. 띠로 접지 않는다 — 떠 있는 판이라 붙어 설 가장자리가 없다.
  2. 접는 단추 — 편 판의 머리 줄 「보기 조절」 오른쪽 끝 «▴». 머리 줄은 #2080 이 더했다 — 칩과 같은 이름이라 무엇이 접혔는지 잇는다.
  3. 기억 — 접힘·펼침은 좌우 패널 접기와 같은 자리(브라우저 로컬 저장, 사람·화면별 열쇠)에 담는다. 처음 들어오면 접혀 있다. [넓게 보기]와는 묶지 않는다.
  4. 섹션 구역 — 처음 켜짐 — 구역 그림은 판을 접어도 그대로 보인다. §4.6.2 ① #1583 결정 ② 의 「늘 보인다」는 그림에 대한 결정이라 부딪히지 않는다. 늘어나는 것은 끄는 걸음 하나다.
  5. 섹션 가운데 — 처음 꺼짐 — 가운데에 놓으려 할 때만 켜는 안내선이다. 붙지 않으며(#1827), 정확히 가운데에 놓는 일은 [가운데 맞춤] 이 한다. 켬·끔은 브라우저에 담지 않는다 — 화면을 새로 불러오면 꺼짐으로 돌아간다.
보기 조절 상자 — 같은 캔버스 오른쪽 위, 처음(접힘)과 편 모습
모습 A — 처음 들어왔을 때 · 한 줄 칩만 남는다
AW-1 (지금 섹션)
A-01 미서기
1보기 조절 · 116% ▾
도면 대부분이 드러난다 — 칩은 한 줄이다. 섹션 구역 점선은 처음부터 보이고, 섹션 가운데 안내선은 처음에 없다.
모습 B — 칩을 누른 뒤 · 판이 펴진다 (다음에 들어와도 편 채로 기억)
AW-1 (지금 섹션)
A-01 미서기
보기 조절2▴
줌116% 이 섹션으로
배경☐ 숨김
섹션 구역4☑ 표시
섹션 가운데5☐ 안내선
가운데 맞춤
머리 줄 «▴» 로 다시 접는다. 섹션 구역 ☑ 처음 켜짐 · 섹션 가운데 ☐ 처음 꺼짐. [가운데 맞춤] 이 잠긴 까닭은 이 단추 밑 본문 글자로 적는다(#1941).
3접힘은 브라우저에 사람·화면별로 기억 — 서버에 담지 않는다 (좌우 패널 접기와 같은 자리) [넓게 보기] 와는 묶지 않는다 — 처음이 접힘이다 캔버스 위에 겹쳐 뜨는 판은 넓이 셈(§4.6 ④)에 들지 않는다
SCR-ES-015· 캔버스 가장자리 (구간 합 배지 · 상태 배지 자리) §4.6 「화면 밀도·접기」 #2097풀

캔버스 위에 떠서 배경 도면을 덮던 두 요소의 새 자리다. 구간 합 안내는 캔버스 밖 눈금자 조작줄의 배지가 되고, 캔버스 상태 배지는 조건이 설 때만 오른쪽 아래에 뜬다. 발주처 검수자의 노트북 화면(1204 × 963) 갈무리에서 두 요소가 배경 도면 속 표 줄을 덮고 있던 자리다(요청 FB-42). (정본 §4.6 「화면 밀도·접기」 #2097 결정 상자)

진입 — SCR-ES-015 캔버스에서 눈금자 구간 합이 몸통 크기(비었으면 절취 범위, #2960)와 어긋날 때(모습 A)와, 배경을 숨긴 채 제품을 그리는 중일 때(모습 B)다. 같은 화면 안의 상태이고 따로 난 주소가 아니다.

  1. 구간 합 배지 — 눈금자 조작줄의 칸 고르개 바로 오른쪽에 선다. 축 이름과 차이와 방향만 적고(「가로 합 200 모자람」), 칸별 세로 눈금이면 칸 이름을 붙인다(「세로(3칸) 합 140 남음」). 전체 문장(「구간 합 3,000 / 몸통 가로 3,200 — 200 모자랍니다」)은 말풍선과 낭독 이름에 담는다. 몸통 크기가 빈 섹션은 「절취 범위」 와 견주고 그 이름을 적는다(#2960). 구간을 고르든 말든 같은 자리다.
  2. 캔버스 아래쪽이 빈다 — 합이 어긋나도 캔버스 위에는 안내를 띄우지 않는다. 구간 합 안내는 도면 좌표를 가리키지 않아, 띠를 캔버스 안에 둔 #1588 의 잣대로는 캔버스 안에 둘 까닭이 없다. 평소 캔버스 위에 늘 떠 있는 판은 오른쪽 위 보기 조절 칩 하나다(#2080).
  3. 상태 배지 — 오른쪽 아래에 그리는 중(drawing)·배경 숨김(background-hidden)·읽기 전용(frozen)일 때만 뜬다. background-locked 는 늘 켜져 있어 띄우지 않는다 — #1827 이 snap-enabled 를 걷은 까닭과 같다.
  4. 왼쪽 끝 — 배지가 여럿이면 오른쪽에서 왼쪽으로 늘어서다가, 세로 띠를 비키는 여백 앞에서 한 줄 접힌다. 그래서 캔버스가 좁아도 배지가 세로 띠 위에 오지 않는다. 배지 겹은 손을 받지 않아 그 아래 도면 조작을 막지 않는다.
캔버스 가장자리 — 합이 어긋날 때(A)와 그리는 중(B)
모습 A — 구간 합이 몸통 크기(비었으면 절취 범위)와 어긋날 때 · 배지는 조작줄에 선다
AW-1 (지금 섹션)
A-01 미서기
PHB2FB1F1F2F3F(배경 도면 속 표 줄)
보기 조절 · 116% ▾
2캔버스 아래쪽에 떠 있는 것이 없다
공통 ▾ 1가로 합 200 모자람 세로(3칸) 합 140 남음 ⓘ 도면 값으로 되돌리기 되돌리기 눈금자 저장
줄이 모자라면 조작줄이 다음 줄로 접힌다 — 캔버스 위로 올라가지 않는다. 한 벌 조작 단추 셋은 여전히 줄 오른쪽 끝이다(#1588).
모습 B — 배경을 숨기고 제품을 그리는 중 · 상태 배지가 오른쪽 아래에 뜬다
A-01 미서기
보기 조절 · 116% ▾
4배지 겹 왼쪽 끝
3background-hidden · 배경 숨김, 배치만 검토 drawing · 프리미티브 그리기 중
배지는 조건이 설 때만 뜬다. background-locked 는 늘 켜져 있어 띄우지 않는다. 둘이 한 줄에 안 들어가면 세로 띠 앞에서 한 줄 접힌다.
요청 갈무리에서 덮인 것은 눈금자 라벨이 아니라 배경 도면 속 표 줄이었다 (FB-42) 새 켜를 세우지 않는다 — 조작줄은 이미 늘 서는 켜다 (§4.6 ④ · #1588) 좁은 화면에서는 조작줄이 한 줄 더 접힐 수 있다 — 치르는 값
SCR-ES-015· 그린 설계 표현 — 부재 띠 · 상태 겉 테두리 · 두 바탕 §4.6 ① R-ES015-MEMBER-STYLE풀

그린 프레임을 굵은 색 띠로 그려 배경 도면 선과 가른다(이전 시스템과 같은 방식). 도면 선은 늘 화면 1px 이라 가르는 것은 굵기이고 색은 부재 종류를 알리는 둘째 단서다. 보기는 이전 시스템 캡처의 AAW03 3500*2400(미서기 2짝 2단 + 아래 고정창 2칸)이다. (정본 §4.6 ① #3848 결정)

진입 — SCR-ES-015 캔버스 그 자체다(따로 난 화면이 아니다). 미서기 · 커튼월 · 수기 섹션 모두 같은 규칙을 쓴다.

  1. 부재 띠 — 세로재(세로 틀 · 중간 세로재 · 세로 칸선 · 커튼월 세로 선)는 자홍 fuchsia-500, 가로재(가로 틀 · 중간 가로재 · 가로 칸선 · 커튼월 가로 선)는 주황 amber-400(밝은 바탕 amber-600). 굵기는 도면 60mm, 화면 최소 4px. 바깥 틀은 상자 안쪽으로 채우고 중간재는 선 가운데에 걸친다. 세로재가 가로재 위에 온다. 제품마다 실제 부재 폭을 따르지 않는다.
  2. 짝 · 유리 · 고정창 · 방향 — 짝 면은 어두운 갈색(amber-900 60%) 채움 + 주황 가는 테두리, 유리는 청록 화면 1.5px, 고정창은 파랑 blue-500 2px 테두리와 가운데 「F」, 여닫는 방향 화살표는 캔버스 글자색(어두운 바탕 흰색 · 밝은 바탕 검정). 중간살은 놓인 축의 부재 색으로 띠 30mm 다.
  3. 상태는 겉 테두리로 — 고르면 부재 색을 바꾸지 않고 초록(emerald-400 · 밝은 바탕 emerald-700) 3px 겉 테두리와 손잡이를 더한다. 마우스 올림은 같은 초록 2px · 50%. 오류(구조검토 「오류」 · 중량 검증 실패 · 확정 거절 사유)는 빨강 red-500 3px 점선 + ⚠ 배지. 초록과 빨강은 부재 색으로 쓰지 않는다. 눈금 밖 경고 배지(amber-500 네모)는 그대로다.
  4. 꼬리표 · 섹션 이름 — 구성 요약 8D0F 는 영역 안 왼쪽 위, 「탄성」·「방충망」·⚙ 는 영역 위 이름표 줄 오른쪽(R-ES015-MISAGI-DIVIDE ⑨ · ⑪ 그대로). 섹션 구역 왼쪽 위 부호 옆에 몸통 크기를 붙인다 — AAW03 3500*2400. 지금 섹션 구역 점선은 하늘색 sky-400 2px 다(주황은 가로재 색이라 옮겼다).
  5. 두 바탕 — 도면이 깔리면 어두운 회색 #1a1a1a(테마와 무관), 도면이 없으면(수기 섹션 · 배경 숨김) 밝은 캔버스 바탕. 화면은 배경이 깔렸는지로 색 열을 고른다. 모든 띠 · 상태 색은 두 바탕에서 대비 3:1 이상이다.
  6. 배경 도면 — 자동으로 흐리게 하지 않고 회색으로 낮추지 않는다. 투명도 조절대도 두지 않는다(#857 이 걷었다). 배치물만 보려면 [배경 숨김].
  7. 커튼월 부재 종류별 색 — 색은 부재 종류에 매달려 있어 종류마다 다른 색을 줄 수 있다. 11종 대응은 #3849 가 정한다 — 그때까지 커튼월 선은 축에 따라 자홍 · 주황이다.
부재 띠 — 같은 창을 세 모습으로 (도면 선은 1px, 띠는 60mm)
모습 A — 도면 위 (어두운 바탕) · 그대로
240 X 45 알루미늄 프레임 AAW03 3500*2400 F F 8D0F 8D0F
모습 B — 고름 (초록 겉 테두리 + 손잡이, 부재 색은 그대로)
240 X 45 알루미늄 프레임 AAW03 3500*2400 F F 8D0F 8D0F
모습 C — 수기 섹션·배경 숨김 (밝은 바탕) · 오류 (빨강 점선 + ⚠)
240 X 45 알루미늄 프레임 AAW03 3500*2400 F F 8D0F 8D0F !
가르는 것은 굵기 — 도면 선 1px · 부재 띠 60mm(최소 4px) 상태 색(초록 · 빨강)은 부재에 쓰지 않는다 ⏳ 화면 반영 전 — 지금은 파란 1px 테두리 · 고르면 주황
SCR-ES-015· 미서기 칸 나누기 (치수 점 → 선 긋기 → 칸 딱지 → 중간살 · 설정창) §4.6.1 ② R-ES015-MISAGI-DIVIDE풀

고객사 요청으로 미서기를 기존(ASIS) 방식대로 고른다. 그린 미서기 영역을 치수 점에 붙는 선으로 나누고, 칸마다 [고정창변환]·[갤러리추가]를 누르고, 문짝 위에 중간살을 직접 긋는다. 결과는 기존 옵션값(OPT-LAY·W1·H{k}·OPT-FIX·OPT-FIX-POS)과 새 값(OPT-FIX-COL·HM·라인 vents)으로 담긴다. 보기는 영상의 3,000 × 1,800 · 세로 1,500 · 가로 위에서 600 이다. (정본 §4.6.1 ② #2452 결정 상자)

진입 — SCR-ES-015 에서 미서기 사각형을 그리면 곧바로, 또는 놓인 미서기를 골라 [칸 나누기](두 번 누르기)를 누른다(같은 화면 안의 상태 바뀜 — 따로 난 주소가 아니다). 설정창은 모서리 ⚙.

  1. 치수 점 — 눈금자 경계가 곧 치수 점이다(새 조작 아님). 나누는 선·중간살 선은 이 점에만 붙는다. 붙을 점이 없으면 선을 받지 않고 「먼저 눈금자에 점을 찍으세요」. 점을 옮겨도 선은 따라가지 않고 「눈금 밖」 뱃지만 단다. 틀 크기를 바꿔도 칸선은 그은 자리에 남는다 — 다만 가로 칸 폭 잠금이 걸린 동안 [선택완료] 뒤 폭이 갈리면 같은 폭으로 다시 나눈다(#2510).
  2. 나누는 선 — 영역 끝에서 끝까지 긋는다(한 칸에서 끝나는 선은 받지 않는다). 영역 한 변이 화면 밖이면 칸 나누기·중간살 긋기를 시작할 때 영역 전체가 보이게 화면을 맞춘다 — 그 뒤 확대해 거절되면 거절 글에 「화면을 줄여 영역 전체가 보이게 한 뒤 다시 그으세요」를 붙인다(#3795, ✅ 화면 반영 FE #1409 · 0f9dc802). 가로·세로 각 셋까지(4×4). 가로 두 칸은 폭이 달라도 된다(첫 칸 = W1) — 알려진 한계: 가로 산식이 W1 을 읽기 전까지는 잠긴다. 셋째 칸부터는 같은 폭. 세로 단은 높이가 달라도 된다.
  3. 칸 딱지 · 메뉴 — 칸마다 [고정창변환]/[미서기로변환]·[갤러리추가]. 메뉴 「중간프레임설정 — [칸선 지우기] [재설정] [선택완료]」 — [칸선 지우기] 는 라인을 남기고 나눈 칸·중간살·환풍구만 걷는다(라인을 지우는 [삭제] 와 이름을 가른다, #2876). 고정 칸은 단 × 열이 겹치는 묶음만 받는다(OPT-FIX-POS × OPT-FIX-COL). 갤러리는 가장자리 단·열 전체만 떼어 별도 라인으로 놓는다 — 격자가 한 줄(1×N·N×1)일 때 양 끝 칸만 열리고, 그 밖의 칸은 딱지가 잠긴 채 까닭을 말풍선으로 보인다(#2510).
  4. 표식 — [선택완료] 뒤 칸선·고정 칸 색이 남고, 왼쪽 위에 구성 요약 6D1F(문짝 6 · 고정창 1, 고정창이 없으면 8D), 「탄성」·「방충망」·⚙ 는 영역 안이 아니라 영역 바로 위 이름표 줄의 오른쪽에 선다 — 있음 표시라 자리를 가리키지 않고, 영역 안에 두면 [환풍구] 딱지·크기 손잡이와 겹친다(#2543). 미서기에는 회전 손잡이를 두지 않는다 — 좌표 바 ∠ 칸도 0 으로 잠근다(#2543).
  5. 중간살 — 긴 가로 중간살(= 중간띠)을 문짝 위에 긋는다. 자리는 세로 점에 붙고 값은 HM(칸 위 끝에서 선까지) 하나라 다른 문짝에도 흐리게 따라 그려진다(알려진 한계 — 다른 높이로 그으면 막고 안내한다). 짧은 세로 중간살은 긴 것에서 위 틀까지 긋는다(T 자). 귀퉁이 조각에 [환풍구] 가 뜨고 누르면 환풍구 자리가 된다. ㄱ 자·끊긴 선은 받지 않는다. T 자를 저절로 그리지 않는다.
  6. 설정창 「미서기설치」 — 방충망(편=OPT-SCR-ASYM) · 문짝 형태(제품 칸 — 지금 형태만 보인다. [다른 형태] 는 보류·늘 잠김, #2874·#2933 — 같은 계열 제품을 찾을 조회가 없다. 제품 목록·팔레트 응답에 seriesCode 가 서면 「같은 계열의 그 형태 제품 고르기」 로 되돌린다) · 문짝 너비 조정([사이즈변경]=WL, 한 칸을 고치면 모든 칸 — 누르면 새 창 없이 이 설정창의 WL 칸으로 가고, 넣는 동안 모든 칸 짝 폭 숫자가 함께 바뀌며, [설정완료] 때 담긴다. 넓은 짝·가운데 짝이 0 이하가 되는 값이면 [설정완료] 잠김. 정(대칭)·고정창 칸에는 단추가 없다, #2542) · 오사이(유리 두께로 정해진 값, 읽기 전용) · 중간살(상태·[지우기] — 밀대 없음) · [삭제][설정완료]. 「탄성」은 옵션 패널 OPT-ACC.
  7. 옵션 패널 — 캔버스가 정한 OPT-LAY·OPT-FIX·OPT-FIX-POS·OPT-FIX-COL·OPT-MID 는 「캔버스에서 정함」 읽기 전용. 옵션구성 고르개는 나머지 옵션의 묶음을 고른다. 활성 치수 칸은 서버가 셈한다.
관련 API Swagger UI ↗
  • GET·PUT/api/es/sections/{sectionId}/dimensions — 치수 점 = 눈금자 경계(IF-ES-DIMENSION-001, DE24-1 §5.4.29)
  • MISSINGPOST /api/pm/products/{productCode}/configs/enabled-dim-slots — 옵션구성 + 캔버스가 덮은 옵션으로 활성 치수 칸 셈(IF-PM-BOM-004, DE24-1 §5.3.5 — #2452 신설, 서버 반영 전)
  • PUT/api/es/estimate-lines/{lineId} — 나눈 결과를 appliedOptions·dimValues 에 담는다. 환풍구 자리 vents 칸은 #2452 신설(서버 반영 전)
미서기 칸 나누기 — 나누는 중 · 선택완료 뒤 · 설정창
모습 A — 나누는 중 · 선이 치수 점(캔버스 안쪽 눈금자 띠의 경계)에 붙는다
600
1200
11500
1500
2고정창변환 🔒 갤러리추가 고정창변환 🔒 갤러리추가 고정창변환 🔒 갤러리추가 고정창변환 🔒 갤러리추가
3중간프레임설정칸선 지우기재설정선택완료
비스듬히 그어도 긴 축으로 눕혀 가장 가까운 점에 붙는다. 칸 넷 → OPT-LAY 2×2 · W1 1500 · H1 1200(아래) · H2 600(위). [갤러리추가] 는 네 칸 모두 잠긴다 — 2×2 에서는 어느 칸도 단·열 전체가 아니다. 위 단을 갤러리로 쓰려면 가로선만 먼저 그어(1×2) 위 칸을 뗀 뒤 남은 미서기를 다시 나눈다(#2510).
모습 B — [선택완료] 뒤 · 왼쪽 위 고정 · 중간살 T 자 · 환풍구
46D1F A-01 미서기 탄성 방충망 ⚙
5 환풍구 ✓
미서기 ▷◁미서기 ▷◁ 고정창
왼쪽 위 고정 → OPT-FIX 있음 · OPT-FIX-POS 2단 · OPT-FIX-COL 1열. 긴 가로 중간살 → OPT-MID 있음 · HM. 환풍구 → vents {moduleRow 2, moduleCol 2, leafPosition 우, cornerPosition 우상, widthMm}. 흐린 점선은 같은 HM 으로 따라 그려진 선이다.
모습 C — ⚙ 「미서기설치」
6미서기설치✕
DHS-AE225-U재설정
☑ 방충망 (정·3편은 늘 실림 — 잠김)
문짝 형태[▯▯] [다른 형태] 잠김
문짝 너비 조정◯— 편·3편만 WL
켜면 (편 · 칸 1,500 두 열):
1열 칸 폭 1,500 → 짝 폭 790 · 710
2열 칸 폭 1,500 → 짝 폭 790 · 710
WL (mm) 710▌ 편은 좁은 짝, 3편은 좌우 짝
캔버스 칸 위 [사이즈변경] → 이 칸으로 커서가 온다 · 숫자는 넣는 동안 모든 칸이 함께 바뀐다
오사이28mm · DS-S162-GB24
(OPT-GLZ 24mm 복층 · 읽기 전용)
중간살칸 위에서 300 지우기
삭제설정완료
중간살 줄에 밀대가 없다 — 긋는 곳은 캔버스다. [설정완료] = 패널 [적용]. WL 도 [설정완료] 때 담긴다(#2542).
7활성 치수 칸은 서버가 셈한다 — 화면이 다시 평가하지 않는다 (IF-PM-BOM-004) 캔버스 조작은 [적용]을 기다리지 않는다 · 되돌리기 한 칸씩 받지 않는 것: 폭이 다른 가로 셋째 칸부터 · (서버 반영 전) 폭이 다른 두 칸 · 다른 높이의 중간살 · 단×열 묶음이 아닌 고정 칸 · 모든 칸 고정 · ㄱ 자·끊긴 중간살
SCR-ES-015· 커튼월 부속 단계 (선 긋기 → 홈마개 → 유리받침) · 선 우클릭 메뉴 §4.6 ③ R-ES015-CW-ACCESSORY-STEP · R-ES015-LINE-CONTEXT-MENU풀

고객사 요청으로 커튼월을 기존(ASIS) 방식대로 그린다. 선을 한 줄씩 그어 틀을 완성한 뒤 홈마개 단계와 유리받침 단계로 가서 자리 띠를 눌러 넣고 뺀다. 처음에는 셈 결과가 채워져 있고 [자동선택] 이 셈 결과로 되돌린다. 사람이 고친 자리만 선 라인 accessorySlots 에 담는다 — 손대지 않은 부호는 지금과 같은 값이 나온다. 보기는 영상의 3,000 × 1,800 · 세로 선 셋 · 가로 선 여섯이다. (정본 §4.6 ③ #2468 결정 상자 둘)

진입 — SCR-ES-015 에서 그 부호에 커튼월 선이 하나라도 있으면 캔버스 왼쪽 위에 단계 고르개가 뜬다(같은 화면 안의 상태 바뀜 — 따로 난 주소가 아니다). 우클릭 메뉴는 「선 긋기」 단계에서 선을 우클릭한다.

  1. 단계 고르개 — 「선 긋기 · 홈마개 · 유리받침」 세 칸. 처음 값은 「선 긋기」이고 값으로 담지 않는다. 저장하지 않은 선이 있으면 저장부터 한다(자리는 서버가 저장된 선으로 셈한다). 틀이 닫혔는지는 검사하지 않는다. 부속 단계에서는 선을 긋거나 옮기거나 지우지 못한다.
  2. [자동선택] — 그 단계 부속의 고친 값을 모두 지우고 셈 결과로 되돌린다. 홈마개는 바깥 둘레에만 남는다. 알림 「기존 홈마개를 제거하고 자동으로 홈마개를 넣었습니다」.
  3. 홈마개 자리 — 선마다 양옆 둘(가로 선은 위·아래, 세로 선은 왼쪽·오른쪽). 빈 자리는 흰 띠, 넣은 자리는 보라 띠. 누르면 넣고 다시 누르면 뺀다. 자리 하나가 그 선의 홈마개 1 본이다(선마다 0 · 1 · 2 본). 처음에는 외곽 부재의 바깥쪽 하나에만 들어 있다.
  4. 고친 자리 표식 — 사람이 고친 자리는 띠 끝에 작은 점을 찍는다. 가운데 부재에 넣은 홈마개는 같은 제품 외곽 가지의 홈마개 줄을 본떠 쓴다(새 자재 코드 없음).
  5. 유리받침 자리 — 가로 선마다 그 선 위에 얹히는 칸 하나에 하나(칸의 하단). 위·옆 자리는 열지 않는다. 빈 자리는 흰 띠, 넣은 자리는 청록 띠. 자리 하나가 2 조각(200 × 2)이다. 끌어 상자에 닿은 빈 자리는 한꺼번에 넣는다.
  6. 셈이 비운 칸 — 미서기 창이 든 칸과 개폐유닛 칸은 셈이 비워 둔다(#2428). 띠 옆에 「창이 든 칸」 글자가 흐리게 붙고, 사람이 누르면 넣은 대로 센다.
  7. 다른 단계의 값 — 다른 단계에서 넣은 자리는 어두운 색으로 물러난다. 선 긋기 단계에서는 넣은 자리만 가는 띠로 흐리게 보인다.
  8. 선 우클릭 메뉴 — 기존 화면의 열한 줄을 그 차례로 둔다. 자재변경 ▸ · 상세변경 · 동일 자재 선택하기 · 복사 · 삭제 다섯은 쓰고, 장식바 추가 · 장식바 길이변경 · 코너 시트 처리 · 마감 시트 처리 · 일괄 복사 · 갯수조절 여섯은 흐리게 두고 말풍선으로 까닭을 알린다. ⏩ #3849 — 장식바 두 줄은 제품에 장식바 가지가 있으면 쓴다(아래 「커튼월 부재 종류 메뉴」 프레임).
  9. 자재변경 ▸ — 아래 목록은 이 견적 팔레트의 커튼월 제품이다. 고르면 고른 선의 제품을 바꾼다. 부재 자리(멀리언·트랜섬)는 고르지 않는다 — 셈이 선이 만나는 모양으로 정한다. ⏩ #3849 — 목록 맨 위에 「부재 종류」 묶음이 붙는다(노출바 · 히든바 · 코너바 · 장식바).
  10. 갯수조절 말풍선 — 「선 한 줄이 자재 한 본입니다. 같은 부재가 더 필요하면 선을 더 긋고, 창 수량은 부호 수량에서 고칩니다.」
  11. 칸 유리 (#3244 · ✅ 화면 반영(0df8f5c7)) — 유리받침 단계에서 칸을 누르면 칸 유리 고르개가 뜬다(틀과 같음 · 삼중 · 복층 · 로이복층 · 단판). 고른 값은 칸 하단 띠 위 작은 표식으로 보인다. 틀보다 얇은 유리를 고르면 실시간 산출에 유리 조절바 P-2015 줄이 는다. 값은 그 칸 아래 가로 선의 accessorySlots.cellGlazings 에 담긴다. [자동선택] 은 칸 유리를 지우지 않는다.
  12. 선을 고친 뒤 — 홈마개 고친 값은 남는다. 유리받침 고친 값은 그 가로 선 위 칸 수가 달라지면 그 선의 것만 버리고 알린다 — 「선이 바뀌어 유리받침 위치 N 곳을 자동 값으로 되돌렸습니다」. 확정 라인의 자리는 읽기 전용이다.
관련 API Swagger UI ↗
  • MISSINGGET /api/es/sections/{sectionId}/accessory-slots — 선마다 홈마개·유리받침 자리와 셈이 처음 넣는 값·지금 값(IF-ES-ACCSLOT-001, DE24-1 §5.4.13 — #2468 신설, 서버 반영 전)
  • PUT/api/es/estimate-lines/{lineId} — [저장] 이 선의 값을 담는다. 자재변경은 productId. 고친 자리 accessorySlots 칸은 #2468 신설(서버 반영 전)
  • DELETE/api/es/estimate-lines/{lineId} — 우클릭 「삭제」. 도구줄 [삭제] 와 같다(IF-ES-LINE-001)
커튼월 부속 단계 — 홈마개 · 유리받침 · 선 우클릭 메뉴
모습 A — 홈마개 단계 · 바깥 둘레에 셈이 넣어 둔 여섯 자리 + 사람이 넣은 한 자리
1 선 긋기 홈마개 유리받침 2⊹ 자동선택
3 4 보라 = 넣은 홈마개 · 흰 띠 = 빈 자리 · 노란 점 = 사람이 고친 자리
셈이 넣은 여섯 자리(위 둘 · 아래 둘 · 왼쪽 · 오른쪽)는 기존 화면 [자동선택] 결과와 같다. 가운데 세로 선의 오른쪽 자리를 눌러 넣었다 → 그 선의 홈마개 1 본 · accessorySlots.grooveCaps [{side:"우", on:true}].
모습 B — 유리받침 단계 · 칸 하단 자리만 · 아래 오른쪽 칸은 미서기가 든 칸
선 긋기 홈마개 유리받침 ⊹ 자동선택
7
5
미서기 6창이 든 칸
청록 = 넣은 유리받침(칸 하단) · 위 변 가로 선에는 자리가 없다
자리 하나 = 200 mm 2 조각. 고정유리 칸 셋은 셈이 넣어 두었고, 미서기가 든 칸은 셈이 비웠다(#2428). 그 자리를 누르면 넣은 대로 센다 → glassSupports {bayCount:1, bays:[{bayNo:1, on:true}]}.
모습 C — 선 우클릭 메뉴 (선 긋기 단계)
8자재변경9▸
상세변경
장식바 추가
장식바 길이변경
코너 시트 처리
마감 시트 처리
동일 자재 선택하기
복사
일괄 복사
10갯수조절
삭제
흐린 여섯 줄은 누를 수 없고 말풍선으로 까닭을 알린다. 자재변경 ▸ 아래 목록 = 이 견적 팔레트의 커튼월 제품(지금 제품에 ✓).
11선이 바뀌어 유리받침 위치 1 곳을 자동 값으로 되돌렸습니다 자리와 처음 값은 서버가 준다 — 화면이 선 모양을 따로 셈하지 않는다 (IF-ES-ACCSLOT-001) 고친 값은 [저장] 으로 담긴다 · 되돌리기 한 칸씩 · 확정 라인은 읽기 전용
SCR-ES-015· 커튼월 부재 종류 메뉴 열한 줄 (노출바 · 히든바 · 코너바 · 장식바 … · 스틸보강) §4.6 ③ R-ES015-CW-MEMBER-MENU풀

이전 시스템처럼 커튼월 제품을 고르면 왼쪽 도구 줄 옆에 부재 종류 메뉴 열한 줄이 열린다. 하나를 골라 그리면 한 제품 안에서 노출바 · 히든바 · 코너바 · 장식바를 섞어 그을 수 있다. 부재 자리(외곽 · 중앙 멀리언, 상부 · 하부 · 중간 트랜섬)는 여전히 셈이 정하고, 사람이 고르는 것은 부재 종류다. 보기는 히든 제품 한 틀에 노출 트랜섬 하나 · 히든 코너바 하나 · 장식바 하나를 섞은 모습이다. (정본 §4.6 ③ #3849 결정 상자 · 자재 대응 DE35-2 §4F.10.13 · ✅ 서버 반영 #3872 · ✅ 화면 반영 #3871 · 벤딩바 지름 창 #3843)

진입 — SCR-ES-015 왼쪽 제품 팔레트에서 커튼월(대분류 CURTAIN_WALL) 제품을 누르면 메뉴가 그 옆에 펼쳐진다(같은 화면 안의 상태 바뀜 — 따로 난 주소가 아니다).

  1. 메뉴 열한 줄 — 이전 시스템 차례 그대로다. 1 노출바 · 2 히든바 · 3 노출 코너바 · 4 히든 코너바 · 5 장식바는 그 종류로 선을 긋는다. 6 벤딩바는 원형창 「원 둘레」 지름을 받는 창을 연다(곡선은 긋지 않는다). 7 유리 안전 받침대 · 9 유리조절바는 「유리받침」 단계로, 8 홈마개는 「홈마개」 단계로, 11 스틸보강은 「스틸보강」 단계로 간다.
  2. 처음 고른 줄 — 그 제품의 기본 종류다(몸통바가 히든이면 히든바). 팔레트 응답 cwMemberKinds 첫 값이다. 줄을 바꾸면 다음에 긋는 선부터 그 종류이고, 이미 그은 선은 바뀌지 않는다.
  3. 흐린 줄 — 감추지 않는다 — 제품 구성표에 그 종류 가지가 없으면 흐리고 말풍선 「이 제품 구성표에 {종류} 가지가 없습니다. 제품관리에서 가지를 더하거나 다른 제품을 고르세요.」를 띄운다. 벤딩바는 원 둘레 가지(cwCircleBranch)가 없으면 흐리다. 7 · 8 · 9 · 11 은 저장된 커튼월 선이 없으면 흐리다.
  4. 슬리브 — 늘 흐리다 — 슬리브는 멀리언 두 토막을 잇는 이음 부속이다. 이음 자리는 절단 재계산에서 찍는다(#3242). 말풍선 「슬리브는 세로 부재를 이어 붙이는 자리에 드는 부속입니다. 절단 재계산에서 이음 자리를 찍을 때 정합니다.」
  5. 종류가 섞인 틀 — 한 제품의 선이 종류마다 다른 가지로 셈된다. 실시간 산출과 자재 구성표에 종류별 줄이 따로 나온다(노출 트랜섬 줄 · 히든 트랜섬 줄 · 히든 코너바 줄). 색은 #3848 표의 축 색 그대로이고, 종류는 채움으로 가른다 — 노출 꽉 채움 · 히든 속 빈 띠 · 장식바 30mm 점선 테두리 · 코너바 「ㄱ」 표식. 선에 마우스를 올리면 「{제품} · {부재 종류}」 말풍선이 뜬다.
  6. 코너바 — 세로 선으로만 긋는다(가로 선이면 서버가 LINE_MEMBER_KIND_AXIS 로 막는다). 모서리를 낀 창은 한 부호에 펼쳐 그리고 모서리 자리 세로 선 하나에 코너바 종류를 준다. 선 위끝에 「ㄱ」 표식을 단다. 구조검토 판정에서 빠진다.
  7. 장식바 — 틀 선 위에 겹쳐 긋는다. 만나는 자리 셈 · + 모양 확정 막기 · 부속 자리 · 칸 나눔에서 빠진다. 우클릭 「장식바 추가」는 고른 틀 선과 같은 끝점 · 같은 축으로 장식바 선을 놓고, 「장식바 길이변경」은 장식바 선의 「길이」 칸에 커서를 둔다.
  8. 종류 바꾸기 — 우클릭 「자재변경 ▸」 목록 맨 위 「부재 종류」 묶음에서 고른다(지금 종류에 ✓). 인스턴스 패널 「부재 종류」 칸도 같은 값을 고친다. 장식바로 바꾸면 그 선의 홈마개 · 유리받침 고친 값을 버리고 알린다.
  9. 스틸보강 단계 — 단계 고르개의 넷째 칸이다. 세로 선마다 가운데에 띠 하나가 뜬다(코너바 · 장식바 선 제외). 띠는 「판정이 넣음」 · 「사람이 넣음」(점 표식) · 「없음」 셋이다. 누르면 「판정대로 · 넣음 — 보강재 고르기 · 뺌」 고르개가 뜬다.
  10. 겹침 규칙 — 멀리언 선 하나에 보강재는 늘 한 본이다. 사람이 넣은 값이 구조검토 자동 값을 이긴다. 사람이 고른 보강재가 판정과 다르면 구조검토 탭 그 줄에 「사람이 고른 보강재입니다 — 판정은 A」를 보이고 판정 결과는 바꾸지 않는다.
관련 API Swagger UI ↗
  • GET/api/es/estimates/{estimateId}/palette — 제품 후보. 항목 칸 cwMemberKinds · cwCircleBranch 는 #3849 신설(✅ 서버 #3872 · 화면 #3871 반영) (IF-ES-PALETTE-001, DE24-1 §5.4.19-A)
  • PUT/api/es/estimate-lines/{lineId} — [저장] 이 선의 값을 담는다. 부재 종류 cwMemberKind · 보강 structReinforcement 칸은 #3849 신설(✅ 서버 #3872 · 화면 #3871 반영) (IF-ES-LINE-001, DE24-1 §5.4.1)
  • POST/api/es/estimate-lines/{lineId}/evaluate-preview — 실시간 산출. 종류별 줄이 따로 나온다 (IF-ES-SIM-001)
커튼월 부재 종류 메뉴 — 한 제품 안에서 종류를 섞어 긋기
모습 A — 메뉴 열한 줄 · 제품 「163 히든 커튼월(시험)」
✛▥◫☰▧
1노출바
2히든바 ✓
노출 코너바
히든 코너바
장식바
3벤딩바
유리 안전 받침대
홈마개
유리조절바
4슬리브
스틸보강
흐린 줄 = 이 제품에 가지가 없다(노출 코너바 · 벤딩바) 또는 늘 흐림(슬리브). 줄은 감추지 않는다.
모습 B — 종류를 섞은 틀 · 히든 틀 + 노출 트랜섬 하나 + 히든 코너바 + 장식바
선 긋기 홈마개 유리받침 9스틸보강
ㄱ 6
5노출 트랜섬(꽉 채움)
7장식바(점선 · 30mm) 163 히든 커튼월 · 히든 코너바
실시간 산출 — 「히든 멀리언 ×2 · 히든 코너바 ×1 · 노출 트랜섬 ×1 · 히든 트랜섬 ×3 · 장식바 ×1 · 장식바 속캡 ×1」 종류별 줄이 따로 나온다. 색은 #3848 표의 축 색(세로 자홍 · 가로 주황) 그대로이고, 종류는 채움으로 가른다 — 노출 꽉 채움 · 히든 속 빈 띠 · 장식바 점선 테두리 · 코너바 「ㄱ」 표식(§4.6 ① R-ES015-MEMBER-STYLE ① 커튼월 네 행).
모습 C — 자재변경 ▸ 「부재 종류」 묶음
8부재 종류
노출바
히든바 ✓
히든 코너바
장식바
제품
163 히든 커튼월(시험) ✓
189 우수 커튼월
모습 D — 스틸보강 단계 고르개
◉ 판정대로 (판정: □50×100×2.9T)
○ 넣음 — 보강재 고르기 ▾
○ 뺌
10멀리언 선 하나에 늘 한 본 · 사람 값이 이긴다
부재 자리는 셈이 정한다 — 사람이 고르는 것은 종류다 종류 칸이 비면 제품 기본 종류 — 이미 그은 선은 바뀌지 않는다 색 = #3848 축 색 · 종류 = 채움 · 굵기 · 표식
SCR-ES-015· 우측 패널 [각도 절단] 탭 — 사선창 부재별 절단 값 옮겨 적기 §4.6 ⑥ 사선창 부재별 각도 절단 표풀

사선창은 부재마다 다른 각도로 자른다. 그 값은 산식으로 만들 수 없어 가공도에서 사람이 옮겨 적는다. 우측 패널을 [제품 설정]·[각도 절단] 두 탭으로 나누고, [각도 절단] 탭에 부재 한 줄을 카드 하나로 적는다. 패널 폭(288px)에 여섯 칸이 한 줄로 읽히지 않아 카드로 접었다. 저장하면 표 전체가 한 번에 바뀐다. 정본 DE22-1 §08 §4.6 ⑥ · 계약 DE24-1 §5.4.35 IF-ES-ANGLECUT-001 · 화면 반영 #3167(wims2.0_fe 85f7ebdc·e414aaa8·cb34ab0e).

진입 — SCR-ES-015 우측 패널 머리의 [각도 절단] 탭을 누른다(같은 화면 안의 탭이고 따로 난 주소가 아니다). 처음 선택은 [제품 설정] 이다.

  1. 탭 막대 — [제품 설정]·[각도 절단] 두 탭이다. 실시간 중량·산출은 [제품 설정] 탭 아래에 그대로 있다. 탭을 옮겨도 [제품 설정] 의 적용 전 옵션이 남는다. 섹션이 바뀌면 각도 절단 초안을 새로 그린다. 제작용 사본에서는 [각도 절단] 탭을 감춘다(#3058).
  2. 제목 · 안내 — 「각도 절단」 아래에 「사선창 가공도의 부재별 절단 값을 옮겨 적습니다. 저장하면 표 전체가 한 번에 바뀝니다.」를 적는다.
  3. 부재 카드 — 줄 하나가 카드 하나다. 머리에 줄 번호와 휴지통 [지우기]. 1단은 부재 부호 · 역할 · 길이 (mm), 2단은 시작 각도 (°) · 끝 각도 (°), 3단은 짝 마감캡 부재코드 (없으면 비움) 이다. 역할 고르개는 멀리언 · 트랜섬 둘이다. 부재 부호는 한 부호 안에서 겹치면 안 된다. 값 보기는 DE35-2 §4B.8.
  4. 틀린 칸 — 틀린 칸을 붉게 두고 그 줄 아래에 「칸 이름: 안내」를 적는다(예 「끝 각도: 각도는 0보다 크고 180보다 작아야 합니다.」). 패널 아래에 「표시한 칸을 고친 뒤 다시 저장하세요.」를 둔다. 각도 소수 셋째 자리와 길이 소수는 화면이 저장 전에 막는다. 서버 400 ANGLECUT_* 네 가지는 field 가 없어 details 의 부호로 줄·칸을 짚는다.
  5. 바닥 줄 — [+ 줄 더하기](보조 단추) · [되돌리기](글자 단추, 고친 뒤에만 보인다) · [저장](주 단추, 고친 것이 없으면 꺼진다. 누르면 「저장 중…」). 저장 뒤 알림 「각도 절단 표를 저장했습니다.」. ⚠️ 1440×900 화면에서 오른쪽 아래에 고정된 [요청 보내기] 단추가 [저장] 을 일부 덮는다(화면 몫 관찰, §4.6 ⑥).
  6. 상태 — 빈 상태 · 읽기 전용 잠금 · 빈 표 저장 확인창 셋이다. 잠금은 화면이 정한다 — 서버는 확정·계약 견적의 저장도 막지 않는다(SectionAngleCutService.kt:56-57). 화면은 편집 권한 → 견적 상태(확정·계약) 차례로 읽어 사유를 보인다(§4.5 「상태 잠금」과 같은 글).
관련 API Swagger UI ↗
  • GET·PUT/api/es/sections/{sectionId}/angle-cuts — 그 섹션의 각도 절단 표 조회 · 한 벌 통째 교체(IF-ES-ANGLECUT-001, DE24-1 §5.4.35). 빈 배열을 보내면 그 섹션의 각도 절단을 전부 지운다. 적힌 것이 없는 섹션은 빈 목록이다. 확정 견적에서도 서버가 막지 않아 화면이 잠근다 (as-built — 서버 #930 · 화면 #3167)
우측 패널 [각도 절단] 탭캔버스는 그대로다 — 각도 절단은 캔버스에 그리지 않고 표에 적는다
모습 A — 고치는 중 (줄 둘 · 둘째 줄에 틀린 칸)
1제품 설정각도 절단
2각도 절단
사선창 가공도의 부재별 절단 값을 옮겨 적습니다. 저장하면 표 전체가 한 번에 바뀝니다.
31🗑 지우기
부재 부호
W1
역할
멀리언
길이 (mm)
3559
시작 각도 (°)
69.2
끝 각도 (°)
68.6
짝 마감캡 부재코드 (없으면 비움)
UNI-CW-DMG
42🗑 지우기
부재 부호
H1
역할
트랜섬
길이 (mm)
1783
시작 각도 (°)
80.2
끝 각도 (°)
180
짝 마감캡 부재코드 (없으면 비움)
 
끝 각도: 각도는 0보다 크고 180보다 작아야 합니다.
표시한 칸을 고친 뒤 다시 저장하세요.
5+ 줄 더하기되돌리기저장
[되돌리기] 는 고친 뒤에만 보인다 · [저장] 은 고친 것이 없으면 꺼지고 누르면 「저장 중…」 · 저장 뒤 알림 「각도 절단 표를 저장했습니다.」
6상태
모습 B — 빈 상태 (사선창이 아닌 섹션 · 오류가 아니다)
적힌 각도 절단이 없습니다. 사선창이 아닌 섹션은 비어 있는 것이 정상입니다.
+ 줄 더하기저장
모습 C — 읽기 전용 (카드 입력이 꺼지고 바닥 단추가 숨는다 · 사유는 권한 → 견적 상태 차례)
보기 권한만 있습니다. 고치려면 편집 권한이 필요합니다 — 관리자에게 요청하세요. 확정된 견적입니다. 고치려면 개정(Rev.)을 먼저 시작하세요.
계약된 견적이면 「계약된 견적입니다. 고치려면 개정(Rev.)을 먼저 시작하세요.」다. 서버는 확정 견적의 저장을 막지 않아 화면이 잠근다.
모습 D — 빈 표 저장 확인창 (줄을 모두 지우고 [저장])
각도 절단 값을 모두 지울까요?
표가 비어 있습니다. 저장하면 이 섹션에 적힌 각도 절단 값이 모두 지워집니다.
취소모두 지우고 저장
확인 단추는 파랑(주 단추)이다 — 팝업 규약 #2910.
서버 400 ANGLECUT_* 네 가지는 field 가 없다 — details 의 부호로 줄·칸을 짚어 붉게 둔다 각도 소수 셋째 자리 · 길이 소수는 화면이 저장 전에 막는다
SCR-ES-018제품 팔레트·라이브러리 /projects/:projectNo/estimates/:estimateId/palette표준

단계 ③↔⑤ 연결 보조 — 이 견적 버전이 캔버스에서 쓸 제품 후보를 카테고리별로 정리하고 팔레트 노출 여부·표시 순서·카테고리 배치를 큐레이션. 결과가 ES-015 좌측 팔레트에 주입. (마스터는 PM 정본, 읽기만)

진입 — SCR-ES-003(§4.4) [제품 후보 변경] / SCR-ES-015(§4.6) 좌측 제품 팔레트 헤더 [라이브러리 관리].

다음 단계 — 머리줄 [캔버스로] → 들어온 캔버스 섹션(없으면 첫 미설계 섹션) · [+ 제품 등록] → SCR-PM-011 (같은 창 + returnTo) (#2109 ⑥ · #2107 6).

  1. 카테고리 트리 — ASIS 7분류(선형/사각 그리기 도구 팔레트 분류) 노출축.
  2. 후보 목록 — PM 4축 필터(형식·등급·형태·검색)를 재활용해 후보를 정렬·검색.
  3. 팔레트 노출 토글 — ON/OFF로 캔버스 팔레트 표시 여부를 제어.
  4. 선택 제품 큐레이션 — 선택한 후보의 분류 경로·카테고리를 확인.
  5. 캔버스 팔레트 노출 — 이 후보를 ES-015 팔레트에 노출할지 개별 토글.
  6. 큐레이션 저장 — 노출/순서/카테고리 설정을 저장하고 ES-015 팔레트에 반영.
  7. 캔버스로 이동 — 큐레이션 결과를 확인하며 섹션 견적설계(ES-015)로 이동.
관련 API Swagger UI ↗
  • GET/api/pm/products — 형식·등급·형태 4축 분류·검색으로 후보 라이브러리 조회 (SCR-PM-010 재활용)
  • GET/api/es/estimates/{estimateId}/palette — 이 견적 버전의 팔레트 노출·순서·카테고리 큐레이션 조회
  • PUT/api/es/estimates/{estimateId}/palette — [큐레이션 저장] — 노출 ON/OFF·순서·카테고리 저장 및 ES-015 팔레트 반영
프로젝트  ›  미사5중학교  ›  견적설계  ›  견적 v.1  ›  제품 팔레트·라이브러리
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기

제품 팔레트·라이브러리

제품 후보 추가 (ES-003 모달)7캔버스로
1카테고리 (ASIS 7분류 — 노출축)
커튼월 (선형)
◉ 미서기 (사각)
갤러리 (사각)
프로젝트류 PJ·PD·CM·대피창
교출 (사각)
도어 (사각)
기타
2후보 목록 — 순서 · 팔레트 노출 (PM 4축 필터 재활용)
코드/제품명/modelCode 검색형식: 전체등급: 전체형태: 전체
순서제품코드제품명카테고리3팔레트 노출
1 ▲▼DHS-AE225-D-1미서기 이중창미서기ON
2 ▲▼교출-양개140 행거 교실출입문교출ON
3 ▲▼CWU-AL-1커튼월 프레임커튼월OFF
1
4선택 제품 — 큐레이션
제품DHS-AE225-D-1 미서기 이중창
카테고리미서기 (사각 그리기)
분류 경로미서기 > 마스 > 2×2 연창
5캔버스 팔레트 노출
카테고리미서기
취소6큐레이션 저장
노출축 = ASIS 7카테고리(도구 팔레트 분류). 형식축(class_l1 미서기·커튼월 2종)은 PM 정본 불변. 상태 variant: frozen(견적 확정 후 읽기 전용)
새 단추 (#2112 — 정본 「이탈」 행)+ 제품 등록자리: 머리줄 — 제품 편집 권한
SCR-ES-005BOM 구성·라인 확정 /…/estimates/:estimateId/lines/:lineId/bom풀Figma: node 1229:8065

단계 ⑥ — 견적 라인 1건의 BOM 자동 구성 결과를 검토하고 라인 확정 트리거. 좌측 좁은 입력(치수 값·옵션·자동 산출 규칙) + 우측 넓은 자재 구성/공정·제조비 탭.

진입 — ES-003 섹션 행 [BOM] / ES-015 [BOM 구성] / ES-015 [확정 해제하러 가기 →](#2112 결정 2) / ES-003 검토 제출 막힘 안내의 걸린 라인 · ES-006 결과 표 · 발주 위저드 1단계 [견적 라인 확정 화면으로 →] · SCR-PM-013B [견적 라인 열기].

다음 단계 — [캔버스로 돌아가기 →] → 그 라인의 SCR-ES-015 (확정 해제 직후 주 단추) · 라인 확정 뒤 [확정구성표 보기] → SCR-PM-013B [확정구성표] 탭 · [산식 검토] → SCR-ES-006 (#3934 — 종전 [평가 로그] 탭 심화) · [견적 상세로] → SCR-ES-003 (#2109 ⑩ · 결정 2).

  1. 재평가(미리보기) — DB 쓰기 없이 RuleEngine으로 현재 입력값을 재평가.
  2. 라인 확정 — RESOLVED_BOM을 정식 생성하고 입력을 잠근다.
  3. 치수 값·옵션 — 제품·W×H·옵션·옵션 해시 입력값.
  4. 자동 산출 규칙 적용 — 미서기 보강·트랜섬 절단·이 견적 전용 규칙(특주) 건수.
  5. 결과 탭 — 자재 구성/공정·제조비 2탭. 공정·제조비는 잠그고 까닭을 말풍선으로 붙인다(#2735). [평가 로그] 탭은 두지 않는다 — 경고는 표 아래, SCR-ES-006 은 머리 단추 [산식 검토] (#3934).
  6. 자재 구성 표 — 원자재·부자재·공정별 규격·수량·단가·소계.
  7. 합계와 검증 — 자재비 합계와 검증 경고 건수.
  8. 이 견적에서만 고치기 (#3168 ①) — 패널 단추가 오른쪽 서랍 창을 연다: 이 견적 전용 규칙 목록(규칙 이름 · 「표준 규칙 대체」/「추가」 · [지우기]) + 「이 견적에 적용되는 규칙 N개」. 자재 표 줄의 「⋯」 메뉴 [이 견적에서만 빼기]·[수량 바꾸기]·[다른 자재로 바꾸기], 표 아래 [이 견적에서만 자재 더하기]. 저장 값 = ruleName 「견적전용_{동사}_{자재코드}」 · whenExpr W > 0 · 동사 한 줄. 서랍 위 안내 「이 견적에서 같은 제품을 쓰는 모든 라인에 함께 적용됩니다.」 확정 라인·보기 권한이면 고치는 항목을 잠근다. 정본 DE22-1 §08 §4.7 「#3168 결정 ①」 (⏳ 화면 반영 전).
관련 API Swagger UI ↗
  • GET/api/es/estimate-lines/{lineId} — 라인 입력값(치수·옵션)·자동 산출 규칙 적용 내역 조회
  • POST/api/es/estimate-lines/evaluate-preview — [재평가(미리보기)] — DB 쓰기 없는 RuleEngine 평가
  • POST/api/es/estimate-lines/freeze — [라인 확정] — RESOLVED_BOM 정식 생성
  • GET/api/es/estimate-lines/{lineId}/resolved-bom — 확정된 resolvedBomId·자재 구성 조회
  • GET/api/es/estimate-lines/{lineId}/bom-rule-overrides — 이 견적 전용 규칙 목록 · mergedRuleCount (#3168 ①)
  • POST/api/es/estimate-lines/{lineId}/bom-rule-overrides — 빼기·수량 바꾸기·다른 자재로 바꾸기·더하기 저장. 저장 뒤 [재평가]를 다시 부른다 (#3168 ①)
  • DELETE/api/es/estimate-lines/{lineId}/bom-rule-overrides/{ruleId} — 서랍 창 [지우기] — 그 규칙 이름은 표준 규칙으로 돌아간다 (#3168 ①)
프로젝트  ›  프로젝트 상세  ›  견적 탭  ›  견적 버전 상세  ›  섹션 허브  ›  BOM 구성·라인 확정
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기

BOM 구성 · 라인 확정

미확정1재평가 (미리보기)2라인 확정산식 검토
3치수 값 · 옵션
제품DHS-AE225-D-1 (sbv3)
W × H (mm)15001200
옵션유리: 복층 24T / 색상: WH
옵션 해시a3f9…
4자동 산출 규칙 적용
미서기 보강해당 없음 (이중창 225 — 네 부재 모두 기준 미만)
트랜섬 절단해당 없음 (미서기 — 커튼월 전용)
이 견적 전용 규칙1건 (특주)
8이 견적에서만 고치기
5자재 구성공정·제조비
구분6자재규격수량단가소계
원자재UNI-A225-101절단 1480mm × 44준비 중준비 중⋯
부자재DH-5555-1 가네고9mm4준비 중준비 중⋯
부자재01-0059 피스8×1316준비 중준비 중⋯
공정조립—1준비 중준비 중⋯
+ 이 견적에서만 자재 더하기7자재비 합계 준비 중 · 검증 경고 0건
단가·소계·자재비 합계는 Phase 1 금액 숨김(#522)으로 「준비 중」이다 — 칸 구조는 그대로 두고 값만 가린다. 적는 말은 DE22-1 §08 §4.2 R-ES-AMOUNT-PLACEHOLDER 가 정본이다(#1084).
라인 확정 성공 시 resolvedBomId(RBOM-…-ELn) 표시 + frozen 전환. 상태 variant: empty · loading · error · frozen(입력 잠금) · freeze-conflict(재확정 거부).
새 단추 (#2112 — 정본 「이탈」 행)캔버스로 돌아가기 →자리: 하단 액션 줄 — 확정 해제 직후 주 단추견적 상세로자리: 머리줄
SCR-ES-006산식 결과 검토 /…/estimates/:estimateId/derivations풀Figma: node 1270:6208

자동 산출 4종(롤방충망·미서기 보강·구조검토·트랜섬 절단)의 산출 근거를 견적 단위로 검토. 구조검토 탭 머리 줄에 라인 필터(「라인: 전체」, #2386 — 페이지 머리 줄이 아니다). 좌측 여유율 입력·절단 조합 표 + 우측 낭비 시각화·요약. 구조검토 '오류'는 ES-005 라인 확정 차단과 연동.

진입 — SCR-ES-005 머리 단추 [산식 검토] (#3934) / ES-003 하단 [산식 검토] / ES-015 헤더 [산식 검토] / 검토 단계 진입(발신 상호 인정). 지진 계수 두 칸(#609)은 이 화면 안 [구조검토] 탭에서만 연다 — 별도 진입점을 두지 않는다.

다음 단계 — 결과 표의 부호·라인 → 그 라인의 SCR-ES-005 · 머리줄 [BOM 구성으로] → 고른 라인 · [견적 상세로] → SCR-ES-003 (#2109 ⑪).

  1. 구조검토 상태 배지 — 현재 라인의 구조검토 경고/오류 건수.
  2. 라인 확정 차단 안내 — 구조검토 '오류' 판정 라인은 ES-005 라인 확정이 차단됨을 안내. 그 아래에 「미판정」 안내가 따로 선다 (#1455 확정) — 판정하지 못한 라인 수(notEvaluatedCount, DE24-1 §5.4.20)가 0 이 아니면 뜬다. 확정 문구는 「이 견적에는 아직 판정하지 못한 라인이 {N}건 있습니다 — 오류·경고 건수에 세지 않은 라인이라 통과한 것이 아닙니다. 구조검토 탭의 「사유 / 권고」 열에서 무엇이 없어 판정하지 못했는지 확인하세요.」 다. 「오류 0 · 경고 0」에 기대어 쓰지 않는다 — 오류가 있는 견적에도 판정 못 한 라인이 함께 있을 수 있어 그렇게 적으면 거짓이 된다. 이 알림은 라인 확정을 막지 않는다(#609 D4). 오류가 0건일 때의 안내는 「확정이 가능하다」고 말하지 않는다 (#1456 ②) — 확정에는 라인 상태·치수 입력·권한 같은 조건도 걸려 이 화면이 알 수 없다.
  3. 산출 4종 탭 — 롤방충망/미서기 보강/구조검토/트랜섬 절단. 미서기 보강 탭은 부재 넷을 따로 판정한다 (#2301) — 라인마다 후렘 하부 · 세로 후렘 · 문짝 하부바 · 문짝 세로바 네 칸에 판정과 그 판정에 쓴 비교(예 「넣음 — H 1,600 ≥ 1,500」)를 적는다. 기준은 발주처 「미서기 보강재 설계 적용 기준」이고 대상은 치수계열 160(단창)·225(이중창)다. 그 구분·단 수에서 판정하지 않는 부재는 「해당 없음」, 치수·계열을 못 읽은 라인은 「판정하지 못함」이다(「안 넣음」으로 그리지 않는다). 정본은 DE22-1 §08 §4.8.1 가 다 — 옛 「문짝 높이 2000mm 이상」 판정(#526)은 바뀌었다.
  4. 트랜섬 절단 탭 — 라인 모양에 따라 두 갈래 (#2953 결정) — 선 라인(선으로 그은 커튼월 줄, #2221 — 치수에 H 가 없다)은 서버 부재 목록 GET /api/es/estimates/{estimateId}/member-weights 의 가로 부재 줄(cutDirection 이 W 로 시작)을 모아 — 세로로 그은 멀리언 라인(rotationDeg 90)의 줄은 빼고 — 부호·위치(상부·하부·중간 트랜섬)별로 보인다. 길이는 절단 길이 cutLengthM, 본수는 qty × 견적 라인 수량 × sectionQty 다. 선 라인에는 「격자 옵션을 지정하세요」 안내를 띄우지 않는다. 아직 확정하지 않은 선 라인은 「라인을 확정하면 트랜섬 길이를 셈합니다.」 다. 옛 격자 라인(치수에 W·H 가 둘 다 있는 줄)은 종전 W·M·N 식과 격자 안내를 그대로 쓴다. 정본은 DE22-1 §08 §4.8.1 나 「선 라인 갈래」 상자다. 화면 반영됨 — fe#1037.
  5. 조정 칸 세 개 — 사용자가 조정한다 (#609 · #1495 확정) — 구조검토 탭 머리, 판정 결과 표 위에 조정 칸 셋을 둔다. 풍 하중계수(기본값 0.65) · 지진 하중계수(기본값 0.70) · 비구조요소 가동중량 Wp(기본값 0.50 kN/㎡)이고 셋 다 0.01 단위로 올리고 내린다. 풍과 지진을 계산 축으로 갈라 묶는다 — 한 줄에 섞으면 어느 값이 어느 계산에 드는지 흐려진다. 받는 범위가 칸마다 다르다 — 풍 0.65~1.00 · 지진 0.70~1.00 · 가동중량 0.01~10.00. 하중계수 둘은 양끝 다 KDS 41 12 00:2022 가 준다 — 풍은 §5.1.3(허용응력 0.65 · 강도 1.0), 지진은 §1.7.2·§1.7.1(허용응력 0.7E · 강도 1.0E)이다. 절이 다른 까닭은 DE22-1 §08 §4.8 #1495 결정 상자 ② 가 적는다 — 기본값이 곧 하한이라 둘 다 위로만 움직인다. 판정한 적이 있으면 그때 쓴 값으로 뜬다 (#2363) — 라인마다 쓴 값이 갈렸으면 기본값을 띄우고 [재평가] 봉투에서 빼며, 칸 아래에 「라인마다 다른 값으로 판정돼 있습니다 — …」를 덧붙인다. 정본은 #2282 결정 상자 ⑪ 이다. 가동중량 상한만 임의 울타리다. 진입은 이 화면의 [구조검토] 탭 하나뿐이다 — 값을 바꾸는 자리와 결과를 보는 자리가 붙어 있어야 바꾸고 [재평가] 를 눌러 판정이 어떻게 달라지는지 곧바로 본다. 다른 탭(롤방충망·미서기 보강·트랜섬 절단)은 지진과 무관해 이 칸을 두지 않고, 이 값을 넣으러 가는 별도 화면도 만들지 않는다. 두 값의 근거를 발주처에 물었으나 받지 못해(3차 질의서 A-1·A-5) 원천 실측값을 기본값으로 두고 바꿀 수 있게 한 것이다. 계약은 DE24-1 §5.4.20 이다.
  6. 쓴 값이 판정에 남는다 (#609 · #1495 확정) — 판정 결과 표에 그 라인이 실제로 쓴 세 값(풍 계수 · 지진 계수 · Wp)을 열로 세우고, 기본값과 다르면 「사유 / 권고」 칸에 무엇을 얼마로 바꿨는지 적는다. 가로재(트랜섬)·히든바는 「미판정」이다 — 자료를 못 받아서가 아니라 발주처가 정한 검토 범위가 멀리언(세로재)뿐이기 때문이다(A-4 회신, 2026-08-26). 사유 칸에 그렇게 적는다.
  7. 여유율 재계산 — 여유율 값을 조정하고 재계산.
  8. 절단 조합 표 — 규격별 필요 수량·롤 기준 길이·중량·낭비율.
  9. 낭비 시각화 — 롤 길이별 절단 배치와 낭비율을 막대로 표시.
  10. 산식 요약 패널 — 보강·구조검토·트랜섬 절단 결과와 구조검토가 확정을 막는지 여부 (#1456 ② — 「라인 확정 가능」으로 적지 않는다. 확정에는 이 화면이 알 수 없는 조건도 걸린다).
  11. 현장 조건 네 칸 — 프로젝트 전체에 한 벌 (#2282 확정) — 구조검토 탭 머리, 조정 칸 셋 위에 둔다. 지역·지반종류·조도구분은 목록에서만 고른다 — 자유 글자를 받지 않는다(원본 엑셀이 부분일치로 찾다가 광주·세종·양주에서 지진 계수를 두 배로 만든 자리다). 지역은 이름(regionName)으로 검색되는 고르개이고 보내는 값은 고른 줄의 regionCode 다. 검색은 목록을 거르기만 하고 값은 사람이 한 줄을 골라야 정해진다. 지반은 S1 암반 ~ S5 깊고 연약, 조도는 A 대도시 고층 밀집 ~ D 장애물 거의 없음처럼 코드 옆에 뜻을 붙인다 — 서버가 이름을 싣지 않아 화면이 붙이는 글이고, 뜻이 적혀 있지 않은 코드는 코드만 보인다. 기본풍속은 손으로 넣는다 — 지역을 골라도 따라 바뀌지 않는다(KDS 41 12 00:2022 §5.5.2 가 지도로만 준다). 받는 범위는 0 보다 크고 999.9 이하 · 소수 한 자리까지다. 묶음 머리에 「이 네 값은 프로젝트 전체에 한 벌만 담깁니다. 여기서 바꿔 [재평가] 하면 같은 프로젝트의 다른 견적도 다음에 열 때부터 이 값으로 판정됩니다.」를 늘 둔다. 탭을 열면 저장된 값(structural.site)으로 채우고, 널이면 빈 칸이다. 프로젝트 화면(SCR-PM-016·017)에는 이 칸을 두지 않는다. 정본은 DE22-1 §08 §4.8 「구조검토 입력 여섯 값」 결정 상자다.
  12. 건물 전체 높이 한 칸 · 구조검토할 부호 · 창 높이 (🔄 #3997 결정 2026-10-26 · ✅ 화면 반영 #4015) — 건물 전체 높이는 현장 조건 묶음의 다섯째 칸이다(견적마다 하나 · 「이 견적에만 담깁니다.」). 1 이상 2,147,483,647 이하의 정수이고 비면 [재평가] 를 잠근다. [재평가] 는 이 값을 블록 structural.buildingHeightMm 에 싣는다. 판정 결과 표 위에 「구조검토할 부호」 고르개를 두고, 고른 부호에만 「창 높이 (mm)」 칸이 열린다 — 비우면 건물 전체 높이로 본다. 고른 부호가 없으면 표 자리에 「구조검토할 부호를 골라 주세요.」를 적고 [재평가] 를 잠근다. 고르지 않은 라인은 표에 「고르지 않음」으로 서고 미판정 건수에 세지 않는다(notSelectedCount 로 따로 알린다). 한 현장에 건물이 여럿이면 건물마다 견적을 나눈다(#4016). 라인마다 설치높이 · 건물 전체높이 두 칸 + [모든 라인에 넣기] (#2282) 🔄 #3997 이 걷었다. 정본은 DE22-1 §08 §4.8 「#3997 결정」 상자다.
  13. [재평가] — 봉투에 싣는 것과 잠그는 때 (#2282 확정) — 이 탭의 [재평가] 만 structural 봉투를 싣는다(롤방충망 [재계산] 은 싣지 않는다). 봉투에는 현장 네 값 + 조정 칸 셋(블록 — 사람이 고쳤거나 되읽은 값이 기본값과 다를 때만, #2363) + 견적의 모든 라인의 두 높이가 실린다 — 탭 머리 줄 라인 필터와 상관없다(#2386). 여섯 가운데 하나라도 비었거나 받을 수 없는 값이면 [재평가] 를 잠그고, 무엇이 걸렸는지 그 칸 아래에 적는다(조정 칸 셋과 같은 방식). 라인 칸이 걸리면 표 위에 몇 건인지와 부호를 한 줄로 적는다 — 필터에 가려진 줄도 이 줄에는 나온다. 「조정한 값은 아직 판정에 반영되지 않습니다」 안내는 걷었다(as-built #1496).
  14. 보강 자재 표 — 부호 · 위치별 (#3822 결정) — 판정 결과 표 아래에 둔다. 보강이 필요한 멀리언(선형 세로 라인 하나)마다 한 줄이고, 부호별로 묶어 왼쪽 멀리언부터 세운다. 열은 부호 · 위치(positionIndex · memberLocationCode 외곽/중앙) · 보강 자재(품목 이름 · 코드, 품목이 없으면 단면 명칭과 「자재 없음」) · 본수 · 길이 · 중량 · 구성표(넣음 / 뺌 / 못 넣음 + 까닭) · 넣을지다. 사람이 고치는 것은 「넣을지」 하나다 — 품목 · 본수 · 길이는 판정이 정한다. 자재 구성 화면(ES-005 · ES-015)은 그 줄에 「구조검토」 표시를 붙이고 직접 지우지 못하게 한다. 정본은 DE22-1 §08 §4.8 「#3822 결정」 상자다.
  15. [엑셀 다운로드] — 네 탭을 시트 넷으로 한 파일에 (#4252 결정 · ✅ 화면 반영 #4257 `wims2.0_fe` `5ed93315`·`9f5d1288`(PR #1627 병합)) — 탭 줄 오른쪽 끝에 하나 둔다. 어느 탭을 열었든 롤방충망 · 미서기 보강 · 구조검토 · 트랜섬 절단 시트 넷을 한 파일(.xlsx)에 담는다. 값이 없는 탭도 시트를 두고 「대상 없음」 한 줄을 적는다. 구조검토 「라인: 전체」 거르개는 파일에 걸지 않는다 — 늘 판정 결과 표의 줄 전부다. 열은 탭마다 화면 결과 표의 칸 그대로이고, 구조검토는 판정 · 「사유 / 권고」 · 쓴 세 값을 모두 담는다. 시트마다 맨 위에 프로젝트 번호 · 견적 번호 · 버전 · 내려받은 시각을 적는다. 파일 이름은 {프로젝트 번호}_{견적 번호}-Rev{개정}_산식결과검토_{YYYYMMDD}.xlsx 다(#3332 견적서 이름과 같은 앞머리). 파일은 화면이 만든다 — 미서기 보강 · 트랜섬 절단 값이 화면에만 있기 때문이다(#425 C안). 그래서 새 API 가 없다. 정본은 DE22-1 §08 §4.8 「#4252 결정」 상자다.
관련 API Swagger UI ↗
  • GET/api/es/estimates/{estimateId}/derivations — 롤방충망 합산·구조검토 등 견적 단위(다섹션 집계) 산식 결과 조회 (재평가는 POST .../derivations/evaluate). 구조검토 탭은 structural.site(현장 네 값)·structural.buildingHeightMm(건물 전체 높이 — 🔄 #3997)·structural.lines[].selected(고른 부호)·structural.lines[].installHeightMm(창 높이)로 칸을 채운다 — 저장된 값이고 널이면 빈 칸 (#2283 · #3997). 고르지 않은 라인 수는 notSelectedCount 다. 보강 자재 표는 structural.lines[].reinforcement 를 읽는다 (#3822, ⏳ 서버 반영 전)
  • GET/api/es/structural-params/regions — 지역 고르개 목록(170건, 지역명 차례). regionName 을 보이고 regionCode 를 보낸다 (#2283)
  • GET/api/es/structural-params/ground-types — 지반종류 고르개 목록(S1~S5). groundType 을 보낸다 (#2283)
  • GET/api/es/structural-params/roughness-categories — 조도구분 고르개 목록(A~D). 칸 이름이 category 이고 보낼 때는 roughnessCategory 에 싣는다 (#2283)
  • POST/api/es/estimates/{estimateId}/derivations/evaluate — [재계산](여유율)·구조검토 [재평가] 가 이 주소 하나를 함께 쓴다(DerivationReviewPage.tsx 의 handleReevaluate). 구조검토 탭에서는 structural 봉투(현장 네 값 + 조정 칸 셋 + 블록 건물 전체 높이 + 고른 부호의 라인마다 창 높이 — 🔄 #3997)를 함께 싣는다. 현장 네 값은 프로젝트에, 라인 값은 라인에 저장된다 · ROLE_ES_EDITOR 이상 (#609 · #1495 · #2282 완료검증 — 종전에 여기 있던 estimate-lines/evaluate-preview 줄은 실물과 달라 걷었다. 그 주소는 다른 화면(인스턴스 옵션 패널·라인 BOM)의 실시간 미리보기용이다)
  • GET/api/es/estimates/{estimateId}/member-weights — [트랜섬 절단] 탭의 선 라인 갈래가 읽는 부재 목록이다. 가로 부재 줄(cutDirection 이 W 로 시작)의 cutLengthM·qty·sectionQty·assemblyName 을 쓴다. 확정 라인만 실린다 (#2953, 화면 반영됨 — fe#1037)
  • GET/api/es/estimates/{estimateId} — [엑셀 다운로드] 머리 줄과 파일 이름에 쓸 견적 번호(estimateNo) · 버전(versionNo) · 개정(revision)을 읽는다. 파일은 화면이 write-excel-file 로 만들고 새 주소는 없다 (#4252, ✅ 화면 반영 #4257 `wims2.0_fe` `5ed93315`·`9f5d1288`(PR #1627 병합))
프로젝트  ›  프로젝트 상세  ›  견적 탭  ›  산식 결과 검토
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기

산식 결과 검토

1구조검토: 경고 1건BOM 구성으로재평가
2구조검토 오류 0건 · 경고 1건. 구조검토는 라인 확정을 막지 않습니다. 확정에는 라인 상태·치수 입력·권한 같은 조건도 함께 걸리므로 라인 확정은 자재 구성 화면에서 확인하세요. 경고는 스펙 범위를 넘은 특주 가능 조합이라 확인 후 진행하세요. (#1456 ② 확정 문구 · 오류가 있으면 이 자리에 차단 안내가 대신 선다)
2이 견적에는 아직 판정하지 못한 라인이 2건 있습니다 — 오류·경고 건수에 세지 않은 라인이라 통과한 것이 아닙니다. 구조검토 탭의 「사유 / 권고」 열에서 무엇이 없어 판정하지 못했는지 확인하세요. (#1455 확정 문구 · 미판정이 0건이면 이 줄은 뜨지 않는다 · 라인 확정을 막지는 않는다)
3롤방충망미서기 보강구조검토트랜섬 절단15엑셀 다운로드
2020표준 롤: 1800/1200/900mm6재계산동일 규격 섹션 합산1
7규격 H×W (mm)필요 수량롤 기준 길이중량 (kg)낭비율
1220×15202 — WD-A-001·002 합산1800mm 롤 · 3.1m8.69.7%
1120×9204 — WD-B-001 외 합산1200mm 롤 · 3.7m9.46.7%
870×6201 — WD-C-003900mm 롤 · 0.7m1.23.3%
8낭비 시각화
롤 높이별 절단 배치
합계 낭비율 7.2% · 최적 절단 조합 적용
1800
1200
900
9미서기 보강넣은 라인 3 (후렘 하부 1 · 세로 후렘 2 · 문짝 세로바 2) · 판정하지 못함 0
구조검토OK 11 · 경고 1 · 오류 0
트랜섬 절단선 라인 — 상부·하부·중간 1,200mm × 3본 · 옛 격자 라인 — 중간 1,100mm × 2본 · 외곽 2,380mm × 2본 (공차 ±1mm)
구조검토가 확정을 막는가아니오 (오류 0건) — 확정 여부는 ES-005 에서 확인
구조검토 탭 (#609 · #1495 · #2282 · #3997 확정)라인: 전체12재평가
10현장 조건 — 프로젝트 전체에 한 벌
이 네 값은 프로젝트 전체에 한 벌만 담깁니다. 여기서 바꿔 [재평가] 하면 같은 프로젝트의 다른 견적도 다음에 열 때부터 이 값으로 판정됩니다.
지역 서울특별시 지진구역 I · Z 0.11 — 이름으로 검색해 한 줄을 고른다(목록 170건). 자유 글자는 받지 않는다
지반종류 S3 얕고 연약 조도구분 C 1.5~10m 장애물 산재(기준)
기본풍속 (m/s) 28.0 소수 한 자리까지 — 현장 위치의 값을 기본풍속 지도(KDS 41 12 00:2022 §5.5.2)에서 읽어 넣습니다. 지역을 골라도 따라 바뀌지 않습니다.
11건물 전체 높이 (mm) 42000 이 견적에만 담깁니다. 건물이 여럿이면 건물마다 견적을 나누는 것을 권합니다. (🔄 #3997 — 위 「프로젝트 전체에 한 벌」 안내는 넷만 가리킨다)
탭을 열면 저장된 값으로 채운다(structural.site) — 아직 없으면 빈 칸이고 기본값을 채우지 않는다. 넷 가운데 하나라도 비면 [재평가] 를 잠그고 그 칸 아래에 「목록에서 골라 주세요 — 이 값이 있어야 재평가할 수 있습니다.」(기본풍속은 「0 보다 크고 999.9 이하인 수를 소수 한 자리까지 넣어 주세요.」)를 적는다. 지반·조도의 뜻은 서버가 싣지 않아 화면이 코드 옆에 붙이는 글이다.
풍
4풍 하중계수 0.65 기본값 0.01 단위 · 0.65 ~ 1.00 (KDS 41 12 00:2022 §5.1.3 — 허용응력 0.65 · 강도 1.0)
지진
4지진 하중계수 0.70 기본값 0.01 단위 · 0.70 ~ 1.00 (KDS 41 12 00 §1.7.2 — 허용응력 0.7E · §1.7.1 강도 1.0E)
4비구조요소 가동중량 Wp 0.85 kN/㎡ · 0.01 단위 · 0.01 ~ 10.00 (실무 0.3~2.0)
풍과 지진을 계산 축으로 갈라 묶는다 — 한 줄에 섞으면 어느 값이 어느 계산에 드는지 흐려지고, 판정 결과 표도 이미 두 축으로 값을 보인다. 받는 범위가 칸마다 다르다 — 하중계수 둘은 국가 기준이 양끝을 준다(같은 §1.7.2 허용응력 · §1.7.1 강도). 가동중량 상한만 임의로 정한 울타리다 — 하중계수가 아니라 패널 무게라 하중조합과 무관하다. 풍 칸은 기본값이 곧 하한이라 위로만 움직인다 — 더 엄하게 볼 수는 있어도 국가 기준보다 무르게 볼 수는 없다. 처음에는 기본값이 채워져 뜨고 옆에 「기본값」 딱지가 붙는다 — 사람이 바꾸면 딱지가 사라진다(위 Wp 줄이 바꾼 모습이다). 범위를 벗어나면 [재평가] 를 잠그고 칸 아래에 받는 범위를 적는다. 0 을 받지 않는 것이 이 잠금의 핵심이다 — 0 이면 지진축 하중이 통째로 사라져 판정이 늘 통과로 나오는데 화면에는 아무 표시가 없다.
11구조검토할 부호 — 고른 부호만 판정한다 (🔄 #3997)
☑ AW-1-01창 높이 (mm)12600비우면 건물 전체 높이로 봅니다.
☑ AW-1-07창 높이 (mm)창 높이 (mm)비우면 건물 전체 높이로 봅니다.
☐ AW-2-03고르지 않은 부호 — 창 높이 칸이 열리지 않는다
5라인판정쓴 풍 계수쓴 지진 계수쓴 Wp사유 / 권고
AW-1-01 멀리언OK0.650.700.50—
AW-1-07 멀리언경고0.800.700.85풍 하중계수를 0.80 으로(기본값 0.65) · 가동중량을 0.85 로(기본값 0.50) 조정해 판정했습니다 · 설치 높이를 건물 전체 높이(42000 mm)로 보고 판정했습니다 · 기본 두께(계열 최소)로 판정함
AW-2-03 히든바고르지 않음———구조검토할 부호로 고르지 않았습니다.
구조검토할 부호로 고르지 않은 라인 1건은 판정하지 않았습니다. (🔄 #3997 · #4015 — `notSelectedCount` 가 1 이상일 때 표 위에 경고 색 없이 적는다)
바꾼 값이 판정에 남는다 — 기본값과 다른 값으로 판정하면 그 라인의 「사유 / 권고」 칸에 무엇을 얼마로 바꿨는지 적히고, 표에 그 라인이 실제로 쓴 세 값이 열로 선다. 기본값 그대로면 적지 않는다(모든 줄에 같은 말이 붙으면 읽히지 않는다). 「누가 어떤 값으로 통과시켰나」가 남지 않으면 구조검토 기록으로서 쓸모가 없다.
건물 전체 높이는 한 번, 창 높이는 고른 부호에만 (🔄 #3997) — 둘 다 1 이상 2,147,483,647 이하의 정수(mm)이고(위끝을 넘으면 칸 아래에 「2,147,483,647 이하의 정수(mm)로 넣어 주세요 — 저장할 수 있는 가장 큰 수입니다.」, #2386), 창 높이는 건물 전체 높이를 넘을 수 없다(넘으면 「창 높이가 건물 전체 높이(42000 mm)보다 높을 수 없습니다.」 · 같으면 받는다). 창 높이를 비우면 건물 전체 높이로 판정한다. [재평가] 는 고른 부호의 라인을 빠짐없이 싣는다 — 탭 머리 줄 라인 필터와 상관없다. 고른 부호가 없으면 표 자리에 「구조검토할 부호를 골라 주세요.」를 적고 [재평가] 를 잠근다(말풍선 「구조검토할 부호를 하나 이상 골라 주세요.」). 고른 것을 푼 부호는 다음 [재평가] 에서 빠지고 서버가 「고르지 않음」으로 돌린다. 옛 견적처럼 라인마다 건물 높이가 갈려 있으면 빈 칸 아래에 「라인마다 다른 건물 높이가 담겨 있습니다 — 한 값을 넣고 [재평가] 하면 고른 부호 전부가 이 값으로 바뀝니다.」를 적는다. 라인마다 두 칸 + [모든 라인에 넣기] (#2282)
13보강 자재 — 구조검토가 고른 것 (#3822 · 보강을 낸 라인이 있을 때만 선다)
부호위치보강 자재본수 · 길이중량 (kg)구성표넣을지
AW-1왼쪽에서 7번째 멀리언 · 중앙스틸보강 50*100*2.3T TMP-STL-R0571 본 · 5,580 mm29.30넣음넣음 ▾
AW-2왼쪽에서 1번째 멀리언 · 외곽45*130*2T][ 자재 없음1 본 · 4,180 mm—못 넣음 — 자재 마스터에 이 보강재 품목이 없습니다—
합계 — 보강 멀리언 2본 · 29.30 kg(부호 개소 수는 곱하지 않는다 — 조달 서식이 곱한다). 칸은 서버 lines[].reinforcement 를 그대로 읽는다. 고치는 것은 「넣을지」 하나다 — [재평가] 때 reinforcementMode 로 싣는다. 확정된 라인이 확정본과 다르면 그 줄에 「확정본과 다릅니다 — 확정을 풀고 다시 확정해야 반영됩니다」를 적고 고르개를 잠근다.
상태 variant: empty · loading · error · frozen(라인 확정 시 여유율 입력·재계산 잠금).
새 단추 (#2112 — 정본 「이탈」 행)견적 상세로자리: 머리줄
SCR-ES-007섹션 일괄 변경 /…/estimates/:estimateId/bulk풀Figma: node 1431:9590

ES-003 에서 인계받은 섹션 집합에 동일 변경(제품·치수·옵션)을 4단계 스텝퍼(대상 확인 → 변경 입력 → 검증·미리보기 → 적용)로 적용. 전건 검증 통과 후에만 단일 트랜잭션 일괄 UPDATE(all-or-nothing).

진입 — SCR-ES-003 선택 후 [일괄 변경].

다음 단계 — [적용] 뒤 [섹션 허브로 돌아가기] → SCR-ES-003 (as-built).

  1. 스텝퍼 — 대상 확인→변경 입력→검증·미리보기→적용 4단계 진행을 표시.
  2. 대상 확인 — 일괄 변경 대상 섹션 집합(존·제품 조건)을 확인.
  3. 변경 항목 — 이번에 적용할 변경 내용(예 W×H 값)을 표시.
  4. 검증 결과 표 — 대상 전건의 개별 검증 통과 여부.
  5. 적용 — 전건 검증 통과 시에만 단일 트랜잭션으로 일괄 반영(all-or-nothing).
관련 API Swagger UI ↗
  • POST/api/es/estimates/{estimateId}/sections/bulk-change — 전건 검증 + 일괄 변경(change-set 이력 — 이력 조회는 GET .../change-sets, 사전 확인은 .../bulk-change/preview)
프로젝트  ›  프로젝트 상세  ›  견적 탭  ›  견적 버전 목록  ›  견적(버전) 상세 - 섹션 허브  ›  섹션 일괄 변경
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기

섹션 일괄 변경

검증 실패 1건
1① 대상 확인—② 변경 입력—③ 검증·미리보기—④ 적용

2대상 12섹션 (존: B, 제품: DHS-AE160-D-1) [1]
3변경 항목: W×H 1200×900 → 1400×1100
부호항목변경 전변경 후4검증
WD-B-001W×H1200×9001400×1100통과
WD-B-003W×H1200×9001400×1100통과
WD-B-007W×H1200×9001400×1100치수 범위 초과 — 1300×1000 이하로 수정
… 외 9건W×H1200×9001400×1100통과
1건이라도 실패 시 전체 미적용 (all-or-nothing) — 입력을 수정한 뒤 재검증하세요.
이전5적용
③ 검증·미리보기 시점 예시 — WD-B-007 치수 범위 초과 1건으로 [적용] 비활성(§4.9). 상태 variant: empty · loading · 전건 통과(적용 활성) · error(검증 위반 — 실패 행 강조 + all-or-nothing 배너) · error(시스템 오류) · freeze-conflict(낙관적 락 충돌). 일괄변경 1회당 change_set_id 단일 history.
SCR-ES-016견적서 — 식별번호별 단가·할증·공차 (목록) /…/estimates/:estimateId/pricing표준

📌 #3890 결정 (2026-10-22, 사용자 결정 · 확인 질문 여덟 가지 결정 반영 · ✅ 서버 반영 41a8d305 · 63b0b607 · bf8fa91f · ✅ 화면 반영 PR #1431 d4285f9f) — 기존 시스템 프로젝트 > [견적서] 탭과 같은 모양이다. 식별번호 한 개가 한 줄이고 칸은 식별번호 · 모델명 · 설계중량 · 제작공차 · 단위중량 · 단가 · 단가조정 · 중량화 · 견적금액 차례다. 제작공차 · 단위중량 · 단가 · 단가조정 네 칸을 줄 안에서 바로 고치고 [계산하기] 로 저장하고 다시 셈한다. 오른쪽에 「견적 중량 및 금액」과 「실행 예산」 카드. 조달 가격 모드(식별번호 줄이 있는 견적)의 모양이다 — 원가 가산 모드는 아래 「이전 배치」 프레임에서 치수 공차 표만 뺀 모양이다. 정본 DE22-1 §08 §4.10 「#3890 결정」 상자.

진입 — SCR-ES-003 견적 상세 하단 [견적서](조달 가격 모드 — 종전 이름 [단가·할증·공차]) 를 누르면 이 목록이 열린다. 캔버스 마지막 섹션 [다음 단계: 단가·할증·공차 →], 견적서 미리보기 「단가 없는 식별번호」 안내 단추, 계약 지정 창 빈 항목 줄 단추도 여기로 온다.

다음 단계 — 식별번호 · 모델명 글자 → 상세 「단가/ 할증 / 공차 설정」(아래 프레임) · [견적서 받기 ↓] → 엑셀 내려받기 · [실행예산 조회] → SCR-ES-008 · [견적 상세로] → SCR-ES-003.

  1. 계산하기 — 줄에서 고친 값을 저장하고(PUT .../pricing) 서버가 다시 셈한 표를 그린다. 기존 견적서 탭처럼 따로 저장 단추가 없다. 고친 줄은 계산 전까지 설계중량 · 중량화 · 견적금액을 흐리게 두고 「계산하기를 누르면 다시 셉니다」를 적는다. 저장 요청은 줄마다 네 칸과 중량화 항목을 늘 싣는다 — 지금 화면이 단위중량 · 단가조정을 빠뜨려 지우던 결함을 함께 고친다(결정 ⑧).
  2. 견적 기본값 — 제작공차 기본값(1.05, 비울 수 없음 #3889)과 개소당 중량 끝자리(기본 반올림). 줄 제작공차를 비우면 이 값을 흐리게 보인다.
  3. 식별번호별 견적 표 — 기존 견적서 탭의 칸 이름 그대로. 괄호 값은 비운 칸의 밑값. 설계중량 = 엑셀 구매현황 「구매중량」, 중량화는 설계중량 안에 이미 든 몫, 견적금액 = 설계중량 × 단가 × 단가조정. 단가조정 1.02 는 2 % 할증. 엑셀 구매내역에는 금액 줄로 나오고 줄 이름은 1 보다 작으면 「대량구매할인」, 크면 「할증」이다(결정 ⑥). 망 계수 칸은 없다(#3890 걷음). 계약단가 (#3845 · #3853 기획 결정 2026-10-23 · ✅ 화면 반영 PR #1451 `3df90736`) — 빈 단가 칸은 계약단가를 흐린 자리표시 「계약 14,300」으로만 보인다. 값이 아니라서 셈 · 저장에 쓰지 않는다(값으로 채우면 손대지 않은 줄까지 저장돼 조달 가격 모드로 넘어간다 — #2330). 칸에 넣으려면 견적 기본값 줄 오른쪽 [빈 단가에 계약단가 넣기 (n)] 를 누른다(빈 칸만 채움, 넣을 칸이 없으면 숨김). 칸 값이 계약단가와 다르면 칸 아래 「계약단가 {값}원과 다릅니다」를 흐리게 적는다. 인증 기한이 지난 식별번호(응답 certExpired)는 제품식별번호 아래 빨간 「인증 기한 지남 (~{종료일})」 — 저장은 막지 않는다.
  4. 표 아래 문장 — 기존 문구를 살리되 실제 셈에 맞춘다. 끝자리 기본은 반올림이고, 문장의 「반올림」 자리는 견적 기본값의 끝자리 칸이 버림이면 「버림」으로 바뀐다(결정 ②). 기존 화면의 「절삭」은 쓰지 않는다.
  5. 견적 중량 및 금액 · 실행 예산 — 총 견적 중량(설계중량 합) · 총 견적(V.A.T 포함) · [견적서 받기 ↓]. 실행 예산 카드는 견적 실행 예산 · 실행율 · [실행예산 조회](SCR-ES-008). 실행율은 새로 셈하지 않고 SCR-ES-008 의 실행율과 같은 값을 그대로 쓴다(결정 ⑦). 실행예산 조회가 403 이면 카드를 감춘다.
  6. 걷은 것 — 치수 공차(mm) 표 · 망 계수 칸 · 조달 가격 모드의 할증 항목 표 · 마진율 · 머리 제품 단가/단가 조정 · 절단 길이 「부재 그룹별 중량」 표. [견적확정] 은 두지 않는다 — 확정은 SCR-ES-003 의 검토 승인 · 계약 지정이 맡는다(결정 ⑤).
관련 API Swagger UI ↗
  • GET/api/es/estimates/{estimateId}/pricing — 견적 기본값 두 칸 · 식별번호 줄(단가 · 단가조정 · 제작공차 toleranceFactor(#3890 새 이름, ✅ 서버 V569) · 단위중량)과 셈 결과(설계중량 purchaseWeightKg · 중량화 conversionWeightKg · 견적금액 amount)
  • PUT/api/es/estimates/{estimateId}/pricing — [계산하기]. 전체 교체라서 줄의 단가 · 단가조정 · 제작공차 · 단위중량 · 중량화 항목과 감춘 칸(할증 · 치수 공차 · 마진율)도 받은 값 그대로 다시 싣는다(결정 ⑧)
  • GET/api/es/estimates/{estimateId}/export?format=xlsx — [견적서 받기 ↓] (견적서 미리보기의 내려받기와 같은 주소)
  • GET/api/es/estimates/{estimateId}/budget — 실행 예산 카드 (403 이면 감춤)
프로젝트  ›  프로젝트 상세  ›  견적 탭  ›  견적 버전 목록  ›  견적(버전) 상세  ›  견적서 (단가·할증·공차)
CMD+K 검색
🔔3
방학중 체육관 전면보수공사목록으로 돌아가기

견적서

v.2설계 확정견적 상세로1± 계산하기
2견적 기본값제작공차 기본값1.05개소당 중량 끝자리반올림 (소수 둘째 자리) ▾빈 단가에 계약단가 넣기 (1)
3식별번호모델명설계중량제작공차단위중량단가단가조정중량화견적금액
25306603U-P-CW178-3S
178mm, 단열커튼월
1,458.401.05118,200
계약단가 18,500원과 다릅니다
10.0026,542,880
25287444U-P-CPJ-3S346.081.051.0117,0001196.085,883,360
25242859U-P-SM224-B-S876.961.05117,6001.0215.4415,743,186
23165728
인증 기한 지남 (~2026-03-31)
DHS-SC-135.921.05115,50014.48556,760
4* 이 페이지에서 보여지는 수치는 중량산출 서식에 맞춰 개소마다 소수점 둘째 자리에서 반올림하여 계산된 수치입니다. (흐린 값은 비운 칸의 밑값입니다.)
5견적 중량 및 금액
총 견적 중량2,717.36 kg
총 견적 (V.A.T 포함)48,726,186 원
견적서 받기 ↓
실행 예산
견적 실행 예산28,317,352 원
실행율63 %
실행예산 조회
상태 variant: 고친 줄(계산 전 — 셈 칸 흐림) · 단가 빈 줄(단가 칸에 흐린 「계약 14,300」 자리표시, 견적금액 「—」 — 계약단가가 없으면 「비어 있음」) · loading · error · 조회 전용(입력칸 잠김, [계산하기] 없음) · 확정 견적(잠김 — 409 PRICING_ESTIMATE_LOCKED).
SCR-ES-016단가/ 할증 / 공차 설정 (식별번호 상세) /…/estimates/:estimateId/pricing/models/:procurementModelCode표준

📌 #3890 결정 (확인 질문 여덟 가지 결정 반영 · ✅ 서버 · 화면 반영, 1개소 중량 sectionWeights[] 만 ⏳ 서버 미반영 — 화면이 member-weights 로 셈) — 기존 시스템 「단가/ 할증 / 공차 설정」 화면 배치 그대로다. 식별번호 하나를 연다. 왼쪽 개소(부호 x 수량) 목록과 개소 검색 필터, 가운데 제품 칩과 부재 표(구분 · 부재명 · 길이 · 수량 · 단중 · 중량, 묶음마다 「중량 계」), 오른쪽 「제품 견적 내역」과 「설정」 네 칸(제품 단가 · 단가 조정 · 제작 공차 · 단위 중량, 칸마다 ↻)과 [적용하기]. 머리에 [저장하기] 와 마지막 수정 표시.

진입 — 위 목록(SCR-ES-016 견적서)에서 식별번호나 모델명 글자를 누르면 그 식별번호로 열린다. 주소에 ?site=부호 가 붙으면 그 개소를 고른 채 연다.

다음 단계 — [← 견적서] → 목록 · [조달구매내역 확인] → SCR-ES-009 견적서 미리보기의 구매내역(이 식별번호 묶음 자리) · [저장하기] 뒤 그 자리에 남는다.

  1. 저장하기 — 목록 [계산하기] 와 같은 저장(PUT .../pricing). 바뀐 것이 없으면 흐리다. 곁에 「{이름}님이 {날짜}에 마지막으로 수정」(✅ 서버 pricingUpdatedByName — 견적 행의 마지막 수정자).
  2. 개소 목록 — 이 식별번호를 쓰는 부호만 「부호 x 수량」으로. 개소 검색 필터로 거른다. 처음에는 첫 개소를 고른다.
  3. 설정 네 칸 — 목록 줄의 네 칸과 같은 값이다. 「제품 단가」는 이 식별번호의 단가다. ↻ 는 밑값으로 되돌린다(제품 단가 → 계약단가, 단가 조정 → 1, 제작 공차 → 견적 기본값, 단위 중량 → 1). #3853 — 빈 「제품 단가」 칸은 계약단가를 흐린 자리표시 「계약 14,300」으로만 보이고(셈 · 저장에 안 씀), 칸 값이 계약단가와 다르면 칸 아래 「계약단가 {값}원과 다릅니다」를 흐리게 적는다. 왼쪽 위 제품식별번호 아래에는 인증 기한이 지났을 때 「인증 기한 지남 (~{종료일})」을 단다(✅ 화면 반영 PR #1451 `3df90736`).
  4. 적용하기 — 네 값으로 미리 셈만 한다(결정 ④ — POST .../pricing/preview, 몸은 저장과 같고 DB 에 쓰지 않는다, 권한은 저장과 같다). 셈 한 줄 · 제품 견적 내역 · 1개소 중량이 바뀐다. 부재 표의 줄 값은 저장 뒤에 바뀐다(단위 중량을 고친 채면 표 머리에 안내 한 줄). 저장하지 않는다 — 돌아가면 목록 줄에 「저장 안 함」 표시가 남는다.
  5. 중량화 항목 — 이 식별번호의 항목(항목명 · 한 개 금액 또는 한 개 kg · 고른 개소의 개소당 수량). 지금 「중량화 금액 항목」 표를 식별번호마다 여기로 옮긴다.
  6. 제품 칩 — 고른 개소 안에서 이 식별번호에 대응하는 견적 라인들. 누르면 그 제품의 부재만 보인다.
  7. 부재 표 — 견적서 중량산출 서식과 같은 공칭 길이 셈(절단 길이 아님). 중량은 제작공차를 곱하기 전 값. 끝 묶음 「중량화」. 표 아래 「개소당 중량 = 부재 중량 계 × 제작공차 + 중량화」 한 줄.
관련 API Swagger UI ↗
  • GET/api/es/estimates/{estimateId}/member-weights?procurementModelCode=&sectionCode= — 개소 목록 · 부재 표 · 중량화 줄 (#3890 거르는 값 둘, ✅ 서버 반영)
  • GET/api/es/estimates/{estimateId}/pricing — 설정 네 칸 · 중량화 항목 · 제품 견적 내역 · 1개소 중량(⏳ sectionWeights[] 서버 미반영 — 지금은 화면이 member-weights 로 셈) · 마지막 수정(✅ pricingUpdatedByName)
  • POST/api/es/estimates/{estimateId}/pricing/preview — [적용하기] 미리 셈 (#3890 결정 ④ 신설, ✅ 서버 반영 — 요청 = PUT 몸, 응답 = GET 모양의 셈 칸, DB 안 씀, 권한 = GET 과 같음(권한 = PUT ⛔ 뒤집힘))
  • PUT/api/es/estimates/{estimateId}/pricing — [저장하기]
프로젝트  ›  프로젝트 상세  ›  견적 탭  ›  견적 버전 목록  ›  견적(버전) 상세  ›  견적서 (단가·할증·공차)  ›  단가/ 할증 / 공차 설정
CMD+K 검색
🔔3
방학중 체육관 전면보수공사목록으로 돌아가기

← 견적서   단가/ 할증 / 공차 설정

김성현님이 2026-10-22 에 마지막으로 수정1저장하기
225306603
U-P-CW178-3S
개소 검색 필터
개소수량
▶ AW02Ax4
ACW01Ax2
AW01Ax24
6우수-177mm, 삼중커튼월(v1)롤 방충망
7구분부재명길이수량단중중량
노출 트랜섬
가로M-176 노출 트랜섬 | 3.0T120024.0379.689
중량 계9.689
노출 멀리언
세로M-177 노출 멀리언 | 3.0T150023.41010.230
중량 계10.230
중량화 (이 개소 없음)
개소당 중량 = 부재 중량 계 20.691 × 제작공차 1.05 + 중량화 0.00 = 21.73 kg (반올림). 부재 중량은 제작공차를 곱하기 전 값입니다.
5중량화 항목 — 이 식별번호 ▾
항목명한 개 금액 (원)한 개 kg이 개소 개소당 수량삭제
항목이 없습니다.
항목 추가
제품 견적 내역
제품 견적 중량1,458.40 kg
고른 개소(AW02A) 1개소 중량21.73 kg
제품 견적 금액26,542,880 원
조달구매내역 확인
3설정
제품 단가 ↻18200
계약단가 18,500원과 다릅니다
단가 조정 ↻1
제작 공차 ↻1.05
단위 중량 ↻1
4적용하기
상태 variant: 적용 후 저장 전([저장하기] 진하게) · 개소 없음 · 미확정 라인(부재 표 대신 안내 한 줄) · 조회 전용(설정 잠김, 단추 없음).
SCR-ES-016단가·할증·공차 설정 — 이전 배치 (원가 가산 모드) /…/estimates/:estimateId/pricing표준Figma: node 1523:5178

⛔ 조달 가격 모드에서는 위 두 프레임(#3890)으로 대체 — 이 그림은 원가 가산 모드(식별번호 줄이 없는 견적)의 모양으로 남긴다. 원가 가산 모드에서도 「치수 공차」 표는 걷는다(#3890). 단계 ⑥ 검토 — 위쪽 3분할(좌 섹션(부호×수량) · 중 부재 그룹별 중량 표 + 제목 줄의 제품 고르는 칸 · 우 제품 견적 내역 + 마진율 칸 — 📌 #3691 로 시공비율·기타비율은 뗌)과 아래쪽 할증 항목 표·치수 공차 표, 맨 아래 중량화 금액 항목 표(#2292). 우측 설정 폼 아래에 견적서 전용 조달 서식 중량 계산 두 칸(조달 제작공차·개소당 중량 끝자리, #2292)을 둔다. 상단 배지는 이 제품에 연결된 조달계약 제품식별번호를 보여준다. 저장은 보낸 목록으로 전부 갈아끼우는 방식이라 표에서 행을 빼는 것이 곧 삭제다. 가격 계층은 BOM 산출 계층과 분리(RESOLVED_BOM 무변경).

진입 — SCR-ES-003 하단 [단가·할증·공차](원가 가산 모드) / 단계 6 검토. 조달 가격 모드는 [견적서] 로 위 목록 프레임에 간다.

다음 단계 — [저장하기] 뒤 [견적서 미리보기 →] → SCR-ES-009 (저장 안 한 편집이 없을 때 주 단추) · [견적 상세로] → SCR-ES-003 (#2109 ⑬).

  1. 저장하기 — 화면의 값을 한 번에 저장한다. 별도 [적용하기] 버튼은 없다.
  2. 제작용 사본 모드 — 현장담당이 고친다 (📌 #3656 결정 2026-10-20 · ✅ 화면 반영 #3655 0a8c9884) — 사본 견적이면 [저장하기] 는 그 프로젝트의 현장담당과 관리자에게만 보인다. 현장담당이 아닌 관리자에게는 「관리자 대리 — 사유 필수」 표시와 필수 사유 칸을, 현장담당에게는 비워도 되는 사유 칸을 둔다. 설계팀에게 사본은 읽기 전용이다(서버 403 BATCH_NOT_SITE_MANAGER). 머리 안내 「제작 도면 금액 — 현장 관리용 참고 값입니다. 견적서 · 계약 · 경영 집계에는 들지 않습니다.」와 [변경 기록](「금액 변경 기록」 창, project.html #f11c 와 같은 창)을 둔다. 견적 역할이 없는 현장담당이 열면 섹션 목록 · 부재 중량 표 · 제품 고르는 칸을 감추고 설정 폼 · 할증 · 공차 · 조달 단가 · 중량화 항목 · 금액 줄만 보인다. 들어오는 길은 현장 관리 [견적 정보] 탭의 [단가 · 할증 · 공차 고치기] 다. 종전 #3652 의 「관리자에게도 저장 단추를 감춘다」는 뒤집혔다. 정본 DE22-1 §08 #3053 상자의 #3656 불릿.
  3. 세 영역의 조회 — 섹션 목록은 섹션 목록 조회, 부재 그룹별 중량은 확정 자재 구성표 조회, 제품 견적 중량은 견적 합계 조회로 그린다. 셋 다 실제 조회다. 제품 견적 금액은 금액 조회(GET .../amount)의 quoteAmount 를 보인다(#2099 — 종전 「준비 중」) — 부가세 별도라 칸 이름을 「제품 견적 금액 (VAT 별도)」로 적는다. 제품 단가가 비면 값 아래 「제품 단가(원/kg)를 넣어야 금액이 나옵니다.」를 적고, 넣을 칸이 이 화면에 있어 이동 단추는 두지 않는다. [저장하기] 뒤에 다시 부른다. 부재 표는 줄을 종류로 거르지 않는다 — 절단 길이나 중량이 있는 반제품 줄도 담고(미서기는 널링 반제품 줄에 절단 길이·단중이 실린다), 수량 칸은 펼친 수량이다(#2099).
  4. 설정 — 마진율 한 칸 (📌 #3691 결정 2026-10-20 · ⏳ 서버·화면 반영 전) — 마진율이 계약 IF-ES-PRICING-001 이 주고받는 값이다. 시공비율·기타비율·마진율 비율 3칸 ⛔ 뒤집힘 (#3691 — 시공비율·기타비율 두 칸을 뗀다). 제작비·시공비는 비율이 아니라 제품 마스터의 제작 단가·시공 단가 × 셈량(EA 개수 또는 KG 중량)으로 자동 계산한다. 정본 DE22-1 §08 SCR-ES-016 「📌 #3691 결정」 상자 · DE24-1 §5.4.27.
  5. 설정 — 조건부 2칸 (as-built #1740·#1741, 2026-09-03) 제품 단가·단가 조정 두 칸은 계약 IF-ES-PRICING-001 에 자리가 생겨 조달 라인이 하나라도 있는 견적에서 열린다(R-ES016-PRICE-MODEL — #1718 이 커튼월로 열었고 #1769·#1788 이 조달 여부로 넓혔다). 곱한 값은 끝값이 아니라 자재비 자리로 들어가고 시공·기타·마진 비율이 그 위에 붙는다 ⛔ 뒤집힘 (#3691) — 그 위에 제작비·시공비(제품 단가 × 셈량)와 마진율이 붙는다. 조달 라인이 없으면(또는 못 읽었으면·제품 0건이면) 잠근 채 까닭을 문장으로 보인다. 제작 공차·단위 중량 두 칸은 화면에서 뺐다 — 공차(lossRate)가 부재마다 이미 곱해져 있어 화면에서 또 곱하면 같은 5%가 두 번 붙고, 단중은 자재 마스터가 정본이다. 나머지 제품군도 정해졌다 — 모두 중량 기반이고, 가르는 축은 제품군이 아니라 조달(관급) 여부다(#1739 결정 · 서버 반영 #1778). ✅ 화면도 새 축을 따른다 — 가격 응답의 hasProcurementLine 을 읽는다(#1788 as-built, 2026-09-07).
  6. 할증 항목 표 — 입력 방식에서 비율·금액을 고르면 값 칸을 하나만 받는다. 표에서 행을 빼는 것이 곧 삭제다.
  7. 치수 공차 표 — 치수 구분은 견적 라인의 치수 변수 이름(W·H)이다.
  8. 중량화 금액 항목 표 (#2292 C-14 신설) — 식별번호마다 하드웨어·롤 방충망 같은 금액 항목을 항목 이름과 한 개 금액으로 적는다. 항목을 고르면 오른쪽 「부호별 개소당 수량」 표가 열린다 — 부호마다 개소당 수량을 적고 적지 않은 부호는 1(0 이면 더하지 않는다). 부호마다 개소 수(견적서 구매내역의 수량)와 더해지는 kg 을 보기 전용으로 함께 보이고, 표 아래에 「개소」의 뜻을 알린다(#3286). 서버가 한 개 금액을 그 식별번호 단가(원/kg)로 나눠 한 개 kg(소수 둘째 자리 반올림)으로 바꾸고 부호마다 수량을 곱해 견적서 중량에 더한다. 「한 개 kg」 칸은 입력 칸이다(#3396) — 한 줄에 한 개 금액과 한 개 kg 가운데 하나만 넣고, 한쪽에 값이 있으면 다른 칸을 막는다. 「식별번호」 칸은 #2293 이 이 화면에 두는 식별번호 단가 표의 행에서 고른다. 종전 「금액 가산 대 중량 환산 분기」는 중량화 표를 잘못 읽은 것이었다(#2292 A-1).
  9. 제품 고르는 칸 — 가운데 표는 제품(견적 라인) 한 건의 부재를 보여 주므로 제목 줄에서 제품을 고른다. 한 줄에 순번·제품명·확정 여부를 적는다. 라인이 한 건이면 자동으로 고르고 여러 건이면 사람이 고른다. 주소로 바로 열리는 검토 화면이라 진입 순간 선택 창을 띄우지 않는다(§4.7 이동 규약과 갈리는 자리다).
  10. 표를 비워 두는 두 경우 — 아직 고르지 않았으면 「제품을 선택하면 부재별 중량이 표시됩니다.」, 미확정 라인을 골랐으면 「라인을 확정하면 부재별 중량이 표시됩니다.」로 안내한다. 미확정 라인은 확정 자재 구성표가 아직 없어 조회하지 않는다.
  11. 조달 서식 중량 계산 두 칸 (#2292 C-15 신설) — 견적서(조달 서식) 중량에만 쓴다. 조달 제작공차(계수, 밑값 1.05)는 공칭 길이 셈의 형재 중량에 곱하고, 개소당 중량 끝자리(반올림·버림, 소수 둘째 자리, 밑값 반올림)는 부호 블록의 개소당 중량을 닫는다. 아래 한 줄로 「견적서의 부재 길이는 공칭 길이(도면 치수, 공제 없음)로 계산합니다. 절단·발주 중량은 바뀌지 않습니다.」를 알린다. 조달 라인이 하나라도 있으면 연다. 뺀 「제작 공차」 칸(lossRate)과 다른 칸이다 — 공칭 셈에는 lossRate 가 들지 않아 두 번 붙지 않는다.
  12. 식별번호 단가 표 (#2293 C-9 신설) — 한 행이 식별번호 하나다(모델명 · 품명 · 제품식별번호 · 단가 원/kg 부가세 포함 · 쓰는 라인). 모델명·품명·번호는 식별번호 마스터에서 읽어 보이기만 하고 사람은 단가와 망 계수(#3396, 비우면 1 · 0~99.9999)를 넣는다. 행은 이 견적 라인들이 대응하는 식별번호마다 서버가 먼저 세운다. 단가가 빈 행은 「(비어 있음)」이고 그 모델 금액이 빈다. 📌 #3834 결정 — 「식별번호별 견적 표」로 넓힌다: 제품식별번호를 맨 앞에 두고 줄마다 제작공차(비우면 견적 조달 제작공차 · 응답 memberWeightFactor) · 단위중량(unitWeightFactor, 비우면 1) · 단가 · 단가조정(priceAdjustFactor, 비우면 1)을 넣는다. 구매중량 · 그중 중량화 · 견적금액은 서버가 셈한 보기 전용 칸이다. 그중 중량화는 구매중량 안의 몫이라 금액에 다시 더하지 않는다. [계산하기] · [견적확정] 단추는 두지 않는다 — [저장하기] 가 저장하고 다시 셈하고, 확정은 견적 상세 검토 승인 절차가 맡는다. ⏳ 서버 · 화면 반영 전.
  13. 조달 가격 모드 (#2293) — 단가 표에 행이 하나라도 있으면 제품 단가·단가 조정 두 칸을 잠그고 「식별번호 단가 표가 이 견적의 금액을 정합니다.」를 적는다. 우측 금액 줄은 「견적 총액 (V.A.T 포함)」·「공급가액 (재계산)」 두 줄이다. 단가 표 아래에 「조달 단가는 부가세 포함 단가입니다. 1.1 로 나누지 말고 계약 단가 그대로 넣으세요 — 총액에 부가세를 다시 붙이지 않습니다.」를 적는다. 할증 줄 아래에는 「조달 가격 모드에서는 할증이 견적 총액에 들지 않습니다」를 적는다. 모드는 응답 pricingMode 로 가른다.
  14. 실행 예산 패널 (📌 #3834 신설) — 오른쪽 아래에 실행 예산(항목별 계획 원가의 합) · 실행률과 [실행예산 보기 →](SCR-ES-008)를 둔다. 값은 실행예산 조회에서 읽는다. 그 조회가 403 이면 패널을 감추고, 확정 전이면 「견적을 확정한 뒤 실행예산을 넣습니다.」만 적는다. ⏳ 화면 반영 전.
관련 API Swagger UI ↗
  • GET/api/es/estimates/{estimateId}/sections — 좌측 섹션(부호 × 수량) 목록 조회
  • GET/api/es/estimate-lines?estimateId={estimateId} — 제품 고르는 칸에 담을 견적 라인 목록 조회 (순번·제품명·확정 여부)
  • GET/api/es/estimate-lines/{lineId}/resolved-bom — 부재 그룹별 중량 표 데이터 조회. 고른 라인이 확정 상태일 때만 부른다
  • GET/api/es/estimates/{estimateId}/summary — 우측 제품 견적 중량 조회
  • GET/api/es/estimates/{estimateId}/amount-history?target=PRICING — 📌 사본 모드 [변경 기록] 창 (#3656 신설, ⏳ 서버 반영 전)
  • GET/api/es/estimates/{estimateId}/amount — 우측 제품 견적 금액 (VAT 별도) 조회 (§5.4.27 IF-ES-AMOUNT-001, #2099). productUnitPriceMissing 이 참이면 제품 단가 안내를 적는다
  • GET/api/es/estimates/{estimateId}/budget — 실행 예산 패널의 실행 예산 · 실행률 조회 (§5.4.17 IF-ES-BUDGET-001, 📌 #3834). 403 이면 패널을 감춘다
  • GET/api/es/estimates/{estimateId}/pricing — 저장돼 있는 마진율(비율 3종 ⛔ #3691)·할증 목록·공차 목록에 더해 제품 단가·단가 조정(#1740 as-built) 조회. 조달 제작공차 procurementToleranceFactor·끝자리 procurementWeightRounding 은 (#2292 신설 · #2314 서버 반영·#2315 화면 반영) 📌 #3834 — 단가 표 한 행에 unitWeightFactor · priceAdjustFactor(저장값)와 응답 전용 toleranceFactorApplied · unitWeightFactorApplied · priceAdjustFactorApplied · appliedUnitPrice · purchaseWeightKg · conversionWeightKg · amount 가 실린다(✅ 서버 반영 · #3846 3886e17b)
  • PUT/api/es/estimates/{estimateId}/pricing — [저장하기] — 마진율(시공비율·기타비율 ⛔ #3691 로 뗌, ⏳ 서버 반영 전)·제품 단가·단가 조정과 할증·공차 목록 저장. 보낸 목록으로 전부 갈아끼운다. 조달 서식 셈 두 칸도 함께 보낸다 (#2292 신설 · #2314 서버 반영·#2315 화면 반영). 식별번호 단가 표 procurementPrices[](부가세 포함 원/kg)도 함께 보낸다 (#2293 신설 · #2314 서버 반영·#2315 화면 반영). 그 행마다 매단 중량화 금액 항목은 weightConversionItems[]{ label, unitAmount, sortOrder, sectionQuantities[]{ sectionId, qtyPerPiece } } 다(DE24-1 §5.4.15 「조달 서식 중량 셈」 ① · 「조달 단가」 절 ⑥, BE 소스 `EstimatePricingDtos.kt` `WeightConversionItemDto` 실측). 📌 #3834 — 단가 표 한 행에 memberWeightFactor(제작공차) · unitWeightFactor(단위중량) · priceAdjustFactor(단가조정)를 함께 싣는다. 전체 교체라 조회로 받은 값을 빼면 지워진다(⏳ 서버 반영 전)
프로젝트  ›  프로젝트 상세  ›  견적 탭  ›  견적 버전 목록  ›  견적(버전) 상세  ›  단가·할증·공차 설정
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기

단가·할증·공차 설정

조달계약 — 제품식별번호 253047801저장하기
2섹션 (부호 × 수량)
부호수량
AW091
AW121
AAW0127
부재 그룹별 중량81. 140 미서기창(V1) (확정) ▾
그룹부재명길이수량단중중량
프레임140 잔넬프레임180023.40912.27
프레임140 잔넬중간프레임180012.093.76
부자재프레임 가네고—4—1.21
방충망방충망 그물 (M2)-2—0.48
9아직 고르지 않았거나 미확정 라인을 고르면 표 자리에 안내 한 줄만 띄운다. 면적(M2) 자재는 길이 칸을 - 로 둔다(#2656).
제품 견적 내역
제품 견적 중량7,406.370 kg
제품 견적 금액 (VAT 별도)₩ 193,031,463.58
조달 가격 모드에서는 맨 위에 「총 견적 중량」(식별번호별 견적 표 구매중량의 합)을 두고 「견적 총액 (V.A.T 포함)」 · 「공급가액 (재계산)」 두 줄을 그린다 (#2293 · #3834)
13실행 예산 (#3834)
실행 예산₩ 251,300,000
실행률87.2 %
실행예산 보기 →
3설정 (가격 계층 — BOM 무변경)
시공비율 (%) 12 · 기타비율 (%) 3 ⛔ 뒤집힘 (#3691) — 두 칸을 뗐다. 제작비·시공비는 제품 단가 × 셈량으로 자동 계산한다(⏳ 화면 반영 전).
마진율 (%)10
4조달 라인이 하나라도 있으면 아래 두 칸이 열린다(#1769 결정 · #1788 as-built — 처음 연 것은 #1740·#1741 의 커튼월 축이었다). 없으면 잠긴 채고 까닭이 보인다.
제작 공차·단위 중량 두 칸은 화면에서 뺐다 — 공차는 자재 구성표가 부재마다 반영하고, 단중은 자재 마스터 값을 쓴다.
제품 단가 (원/kg)19,500
단가 조정 (계수)1
10조달 서식 중량 계산 (견적서 전용 · #2292)
조달 제작공차 (계수)1.05
개소당 중량 끝자리반올림 (소수 둘째 자리) ▾
견적서의 부재 길이는 공칭 길이(도면 치수, 공제 없음)로 계산합니다. 절단·발주 중량은 바뀌지 않습니다.
5할증 항목
항목 코드항목 라벨입력 방식값삭제
NIGHT_SHIFT야간 작업 할증비율5삭제
TRANSPORT운반비금액1,200,000삭제
항목 추가
6치수 공차 ⛔ #3890 화면에서 걷음
치수 구분공차 (mm)삭제
W2삭제
H2삭제
항목 추가
11식별번호별 견적 표 — 식별번호 단가 (부가세 포함 · #2293 · 📌 #3834)
제품식별번호모델명품명구매중량 (kg)제작공차단위중량단가 (원/kg, 부가세 포함)단가조정망 계수그중 중량화 (kg)견적금액 (원)쓰는 라인
25287437U-P-CW189-24189mm, 단열커튼월641.601.05118,400110.0011,805,4402
25039678U-P-SM225-A225mm, 단열미서기이중창16.981.05116,800111.37285,2642
25039679U-P-SM225-B225mm, 단열미서기중연이중창3,000.001.05117,7000.9810.0052,038,0001
25039664U-P-SM225-D225mm, 단열미서기중중연이중창12,387.741.05118,000110.00222,979,3201
23165728DHS-SC-115mm, 방충망52.301.051(비어 있음)110.00—4
표의 중량은 견적서 중량산출 서식과 같은 셈입니다. 개소마다 소수 둘째 자리에서 반올림합니다. 단가조정은 금액만 바꾸고 중량은 바꾸지 않습니다. 흐린 값은 비운 칸의 밑값입니다(제작공차 = 견적 조달 제작공차, 단위중량 · 단가조정 = 1). 견적금액 = 구매중량 × (단가 × 단가조정, 원 단위 반올림). 저장하면 다시 셉니다. (#3834)
12조달 단가는 부가세 포함 단가입니다. 1.1 로 나누지 말고 계약 단가 그대로 넣으세요 — 총액에 부가세를 다시 붙이지 않습니다. 행은 이 견적 라인들이 대응하는 식별번호마다 서버가 먼저 세운다.
망 계수는 그 식별번호의 망 줄 kg(한 짝 면적 × 면적 단중)에 곱합니다. 비우면 1, 0 이면 망 중량을 세지 않습니다. 틀(형재) 줄과 중량화 항목에는 곱하지 않습니다. (#3396)
7중량화 금액 항목 (식별번호마다 · #2292)
식별번호항목 이름한 개 금액 (원)한 개 kg부호별 개소당 수량삭제
U-P-CW151H-3AL시트하드웨어400,00020.51AW12 2 · AW24 1 · AW13 8 · 그 밖 0삭제
U-P-HPJ-3롤방충망90,0005.06적지 않음 (모든 부호 1 — PJ 창 수는 개소 수에 이미 들어 있다)삭제
U-P-SM225-A스틸보강(한 개 kg 사용)11.2AW08 3삭제
항목 추가
부호별 개소당 수량 — AL시트하드웨어
부호개소 수개소당 수량더해지는 kg
AW121241.02
AW241120.51
AW1318164.08
그 밖의 부호—0—
개소 수는 견적서 구매내역의 수량입니다. 미서기·PJ 같은 창 라인 부호는 창 한 개가 한 개소이고, 커튼월 선 라인 부호는 부호 한 벌이 한 개소입니다. 넣은 수에 개소 수를 다시 곱하므로, 창 라인 부호에는 부호 안 창 수를 넣지 마십시오.
한 개 kg = 한 개 금액 ÷ 그 식별번호 단가(원/kg), 소수 둘째 자리 반올림. 더해지는 kg = 한 개 kg × 개소당 수량 × 개소 수. 적지 않은 부호는 1, 0 이면 더하지 않는다. 식별번호 칸은 #2293 식별번호 단가 표의 행에서 고른다.
상태 variant: empty(할증·공차 미등록) · loading · error · 조회 전용(편집 권한 없음) · 저장 중.
새 단추 (#2112 — 정본 「이탈」 행)견적서 미리보기 →자리: 머리줄견적 상세로자리: 머리줄
SCR-ES-009견적서 미리보기 /…/estimates/:estimateId/preview풀Figma: node 1541:7727

엑셀 출력 전 최종 검토 — 좌측 조달 서식 시트 탭 넷(겉지·구매현황·구매내역·중량산출 — 실물 시트 이름, #2304) 그리드 미리보기 + 우측 합계와 검증(산식 합계·중량 합산·미확정 경고). A4 PDF 아님.

진입 — SCR-ES-003 [견적서 받기](종전 이름 [견적서 미리보기], #3890 결정 ①).

다음 단계 — 설계중: [검토 제출하러 견적 상세로 →] → SCR-ES-003 (주 단추, [엑셀 출력으로] 는 둘째) · 확정·계약: [엑셀 출력으로] → SCR-ES-010 · 「단가 없는 자재」 → 단가 묶음 등록(같은 창 + returnTo) → [견적서 미리보기로 돌아가기] (#2109 ⑭ · #2107 11).

  1. 엑셀 출력으로 이동 — 검토를 마치면 견적서 출력(ES-010)으로 이동.
  2. 시트 탭 넷 — 겉지·구매현황·구매내역·중량산출. 실물 세 벌(고양예술고·성호고·청계초)의 시트 이름이다. 견적 합계 탭은 없앴다(#2304) — 실물에 없는 시트다. 총 중량은 구매현황 합계 행에, 원가·마진·부가세는 오른쪽 합계 패널에 있다. 중량산출은 식별번호마다 블록 하나(블록 머리 = 시트 이름 「중량산출 - {모델명}」).
  3. 시트 그리드 미리보기 — 선택한 시트의 실제 셀 값을 표로 미리 확인. 칸은 실물과 같다(구매내역 열셋 · 식별번호마다 소계 · 중량산출은 조립 자리·가로/세로로 묶고 「{부호}({품명}) W * H = 개소당 중량」으로 닫는다). 인쇄 영역 밖 칸(부호번호 보조표 등)은 그리지 않는다.
  4. 시트 새로고침 — 최신 데이터로 시트를 다시 불러온다.
  5. 합계와 검증 패널 — 자재비·제작비·시공비·소계(원가)·공급가액·부가세·총 견적액. 📌 #3691 결정 (2026-10-20 · ⏳ 서버·화면 반영 전) — 자재비 = Σ(자재 단가 × 수량), 제작비 = Σ(셈량 × 제품 제작 단가), 시공비 = Σ(셈량 × 제품 시공 단가)이고 소계(원가)는 셋의 합이다. 셈량은 제품마다 EA 개수 또는 KG 중량이다. 자재비·시공비·기타비용 (시공비 = 자재비 × 시공비율, 기타비용 = 자재비 × 기타비율) ⛔ 뒤집힘 (#3691). 정본 DE22-1 §08 「합계 산출」 줄.
  6. 중량 합산 검증 배지 — 부호별 중량 합산과 제품식별번호 중복 여부 검증 결과.
  7. 조달 가격 모드 (#2293 C-10 · 화면 반영 대기) — 식별번호 단가 표가 있는 견적(pricingMode = PROCUREMENT)은 총 견적액 = 조달 서식 총액(부가세 포함 단가 × kg 의 합)이다. 공급가액·부가세는 되짚은 값이고 「(되짚음)」을 붙인다. 패널 머리에 「조달 단가는 부가세 포함 단가입니다. 총액에 부가세를 다시 붙이지 않습니다.」를 적는다. 「제품 단가 없음」 안내 대신 「단가 없는 식별번호」(procurementPriceMissingModels[]) · 「대응 없는 라인」(procurementUnmappedLines[]) 안내를 그린다. 원가 네 줄·마진은 싣지 않는다 — 조달 셈과 원가 셈의 차이는 마진이 아니다. 할증 행이 있으면 「조달 가격 모드에서는 할증이 견적 총액에 들지 않습니다」를 적는다 — 할증은 총액에 더하지 않는다. 발행 때 견적 헤더 금액(목록 「견적 금액」)에는 되짚은 공급가액을 굳힌다([확정] #2293, 2026-09-22).
  8. 구매현황 행 · 대응 없는 라인 금액 (#2931 결정 · 화면 반영 대기) — 미리보기 구매현황은 엑셀처럼 식별번호 한 행이다. 구매중량은 procurementRows[] 의 totalWeightKg 를 식별번호마다 더한 값이고(공칭 길이 × 제작공차), 방충망 모듈 DHS-SC-1 도 한 행으로 선다. 식별번호에 잇지 못한 라인은 제품 단위 행이다. 조달 가격 모드에서는 그 행의 금액·단가 칸을 비운다(구매내역도 같다) — 「대응 없는 라인」 안내가 그 사실을 알린다. 그래서 구매현황 합계 금액이 겉지 TOTAL 과 같고, 부가세 포함 조달 금액과 부가세 별도 견적 금액이 섞이지 않는다. 정본은 DE22-1 §08 §4.11 #2931 결정 상자다.
  9. 표 없는 견적의 단가 칸 (#2650 · 화면 반영됨) — 식별번호 단가 표가 없는 견적(pricingMode = COST_PLUS)은 구매현황·구매내역의 단가 칸을 「—」로 비운다 — 「금액 ÷ 구매중량」으로 되짚지 않는다. 금액은 견적 금액 그대로다. 표 아래에 「식별번호 단가 표가 없어 단가 칸을 비웠습니다. 금액은 견적 금액(절단 길이 중량 × 제품 단가 × 비율)이라 구매중량 × 단가와 맞지 않습니다. 조달 서식으로 검산하려면 단가·할증·공차 설정에서 식별번호 단가를 넣으세요.」를 적는다([확정] #2650, 2026-10-08).
  10. 견적 머리 값 (#3204 · 화면 #3216 반영) — 겉지 공사명은 constructionName(견적 머리 공사명, 비면 프로젝트명)이고 유효일은 견적 머리 유효기간이 회사 설정보다 먼저다. 구매현황 「유리사양」 칸은 purchaseStatusRows[].glassSpec 이고(기본유리는 싣지 않는다), 안내는 「비고는 원천이 없어 비워 둡니다」로 줄였다. 구매현황 표 아래에 조건문 여섯 문단을 그린다 — 문단마다 견적 머리 글이 있으면 그 글, 없으면 회사 설정 글, 둘 다 없으면 그 문단을 그리지 않는다. 머리말은 출력 xlsx 와 같은 「※ 납품조건」 꼴이다. 미리보기 응답에는 조건문이 없어 화면이 견적 상세와 회사 설정을 합친다.
관련 API Swagger UI ↗
  • GET/api/es/estimate-lines/{lineId}/resolved-bom — 구매내역 시트에 표시할 확정 자재·수량·금액 조회
  • GET/api/cm/settings/QUOTE — 구매현황 아래 조건문 문단의 회사 글(TERMS_*). 견적 머리 quoteTerms 는 견적 상세 조회 GET /api/es/estimates/{estimateId} 에서 읽는다 (#3216)
  • GET/api/es/estimates/{estimateId}/quote-sheet — 조달 서식 미리보기 데이터 조회 (겉지 한글 금액 totalAmountHangul·유효일 문장 validityText·구매내역 규격 procurementRows[].specWidthMm/specHeightMm — #2304 추가 칸, 합계·중량 검증은 GET .../summary 병용). pricingMode·procurementPriceMissingModels[]·procurementUnmappedLines[] 는 (#2293 신설 · BE 미구현)
프로젝트  ›  프로젝트 상세  ›  견적 탭  ›  견적(버전) 상세 - 섹션 허브  ›  견적서 미리보기
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기

견적서 미리보기

검토중1엑셀 출력으로
엑셀 시트 미리보기
조달 서식 엑셀 시트를 탭으로 확인하고 합계와 중량 검증을 점검합니다. 조달 서식 · 출력 xlsx와 같은 시트 구성(겉지·구매현황·구매내역·중량산출).
2겉지구매현황구매내역중량산출
시트: 구매내역 — 금속제창틀 조달구매내역실물 열셋 · 식별번호마다 소계100%4시트 새로고침
3순번규격품명모델명수량개소당
중량(Kg)
개소당금액전체중량단가금액비고
■ 금속제창(알미늄창호)구입
AW01(225mm, 단열미서기중중연이중창)2,800x1,700225mm, 단열미서기중중연이중창U-P-SM225-D23129.492,330,8202,978.2718,00053,608,860
소계232,978.2753,608,860
AW01(15mm, 방충망)700x1,20015mm, 방충망DHS-SC-1235.2871,808121.4413,6001,651,584
AW02(15mm, 방충망)600x1,20015mm, 방충망DHS-SC-1122.4533,32029.4013,600399,840
소계35150.842,051,424
‹1 / 2›
겉지=발주처·합계(한글 금액·유효일 문장) / 구매현황=조달청 양식(조달요청서)·합계 행에 총 중량 / 구매내역=부호 × 식별번호 / 중량산출=식별번호마다 부호 블록. 예시 줄은 청계초 실물(구매내역!A16·A21·A22)에서 옮겼고, 방충망 소계는 보인 두 줄의 합이다.
5합계와 검증
FR-ES-016 산식 · FR-ES-021 중량 합산
자재비₩ 100,000,000
제작비₩ 12,000,000
시공비₩ 16,400,000
소계 (원가)₩ 128,400,000
공급가액 (원가+마진+할증)₩ 141,240,000
부가세 (VAT 10%)₩ 14,124,000
총 견적액 (VAT 포함)₩ 155,364,000
6중량 합산 검증 통과 — 24/24 부호 · 식별번호 중복 없음
조달 가격 모드(#2293) — 총 견적액 = 조달 서식 총액. 조달 단가는 부가세 포함 단가라 총액에 부가세를 다시 붙이지 않는다. 공급가액·부가세는 되짚는다. 할증은 총액에 들지 않고 원가·마진 줄은 그리지 않는다.
미확정 라인 12건 — 전 라인 확정 전에는 견적 확정 불가
Figma 대비 DE22-1 차이: 시트 미리보기가 이미지 placeholder 아닌 실제 그리드 표(실물 구매내역 열셋 — #2304, 종전 일곱 열 부호·제품·규격·수량·단가·금액·물품식별번호를 바꿨다). 상태 variant: empty · loading · error · unfrozen warning(미확정 라인 경고) · weight fail(중량 합산 불일치).
금액 표기 (#1126 · #2962) — 실행액과 완공 건수는 늘 값을 보인다. 견적액에 기대는 자리는 값을 낼 수 없을 때만 「준비 중」으로 가린다. 카드 셋(평균 원가율·평균 이익률·손실 위험)은 원가율을 낸 완공 프로젝트가 하나라도 있으면 연다 — 서버가 그런 프로젝트가 없을 때 평균을 0.00% 로 주므로 값이 아니라 그 조건으로 가른다. 차트 둘은 자료가 0건일 때만, TOP 10 표의 견적액·원가율·이익률은 그 칸에 값이 없을 때만 「준비 중」이다(그림의 P-2026-021). 열·행·차트 자리는 지우지 않는다. 마우스를 올리면 「견적 금액이 아직 채워지지 않아 원가율과 이익률을 낼 수 없습니다. 실행액과 완공 건수는 그대로 보여 줍니다.」가 「준비 중」 칸에만 뜬다.
새 단추 (#2112 — 정본 「이탈」 행)검토 제출하러 견적 상세로 →자리: 머리줄 — 설계중 견적
SCR-ES-010견적서 출력 (엑셀 xlsx) /…/estimates/:estimateId/export풀Figma: node 1598:5151

확정 견적을 발주처 제출용 조달 서식 엑셀(xlsx, 다중 시트)로 출력 — 좌측 출력 설정(서식·들어가는 시트·서명 스탬프) + 우측 Rev. 이력. 헤더 우측 다운로드·이메일·PDF(보조).

진입 — SCR-ES-009 [엑셀 출력으로] 버튼.

다음 단계 — 막힌 사유 옆 [견적 상세로 →] → SCR-ES-003 · 확정 견적을 내려받은 뒤 [계약 지정하러 견적 목록으로 →] → SCR-ES-001 (#2109 ⑮).

  1. 엑셀 다운로드 — 조달 서식 xlsx(다중 시트)를 다운로드.
  2. 이메일 발송 — 완성된 견적서를 이메일로 발송. 아직 잠근 채로 둔다(#1760) — 받는 주소를 어디서 받을지, 보내기 전에 무엇을 확인시킬지, 실패를 어떻게 보일지가 아직 없다. 서버의 emailAccepted 는 보내기가 실패해도 참이라 그대로 이으면 안 간 메일을 갔다고 말한다. 내려받기는 조회 권한이면 되고 발송만 편집 권한이다.
  3. 전 라인 확정 안내 — 전 라인 확정 완료 시에만 견적서 발행이 가능함을 안내.
  4. 출력 설정 — 조작 넷 가운데 둘을 걷고 둘을 잠갔다(#1760). 서식은 고를 것이 하나라 잠그고, 들어가는 시트는 조달청이 정한 양식이라 골라 뺄 수 없어 읽기 전용 목록으로 바꿨다. 서명 스탬프는 이미지를 담을 자리가 없어 꺼진 채로 잠근다 — 켜져 있는데 아무 일도 안 하는 것이 가장 나쁘다. PDF 동시 생성은 위 [PDF (보조)] 단추가 같은 일을 해서 걷었다. 유효기간은 회사 설정(QUOTE/VALID_MONTHS, 시드 3)에서 와서 겉지와 같은 문장 「견적일로부터 3개월이내」로 적는다(#2304 — 서버가 지은 validityText). 「회사 설정에서 채웁니다」는 값이 빈 회사 정보·조건문 자리에 쓴다.
  5. Rev. 이력 — 개정판(Rev.) 발행 이력과 사유.
관련 API Swagger UI ↗
  • GET/api/es/estimates/{estimateId}/export — 조달 서식 xlsx 다운로드(겉지·구매현황·구매내역·식별번호마다 중량산출 — 실물 시트, #2304)
  • POST/api/es/estimates/{estimateId}/send-email — [이메일 발송] 버튼 동작
프로젝트  ›  프로젝트 상세  ›  견적 탭  ›  견적(버전) 상세 - 섹션 허브  ›  견적서 출력
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기

견적서 출력

1엑셀 다운로드 (xlsx)2이메일 발송PDF (보조)
확정3전 라인 확정 완료. 24/24 라인이 확정되어 견적서를 발행할 수 있습니다.
4출력 설정 (엑셀 xlsx)
조달 서식(표준) — 고를 것이 하나라 잠금
들어가는 시트 (조달 서식 · 골라 뺄 수 없다)
겉지 · 구매현황 · 구매내역 · 중량산출 (식별번호마다 한 장)
서명 스탬프 삽입 (서명 이미지를 등록한 뒤 켭니다)
견적 번호EST-2026-001 · Rev.2
유효기간견적일로부터 3개월이내
포맷엑셀 xlsx · 조달 서식 (PDF 보조)
5Rev. 이력
Rev.일자작성자사유
Rev.22026-06-10이미희B존 수량 변경 — 개정 재발행
Rev.12026-06-02이미희최초 발행
상태 variant: empty · loading · success · error(출력 정보 조회 실패 / 다운로드 실패). frozen 연동 — 전 라인 확정 충족 시에만 견적 확정(발행) 가능.
새 단추 (#2112 — 정본 「이탈」 행)견적 상세로 →자리: 막힌 사유 옆계약 지정하러 견적 목록으로 →자리: 내려받은 뒤 — 확정 견적 (관리자)
SCR-ES-008실행예산 입력·분석 (프로젝트) /…/estimates/:estimateId/budget풀

후속 — 확정 견적의 실제 소요 비용을 항목별 입력하고 견적 대비 실행율 분석. 좌측 비용 입력·내역 + 우측 원가율 분석 패널. 입력 즉시 누적 실행 원가·실행율 재계산.

진입 — SCR-ES-003 하단 후속 분기 / 확정 견적.

다음 단계 — [견적 상세로] → SCR-ES-003 (#2109 ⑱).

  1. 비용 입력 폼 — 항목·금액·발생 일자·담당자·할당 대상 입력. 항목은 열여덟 가지다 — 대분류 다섯 아래 자재비 · 임가공비 / 부속비 · 코너시트 · 스틸보강 / 제작비 / 시공비 · 시공부자재비 · 지방경비 · 조립비 · 관리비 / 운반비 · 장비비 · 구조계산비 · 세이프도어 · 대리점수수료 · 기타 · 폐기비(📌 #4039, ⏳ 서버·화면 반영 전). 열 가지(#3691 · #3729) 항목(자재비/시공비/폐기비/기타) 넷 ⛔ 뒤집힘 (#3691).
  2. 제작용 사본 모드 — 현장담당이 고친다 (📌 #3656 결정 2026-10-20 · ✅ 화면 반영 #3655 0a8c9884) — 사본 견적이면 그 프로젝트의 현장담당이 입력 · 저장하고, 현장담당이 아닌 관리자는 사유를 붙여 대리한다. 설계팀에게 사본은 읽기 전용이다. 도급 금액 칸은 원본 계약의 계약금액을 읽기 전용으로 보인다. 머리 안내 「제작 도면 금액 — 현장 관리용 참고 값입니다. 견적서 · 계약 · 경영 집계에는 들지 않습니다.」와 [변경 기록] 을 둔다. 들어오는 길은 현장 관리 [견적 정보] 탭의 [실행예산 고치기] 다. 정본 DE22-1 §08 #3053 상자의 #3656 불릿.
  3. 추가 — 입력한 비용 항목을 내역에 추가.
  4. 비용 내역 표 — 항목별 발생 일자·할당·금액·담당자 이력.
  5. 실행율 분석 패널 — 진입 경로(FR-ES-017)를 표시.
  6. 실행율 요약 — 📌 #4144 (⏳ 서버·화면 반영 전): 「계획 기준」 실행률 (대 도급, 계획 원가 합 ÷ 도급 금액 — 이 화면의 기준 값) · 견적 원가 · 견적 원가율과 「집행 기준」 누적 실행 원가 · 집행 실행률 (대 도급) · 실행 원가율 · 실행율(견주는 값) 두 묶음. 지출을 넣으면 집행 기준만 바뀐다. 종전: 견적 원가·누적 실행 원가·견적/실행 원가율·최종 실행율. 두 원가율만 「준비 중」으로 가린다 — 분모인 견적 금액을 채우는 자리가 아직 없다. 실행율은 분모가 약분되어 사람이 넣은 두 값만으로 나오므로 그대로 보인다 (#1126).
  7. 월별 추이 차트 — 누적 실행 원가와 견적 원가를 월별로 비교.
  8. 예산 초과 경고 — 특정 항목이 견적 금액을 초과했을 때 경고.
  9. 계획 원가 — 대분류 다섯 · 항목 열여덟 (📌 #4039 결정 2026-10-27 · ⏳ 서버·화면 반영 전) — 계획 원가 표를 원자재 · 부속비 · 제작비 · 시공비 · 기타경비 다섯 묶음으로 그리고, 묶음 머리줄에 소계와 견적 원가율(소계 ÷ 견적 금액)을 둔다. 🔄 #4144 — 유니크시스템 표의 「실행률」은 합계 줄 아래 「실행률 (대 도급)」(계획 원가 합 ÷ 도급 금액)이다. 자재비 · 부속비(자동분) · 제작비 · 시공비는 「자동 계산」(읽기 전용)이다. 코너시트 · 스틸보강 · 시공부자재비 · 지방경비 · 조립비 · 관리비 · 운반비 · 장비비 · 구조계산비 · 세이프도어 · 대리점수수료는 서버 규칙으로 채운 「기본값 (규칙)」이고 사람이 고치면 표시가 사라진다. 임가공비 · 기타 · 폐기비는 사람이 넣는다. 줄을 펼치면 근거 표가 열리고, 지방경비 · 조립비 · 관리비 줄에는 프로젝트 조건(공사구분 · 기관구분 · 수도권)과 [프로젝트 기본정보에서 고치기] 를 둔다. 대리점수수료 줄에는 커튼월 요율 13% · 15% 고르개를 둔다. 예시 값은 신실크로드 520센터 실례로 셈한 값이다(임가공비는 실례 도장 · 결합 합). 제작용 사본은 열여덟 줄 모두 베낀 값이고 현장담당이 고친다(#3656). 정본 DE22-1 §08 SCR-ES-008 「📌 #4039 결정」 상자 · DE24-1 §5.4.17. 자동 셋 · 부가 일곱(#3691 · #3729) 🔄 #4039 가 넓혔다.
  10. [엑셀로 내보내기] (📌 #3691 · ⏳ 서버·화면 반영 전) — 머리줄에 둔다. 시트 넷(실행예산 · 자재비 · 제작비 · 시공비)이다.
관련 API Swagger UI ↗
  • PUT/api/es/estimates/{estimateId}/budget — 항목별 비용 입력·저장([추가] 버튼)
  • GET/api/es/estimates/{estimateId}/budget — 비용 항목 목록 조회 (비용 내역 표)
  • GET/api/es/estimates/{estimateId}/budget — 📌 #3691 · #3729 — 자동 세 항목 계획 원가와 산출 근거, 운반비·부속비 plannedCostSource(DEFAULT_RATE 면 기본값 표시) · 엑셀 내보내기 주소는 DE24-1 §5.4.17 「#3691 결정」 상자 ⏳ 서버·화면 반영 전
  • GET/api/es/estimates/{estimateId}/amount-history?target=BUDGET — 📌 사본 모드 [변경 기록] 창 (#3656 신설, ⏳ 서버 반영 전)
  • GET/api/es/estimates/{estimateId}/budget — 견적 원가·누적 실행 원가·실행율 등 분석 패널 집계 — 위 조회와 같은 주소가 함께 반환
견적  ›  실행예산
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기
확정소재비 VAT 제외 · 소수점 2자리10엑셀로 내보내기
9계획 원가 — 대분류 다섯 · 항목 열여덟 (📌 #4039 결정 2026-10-27, ⏳ 서버·화면 반영 전)
대분류 / 항목계획 원가견적 원가율표시
▾ 원자재₩ 15,844,42534.12%
  ▸ 자재비 (알루미늄 ₩10,357,378 · PVC ₩2,702,618)₩ 13,059,996자동 계산
  임가공비(도장 · 결합)₩ 2,784,429
▾ 부속비₩ 2,923,3796.30%
  ▸ 부속비자동 (BOM 부자재) ₩ 2,321,927 + 직접 더한 금액 0 = ₩ 2,321,927자동 계산 + 직접 더한 금액
부속비 산출 근거 (🔄 #3997) — 자재코드 · 자재명 · 단위 · 수량 · 단가 · 금액 (부자재만 실려 「원자재/부자재」 열이 없다) · 「기본값 (공급가액 × 5%)」 표시는 걷었다 · 자재비 근거에서는 부자재 줄이 빠진다
  ▸ 코너시트₩ 120,714기본값 (규칙)
  ▸ 스틸보강 (중량화 ₩624,960 ÷ 1.3)₩ 480,738기본값 (규칙)
▾ 제작비₩ 3,662,1507.89%
  ▸ 제작비₩ 3,662,150자동 계산
▾ 시공비₩ 4,833,76710.41%
  ▸ 시공비 (미서기 63 m² 는 M2 셈)₩ 2,854,030자동 계산
  ▸ 시공부자재비 (커튼월 993.35 kg × 500)₩ 496,675기본값 (규칙)
  ▸ 지방경비 (수도권 밖 · 2,168.92 kg × 200)₩ 433,784기본값 (규칙)
산출 근거 — 제품 대분류 · kg · 단가 · 금액 / 커튼월 993.35 · 미서기 틀 460.84 · 미서기 문짝 553.67 · 벤트 161.06 (하드웨어 줄 제외) · 200 원/kg
프로젝트 조건: 공사구분 신축 · 기관구분 기관 · 수도권 아님 — [프로젝트 기본정보에서 고치기]
  ▸ 조립비 (W 또는 H ≥ 3,000 커튼월 603.085 kg × 200)₩ 120,617기본값 (규칙)
  ▸ 관리비 (공급가 × 기관 2%)₩ 928,661기본값 (규칙)
▾ 기타경비₩ 5,933,74012.78%
  ▸ 운반비 (max(공급가 × 1%, 100,000))₩ 464,330기본값 (규칙)
  ▸ 장비비 · 구조계산비 · 세이프도어₩ 0기본값 (중량화 줄 없음)
  ▸ 대리점수수료 커튼월 요율 13% ▾ · 미서기 10%₩ 5,469,410기본값 (규칙)
  기타 · 폐기비금액
합계₩ 33,197,46171.50%견적 금액 ₩46,433,045 기준
실행률 (대 도급) 📌 #4144 기준 값71.50%계획 원가 합 ÷ 도급 금액 ₩46,433,045
1비용 입력 (확정 후 입력 가능)
항목: 자재비금액(원)발생 일자담당자할당: 섹션별2추가
발생 일자항목3할당금액담당자
2026-06-02자재비섹션 WD-A-001₩ 4,820,000김진호
2026-06-04시공비제조단계: 조립₩ 1,250,000이미희
2026-06-05폐기비제조단계: 절단₩ 180,000이미희
2026-06-08기타섹션 DR-B-002₩ 320,000김진호
항목별 합계 — 자재비 ₩62,400,000 · 시공비 ₩24,150,000 · 폐기비 ₩1,830,000 · 기타 ₩2,670,000 (제작비·임가공비·운반비·부속비·장비비·영업수수료 지출은 아직 없음 — 열 항목 모두 지출을 받는다, #3691)
4실행율 분석 — 머리 기준 값: 실행률 (대 도급) 77.46% · 집행 기준 80.28%
계획 기준 (📌 #4144)
실행률 (대 도급)77.46%
견적 원가 (계획 원가 합)₩ 87,850,000
견적 원가율준비 중
집행 기준 — 견주는 값
누적 실행 원가₩ 91,050,000
집행 실행률 (대 도급)80.28%
실행 원가율준비 중
5실행율103.64% (손실)
6월별 누적 실행 원가 vs 견적 원가 추이
7예산 초과 — 자재비 누적 실행액이 견적 자재비를 ₩ 3,200,000 초과했습니다
실행률 지표 3종 분리: ①대 도급(ES-001) ②대 견적(OM) ③원가율(본 화면). 상태 variant: 견적 미확정 시 입력 잠금
금액 표기 (#1126) — 사람이 넣는 값은 그대로 두고 견적 금액에 기대는 두 칸만 가린다. 비용 내역·항목별 합계·견적 원가·누적 실행 원가·실행율·예산 초과 경고·추이 차트는 모두 사람이 넣은 값에서 나오므로 값을 보인다. 견적 원가율·실행 원가율은 분모인 견적 금액을 채우는 자리가 없어 「준비 중」이다. 넣는 칸까지 가리면 이 화면을 열 까닭이 없어진다.
새 단추 (#2112 — 정본 「이탈」 행)견적 상세로자리: 머리줄
SCR-ES-017설계노트·코멘트 (프로젝트) /projects/:projectNo/notes표준

횡단 협업 — 공통 노트(프로젝트 전반)와 설계노트(견적 버전/도면/섹션 앵커 결속 코멘트) 2분류. ES-015 캔버스에서 위치 지정 작성, 목록에서 해당 위치로 역점프. [내용확인] 수신 확인.

진입 — SCR-PM-016 프로젝트 상세 [노트] 탭 / ES-015 캔버스 위치 코멘트.

다음 단계 — 노트의 앵커(견적 버전·도면·섹션) → 그 섹션의 SCR-ES-015 로 역점프. 협업 보조 화면이라 업무 흐름의 다음 단계는 없다.

  1. 작성하기 — 새 노트/코멘트 작성 모달을 연다.
  2. 분류 탭 — 공통 노트/설계노트 2분류.
  3. 버전 필터 — 모든버전/특정 견적 버전으로 좁혀 본다.
  4. 노트 카드 — 앵커(견적버전/도면/섹션)에 결속된 코멘트 카드.
  5. 앵커 배지 — 이 노트가 참조하는 위치(견적 v.1/도면/부호)로 역점프.
  6. 내용확인 — 노트를 읽었음을 수신 확인으로 남긴다.
관련 API Swagger UI ↗
  • GET/api/pm/projects/{projectNo}/notes?category=&anchorType=&anchorId=&unackedOnly= — 공통/설계노트 목록 조회 (IF-PM-PRJ-007, #488 확정 — DE24-1 §5.3.13, BE 미구현)
  • POST/api/pm/projects/{projectNo}/notes — [작성하기] — 본문+분류(공통/설계노트)+앵커 저장 (IF-PM-PRJ-007)
  • PUT/api/pm/projects/{projectNo}/notes/{noteId}/ack — [내용확인] 사용자별 수신 확인 처리 (IF-PM-PRJ-007, 멱등)
프로젝트  ›  노트
CMD+K 검색
🔔3
미사5중 신축공사목록으로 돌아가기
내보내기1작성하기
2공통 (0)설계노트 (1)
3모든 글 보기모든버전견적 v.1
4노트 카드 — 앵커 결속
성윤정 · 2025-04-11 17:23
추후 BF인증 적용시를 위해 도어폭 늘림
5↩ 견적 v.1 / 미사5중_프로그램용 / AD02 →6내용확인
[작성하기] 모달 필수 입력: 본문 + 분류(공통/설계노트) + (설계노트 시) 앵커=견적버전/도면/섹션. FR-ES-015 협업 보조.
SCR-ES-011설계 진행 현황 /estimates/workboard전역풀Figma: node 1077:2757

프로젝트 횡단 전역 화면 — 필터(설계자·기간) + 설계자별 보드 / 타임라인 2탭. 보드 탭 = 설계자 진행률 카드(할당·검토 대기) + 할당 프로젝트 테이블. 워크플로 진행 단계(§3.3) 추적.

진입 — 사이드바 견적설계(전역 1차 메뉴).

다음 단계 — 보드 줄 · 타임라인 막대 → 그 견적의 SCR-ES-003 (막대에 누르는 동작을 붙인다 — #2109 ⑲).

  1. 필터 — 설계자·기간으로 현황을 좁힌다.
  2. 탭 — 설계자별 보드/타임라인 2뷰.
  3. 설계자별 진행 카드 — 진행률·할당 건수·검토 대기 건수를 설계자별로 표시.
  4. 할당 프로젝트 표 — 선택 설계자의 할당 프로젝트·견적·워크플로 상태·진행률·마감.
  5. 워크플로 상태 배지 — 신규/설계중/검토/확정/계약 등 진행 단계.
  6. 페이지네이션 — 할당 프로젝트 목록 페이징.
관련 API Swagger UI ↗
  • GET/api/es/dashboard/workboard?view=&assignee=&status=&from=&to=&page=&size=&sort= — 설계자별 할당·진행률·타임라인 — IF-ES-DASHBOARD-001 (§5.4.16-A, view=board|timeline)
견적설계  ›  설계 진행 현황
CMD+K 검색
🔔3

설계 진행 현황

1설계자 전체📅 2026-05-01📅 2026-06-10
2설계자별 보드타임라인
3이미희 진행률68%
할당
4
검토 대기
1
박정수 진행률45%
할당
3
검토 대기
0
김설계 진행률90%
할당
2
검토 대기
1
4할당 프로젝트 - 이미희 (5건)
프로젝트명견적5워크플로 상태진행률마감
P-2026-012EST-2026-001 (Rev.1)설계중60%2026-06-20
P-2026-015EST-2026-004 (발행 전)검토85%2026-06-15
P-2026-018EST-2026-007 (발행 전)신규0%2026-07-03
P-2026-009EST-2026-005 (Rev.2)확정100%2026-05-30
P-2026-003EST-2026-002 (Rev.1)계약100%2026-05-10
6‹1 / 5›
행 클릭 → 해당 프로젝트 견적(ES-001/003) 이동. 타임라인 탭 = Gantt(설계자별 행·워크플로 단계 막대·기간 필터 연동). 상태 variant: 보드/타임라인 각각 success · loading · empty · error.
SCR-ES-013실행예산 총괄 분석 /estimates/budget-overview전역풀Figma: node 1748:16943

경영 의사결정 지원 — 완공 프로젝트 원가율·수익성 대시보드. 필터바 + KPI 카드 4종 + 추이 라인차트·카테고리 수익성 막대차트 + TOP 10 손실 프로젝트 표. (권한 ROLE_ADMIN)

진입 — 사이드바 견적설계 하위(경영).

다음 단계 — (다음 단계 없음) — 경영 분석 보기 전용. 자세히 볼 것은 [엑셀 다운로드].

  1. 필터바 — 기간·프로젝트·제품·거래처로 대상을 좁힌다.
  2. KPI 카드 4종 — 평균 원가율·평균 이익률·손실 위험 프로젝트·완공 프로젝트 건수.
  3. 월별 원가율 추이 차트 — 완공 프로젝트 기준 최근 6개월 원가율 라인 차트.
  4. 카테고리별 수익성 차트 — 제품 카테고리별 이익률 막대 차트.
  5. TOP 10 손실 프로젝트 표 — 원가율 90%/100% 초과 프로젝트를 강조.
  6. 원가율 컬럼 — 프로젝트별 원가율(90%/100% 초과 강조).
  7. 엑셀 다운로드 — 분석 결과를 엑셀로 내려받는다.
관련 API Swagger UI ↗
  • GET/api/es/dashboard/budget-overview — 완공 프로젝트 원가율·이익률 집계(기간·프로젝트·제품·거래처 필터) — 내보내기는 .../export
견적설계  ›  실행예산 총괄 분석
CMD+K 검색
🔔3

실행예산 총괄 분석

분석 대상: 완공 프로젝트만7엑셀 다운로드
1기간: 월2026-05프로젝트: 전체제품: 전체거래처: 전체
2평균 원가율
92.4%
완공 프로젝트 평균
평균 이익률
7.6%
100% − 평균 원가율
손실 위험 프로젝트
3건
원가율 90% 초과
완공 프로젝트
27건
분석 대상 프로젝트
3월별 원가율 추이 (%) · 완공 프로젝트 기준, 최근 6개월라인 차트 — 원가율을 낸 프로젝트의 기간별 평균
4제품 카테고리별 수익성 (이익률 %)막대 차트 — 제품 카테고리별 평균 이익률
5TOP 10 손실 프로젝트
원가율 90% 초과 주황 / 100% 초과 빨강 강조 (정밀색은 실 구현 — 로우파이 회색 표기). 「준비 중」 칸에는 강조하지 않는다 — 「준비 중」에는 넘고 못 넘고가 없다. 강조는 원가율 값이 있는 칸에서만 돈다 (#1126 · #2962).
프로젝트견적액실행액6원가율이익률
P-2026-008₩ 85,000,000₩ 89,500,000105.3% (빨강)-5.3%
P-2026-014₩ 150,000,000₩ 148,900,00099.3% (주황)0.7%
P-2026-003₩ 60,000,000₩ 57,300,00095.5% (주황)4.5%
P-2026-021준비 중₩ 12,400,000준비 중준비 중
Figma: 월별 원가율은 라인 차트, 카테고리 수익성은 막대 차트. 상태 variant: 정상 · loading · empty(완공 0건) · error.
금액 표기 (#1126) — 실행액과 완공 건수는 값을 보이고, 견적액에 기대는 것은 모두 「준비 중」으로 가린다. 견적액 칸을 채우는 자리가 아직 없어 원가율이 나오지 않고, 원가율이 없으면 이익률·핵심 지표 셋·차트 둘이 함께 빈다. 지금 서버는 이 경우 평균 원가율·평균 이익률을 0.00% 로 내려 주어 못 낸 것과 정말 0% 인 것이 같아 보이는데, 「준비 중」으로 적으면 그 둘이 갈린다. 열·행·차트 자리는 지우지 않는다.