feat(b09): 야면석 채집 「인 부」를 보통인부로 준용 — 확정 8-1
노임표에 없는 직종명을 유사 직종으로 바꿔 읽는 자리를 공종 단위로 둠(FP-13-02-04 한 곳). 산출기초에 준용 근거(재경원 회계 45101-45) 표시. 뒷길이 다섯 × 밑수 둘, 일위대가 10벌이 새로 섬. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DJffo4VwgTumVUM3kdbJzd
This commit is contained in:
@@ -43,6 +43,21 @@ _RE_BASIS = re.compile(r"^(㎡|㎥|㏊|m|㎝|개|본|주|ton|톤|kg|㎏)\s*당$"
|
||||
#: 밑수 표기 → 그 갈래가 갖는 단위.
|
||||
_BASIS_UNIT = {"㏊": "ha", "톤": "ton", "㎏": "kg"}
|
||||
|
||||
#: 품셈이 **노임표에 없는 직종명**을 쓴 자리 → 유사 직종
|
||||
#: (2026-09-09 사용자 확정 8-1 「바꿔쓰기 허용」).
|
||||
#: 근거 — 「미조사 직종은 유사 직종 단가에 준하여 적용」(재경원 회계 45101-45).
|
||||
#: ⚠ **공종 단위로만 건다** — 「인부」를 전역으로 읽으면 확정 밖 공종까지 조용히 붙는다.
|
||||
SIMILAR_OCCUPATION = {("FP-13-02-04", "인부"): "보통인부"}
|
||||
|
||||
|
||||
def similar_occupation_note(work_item_code: str) -> str:
|
||||
"""그 공종이 유사 직종으로 바꿔 쓴 자리면 산출근거 문구, 아니면 빈 문자열."""
|
||||
return " · ".join(
|
||||
f"품셈 「{written}」 → {used} 준용(유사 직종 · 재경원 회계 45101-45 · 사용자 확정 8-1)"
|
||||
for (code, written), used in SIMILAR_OCCUPATION.items()
|
||||
if code == work_item_code
|
||||
)
|
||||
|
||||
|
||||
def _tight(text: str) -> str:
|
||||
return "".join(str(text or "").split())
|
||||
@@ -93,7 +108,8 @@ def match_unit_basis_table(
|
||||
continue
|
||||
if basis_at > 0:
|
||||
# 이름이 앞에 붙은 줄 — 「인 부 | ㎡당 | 0.11 | …」. 이름을 여기서 갱신한다.
|
||||
found = _resolve(catalog, cells[0])
|
||||
name_cell = SIMILAR_OCCUPATION.get((work_item_code, _tight(cells[0])), cells[0])
|
||||
found = _resolve(catalog, name_cell)
|
||||
if found is None:
|
||||
result.unmatched.append(
|
||||
UnmatchedRow(
|
||||
|
||||
Reference in New Issue
Block a user