diff --git a/apps/st/src/components/statistics/review/StatsInputStatusRvw.tsx b/apps/st/src/components/statistics/review/StatsInputStatusRvw.tsx index c39734749..5e00567ad 100644 --- a/apps/st/src/components/statistics/review/StatsInputStatusRvw.tsx +++ b/apps/st/src/components/statistics/review/StatsInputStatusRvw.tsx @@ -8,11 +8,52 @@ import ReviewOpinionButton from "@/components/button/ReviewOpinionButton"; import ReturnButton from "@/components/button/ReturnButton"; import { StatsInputStatusInfoList } from "@/components/util/column/review/StatsInputStatusRvwColumn"; +import { statsInputStatusReviewApi } from "@/entities/statistics/api/statistics-input-review-service"; +import type { StatsInputStatusReviewItem } from "@/entities/statistics/model/statistics-input-review-interface"; -// 하수도 통계 관리 00. 통계 입력 현황 +// 하수도 통계 검토 00. 통계 입력 현황 const StatsInputStatusRvw = () => { - const [rowData, setRowData] = useState[]>([]); + const [rowData, setRowData] = useState([]); + const [isLoading, setIsLoading] = useState(false); + const handleReset = () => { + setRowData([]); + }; + + const handleSearch = async (values: any) => { + console.log("검색 폼 전달 값:", values); + try { + setIsLoading(true); + + const response = await statsInputStatusReviewApi.getStatsInputStatusList({ + sido: values.sido, + gugun: values.gugun, + yr: Number(values.yr), + bsnmCd: values.bsnmCd + }); + + console.log("입력현황 네트워크 응답:", response); + + if (response.status === 'success' && response.data) { + const rawList = response.data.sewerageSupplyRateList; + + const convertedData: StatsInputStatusReviewItem[] = rawList.map((item) => ({ + ...item, + status: item.status || '미확인', + })); + + setRowData(convertedData); + } else { + setRowData([]); + alert(response.message || "조회된 데이터가 없습니다."); + } + } catch (error) { + console.error("입력현황 조회 중 에러 발생:", error); + alert('데이터 조회 중 오류가 발생했습니다.'); + } finally { + setIsLoading(false); + } + }; const approveFunc = () => { console.log('approveFunc'); }; @@ -31,7 +72,7 @@ const StatsInputStatusRvw = () => { return ( <> - +
diff --git a/apps/st/src/components/util/column/review/StatsInputStatusRvwColumn.ts b/apps/st/src/components/util/column/review/StatsInputStatusRvwColumn.ts index 41545812e..e1034f31d 100644 --- a/apps/st/src/components/util/column/review/StatsInputStatusRvwColumn.ts +++ b/apps/st/src/components/util/column/review/StatsInputStatusRvwColumn.ts @@ -1,111 +1,124 @@ import { ValueType } from "realgrid"; /** - 하수도 통계 검토 00. 통계 입력 현황 - * 단일 Tab + * 하수도 통계 검토 00. 통계 입력 현황 */ const StatsInputStatusInfoColumnRaw = { columns: [ // 기본 정보 + { name: 'chk', fieldName: 'chk', header: { text: '체크' }, width: 40 }, { name: 'sido', fieldName: 'sido', header: { text: '시도' }, width: 80 }, { name: 'gugun', fieldName: 'gugun', header: { text: '시군구' }, width: 100 }, - { name: 'status', fieldName: 'status', header: { text: '진행상태' }, width: 100 }, + { name: 'status', fieldName: 'status', header: { text: '진행상태' }, width: 120 }, // 01. 하수도보급율 - { name: 'locg_charger_1', fieldName: 'locg_charger_1', header: { text: '제출자' } }, - { name: 'locg_cttpc_1', fieldName: 'locg_cttpc_1', header: { text: '연락처' } }, - { name: 'locg_status_nm_1', fieldName: 'locg_status_nm_1', header: { text: '지자체진행상태' } }, - { name: 'status_1', fieldName: 'status_1', header: { text: '진행상태' } }, + { name: 'locgCharger1', fieldName: 'locgCharger1', header: { text: '제출자' } }, + { name: 'locgCttpc1', fieldName: 'locgCttpc1', header: { text: '연락처' } }, + { name: 'locgStatusNm1', fieldName: 'locgStatusNm1', header: { text: '지자체진행상태' } }, + { name: 'status1', fieldName: 'status1', header: { text: '진행상태' } }, + { name: 'cnt1', fieldName: 'cnt1', header: { text: '건수' }, valueType: ValueType.NUMBER }, - // 02. 하수관로 (DB/JSON 키: _3) - { name: 'locg_charger_3', fieldName: 'locg_charger_3', header: { text: '제출자' } }, - { name: 'locg_cttpc_3', fieldName: 'locg_cttpc_3', header: { text: '연락처' } }, - { name: 'locg_status_nm_3', fieldName: 'locg_status_nm_3', header: { text: '지자체진행상태' } }, - { name: 'status_3', fieldName: 'status_3', header: { text: '진행상태' } }, + // 02. 하수관로 (3) + { name: 'locgCharger3', fieldName: 'locgCharger3', header: { text: '제출자' } }, + { name: 'locgCttpc3', fieldName: 'locgCttpc3', header: { text: '연락처' } }, + { name: 'locgStatusNm3', fieldName: 'locgStatusNm3', header: { text: '지자체진행상태' } }, + { name: 'status3', fieldName: 'status3', header: { text: '진행상태' } }, + { name: 'cnt3', fieldName: 'cnt3', header: { text: '건수' }, valueType: ValueType.NUMBER }, - // 03. 하수관로유지관리 (_4) - { name: 'locg_charger_4', fieldName: 'locg_charger_4', header: { text: '제출자' } }, - { name: 'locg_cttpc_4', fieldName: 'locg_cttpc_4', header: { text: '연락처' } }, - { name: 'locg_status_nm_4', fieldName: 'locg_status_nm_4', header: { text: '지자체진행상태' } }, - { name: 'status_4', fieldName: 'status_4', header: { text: '진행상태' } }, + // 03. 하수관로유지관리 (4) + { name: 'locgCharger4', fieldName: 'locgCharger4', header: { text: '제출자' } }, + { name: 'locgCttpc4', fieldName: 'locgCttpc4', header: { text: '연락처' } }, + { name: 'locgStatusNm4', fieldName: 'locgStatusNm4', header: { text: '지자체진행상태' } }, + { name: 'status4', fieldName: 'status4', header: { text: '진행상태' } }, + { name: 'cnt4', fieldName: 'cnt4', header: { text: '건수' }, valueType: ValueType.NUMBER }, - // 04. 하수저류시설 (_5) - { name: 'locg_charger_5', fieldName: 'locg_charger_5', header: { text: '제출자' } }, - { name: 'locg_cttpc_5', fieldName: 'locg_cttpc_5', header: { text: '연락처' } }, - { name: 'locg_status_nm_5', fieldName: 'locg_status_nm_5', header: { text: '지자체진행상태' } }, - { name: 'status_5', fieldName: 'status_5', header: { text: '진행상태' } }, + // 04. 하수저류시설 (5) + { name: 'locgCharger5', fieldName: 'locgCharger5', header: { text: '제출자' } }, + { name: 'locgCttpc5', fieldName: 'locgCttpc5', header: { text: '연락처' } }, + { name: 'locgStatusNm5', fieldName: 'locgStatusNm5', header: { text: '지자체진행상태' } }, + { name: 'status5', fieldName: 'status5', header: { text: '진행상태' } }, + { name: 'cnt5', fieldName: 'cnt5', header: { text: '건수' }, valueType: ValueType.NUMBER }, - // 05. 펌프장 (_6) - { name: 'locg_charger_6', fieldName: 'locg_charger_6', header: { text: '제출자' } }, - { name: 'locg_cttpc_6', fieldName: 'locg_cttpc_6', header: { text: '연락처' } }, - { name: 'locg_status_nm_6', fieldName: 'locg_status_nm_6', header: { text: '지자체진행상태' } }, - { name: 'status_6', fieldName: 'status_6', header: { text: '진행상태' } }, + // 05. 펌프장 (6) + { name: 'locgCharger6', fieldName: 'locgCharger6', header: { text: '제출자' } }, + { name: 'locgCttpc6', fieldName: 'locgCttpc6', header: { text: '연락처' } }, + { name: 'locgStatusNm6', fieldName: 'locgStatusNm6', header: { text: '지자체진행상태' } }, + { name: 'status6', fieldName: 'status6', header: { text: '진행상태' } }, + { name: 'cnt6', fieldName: 'cnt6', header: { text: '건수' }, valueType: ValueType.NUMBER }, - // 06. 공공하수처리시설 (_7) - { name: 'locg_charger_7', fieldName: 'locg_charger_7', header: { text: '제출자' } }, - { name: 'locg_cttpc_7', fieldName: 'locg_cttpc_7', header: { text: '연락처' } }, - { name: 'locg_status_nm_7', fieldName: 'locg_status_nm_7', header: { text: '지자체진행상태' } }, - { name: 'status_7', fieldName: 'status_7', header: { text: '진행상태' } }, + // 06. 공공하수처리시설 (7) + { name: 'locgCharger7', fieldName: 'locgCharger7', header: { text: '제출자' } }, + { name: 'locgCttpc7', fieldName: 'locgCttpc7', header: { text: '연락처' } }, + { name: 'locgStatusNm7', fieldName: 'locgStatusNm7', header: { text: '지자체진행상태' } }, + { name: 'status7', fieldName: 'status7', header: { text: '진행상태' } }, + { name: 'cnt7', fieldName: 'cnt7', header: { text: '건수' }, valueType: ValueType.NUMBER }, - // 07. 분뇨처리시설 (_8) - { name: 'locg_charger_8', fieldName: 'locg_charger_8', header: { text: '제출자' } }, - { name: 'locg_cttpc_8', fieldName: 'locg_cttpc_8', header: { text: '연락처' } }, - { name: 'locg_status_nm_8', fieldName: 'locg_status_nm_8', header: { text: '지자체진행상태' } }, - { name: 'status_8', fieldName: 'status_8', header: { text: '진행상태' } }, + // 07. 분뇨처리시설 (8) + { name: 'locgCharger8', fieldName: 'locgCharger8', header: { text: '제출자' } }, + { name: 'locgCttpc8', fieldName: 'locgCttpc8', header: { text: '연락처' } }, + { name: 'locgStatusNm8', fieldName: 'locgStatusNm8', header: { text: '지자체진행상태' } }, + { name: 'status8', fieldName: 'status8', header: { text: '진행상태' } }, + { name: 'cnt8', fieldName: 'cnt8', header: { text: '건수' }, valueType: ValueType.NUMBER }, - // 08. 개인하수처리시설 (_9) - { name: 'locg_charger_9', fieldName: 'locg_charger_9', header: { text: '제출자' } }, - { name: 'locg_cttpc_9', fieldName: 'locg_cttpc_9', header: { text: '연락처' } }, - { name: 'locg_status_nm_9', fieldName: 'locg_status_nm_9', header: { text: '지자체진행상태' } }, - { name: 'status_9', fieldName: 'status_9', header: { text: '진행상태' } }, + // 08. 개인하수처리시설 (9) + { name: 'locgCharger9', fieldName: 'locgCharger9', header: { text: '제출자' } }, + { name: 'locgCttpc9', fieldName: 'locgCttpc9', header: { text: '연락처' } }, + { name: 'locgStatusNm9', fieldName: 'locgStatusNm9', header: { text: '지자체진행상태' } }, + { name: 'status9', fieldName: 'status9', header: { text: '진행상태' } }, + { name: 'cnt9', fieldName: 'cnt9', header: { text: '건수' }, valueType: ValueType.NUMBER }, - // 09. 하수도재정 (_10) - { name: 'locg_charger_10', fieldName: 'locg_charger_10', header: { text: '제출자' } }, - { name: 'locg_cttpc_10', fieldName: 'locg_cttpc_10', header: { text: '연락처' } }, - { name: 'locg_status_nm_10', fieldName: 'locg_status_nm_10', header: { text: '지자체진행상태' } }, - { name: 'status_10', fieldName: 'status_10', header: { text: '진행상태' } }, + // 09. 하수도재정 (10) + { name: 'locgCharger10', fieldName: 'locgCharger10', header: { text: '제출자' } }, + { name: 'locgCttpc10', fieldName: 'locgCttpc10', header: { text: '연락처' } }, + { name: 'locgStatusNm10', fieldName: 'locgStatusNm10', header: { text: '지자체진행상태' } }, + { name: 'status10', fieldName: 'status10', header: { text: '진행상태' } }, + { name: 'cnt10', fieldName: 'cnt10', header: { text: '건수' }, valueType: ValueType.NUMBER }, - // 10. 물재이용 (_11) - { name: 'locg_charger_11', fieldName: 'locg_charger_11', header: { text: '제출자' } }, - { name: 'locg_cttpc_11', fieldName: 'locg_cttpc_11', header: { text: '연락처' } }, - { name: 'locg_status_nm_11', fieldName: 'locg_status_nm_11', header: { text: '지자체진행상태' } }, - { name: 'status_11', fieldName: 'status_11', header: { text: '진행상태' } }, + // 10. 물재이용 (11) + { name: 'locgCharger11', fieldName: 'locgCharger11', header: { text: '제출자' } }, + { name: 'locgCttpc11', fieldName: 'locgCttpc11', header: { text: '연락처' } }, + { name: 'locgStatusNm11', fieldName: 'locgStatusNm11', header: { text: '지자체진행상태' } }, + { name: 'status11', fieldName: 'status11', header: { text: '진행상태' } }, + { name: 'cnt11', fieldName: 'cnt11', header: { text: '건수' }, valueType: ValueType.NUMBER }, - // 11. 하수및분뇨찌꺼기 (_12) - { name: 'locg_charger_12', fieldName: 'locg_charger_12', header: { text: '제출자' } }, - { name: 'locg_cttpc_12', fieldName: 'locg_cttpc_12', header: { text: '연락처' } }, - { name: 'locg_status_nm_12', fieldName: 'locg_status_nm_12', header: { text: '지자체진행상태' } }, - { name: 'status_12', fieldName: 'status_12', header: { text: '진행상태' } }, + // 11. 하수및분뇨찌꺼기 (12) + { name: 'locgCharger12', fieldName: 'locgCharger12', header: { text: '제출자' } }, + { name: 'locgCttpc12', fieldName: 'locgCttpc12', header: { text: '연락처' } }, + { name: 'locgStatusNm12', fieldName: 'locgStatusNm12', header: { text: '지자체진행상태' } }, + { name: 'status12', fieldName: 'status12', header: { text: '진행상태' } }, + { name: 'cnt12', fieldName: 'cnt12', header: { text: '건수' }, valueType: ValueType.NUMBER }, - // 12. 하수및분뇨관련산업 (_13) - { name: 'locg_charger_13', fieldName: 'locg_charger_13', header: { text: '제출자' } }, - { name: 'locg_cttpc_13', fieldName: 'locg_cttpc_13', header: { text: '연락처' } }, - { name: 'locg_status_nm_13', fieldName: 'locg_status_nm_13', header: { text: '지자체진행상태' } }, - { name: 'status_13', fieldName: 'status_13', header: { text: '진행상태' } }, + // 12. 하수및분뇨관련산업 (13) + { name: 'locgCharger13', fieldName: 'locgCharger13', header: { text: '제출자' } }, + { name: 'locgCttpc13', fieldName: 'locgCttpc13', header: { text: '연락처' } }, + { name: 'locgStatusNm13', fieldName: 'locgStatusNm13', header: { text: '지자체진행상태' } }, + { name: 'status13', fieldName: 'status13', header: { text: '진행상태' } }, + { name: 'cnt13', fieldName: 'cnt13', header: { text: '건수' }, valueType: ValueType.NUMBER }, - // 13. 하수도서비스수준 (_15) - { name: 'locg_charger_15', fieldName: 'locg_charger_15', header: { text: '제출자' } }, - { name: 'locg_cttpc_15', fieldName: 'locg_cttpc_15', header: { text: '연락처' } }, - { name: 'locg_status_nm_15', fieldName: 'locg_status_nm_15', header: { text: '지자체진행상태' } }, - { name: 'status_15', fieldName: 'status_15', header: { text: '진행상태' } }, + // 13. 하수도서비스수준 (15) + { name: 'locgCharger15', fieldName: 'locgCharger15', header: { text: '제출자' } }, + { name: 'locgCttpc15', fieldName: 'locgCttpc15', header: { text: '연락처' } }, + { name: 'locgStatusNm15', fieldName: 'locgStatusNm15', header: { text: '지자체진행상태' } }, + { name: 'status15', fieldName: 'status15', header: { text: '진행상태' } }, + { name: 'cnt15', fieldName: 'cnt15', header: { text: '건수' }, valueType: ValueType.NUMBER }, ], columnLayout: [ { name: 'addrGroup', header: { text: '구분' }, items: ['sido', 'gugun'] }, 'status', - { name: 'group01', header: { text: '01. 하수도보급율' }, items: ['locg_charger_1', 'locg_cttpc_1', 'locg_status_nm_1', 'status_1'] }, - { name: 'group02', header: { text: '02. 하수관로' }, items: ['locg_charger_3', 'locg_cttpc_3', 'locg_status_nm_3', 'status_3'] }, - { name: 'group03', header: { text: '03. 하수관로유지관리' }, items: ['locg_charger_4', 'locg_cttpc_4', 'locg_status_nm_4', 'status_4'] }, - { name: 'group04', header: { text: '04. 하수저류시설' }, items: ['locg_charger_5', 'locg_cttpc_5', 'locg_status_nm_5', 'status_5'] }, - { name: 'group05', header: { text: '05. 펌프장' }, items: ['locg_charger_6', 'locg_cttpc_6', 'locg_status_nm_6', 'status_6'] }, - { name: 'group06', header: { text: '06. 공공하수처리시설' }, items: ['locg_charger_7', 'locg_cttpc_7', 'locg_status_nm_7', 'status_7'] }, - { name: 'group07', header: { text: '07. 분뇨처리시설' }, items: ['locg_charger_8', 'locg_cttpc_8', 'locg_status_nm_8', 'status_8'] }, - { name: 'group08', header: { text: '08. 개인하수처리시설' }, items: ['locg_charger_9', 'locg_cttpc_9', 'locg_status_nm_9', 'status_9'] }, - { name: 'group09', header: { text: '09. 하수도재정' }, items: ['locg_charger_10', 'locg_cttpc_10', 'locg_status_nm_10', 'status_10'] }, - { name: 'group10', header: { text: '10. 물재이용' }, items: ['locg_charger_11', 'locg_cttpc_11', 'locg_status_nm_11', 'status_11'] }, - { name: 'group11', header: { text: '11. 하수및분뇨찌꺼기' }, items: ['locg_charger_12', 'locg_cttpc_12', 'locg_status_nm_12', 'status_12'] }, - { name: 'group12', header: { text: '12. 하수및분뇨관련산업' }, items: ['locg_charger_13', 'locg_cttpc_13', 'locg_status_nm_13', 'status_13'] }, - { name: 'group13', header: { text: '13. 하수도서비스수준' }, items: ['locg_charger_15', 'locg_cttpc_15', 'locg_status_nm_15', 'status_15'] } + { name: 'group01', header: { text: '01. 하수도보급율' }, items: ['locgCharger1', 'locgCttpc1', 'locgStatusNm1', 'status1', 'cnt1'] }, + { name: 'group02', header: { text: '02. 하수관로' }, items: ['locgCharger3', 'locgCttpc3', 'locgStatusNm3', 'status3', 'cnt3'] }, + { name: 'group03', header: { text: '03. 하수관로유지관리' }, items: ['locgCharger4', 'locgCttpc4', 'locgStatusNm4', 'status4', 'cnt4'] }, + { name: 'group04', header: { text: '04. 하수저류시설' }, items: ['locgCharger5', 'locgCttpc5', 'locgStatusNm5', 'status5', 'cnt5'] }, + { name: 'group05', header: { text: '05. 펌프장' }, items: ['locgCharger6', 'locgCttpc6', 'locgStatusNm6', 'status6', 'cnt6'] }, + { name: 'group06', header: { text: '06. 공공하수처리시설' }, items: ['locgCharger7', 'locgCttpc7', 'locgStatusNm7', 'status7', 'cnt7'] }, + { name: 'group07', header: { text: '07. 분뇨처리시설' }, items: ['locgCharger8', 'locgCttpc8', 'locgStatusNm8', 'status8', 'cnt8'] }, + { name: 'group08', header: { text: '08. 개인하수처리시설' }, items: ['locgCharger9', 'locgCttpc9', 'locgStatusNm9', 'status9', 'cnt9'] }, + { name: 'group09', header: { text: '09. 하수도재정' }, items: ['locgCharger10', 'locgCttpc10', 'locgStatusNm10', 'status10', 'cnt10'] }, + { name: 'group10', header: { text: '10. 물재이용' }, items: ['locgCharger11', 'locgCttpc11', 'locgStatusNm11', 'status11', 'cnt11'] }, + { name: 'group11', header: { text: '11. 하수및분뇨찌꺼기' }, items: ['locgCharger12', 'locgCttpc12', 'locgStatusNm12', 'status12', 'cnt12'] }, + { name: 'group12', header: { text: '12. 하수및분뇨관련산업' }, items: ['locgCharger13', 'locgCttpc13', 'locgStatusNm13', 'status13', 'cnt13'] }, + { name: 'group13', header: { text: '13. 하수도서비스수준' }, items: ['locgCharger15', 'locgCttpc15', 'locgStatusNm15', 'status15', 'cnt15'] } ] }; diff --git a/apps/st/src/entities/statistics/api/statistics-input-review-service.ts b/apps/st/src/entities/statistics/api/statistics-input-review-service.ts new file mode 100644 index 000000000..867eec619 --- /dev/null +++ b/apps/st/src/entities/statistics/api/statistics-input-review-service.ts @@ -0,0 +1,39 @@ +import axios from "axios"; +import { ENDPOINT } from "@/shared/config"; + +import { + type StatsInputStatusReviewService, + type StatsInputStatusReviewApiResponse, +} from "../model/statistics-input-review-interface"; + +export class StatsInputStatusReviewApiService implements StatsInputStatusReviewService { + /** + * 통계 입력 현황 목록 조회 + * @param params (yr, bsnmCd, sido, gugun) + */ + public async getStatsInputStatusList( + params: { yr?: number; bsnmCd?: string; sido?: string; gugun?: string } + ): Promise { + const response = await axios.get( + + `${ENDPOINT.ST_SERVICE.REVIEW}/input-status`, + { + params: params + } + ); + + return response.data; + } + + public async checkInputPeriod(params: string | number): Promise { + const response = await axios.get( + `${ENDPOINT.ST_SERVICE.INPUTCOMMON}/check-input-period?year=${params}` + ); + + return response.data; + } + + +} + +export const statsInputStatusReviewApi = new StatsInputStatusReviewApiService(); \ No newline at end of file diff --git a/apps/st/src/entities/statistics/model/statistics-input-review-interface.ts b/apps/st/src/entities/statistics/model/statistics-input-review-interface.ts new file mode 100644 index 000000000..02fe913a4 --- /dev/null +++ b/apps/st/src/entities/statistics/model/statistics-input-review-interface.ts @@ -0,0 +1,124 @@ +import type { ApiResponse } from "./statistics-interface"; + +/** + * 00.검토-통계 입력현황 아이템 인터페이스 + */ +export interface StatsInputStatusReviewItem { + chk: string; + sido: string; + gugun: string; + yr: string; + bsnmCd: string; + status: string; // 전체 진행상태 + + // 01. 하수도보급율 + locgCharger1: string; + locgCttpc1: string; + locgStatusNm1: string; + status1: string; + cnt1: number; + + // 02. 하수관로 (DTO/Mapper 필드: 3) + locgCharger3: string; + locgCttpc3: string; + locgStatusNm3: string; + status3: string; + cnt3: number; + + // 03. 하수관로유지관리 (DTO/Mapper 필드: 4) + locgCharger4: string; + locgCttpc4: string; + locgStatusNm4: string; + status4: string; + cnt4: number; + + // 04. 하수저류시설 (DTO/Mapper 필드: 5) + locgCharger5: string; + locgCttpc5: string; + locgStatusNm5: string; + status5: string; + cnt5: number; + + // 05. 펌프장 (DTO/Mapper 필드: 6) + locgCharger6: string; + locgCttpc6: string; + locgStatusNm6: string; + status6: string; + cnt6: number; + + // 06. 공공하수처리시설 (DTO/Mapper 필드: 7) + locgCharger7: string; + locgCttpc7: string; + locgStatusNm7: string; + status7: string; + cnt7: number; + + // 07. 분뇨처리시설 (DTO/Mapper 필드: 8) + locgCharger8: string; + locgCttpc8: string; + locgStatusNm8: string; + status8: string; + cnt8: number; + + // 08. 개인하수처리시설 (DTO/Mapper 필드: 9) + locgCharger9: string; + locgCttpc9: string; + locgStatusNm9: string; + status9: string; + cnt9: number; + + // 09. 하수도재정 (DTO/Mapper 필드: 10) + locgCharger10: string; + locgCttpc10: string; + locgStatusNm10: string; + status10: string; + cnt10: number; + + // 10. 물재이용 (DTO/Mapper 필드: 11) + locgCharger11: string; + locgCttpc11: string; + locgStatusNm11: string; + status11: string; + cnt11: number; + + // 11. 하수및분뇨찌꺼기 (DTO/Mapper 필드: 12) + locgCharger12: string; + locgCttpc12: string; + locgStatusNm12: string; + status12: string; + cnt12: number; + + // 12. 하수및분뇨관련산업 (DTO/Mapper 필드: 13) + locgCharger13: string; + locgCttpc13: string; + locgStatusNm13: string; + status13: string; + cnt13: number; + + // 13. 하수도서비스수준 (DTO/Mapper 필드: 15) + locgCharger15: string; + locgCttpc15: string; + locgStatusNm15: string; + status15: string; + cnt15: number; +} + +export interface StatsInputStatusReviewResponseData { + // 백엔드 Response 클래스의 필드명인 sewerageSupplyRateList와 일치 + sewerageSupplyRateList: StatsInputStatusReviewItem[]; +} + + +export type StatsInputStatusReviewApiResponse = ApiResponse & { + message: string; +}; + + +export interface StatsInputStatusReviewService { + getStatsInputStatusList(params: { + yr?: number; + bsnmCd?: string; + sido?: string; + gugun?: string; + }): Promise; +} \ No newline at end of file