From 13de94b9dcead34d9414a65a9930e2c43a7ca8a7 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 31 Oct 2026 13:59:37 +0900 Subject: [PATCH] =?UTF-8?q?knowledge(=EC=9A=94=EA=B5=AC):=20704-4=20?= =?UTF-8?q?=EA=B7=9C=EA=B2=A9=20=ED=91=9C=20=EC=84=A4=EA=B3=84=20=EC=A0=9C?= =?UTF-8?q?=EC=95=88(sub7)=20=EA=B8=B0=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- docs/raw/요구_내역서/_제안_704-4_규격표.md | 106 +++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 docs/raw/요구_내역서/_제안_704-4_규격표.md diff --git a/docs/raw/요구_내역서/_제안_704-4_규격표.md b/docs/raw/요구_내역서/_제안_704-4_규격표.md new file mode 100644 index 000000000..446925dee --- /dev/null +++ b/docs/raw/요구_내역서/_제안_704-4_규격표.md @@ -0,0 +1,106 @@ +# 704-4 규격 표 — 설계 제안 (sub7 · 코드 안 씀) + +근거 = 요구서 3장 9 · `_종합_내역5-7` 3장 D · `_분석_내역5-A` 4-4 · `_분석_내역5-B` ②③ · 코드 읽기(파일:줄). + +## 1. 한 줄 요약 + +- 구조물 조합 항목 하나에 「규격 열」(H=1.5 | 2.0 | 2.5)을 둠 — 줄 구성은 하나 · 열마다 줄 수량만 다름(실무 엑셀과 같음). +- 설계(B05 · B06)는 항목을 고른 뒤 열 하나를 고름 → 사본이 「그 열 수량」을 굳혀 가짐 → B08 · B09 는 지금 그대로(사본 1 단위 값만 씀). +- 규격 열 없는 옛 항목 = 열 하나짜리 규격 표 — 옮기기 없이 그대로 돎. + +## 2. 지금 꼴 (바꿀 자리) + +| 자리 | 지금 | 근거 | +| --- | --- | --- | +| 항목 | 구조물집계표 `열[]` 한 칸 = 항목 하나 · 규격은 `경로` 한 단(「1.2m」) | `M02_MasterTemplete_Store.py:305-312` · `Tree.py:20-21` | +| 파일 | 열마다 `structure/` · `labor/` · `area/<열>.json` 한 벌 · 번호 SD · SU · SA 같은 일련 | `Store.py:64-70` · `:320-338` | +| 항목 장부 | `구조물집계표조합.json` 줄 = SS 키 · 열 · 경로 · 번호 | `M02_MasterTemplete_Book.py:1-12` | +| 줄 수량 | `수량` = null(면적 알약 칸) 또는 `{손}` | `M02_Labor_Doc.py:4-9` · `:396-439` | +| 설계 고름 | `summary_item` = {layer, owner, key, name} 넷만 · 다른 키 = 오류 | `common_util_summary_item.py:39-41` (+ TS 짝) | +| 고르기 창 | 줄 = 항목 · 돌려줌 = summary_item(열 없음) | `ui_template_item_picker_data.ts:91-93` · `_table.ts:1-7` | +| 사본 | 놓인 구조물마다 한 벌 · 같은 항목 판정 = layer · owner · key | `M02_Item_Snapshot.py:88-92` · `:306-354` | +| 도면 | 항목마다 한 장 · 치수 바꿔 넣기 없음 · B07 은 항목 단위로 한 장 | `Store.py:357-364` · `B07_..._Support_Structure.py:33-60` | +| B08 · B09 | 열 = 설계 값으로 이미 가름(H= · Φ) · 사본 1 단위 값 × 수량 · 사본이 다르면 내역 줄도 따로 | `B08_..._Summary.py:502-530` · `B09_..._Calc_Bill.py:256-280` | + +- 비슷한 앞선 꼴 — `M02_Table_Fill` 펼침(마스터 열 하나 → 설계 값마다 열 · id `마스터id|값`) · 수량 표만 가르고 일위대가 · 면적은 한 벌(`M02_Table_Fill.py:8-10`). + +## 3. 저장 꼴 (새로) + +일위대가 문서(`labor/<열>.json`)에 규격 칸 하나: + +``` +"규격": { + "이름": "H", // 머리 글(H · Φ · 폭) + "열": ["1.5", "2.0", "2.5"], // 차례 = 화면 차례 + "기본": "2.0", // 설계가 안 고르면 + "수량": { "<줄 id>": {"1.5": 1.57, "2.0": 2.09, "2.5": 2.61} } // 열마다 손 수량 +} +``` + +- 줄 id = 지금 `lineId`(로직 키 · 참조 · 자재 코드) 그대로. +- 규격 수량이 있는 줄 = 그 열 값이 `{손}` 자리(손 > 칸 규칙 그대로) · 없는 줄 = 지금처럼 `수량`(공통). +- 규격 칸 없음 = 옛 문서 = 열 하나 · 셈 그대로. +- 계산 자리 = ① 파이썬 · TS 짝(`M02_Labor_Doc.settle` ↔ `M02_MasterTemplete_Labor_Calc.settle`)에 「열 값 끼우기」 한 줄씩 · 거울 시험 더함. +- 화면 = 704-3 격자에 규격 열 보기(`ui_template_hopyo_grid` 에 열 갈래 덧 · 수량 칸이 열 수만큼 · 1 단위 합계 줄도 열마다). + +## 4. 설계 고르기 = 열 고르기 + +- `summary_item` 에 `spec`(열 이름 · 없으면 기본) 하나 더함 — 파이썬 `common_util_summary_item.py` · TS 짝 · B05 `StructureInstance` · 배수관 `pipe_points` 같이. +- 고르기 창: 항목 줄 고름 → 그 항목에 규격 열이 있으면 열 단추(H=1.5 | 2.0 | 2.5 · 열마다 1 단위 합계)를 한 줄 더 보임 → [적용] = {…, spec}. 열 하나뿐이면 지금과 같음(누름 0 더함). +- 자동 고르기(덤 · 뒤 단계): 구조물 옵션 H 와 열 이름이 같으면 그 열을 먼저 고른 채로 엶(석축 · 옹벽 H · 흙막이 H). 판단은 설계자 몫 — 제안만. +- B08 「조합 연결」(`B08_Quantity_UI_Link.ts:47-55`)도 같은 창 · 같은 값. + +## 5. 사본 · 면적 · 도면 — 열마다 어떻게 + +| 대상 | 제안 | 까닭 | +| --- | --- | --- | +| 사본 | 사본을 만들 때 고른 열 수량을 `일위대가.json` 줄 `{손}` 으로 굳히고 manifest 에 `규격` 적음 | B08 · B09 · 702 덮개가 사본 1 단위 값만 봄 → 손 안 댐 | +| 같은 항목 판정 | `same_item` 에 spec 더함 — 열이 바뀌면 다른 사본 | 열 바꿈 = 지금 「다른 항목 고름」과 같은 길(옛 사본 `_지난/` · 고침 있으면 보관) | +| 면적산출 | 1차 = 규격 열 수량이 손 값이라 면적 시트는 공통(열 밖 줄만 씀) · 2차 = 시트에 「규격 칸」(예 B2 = H) 지정 → 열마다 그 칸에 열 값 넣고 다시 셈한 값을 열 수량으로 제안 | 실무는 구조도 엑셀에서 손셈해 옮김(5-A ③) · 1차로 K4 를 줄이고 셈 연결은 뒤 | +| 도면 | 1차 = 한 장 공통 + 표제 「H = 열 값」 글 칸 바꿔 넣기 · B07 한 장 판정을 항목 + 열로 | 치수 매개 도면은 지금 없음(`Store.py:357-364`) · 큰 일 | +| B07 | 사본 폴더마다 한 장인데 같은 항목이면 하나로 줄임 → 열이 다르면 따로 | `B07_..._Support_Structure.py:33-60` | +| B08 집계 | 바꿀 것 없음 — 열은 이미 H= 로 가름 · 사본이 열마다 따로라 owners 그대로 | `B08_..._Summary.py:502-530` | +| B09 | 바꿀 것 없음 — 사본이 다르면 대가 블록 · 내역 줄 따로(`split_by_block`) | `B09_..._Calc_Bill.py:256-280` | + +## 6. M02 화면 + +- 일위대가 카드 · 상세 = 704-3 격자 위 「규격 표」 꼴(종합 3장 D) — 줄 = 품명(단위) · 열 = H 값 · 칸 = 수량 · 맨 아래 = 열마다 1 m 당 · [+ 열] · 열 이름 고침 · 열 지움(쓰는 사본 있으면 막음 · 「어디 쓰였나」 703 과 같은 길). +- 비교 행렬(구조물 조합 위 표) = 항목 칸 아래 열 칸 나눔(분류 단 하나 더 꼴) — 지금 「규격만 다른 항목 여럿」 자리. +- K4(규격만 다른 조합) = [+ 열] 1 · 열 이름 1 · 바뀌는 줄 수량 n(울진 예 4) → 약 6 누름(지금 22~28 + 도면). +- 사전조합 → 조합 한 단계(PLAN 704-4 뒷부분): 실무자료 확인 창 [사전조합 생성] 곁에 [구조물 조합으로] — SU 항목을 바로 만들고 일위대가 줄을 담음(사전조합 SC 문서는 안 만듦 · 옛 길은 둠) · 규격만 다른 호표 묶음(5-A 「구성 같은 묶음 16」)은 한 항목의 열로 묶어 제안. + +## 7. 바꿀 파일 (예상) + +| 층 | 파일 | +| --- | --- | +| 저장 · 셈 짝 | `M02_MasterTemplete/M02_Labor_Doc.py`(규격 칸 검사 · settle) ↔ `M02_MasterTemplete_Labor_Calc.ts` · 거울 시험 `test_m02_labor_calc_mirror.py` | +| M02 화면 | `M02_MasterTemplete_Labor_Grid.ts` · `ui_template_hopyo_grid.ts`(열 갈래 · 메인 브레인 알림) · `M02_MasterTemplete_Labor_Detail.ts`(700 줄 — 규격 표 편집은 새 파일 `M02_MasterTemplete_Labor_Spec.ts`) · 비교 행렬 `M02_MasterTemplete_ItemCards.ts` | +| 장부 | `M02_MasterTemplete_Book.py`(SS 줄에 `규격` 열 목록 · 고르기 창 줄에 실음) | +| 설계 값 | `common_util/common_util_summary_item.py` · `.ts`(spec) · `B05_Profile_Structures_Schema.py` · `common_util_drainage_pipes.py` | +| 고르기 창 | `ui_template_item_picker_data.ts`(toSummary · 행 규격) · `ui_template_item_picker.ts` · `_table.ts`(열 단추) · 부르는 곳 `B05_Profile_UI_Structures_Groups.ts:277-299` · `B08_Quantity_UI_Link.ts` | +| 사본 | `M02_Item_Snapshot.py`(same_item · manifest 규격 · 굳히기) · `M02_Item_Source.py`(build_source 에 열 수량 끼움) | +| 도면 | `B07_DesignDetail_Router_Support_Structure.py`(한 장 판정) · 1차 표제 글 바꿔 넣기 자리 | +| 2차 | 면적 시트 「규격 칸」 — `M02_Area_*` · spreadsheet 셈(서버 · TS 짝) | + +## 8. 옛 자료 옮김 + +- 옮기지 않아도 돎 — 규격 칸 없는 문서 · spec 없는 summary_item = 지금 뜻 그대로(열 하나 · 기본). +- 묶기는 사용자가 고름: M02 「규격 묶기」 제안 — 같은 경로(끝 단만 다름) + 같은 줄 구성 항목을 찾아 「한 항목 · 열 n」 미리 보기 → [묶기]. 묶인 옛 항목은 지우지 않고 「묶임 → 새 항목 열」 표시(설계가 고른 옛 항목 · 사본은 그대로 삶). +- 마스터 층(사용자 자료)은 자동으로 안 바꿈 — 시스템 관리자가 화면에서 묶기. +- 공사 사본: 옛 사본은 규격 없는 사본으로 그대로 · 설계에서 새로 고를 때만 열 붙은 사본. + +## 9. 위험 + +1. 열 바꿈 = 사본 바꿈 — 702 「고친 칸 덮개」가 사본 폴더 열쇠(`S:사본 폴더`)에 붙음 → 열을 바꾸면 덮개가 `_지난/` 로 감. 막는 길: 열만 바뀐 경우 덮개를 새 사본으로 옮기기(같은 항목 · 같은 줄 id) — 702 와 함께 정함. +2. summary_item 파서가 모르는 키를 거절 — 서버 · 화면이 같은 판이어야 함 · 임시 배포(데스크탑)와 판이 다르면 저장 400 → 전역 깃 싱크 때 한 번에. +3. 같은 항목 · 다른 열이 B07 한 장으로 줄던 판정 — 바꾸지 않으면 도면이 한 열 것만 나옴. +4. 열 수량을 손 값으로 굳히면 면적 시트와 따로 놂 — 「면적 칸과 다름」 꼬리표가 필요(2차 규격 칸으로 풂). +5. 열마다 줄 구성이 다른 묶음(배수관 날개벽 일반형 6 줄 / ㄷ형 9 줄)은 규격 표에 안 맞음 — 그런 것은 항목을 나눠 둠(열 = 수량만 다를 때만). +6. 비교 행렬 · 기준 목록(704-1)의 「대표 규격」과 낱말이 겹침 — 화면 낱말 「규격 열」로 가름(703-4 낱말 표에 올림). +7. 설계 자동 고르기(H → 열)를 넣으면 「판단은 설계자 몫」과 부딪힘 → 미리 고른 채로 열기까지만. + +## 10. 정해 줄 것 + +- 1차 범위 = 일위대가 수량 열 + 설계 열 고르기 + 사본 굳히기(면적 · 도면은 공통 · 표제 글만) — 이대로 갈지. +- 열 바꿈 때 덮개 옮기기를 702 와 같이 할지. +- 「규격 묶기」 제안 화면을 1차에 넣을지(옛 항목 정리).