merge(마스터): sub_laptop_4 관급 확대 합침 — 자재품목 열 정리 위에 조달 값·새 줄 얹기

- 자재품목 = 내 열 정리(유류 5줄 삭제 · 원문번호 칸 없음) 기준 · 저쪽 관급 값 1,012 줄 · 비고 1,507 줄 채택
- 조달청에만 있는 380 줄 더함 — 원문번호 칸 없이 · 키 MT023981~MT024360 은 _키대장.json 에 등록
- update_관급단가.py 는 procured() 로 대장에서 「조달청 …」 키를 가려 짝지음 — 줄의 원문번호 칸을 보지 않음
- _키대장.json 「다음」 MT 24361 · MO 73 · 「폐기」 는 양쪽 합집합

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
This commit is contained in:
2026-09-20 18:58:02 +09:00
co-authored by Claude Opus 5
40 changed files with 2872 additions and 1596 deletions
@@ -4,14 +4,47 @@
| 파일 | 오퍼레이션 | 분류명 | 줄 수 |
|---|---|---|---|
| MASCntrct_레미콘.json.gz | getMASCntrctPrdctInfoList | 레미콘 | 26,384 (totalCount 26,384) |
| ThptyUcntrct_레미콘.json.gz | getThptyUcntrctPrdctInfoList | 레미콘 | 128 (totalCount 128) |
| MASCntrct_아스팔트콘크리트.json.gz | getMASCntrctPrdctInfoList | 아스팔트콘크리트 | 17,949 (totalCount 17,949) |
| Ucntrct_아스팔트콘크리트.json.gz | getUcntrctPrdctInfoList | 아스팔트콘크리트 | 17 (totalCount 17) |
| ThptyUcntrct_아스팔트콘크리트.json.gz | getThptyUcntrctPrdctInfoList | 아스팔트콘크리트 | 13 (totalCount 13) |
| MASCntrct_봉강.json.gz | getMASCntrctPrdctInfoList | 봉강 | 1,039 (totalCount 1,039) |
| MASCntrct_H빔.json.gz | getMASCntrctPrdctInfoList | H빔 | 181 (totalCount 181) |
| MASCntrct_파형강관.json.gz | getMASCntrctPrdctInfoList | 파형강관 | 6,970 (totalCount 6,970) |
| ThptyUcntrct_파형강관.json.gz | getThptyUcntrctPrdctInfoList | 파형강관 | 1,573 (totalCount 1,573) |
| MASCntrct_콘크리트관.json.gz | getMASCntrctPrdctInfoList | 콘크리트관 | 504 (totalCount 504) |
| Ucntrct_콘크리트관.json.gz | getUcntrctPrdctInfoList | 콘크리트관 | 10 (totalCount 10) |
| MASCntrct_레미콘.json.gz | getMASCntrctPrdctInfoList | 레미콘 | 26,384 |
| ThptyUcntrct_레미콘.json.gz | getThptyUcntrctPrdctInfoList | 레미콘 | 128 |
| MASCntrct_아스팔트콘크리트.json.gz | getMASCntrctPrdctInfoList | 아스팔트콘크리트 | 17,949 |
| Ucntrct_아스팔트콘크리트.json.gz | getUcntrctPrdctInfoList | 아스팔트콘크리트 | 17 |
| ThptyUcntrct_아스팔트콘크리트.json.gz | getThptyUcntrctPrdctInfoList | 아스팔트콘크리트 | 13 |
| MASCntrct_봉강.json.gz | getMASCntrctPrdctInfoList | 봉강 | 1,039 |
| MASCntrct_H빔.json.gz | getMASCntrctPrdctInfoList | H빔 | 181 |
| MASCntrct_파형강관.json.gz | getMASCntrctPrdctInfoList | 파형강관 | 6,970 |
| ThptyUcntrct_파형강관.json.gz | getThptyUcntrctPrdctInfoList | 파형강관 | 1,573 |
| MASCntrct_콘크리트관.json.gz | getMASCntrctPrdctInfoList | 콘크리트관 | 504 |
| Ucntrct_콘크리트관.json.gz | getUcntrctPrdctInfoList | 콘크리트관 | 10 |
| MASCntrct_시멘트.json.gz | getMASCntrctPrdctInfoList | 시멘트 | 8 |
| MASCntrct_골재.json.gz | getMASCntrctPrdctInfoList | 골재 | 136 |
| MASCntrct_조경석.json.gz | getMASCntrctPrdctInfoList | 조경석 | 836 |
| Ucntrct_주철관.json.gz | getUcntrctPrdctInfoList | 주철관 | 167 |
| MASCntrct_파형강관이음관.json.gz | getMASCntrctPrdctInfoList | 파형강관이음관 | 2,373 |
| ThptyUcntrct_파형강관이음관.json.gz | getThptyUcntrctPrdctInfoList | 파형강관이음관 | 409 |
| MASCntrct_배수로.json.gz | getMASCntrctPrdctInfoList | 배수로 | 4,651 |
| ThptyUcntrct_배수로.json.gz | getThptyUcntrctPrdctInfoList | 배수로 | 6 |
| MASCntrct_블록.json.gz | getMASCntrctPrdctInfoList | 블록 | 23,540 |
| Ucntrct_블록.json.gz | getUcntrctPrdctInfoList | 블록 | 2 |
| ThptyUcntrct_블록.json.gz | getThptyUcntrctPrdctInfoList | 블록 | 731 |
| MASCntrct_돌망태.json.gz | getMASCntrctPrdctInfoList | 돌망태 | 844 |
| ThptyUcntrct_돌망태.json.gz | getThptyUcntrctPrdctInfoList | 돌망태 | 18 |
| MASCntrct_합성목재.json.gz | getMASCntrctPrdctInfoList | 합성목재 | 198 |
| MASCntrct_볼라드.json.gz | getMASCntrctPrdctInfoList | 볼라드 | 4,681 |
| MASCntrct_교량받침.json.gz | getMASCntrctPrdctInfoList | 교량받침 | 4,081 |
| ThptyUcntrct_교량받침.json.gz | getThptyUcntrctPrdctInfoList | 교량받침 | 5,211 |
| MASCntrct_용접철망.json.gz | getMASCntrctPrdctInfoList | 용접철망 | 700 |
| ThptyUcntrct_섬유.json.gz | getThptyUcntrctPrdctInfoList | 섬유 | 4 |
| MASCntrct_폴리에틸렌.json.gz | getMASCntrctPrdctInfoList | 폴리에틸렌 | 9,982 |
| ThptyUcntrct_폴리에틸렌.json.gz | getThptyUcntrctPrdctInfoList | 폴리에틸렌 | 1,835 |
| MASCntrct_맨홀.json.gz | getMASCntrctPrdctInfoList | 맨홀 | 11,495 |
| MASCntrct_매트.json.gz | getMASCntrctPrdctInfoList | 매트 | 4,087 |
| ThptyUcntrct_매트.json.gz | getThptyUcntrctPrdctInfoList | 매트 | 98 |
| MASCntrct_낙석.json.gz | getMASCntrctPrdctInfoList | 낙석 | 2,057 |
| ThptyUcntrct_그레이팅.json.gz | getThptyUcntrctPrdctInfoList | 그레이팅 | 114 |
| MASCntrct_벽돌.json.gz | getMASCntrctPrdctInfoList | 벽돌 | 370 |
| ThptyUcntrct_시트.json.gz | getThptyUcntrctPrdctInfoList | 시트 | 39 |
| MASCntrct_비료.json.gz | getMASCntrctPrdctInfoList | 비료 | 101 |
| MASCntrct_압륜.json.gz | getMASCntrctPrdctInfoList | 압륜 | 142 |
| ThptyUcntrct_부직포.json.gz | getThptyUcntrctPrdctInfoList | 부직포 | 8 |
| MASCntrct_경질폴리염화비닐관.json.gz | getMASCntrctPrdctInfoList | 경질폴리염화비닐관 | 949 (totalCount 949) |
| ThptyUcntrct_경질폴리염화비닐관.json.gz | getThptyUcntrctPrdctInfoList | 경질폴리염화비닐관 | 330 (totalCount 330) |