feat(B08): 뿌리 적재·운반 두 줄 신설 — 품셈이 네 단계로 둔 자리
- 9-20 가. 「벌개·제근 → 뿌리다듬기 → 적재 → 운반」이 시공 과정 표준이고 [주] 가 「제근 후 뿌리다듬기와 적재항목에 적용」이라 두 항목을 줌. 별표2 도 「그 뿌리…를 전량 제거한 후 운반하고 쌓아두어야」로 뒤 단계를 요구 — 우리는 제거 한 줄만 세고 있었음 (표토와 같은 병: 법·품셈이 두 동작을 묶는데 앞 동작만 셈) - 적재는 FP-09-20-02(「10주당」) · ⚠ 운반은 그 장에 공종이 없어 코드를 못 붙임 — 지어내지 않고 사유로 냄 - 둘 다 제근과 같은 밑수(본수)가 서야 값이 남. 대상 면적은 참고값으로 실음 - tmp/tests 3건 추가 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -127,6 +127,7 @@ def preparation_rows(
|
||||
# ⚠ 법이 요구하는 **운반·적치** — 제거 물량이 곧 밑수다(별표2).
|
||||
_topsoil_haul_row(topsoil, topsoil_haul_distance_m),
|
||||
_root_removal_row(slope, stand_volume_class),
|
||||
*_root_steps_rows(slope, stand_volume_class),
|
||||
_batter_frame_row(list(slope_rows)),
|
||||
_level_frame_row(list(slope_rows)),
|
||||
]
|
||||
@@ -220,6 +221,54 @@ def _root_removal_row(slope: dict[str, float], stand_volume_class: str | None) -
|
||||
}
|
||||
|
||||
|
||||
#: ⚠⚠ **품셈이 네 단계로 두었는데 우리가 한 줄만 세고 있었다**(2026-09-09).
|
||||
#: 9-20 가. 「벌개·제근 → **뿌리다듬기** → **적재** → **운반**」이 시공 과정 표준이고
|
||||
#: [주] 「본 품에서는 제근 후 **뿌리다듬기와 적재항목**에 적용한다」로 두 항목을 준다.
|
||||
#: 법도 같은 말을 한다 — 별표2 「입목…과 그 뿌리, 표토는 전량 제거한 후 … **운반하고
|
||||
#: 쌓아두어야** 한다」. ⇒ 제거만 세면 **적재·운반이 빠진다**(표토에서 이미 겪은 자리).
|
||||
#: ⚠ 적재는 9-20-2 로 코드가 있고, **운반은 그 장에 공종이 없다** — 10장 계열 어디에 붙는지
|
||||
#: 원문이 말하지 않는다. 지어내지 않고 사유로 낸다.
|
||||
ROOT_STEPS_NOTE = (
|
||||
"품셈 9-20 가. 「벌개·제근 → 뿌리다듬기 → 적재 → 운반」 · 별표2 「그 뿌리…를 전량 제거한 후"
|
||||
" 운반하고 쌓아두어야 한다」 — 제거만 세면 뒤 단계가 빠짐"
|
||||
)
|
||||
|
||||
|
||||
def _root_steps_rows(
|
||||
slope: dict[str, float], stand_volume_class: str | None
|
||||
) -> list[dict[str, Any]]:
|
||||
"""뿌리 적재·운반 — **제근과 한 벌로 가는 뒤 단계**. 밑수가 서면 함께 선다."""
|
||||
area = float(slope.get("tree_removal_fill", 0.0)) + float(slope.get("tree_removal_cut", 0.0))
|
||||
return [
|
||||
{
|
||||
"group": "준비공",
|
||||
"item": "뿌리 적재",
|
||||
"unit": "개",
|
||||
"amount": None,
|
||||
"status": STATUS_PENDING,
|
||||
"reason": (
|
||||
f"{ROOT_STEPS_NOTE} · 품셈 9-20-2 「(단위: 10주당)」 — **본수가 서야 셈**"
|
||||
f" (대상 면적 {area:,.1f}㎡ · 제근과 같은 밑수)"
|
||||
),
|
||||
"reference_amount": area,
|
||||
"work_item_code": "FP-09-20-02",
|
||||
},
|
||||
{
|
||||
"group": "준비공",
|
||||
"item": "뿌리 운반",
|
||||
"unit": "개",
|
||||
"amount": None,
|
||||
"status": STATUS_PENDING,
|
||||
"reason": (
|
||||
f"{ROOT_STEPS_NOTE} · ⚠ **9-20 장에 운반 공종이 없음** — 10장 계열 어디에"
|
||||
" 붙는지 원문이 말하지 않아 공종코드를 못 붙임"
|
||||
),
|
||||
"reference_amount": area,
|
||||
"work_item_code": None,
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def _topsoil_haul_row(topsoil: dict[str, Any], distance_m: float | None) -> dict[str, Any]:
|
||||
"""표토 운반 — 물량은 제거 물량 그대로, 거리는 설계 입력.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user