From 13dd39325d246af45ba62cd6a01fdbd131cdf02e Mon Sep 17 00:00:00 2001 From: umsangdon Date: Wed, 30 Sep 2026 13:35:53 +0900 Subject: [PATCH] =?UTF-8?q?fix(M01):=20=EA=B3=B5=ED=86=B5=203=EC=9E=A5=20?= =?UTF-8?q?=ED=86=A0=EA=B3=B5=EC=82=AC=20=EC=95=94=EB=B0=9C=ED=8C=8C=C2=B7?= =?UTF-8?q?=EC=95=94=ED=8C=8C=EC=87=84=20=EC=86=8C=EB=AA=A8=EC=9E=90?= =?UTF-8?q?=EC=9E=AC=20=EB=8D=A7=EC=A4=84=207=EA=B1=B4=20+=20=EC=8B=9C?= =?UTF-8?q?=ED=97=98=20=EA=B8=B0=EB=8C=80=EA=B0=92=20=EA=B0=B1=EC=8B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 3-3-1~3-3-6 크롤러드릴 24%(3-3-1·2는 대형브레이커 5%) · 3-3-8 대형브레이커 2% 덧줄. 시험: 호표를 줄여도 소모자재 덧줄이 남는 새 규칙에 맞춤 (28-2c). Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_019ACSGaHdLgnkEkoA4LDtMU --- .../로직_건설품셈_03장_토공사.json | 145 +++++++++++++++--- .../소요량_건설품셈_03장_토공사.json | 10 +- resources/tester/test_m01_api.py | 5 +- 3 files changed, 138 insertions(+), 22 deletions(-) diff --git a/resources/master_data/로직_건설품셈_03장_토공사.json b/resources/master_data/로직_건설품셈_03장_토공사.json index 395f28ac..717c28a2 100644 --- a/resources/master_data/로직_건설품셈_03장_토공사.json +++ b/resources/master_data/로직_건설품셈_03장_토공사.json @@ -527,7 +527,7 @@ "결과단위": "원/㎥", "출처": "건설품셈 공통 3-3-1 · 3-3-6 주", "소유": "공용", - "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴·브레이커 소모자재 요율(3-3-6 주⑨)은 그 기계 줄이 막혀 못 넣음 · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", + "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴 · 대형브레이커(2차파쇄) 소모자재 = 기계경비 × 요율(3-3-6 주⑨ · 크롤러드릴 24% · 대형브레이커 5%) · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", "입력": [ { "이름": "지역", @@ -555,7 +555,16 @@ }, { "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } ], - "중간": [], + "중간": [ + { + "이름": "드릴경비", + "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000189).유압식크롤러드릴)" + }, + { + "이름": "브레이커경비", + "식": "로직(GC000271, 기계='0201-0100', 브레이커='0230-0010', 지역=지역, 보정작업=보정작업).계 * (찾기(QC000189).굴착기_대형브레이커)" + } + ], "호표": [ { "종류": "인력", @@ -588,7 +597,20 @@ "수량": "찾기(QC000189).굴착기_대형브레이커" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "소모자재(크롤러드릴)", + "식": "드릴경비 * 찾기(QC000196, 장비='유압식 크롤러드릴').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + }, + { + "이름": "소모자재(대형브레이커)", + "식": "브레이커경비 * 찾기(QC000196, 장비='굴착기+대형브레이커').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + } + ], "끝수": null }, { @@ -597,7 +619,7 @@ "결과단위": "원/㎥", "출처": "건설품셈 공통 3-3-2 · 3-3-6 주", "소유": "공용", - "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴·브레이커 소모자재 요율(3-3-6 주⑨)은 그 기계 줄이 막혀 못 넣음 · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", + "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴 · 대형브레이커(2차파쇄) 소모자재 = 기계경비 × 요율(3-3-6 주⑨ · 크롤러드릴 24% · 대형브레이커 5%) · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", "입력": [ { "이름": "지역", @@ -625,7 +647,16 @@ }, { "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } ], - "중간": [], + "중간": [ + { + "이름": "드릴경비", + "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000190).유압식크롤러드릴)" + }, + { + "이름": "브레이커경비", + "식": "로직(GC000271, 기계='0201-0100', 브레이커='0230-0010', 지역=지역, 보정작업=보정작업).계 * (찾기(QC000190).굴착기_대형브레이커)" + } + ], "호표": [ { "종류": "인력", @@ -658,7 +689,20 @@ "수량": "찾기(QC000190).굴착기_대형브레이커" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "소모자재(크롤러드릴)", + "식": "드릴경비 * 찾기(QC000196, 장비='유압식 크롤러드릴').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + }, + { + "이름": "소모자재(대형브레이커)", + "식": "브레이커경비 * 찾기(QC000196, 장비='굴착기+대형브레이커').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + } + ], "끝수": null }, { @@ -667,7 +711,7 @@ "결과단위": "원/㎥", "출처": "건설품셈 공통 3-3-3 · 3-3-6 주", "소유": "공용", - "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴·브레이커 소모자재 요율(3-3-6 주⑨)은 그 기계 줄이 막혀 못 넣음 · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", + "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴 소모자재 = 기계경비 × 요율(3-3-6 주⑨ · 크롤러드릴 24%) · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", "입력": [ { "이름": "지역", @@ -695,7 +739,12 @@ }, { "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } ], - "중간": [], + "중간": [ + { + "이름": "드릴경비", + "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000191).유압식크롤러드릴)" + } + ], "호표": [ { "종류": "인력", @@ -728,7 +777,14 @@ "수량": "찾기(QC000191).굴착기" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "소모자재(크롤러드릴)", + "식": "드릴경비 * 찾기(QC000196, 장비='유압식 크롤러드릴').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + } + ], "끝수": null }, { @@ -737,7 +793,7 @@ "결과단위": "원/㎥", "출처": "건설품셈 공통 3-3-4 · 3-3-6 주", "소유": "공용", - "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴·브레이커 소모자재 요율(3-3-6 주⑨)은 그 기계 줄이 막혀 못 넣음 · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", + "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴 소모자재 = 기계경비 × 요율(3-3-6 주⑨ · 크롤러드릴 24%) · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", "입력": [ { "이름": "지역", @@ -765,7 +821,12 @@ }, { "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } ], - "중간": [], + "중간": [ + { + "이름": "드릴경비", + "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000192).유압식크롤러드릴)" + } + ], "호표": [ { "종류": "인력", @@ -798,7 +859,14 @@ "수량": "찾기(QC000192).굴착기" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "소모자재(크롤러드릴)", + "식": "드릴경비 * 찾기(QC000196, 장비='유압식 크롤러드릴').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + } + ], "끝수": null }, { @@ -807,7 +875,7 @@ "결과단위": "원/㎥", "출처": "건설품셈 공통 3-3-5 · 3-3-6 주", "소유": "공용", - "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴·브레이커 소모자재 요율(3-3-6 주⑨)은 그 기계 줄이 막혀 못 넣음 · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", + "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴 소모자재 = 기계경비 × 요율(3-3-6 주⑨ · 크롤러드릴 24%) · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", "입력": [ { "이름": "지역", @@ -835,7 +903,12 @@ }, { "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } ], - "중간": [], + "중간": [ + { + "이름": "드릴경비", + "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000193).유압식크롤러드릴)" + } + ], "호표": [ { "종류": "인력", @@ -868,7 +941,14 @@ "수량": "찾기(QC000193).굴착기" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "소모자재(크롤러드릴)", + "식": "드릴경비 * 찾기(QC000196, 장비='유압식 크롤러드릴').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + } + ], "끝수": null }, { @@ -877,7 +957,7 @@ "결과단위": "원/㎥", "출처": "건설품셈 공통 3-3-6 · 3-3-6 주", "소유": "공용", - "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴·브레이커 소모자재 요율(3-3-6 주⑨)은 그 기계 줄이 막혀 못 넣음 · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", + "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴 소모자재 = 기계경비 × 요율(3-3-6 주⑨ · 크롤러드릴 24%) · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", "입력": [ { "이름": "지역", @@ -905,7 +985,12 @@ }, { "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } ], - "중간": [], + "중간": [ + { + "이름": "드릴경비", + "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000194).유압식크롤러드릴)" + } + ], "호표": [ { "종류": "인력", @@ -938,7 +1023,14 @@ "수량": "찾기(QC000194).굴착기" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "소모자재(크롤러드릴)", + "식": "드릴경비 * 찾기(QC000196, 장비='유압식 크롤러드릴').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + } + ], "끝수": null }, { @@ -1163,7 +1255,7 @@ "결과단위": "원/㎥", "출처": "건설품셈 공통 3-3-8", "소유": "공용", - "비고": "할암봉 소모자재 별도(주⑤) · 대형브레이커 소모자재 2%(주④)는 그 줄이 막혀 못 넣음 · 유압식할암기는 손료만", + "비고": "할암봉 소모자재 별도(주⑤) · 대형브레이커 소모자재 = 기계경비 × 2%(주④) · 유압식할암기는 손료만", "입력": [ { "이름": "지역", @@ -1192,7 +1284,14 @@ { "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } ], "중간": [ - { "이름": "드릴경비", "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000201).유압식크롤러드릴)" } + { + "이름": "드릴경비", + "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000201).유압식크롤러드릴)" + }, + { + "이름": "브레이커경비", + "식": "로직(GC000271, 기계='0201-0100', 브레이커='0230-0010', 지역=지역, 보정작업=보정작업).계 * (찾기(QC000201).굴착기_대형브레이커)" + } ], "호표": [ { @@ -1246,6 +1345,12 @@ "식": "드릴경비 * 찾기(QC000202, 장비='유압식 크롤러드릴').기계경비의 / 100", "비목": "재료비", "출처": "건설품셈 공통 3-3-8 주④" + }, + { + "이름": "소모자재(대형브레이커)", + "식": "브레이커경비 * 찾기(QC000202, 장비='굴착기+대형브레이커').기계경비의 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-8 주④" } ], "끝수": null diff --git a/resources/master_data/소요량_건설품셈_03장_토공사.json b/resources/master_data/소요량_건설품셈_03장_토공사.json index e0b5b5da..1830bf58 100644 --- a/resources/master_data/소요량_건설품셈_03장_토공사.json +++ b/resources/master_data/소요량_건설품셈_03장_토공사.json @@ -439,7 +439,15 @@ "이름": "소모자재 요율", "기준": "", "출처": "건설품셈 공통 3-3-6 주⑨", - "용도": {"공종": "암발파", "대상": ["작업량 조건"], "로직키": ["GC000098"]}, + "용도": {"공종": "암발파", "대상": ["작업량 조건"], "로직키": [ + "GC000098", + "GC000091", + "GC000092", + "GC000093", + "GC000094", + "GC000095", + "GC000096" + ]}, "조건": { "장비": "고르기" }, "값칸": { "요율": "%" }, "줄": [ diff --git a/resources/tester/test_m01_api.py b/resources/tester/test_m01_api.py index feea2deb..4bcf6e1b 100644 --- a/resources/tester/test_m01_api.py +++ b/resources/tester/test_m01_api.py @@ -266,7 +266,10 @@ def test_단가_자동_요소_찾기_저장전_시험계산(client: TestClient) json={"key": LOGIC_KEY, "inputs": LOGIC_INPUTS, "row": half}, ) lines = res.json()["lines"] - assert [x["이름"] for x in lines] == ["화약취급공"] and res.json()["sums"]["계"] < before + names = [x["이름"] for x in lines] # 소모자재 덧줄(3-3-6 주⑨)은 남음 + assert ( + names[0] == "화약취급공" and "보통인부" not in names and res.json()["sums"]["계"] < before + ) new = {**half, "키": "", "원문번호": "새 로직"} body = { "key": "",