refactor: 01. 하수도 보급률 불필요컬럼 제거 및 컬럼 수정

This commit is contained in:
2026-02-24 11:42:16 +09:00
parent c2de582b76
commit 8e7baee930
2 changed files with 42 additions and 57 deletions
@@ -16,11 +16,10 @@ const rawSeweragePenetrationRateInfoList = {
valueCallback: (grid: GridView) => {
const divisionIndex = 0;
const dataSource = grid.getDataSource();
const rowCount = dataSource.getRowCount();
const uniqueValues = new Set<string>();
for (let i = 0; i < rowCount; i++) {
const divisionValue = dataSource.getValue(i, 'displayYear');
if (divisionValue) uniqueValues.add(String(divisionValue));
for (let i = 0; i < dataSource.getRowCount(); i++) {
const val = dataSource.getValue(i, 'displayYear');
if (val) uniqueValues.add(String(val));
}
const divisionValues = Array.from(uniqueValues);
return divisionValues.length > divisionIndex ? divisionValues[divisionIndex] + '합계' : '합계';
@@ -30,11 +29,10 @@ const rawSeweragePenetrationRateInfoList = {
valueCallback: (grid: GridView) => {
const divisionIndex = 1;
const dataSource = grid.getDataSource();
const rowCount = dataSource.getRowCount();
const uniqueValues = new Set<string>();
for (let i = 0; i < rowCount; i++) {
const divisionValue = dataSource.getValue(i, 'displayYear');
if (divisionValue) uniqueValues.add(String(divisionValue));
for (let i = 0; i < dataSource.getRowCount(); i++) {
const val = dataSource.getValue(i, 'displayYear');
if (val) uniqueValues.add(String(val));
}
const divisionValues = Array.from(uniqueValues);
return divisionValues.length > divisionIndex ? divisionValues[divisionIndex] + '합계' : '합계';
@@ -78,7 +76,7 @@ const rawSeweragePenetrationRateInfoList = {
}
]
},
{ name: 'wtsysNm', fieldName: 'wtsysNm', header: { text: '수계' } },
{ name: 'wtsysNm', fieldName: 'rvbsn', header: { text: '수계' } },
{ name: 'trbtrNm', fieldName: 'trbtrNm', header: { text: '지류' } },
{ name: 'mdbsn', fieldName: 'mdbsn', header: { text: '세부단위유역' } },
{ name: 'lgbsn', fieldName: 'lgbsn', header: { text: '중권역' } },
@@ -87,17 +85,14 @@ const rawSeweragePenetrationRateInfoList = {
{ name: 'wholPpltnCnt', fieldName: 'wholPpltnCnt', header: { text: '총인구' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
{ name: 'wholArea', fieldName: 'wholArea', header: { text: '총면적(㎢)' }, footer: footerDecimal3ArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0.000' },
{ name: 'wholSwtrmtPpltnCnt', fieldName: 'wholSwtrmtPpltnCnt', header: { text: '계' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
{ name: 'wholPblSwtrmtPpltnCnt', fieldName: 'wholPblSwtrmtPpltnCnt', header: { text: '합계' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
{ name: 'ts1SwtrmtPpltnCnt', fieldName: 'ts1SwtrmtPpltnCnt', header: { text: '1차처리' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
{ name: 'ts2SwtrmtPpltnCnt', fieldName: 'ts2SwtrmtPpltnCnt', header: { text: '2차처리' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
{ name: 'ts3SwtrmtPpltnCnt', fieldName: 'ts3SwtrmtPpltnCnt', header: { text: '3차처리' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
{ name: 'wholWwtPrcsPpltnCnt', fieldName: 'wholWwtPrcsPpltnCnt', header: { text: '합계' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
{ name: 'ts1WwtPrcsPpltnCnt', fieldName: 'ts1WwtPrcsPpltnCnt', header: { text: '1차처리' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
{ name: 'ts2WwtPrcsPpltnCnt', fieldName: 'ts2WwtPrcsPpltnCnt', header: { text: '2차처리' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
{ name: 'ts3WwtPrcsPpltnCnt', fieldName: 'ts3WwtPrcsPpltnCnt', header: { text: '3차처리' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
{ name: 'yetCntnPpltnCnt', fieldName: 'yetCntnPpltnCnt', header: { text: '미접속인구' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
{ name: 'staaArea', fieldName: 'staaArea', header: { text: '면적(㎢)' }, footer: footerDecimal3ArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0.000' },
{ name: 'wholStaaExcpPpltnCnt', fieldName: 'wholStaaExcpPpltnCnt', header: { text: '계' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
@@ -2,58 +2,48 @@ import type { ApiResponse } from "./statistics-interface";
// 검토 01.하수도 보급률 데이터 항목
export interface SewerageSupplyRateReviewItem {
/* 지역 및 구분 정보 */
ctpvNm: string; // 시도명
sggNm: string; // 시군구명
statsYr: string; // 통계연도
admdstNm: string; // 행정구역명
admdstCd: string; // 행정구역코드
displayYear: string; // 화면 표시 연도
rowType: 'OLD' | 'CURR'; // 데이터 구분(OLD: 확정, CURR: 당해년도)
ctpvNm: string;
sggNm: string;
statsYr: string;
admdstNm: string;
admdstCd: string;
displayYear: string;
rowType: 'OLD' | 'CURR';
/* 수계 및 지역 정보 */
lgbsn: string; // 중권역
mdbsn: string; // 세부단위유역
mdmbsn: string; // 소수계
wtsysNm: string | null; // 수계명
trbtrNm: string | null; // 지류명
spcCtpnRgnCn: string | null; // 특별대책지역내용
lgbsn: string;
mdbsn: string;
mdmbsn: string;
rvbsn: string | null;
trbtrNm: string | null;
spcCtpnRgnCn: string | null;
/* 인구 및 면적 데이터 */
wholPpltnCnt: number; // 전체인구수(명)
wholArea: number; // 전체면적(㎢)
wholPpltnCnt: number;
wholArea: number;
/* 하수처리구역내 */
wholSwtrmtPpltnCnt: number; // 전체하수처리인구수(명)
wholPblSwtrmtPpltnCnt: number; // 전체공공하수처리인구수(명)
ts1SwtrmtPpltnCnt: number; // 1차하수처리인구수(명)
ts2SwtrmtPpltnCnt: number; // 2차하수처리인구수(명)
ts3SwtrmtPpltnCnt: number; // 3차하수처리인구수(명)
wholSwtrmtPpltnCnt: number;
wholPblSwtrmtPpltnCnt: number;
ts1SwtrmtPpltnCnt: number;
ts2SwtrmtPpltnCnt: number;
ts3SwtrmtPpltnCnt: number;
wholWwtPrcsPpltnCnt: number; // 전체폐수처리인구수(명)
ts1WwtPrcsPpltnCnt: number | null; // 1차폐수처리인구수(명)
ts2WwtPrcsPpltnCnt: number | null; // 2차폐수처리인구수(명)
ts3WwtPrcsPpltnCnt: number | null; // 3차폐수처리인구수(명)
wholWwtPrcsPpltnCnt: number;
ts1WwtPrcsPpltnCnt: number | null;
ts2WwtPrcsPpltnCnt: number | null;
ts3WwtPrcsPpltnCnt: number | null;
yetCntnPpltnCnt: number; // 미접속인구수(명)
staaArea: number; // 하수처리구역면적(㎢)
yetCntnPpltnCnt: number;
staaArea: number;
/* 하수처리구역외 */
wholStaaExcpPpltnCnt: number; // 전체하수처리구역외인구수(명)
unprcsPpltnCnt: number | null; // 미처리인구수(명)
drtwPrcsPpltnCnt: number | null; // 오수처리인구수(명)
spctnkPpltnCnt: number | null; // 정화조인구수(명)
staaExcpArea: number; // 하수처리구역외면적(㎢)
wholStaaExcpPpltnCnt: number;
unprcsPpltnCnt: number | null;
drtwPrcsPpltnCnt: number | null;
spctnkPpltnCnt: number | null;
staaExcpArea: number;
/* 보급률 및 기타 */
staaPsplyRt: number; // 하수처리구역보급비율(%)
altdPrcsPsplyRt: number; // 고도처리보급비율(%)
sewerInstlRt: number; // 하수도설치비율(%)
rmrk: string | null; // 비고
/* 기타 플래그 */
lcnt?: number | null;
ocnt?: number | null;
staaPsplyRt: number;
altdPrcsPsplyRt: number;
sewerInstlRt: number;
rmrk: string | null;
}
export interface SewerageSupplyRateReviewRequestParams {