import type { ApiResponse, SewerageStatusInfo, StatisticsInputCommonInfoBase } from "../statistics-interface"; /** 하수도재정 결산(ST00090001) — `SewerageFinanceSettleInpColumn.tabKey` */ export const SEWERAGE_FINANCE_SETTLE_STATS_CD = "ST00090001" as const; /** 검증 결과 한 건 */ export interface SewerageFinanceVerificationResultItem { vrfcCd: string; rsnExpln: string; nowVlCn: string; compVlCn: string; } /** 필드명 → 검증 결과 배열 */ export type SewerageFinanceVerificationResult = Record< string, SewerageFinanceVerificationResultItem[] >; /** ST00090001 조회 `data.commonInfo` */ export interface SewerageFinanceSettleCommonInfo extends StatisticsInputCommonInfoBase { statsYr: string; ctpvNm: string; sewerBzmnCd: string; statsCd: string; verificationResult?: SewerageFinanceVerificationResult; } /** * ST00090001 조회 `data.sewerageFinanceSettleList[]` 한 행. * `SewerageFinanceSettleInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 `commonInfo.ctpvNm` 시도명). */ export interface SewerageFinanceSettleItem { admdstCd: string; sggNm: string; admdstNm: string; fnnByWholPjtcoAmt: number; cnterGovSprtAmt: number; mctpvLcexpAmt: number; wareaSggLclAmt: number; sewerUseAmt: number; orgprBrdnAmt: number; etcIncmAmt: number; crfwAmt: number; lbltAmt: number; usgByWholPjtcoAmt: number; tmplntWholAmt: number; tmplntFcltAmt: number; tmplntMendngAmt: number; tmplntOperKeepAmt: number; tmplntEtcAmt: number; wholSwagePplAmt: number; swagePplFcltAmt: number; swagePplMendngAmt: number; swagePplOperKeepAmt: number; swagePplEtcAmt: number; wholSwageImpdFcltAmt: number; swageImpdFcltAmt: number; swageImpdMendngAmt: number; swageImpdOperKeepAmt: number; swageImpdFcltEtcAmt: number; etcWholAmt: number; etcAcdntCrfwAmt: number; etcNrcpAmt: number; etcAmt: number; rmrk: string | null; verificationResult?: SewerageFinanceVerificationResult; } export interface SewerageFinanceSettleResponseData { statusInfo: SewerageStatusInfo; commonInfo: SewerageFinanceSettleCommonInfo; sewerageFinanceSettleList: SewerageFinanceSettleItem[]; } export type SewerageFinanceSettleApiResponse = ApiResponse & { message: string; }; /** ST00090001 조회 요청 파라미터 */ export interface SewerageFinanceSettleRequestParams { ctpvNm?: string; sggNm?: string; sewerBzmnCd?: string; statsYr?: string; mode?: string; } /** * ST00090001 저장 API `saveList[]` 한 행. * `SewerageFinanceSettleInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 요청 `ctpvNm` 시도명). */ export interface SewerageFinanceSettleSaveItem { admdstCd: string | null; sggNm: string | null; admdstNm: string | null; cnterGovSprtAmt: number; mctpvLcexpAmt: number; wareaSggLclAmt: number; sewerUseAmt: number; orgprBrdnAmt: number; etcIncmAmt: number; crfwAmt: number; lbltAmt: number; tmplntFcltAmt: number; tmplntMendngAmt: number; tmplntOperKeepAmt: number; tmplntEtcAmt: number; swagePplFcltAmt: number; swagePplMendngAmt: number; swagePplOperKeepAmt: number; swagePplEtcAmt: number; swageImpdFcltAmt: number; swageImpdMendngAmt: number; swageImpdOperKeepAmt: number; swageImpdFcltEtcAmt: number; etcAcdntCrfwAmt: number; etcNrcpAmt: number; etcAmt: number; rmrk: string | null; fnnByWholPjtcoAmt: number; usgByWholPjtcoAmt: number; tmplntWholAmt: number; wholSwagePplAmt: number; wholSwageImpdFcltAmt: number; etcWholAmt: number; } /** ST00090001 저장 API 요청 */ export interface SewerageFinanceSettleSaveRequest { statsYr: string; ctpvNm: string; sggNm?: string; sewerBzmnCd: string; userId: string; superAdmin?: string; saveList: SewerageFinanceSettleSaveItem[]; } export interface SewerageFinanceSettleSaveResponse { status: string; message?: string; data?: string; } /** ST00090001 제출 API 요청 */ export interface SewerageFinanceSettleSubmitRequest { statsYr: string; ctpvNm: string; sggNm?: string; sewerBzmnCd: string; userId: string; laePicNm: string; laePicTelNo: string; laeKbrdrDeptNm: string; laeKbrdrJbgdNm: string; laeIdfrNm: string; laeIdfrTelNo: string; laeIdfrDeptNm: string; laeIdfrJbgdNm: string; superAdmin?: string; submitList: SewerageFinanceSettleSaveItem[]; } export interface SewerageFinanceSettleSubmitResponse { status: string; message?: string; data?: { finalStatus: string; nvpassed: boolean; isHbPassed?: string; }; } /** 하수도재정 입력 제출 공통 본문 (`submitList` 제외) */ export interface SewerageFinanceSubmitRequestBase { statsYr: string; ctpvNm: string; sggNm?: string; sewerBzmnCd: string; userId: string; laePicNm: string; laePicTelNo: string; laeKbrdrDeptNm: string; laeKbrdrJbgdNm: string; laeIdfrNm: string; laeIdfrTelNo: string; laeIdfrDeptNm: string; laeIdfrJbgdNm: string; superAdmin?: string; } export interface SewerageFinanceSubmitResponse { status: string; message?: string; data?: { finalStatus: string; nvpassed: boolean; isHbPassed?: string; }; } /** 하수도 요금(ST00090002) — `SewerageChargeInpColumn.tabKey` */ export const SEWERAGE_CHARGE_STATS_CD = "ST00090002" as const; /** ST00090002 조회 `data.commonInfo` */ export interface SewerageChargeCommonInfo extends StatisticsInputCommonInfoBase { statsYr: string; ctpvNm: string; sewerBzmnCd: string; statsCd: string; verificationResult?: SewerageFinanceVerificationResult; } /** * ST00090002 조회 `data.sewerageChargeList[]` 한 행. * `SewerageChargeInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 `commonInfo.ctpvNm` 시도명). */ export interface SewerageChargeItem { admdstCd: string; sggNm: string; admdstNm: string; anlLevyQnt: number; levyAmt: number; avgUntprcAmt: number; grssPrmcoAmt: number; grssUnitPrmcoAmt: number; rlztnRt: number; rmrk: string | null; verificationResult?: SewerageFinanceVerificationResult; } export interface SewerageChargeResponseData { statusInfo: SewerageStatusInfo; commonInfo: SewerageChargeCommonInfo; sewerageChargeList: SewerageChargeItem[]; } export type SewerageChargeApiResponse = ApiResponse & { message: string; }; /** ST00090002 조회 요청 파라미터 */ export interface SewerageChargeRequestParams { ctpvNm?: string; sggNm?: string; sewerBzmnCd?: string; statsYr?: string; mode?: string; } /** * ST00090002 저장·제출 API `saveList` / `submitList[]` 한 행. * `SewerageChargeInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 요청 `ctpvNm` 시도명). */ export interface SewerageChargeSaveItem { admdstCd: string | null; sggNm: string | null; admdstNm: string | null; anlLevyQnt: number; levyAmt: number; grssPrmcoAmt: number; rmrk: string | null; avgUntprcAmt: number; grssUnitPrmcoAmt: number; rlztnRt: number; } /** ST00090002 저장 API 요청 */ export interface SewerageChargeSaveRequest { statsYr: string; ctpvNm: string; sggNm?: string; sewerBzmnCd: string; userId: string; superAdmin?: string; saveList: SewerageChargeSaveItem[]; } export interface SewerageChargeSaveResponse { status: string; message?: string; data?: string; } /** ST00090002 제출 API 요청 (`submitList` 행은 `SewerageChargeSaveItem`과 동일) */ export interface SewerageChargeSubmitRequest extends SewerageFinanceSubmitRequestBase { submitList: SewerageChargeSaveItem[]; } export type SewerageChargeSubmitItem = SewerageChargeSaveItem; /** 하수도 사용료(ST00090003) — `SewerageUsageFeeInpColumn.tabKey` */ export const SEWERAGE_USAGE_FEE_STATS_CD = "ST00090003" as const; /** ST00090003 조회 `data.commonInfo` */ export interface SewerageUsageFeeCommonInfo extends StatisticsInputCommonInfoBase { statsYr: string; ctpvNm: string; sewerBzmnCd: string; statsCd: string; verificationResult?: SewerageFinanceVerificationResult; } /** * ST00090003 조회 `data.sewerageUsageFeeList[]` 한 행. * `SewerageUsageFeeInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 `commonInfo.ctpvNm` 시도명). */ export interface SewerageUsageFeeItem { admdstCd: string; sggNm: string; admdstNm: string; levyAmt: number; levyQnt: number; hshusLevyAmt: number; hshusLevyQnt: number; hshusUntprcAmt: number; taskFrLevyAmt: number; taskFrLevyQnt: number; taskFrUntprcAmt: number; fbuLevyAmt: number; fbuLevyQnt: number; fbuUntprcAmt: number; bthhsFrSpcs1LevyAmt: number; bthhsFrSpcs1LevyQnt: number; bthhsFrSpcs1UntprcAmt: number; bthhsFrSpcs2LevyAmt: number; bthhsFrSpcs2LevyQnt: number; bthhsFrSpcs2UntprcAmt: number; induLevyAmt: number; induLevyQnt: number; induUntprcAmt: number; etcLevyAmt: number; etcLevyQnt: number; etcLevyUntprcAmt: number; rmrk: string | null; verificationResult?: SewerageFinanceVerificationResult; } export interface SewerageUsageFeeResponseData { statusInfo: SewerageStatusInfo; commonInfo: SewerageUsageFeeCommonInfo; sewerageUsageFeeList: SewerageUsageFeeItem[]; } export type SewerageUsageFeeApiResponse = ApiResponse & { message: string; }; /** ST00090003 조회 요청 파라미터 */ export interface SewerageUsageFeeRequestParams { ctpvNm?: string; sggNm?: string; sewerBzmnCd?: string; statsYr?: string; mode?: string; } /** * ST00090003 저장·제출 API `saveList` / `submitList[]` 한 행. * `SewerageUsageFeeInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 요청 `ctpvNm` 시도명). */ export interface SewerageUsageFeeSaveItem { admdstCd: string | null; sggNm: string | null; admdstNm: string | null; hshusLevyAmt: number; hshusLevyQnt: number; hshusUntprcAmt: number; taskFrLevyAmt: number; taskFrLevyQnt: number; taskFrUntprcAmt: number; fbuLevyAmt: number; fbuLevyQnt: number; fbuUntprcAmt: number; bthhsFrSpcs1LevyAmt: number; bthhsFrSpcs1LevyQnt: number; bthhsFrSpcs1UntprcAmt: number; bthhsFrSpcs2LevyAmt: number; bthhsFrSpcs2LevyQnt: number; bthhsFrSpcs2UntprcAmt: number; induLevyAmt: number; induLevyQnt: number; induUntprcAmt: number; etcLevyAmt: number; etcLevyQnt: number; etcLevyUntprcAmt: number; rmrk: string | null; levyAmt: number; levyQnt: number; } /** ST00090003 저장 API 요청 */ export interface SewerageUsageFeeSaveRequest { statsYr: string; ctpvNm: string; sggNm?: string; sewerBzmnCd: string; userId: string; superAdmin?: string; saveList: SewerageUsageFeeSaveItem[]; } export interface SewerageUsageFeeSaveResponse { status: string; message?: string; data?: string; } /** ST00090003 제출 API 요청 (`submitList` 행은 `SewerageUsageFeeSaveItem`과 동일) */ export interface SewerageUsageFeeSubmitRequest extends SewerageFinanceSubmitRequestBase { submitList: SewerageUsageFeeSaveItem[]; } export type SewerageUsageFeeSubmitItem = SewerageUsageFeeSaveItem; /** 원인자 부담금(ST00090004) — `CauserBurdenInpColumn.tabKey` */ export const CAUSER_BURDEN_STATS_CD = "ST00090004" as const; /** ST00090004 조회 `data.commonInfo` */ export interface CauserBurdenCommonInfo extends StatisticsInputCommonInfoBase { statsYr: string; ctpvNm: string; sewerBzmnCd: string; statsCd: string; verificationResult?: SewerageFinanceVerificationResult; } /** * ST00090004 조회 `data.causerBurdenList[]` 한 행. * `CauserBurdenInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 `commonInfo.ctpvNm` 시도명). */ export interface CauserBurdenItem { admdstCd: string; sggNm: string; admdstNm: string; levyEvntcsCnt: number; levyAmt: number; trgtByWholClctnEvntcsCnt: number; trgtByWholClctnAmt: number; mltvEqpmEvntcsCnt: number; mltvEqpmAmt: number; othrCstrnOthrActrCnt: number; othrCstrnOthrActrAmt: number; rmrk: string | null; verificationResult?: SewerageFinanceVerificationResult; } export interface CauserBurdenResponseData { statusInfo: SewerageStatusInfo; commonInfo: CauserBurdenCommonInfo; causerBurdenList: CauserBurdenItem[]; } export type CauserBurdenApiResponse = ApiResponse & { message: string; }; /** ST00090004 조회 요청 파라미터 */ export interface CauserBurdenRequestParams { ctpvNm?: string; sggNm?: string; sewerBzmnCd?: string; statsYr?: string; mode?: string; } /** * ST00090004 저장·제출 API `saveList` / `submitList[]` 한 행. * `CauserBurdenInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 요청 `ctpvNm` 시도명). * `trgtByWholClctnEvntcsCnt`는 조회·그리드 전용이며 저장·제출 요청에는 포함하지 않음. */ export interface CauserBurdenSaveItem { admdstCd: string | null; sggNm: string | null; admdstNm: string | null; levyEvntcsCnt: number; levyAmt: number; mltvEqpmEvntcsCnt: number; mltvEqpmAmt: number; othrCstrnOthrActrCnt: number; othrCstrnOthrActrAmt: number; rmrk: string | null; trgtByWholClctnAmt: number; } /** ST00090004 저장 API 요청 */ export interface CauserBurdenSaveRequest { statsYr: string; ctpvNm: string; sggNm?: string; sewerBzmnCd: string; userId: string; superAdmin?: string; saveList: CauserBurdenSaveItem[]; } export interface CauserBurdenSaveResponse { status: string; message?: string; data?: string; } /** ST00090004 제출 API 요청 (`submitList` 행은 `CauserBurdenSaveItem`과 동일) */ export interface CauserBurdenSubmitRequest extends SewerageFinanceSubmitRequestBase { submitList: CauserBurdenSaveItem[]; } export type CauserBurdenSubmitItem = CauserBurdenSaveItem; /** 하수도재정 조회 공통 요청 파라미터 */ export interface SewerageFinanceRequestParams { ctpvNm?: string; sggNm?: string; sewerBzmnCd?: string; statsYr?: string; mode?: string; } export interface StatisticsInputSewerageFinanceService { getSewerageFinanceSettleList( params: SewerageFinanceSettleRequestParams, ): Promise; saveSewerageFinanceSettle( request: SewerageFinanceSettleSaveRequest, ): Promise; submitSewerageFinanceSettle( request: SewerageFinanceSettleSubmitRequest, ): Promise; getSewerageChargeList( params: SewerageChargeRequestParams, ): Promise; saveSewerageCharge( request: SewerageChargeSaveRequest, ): Promise; submitSewerageCharge( request: SewerageChargeSubmitRequest, ): Promise; getSewerageUsageFeeList( params: SewerageUsageFeeRequestParams, ): Promise; saveSewerageUsageFee( request: SewerageUsageFeeSaveRequest, ): Promise; submitSewerageUsageFee( request: SewerageUsageFeeSubmitRequest, ): Promise; getCauserBurdenList( params: CauserBurdenRequestParams, ): Promise; saveCauserBurden( request: CauserBurdenSaveRequest, ): Promise; submitCauserBurden( request: CauserBurdenSubmitRequest, ): Promise; }