배경
대시보드와 보고서에 스마트홈 서비스가 실제로 돌아가지 않는 단지까지 섞여 나왔음. 회선이 끊겼거나 홈넷 서버가 설치되지 않은 단지는 집계에서 빼야 함.
구분 기준은 cmn.tb_hnsvr_m 테이블의 hnet_lnkg_ss_cd(홈넷 연동 상태 코드)임.
변경 내용
연동 상태 코드 (tb_cd_dlt_m)
| 코드 | 의미 |
|---|---|
| ON | 연동중 |
| NT | 미연동 |
| ND | 미정 |
| OP | 연동예정 |
| NN | 대기 |
| DC | 회선단절 |
| SU | 서비스불가(미설치) |
DC, SU인 단지를 대시보드·보고서 조회에서 제외함.
공통 필터 추가
Common_Mapper.xml에 재사용 가능한 sql 조각을 만듦.
<sql id="smahAplFilter">
AND NOT EXISTS (
SELECT 1 FROM cmn.tb_hnsvr_m h
WHERE h.sbd_id = tsm.sbd_id
AND h.hnet_lnkg_ss_cd IN ('DC', 'SU')
AND h.del_yn = 'N'
)
</sql>Dsbd_Mapper.xml, Report_Mapper.xml의 각 쿼리에 아래 중 하나를 넣음.
Common.commonTableJoin을 쓰는 쿼리 →<include refid="Common.smahAplFilter"/>- 안 쓰는 쿼리 → 같은 조건을 직접 넣되, 별칭을 해당 쿼리의 기준 테이블로 바꾸고 매입임대(
mntnLsTpCd == '02')는 제외함.
<if test='condition != "WEB" or mntnLsTpCd == null or mntnLsTpCd != "02"'>
AND NOT EXISTS (
SELECT 1 FROM cmn.tb_hnsvr_m h
WHERE h.sbd_id = base_tbl.sbd_id
AND h.hnet_lnkg_ss_cd IN ('DC', 'SU')
AND h.del_yn = 'N'
)
</if>데이터 정리
“인터넷 전용회선 및 플랫폼 연동 현황” 파일을 받아 실제 끊김/미설치 단지를 확인하고 hnet_lnkg_ss_cd를 맞춤.
2026-06-04 기준 DC로 바꾼 단지: 강동천호, 화성향남2 A-21BL, 화성향남2 A-22BL, 홍천갈마곡 1BL, 진천문백, 충북옥천, 전남곡성, 경북의성, 서귀포대정.
홈넷 단지 목록에 아예 없어서 손댈 게 없던 단지: 서울번동3, 과천지식정보타운 S-11BL, 강원정선 1BL, 청주수곡, 영암학산 1BL, 광주선운2 A-2BL, 구미송정, 포항흥해 1BL, 산청신안.
확인 방법
select hnet_lnkg_ss_cd, count(*) from cmn.tb_hnsvr_m where del_yn = 'N' group by 1로 코드 분포를 봄.- 필터 적용 전후 대시보드 운영단지 수 차이가 DC/SU 단지 수와 맞는지 비교함.
tb_hnsvr_m에 레코드가 없는 단지는 이NOT EXISTS조건으로 걸러지지 않음. 공개노트/개발/대시보드 세대수와 단지 현황의 주의 항목을 같이 봄.