배경
관리사무소는 XpERP에서 뽑은 엑셀로 관리비를 등록함. 엑셀은 한 세대(호수)당 여러 행이 묶인 청크 구조인데, 관리사무소마다 계정과목이 달라서 청크 안의 행 수와 순서가 제각각임.
기존 파싱은 첫 번째 동 호부터 입주일자(또는 키불출일자)까지를 한 청크로 보고 거기서 끊음.
청크 안에 그 뒤로도 항목이 더 있는 관리사무소에서는 행이 밀려서 등록이 실패함.
파싱 위치: frontend/src/views/apt-mng/mngexp/useMngexpExcelUtils.js의 extractChunkStructure.
변경 내용
청크 경계를 첫 번째 동 호부터 다음 동 호 직전까지로 바꿈. 종료 항목 이름에 의존하지 않음.
if (firstCol === '동 호') {
if (chunkStartIndex === -1) {
chunkStartIndex = i // 첫 청크 시작
} else {
structure.chunkSize = i - chunkStartIndex // 다음 '동 호' = 청크 끝
break
}
}기존에 있던 아래 종료 조건은 삭제함.
// 삭제
if (firstCol === '입주일자' || firstCol === '키불출일자') {
structure.chunkSize = i - chunkStartIndex + 1
break
}LABEL_TO_KEY_MAP에 매핑이 없는 항목은 unmappedItems(화면의 미등록 항목)에 들어감.
동 호, 입주일자, 키불출일자, 성명(상호)는 매핑이 없어도 미등록 항목으로 잡지 않음.
알려진 한계
엑셀에 동 호가 한 번만 나오는(세대가 1건인) 파일은 청크 끝을 못 찾음.
이 경우 위 4개 항목을 뺀 나머지가 전부 미등록 항목으로 표시됨.
확인 방법
- 로컬에서 실제 관리사무소 엑셀을 업로드함.
- 미등록 항목 개수가 수정 전보다 줄었는지 봄. 2026-07-06 테스트에서 크게 줄었음.
- 세대 수와 금액 합계가 엑셀 원본과 맞는지 확인함.
양식에 없는 계정과목이 앱에 어떻게 보이는가 (2026-09-18 확인)
파싱은 여기(관리자 웹)에서 하고, 앱 서버(MAW)에는 업로드·파싱 코드가 아예 없음. 앱 서버는 저장된 값을 읽기만 함. 그래서 앱 화면 기준으로는 아래가 확정임.
- 양식에 없는 계정과목은 추가항목(
ext_data, jsonb)에 담겨 들어오면 키·값이 가공 없이 그대로 앱에 내려감. 화면에 찍히는 항목 이름은 저장된 키 글자 그대로임 - 단위는 단지별 추가항목 단위 표(
smah.tb_hsh_mngexp_ext_itm, 단지 ID + 항목명)에 등록돼 있을 때만 붙음. 미등록이면 단위 없이 값만 보임. 등록된 단위가 하나도 없으면 단위 자체가 안 내려감 - 전월·전년 대비 증감은 현재월에 있는 키만 계산함. 숫자로 바뀌지 않는 값(문자·빈칸)은 증감에서만 빠지고 원본 값은 그대로 보임
- 비교월에만 있고 현재월에 없는 항목은 화면에 안 나옴
“우리 양식에 없는 계정과목을 올려도 되나” 는 앱 화면 기준으로 “그대로 보임”이 답임. 다만 화면 이름이 엑셀의 항목명 그대로 나가고 단위는 따로 등록해야 붙으므로, 항목명을 정리한 뒤 올리도록 안내할 것. 기본매뉴얼/관리사무소/관리비 등록이 안 돼요
서버 쪽 조회 규격은 공개노트/개발/모듈/MAW 세대·헬스케어 API.
확인 필요
추가항목 단위 표(
단지 ID + 항목명단위)를 누가 채우는지 확인 필요. 관리자 웹 화면으로 등록하는지 DB에 직접 넣는지에 따라 “단위가 안 보인다”는 문의의 처리 창구가 달라짐.
관련
- 공개노트/개발/대시보드 세대수와 단지 현황 — 관리비·임대료 등록 현황이 대시보드 지표로 쓰임
- 공개노트/개발/모듈/MAW 세대·헬스케어 API
- 기본매뉴얼/관리사무소/관리비 등록이 안 돼요