Files
frontend/apps/st/src/entities/statistics/model/input/statistics-input-sewerage-finance-interface.ts
T

558 lines
16 KiB
TypeScript

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<SewerageFinanceSettleResponseData> & {
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<SewerageChargeResponseData> & {
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<SewerageUsageFeeResponseData> & {
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<CauserBurdenResponseData> & {
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<SewerageFinanceSettleApiResponse>;
saveSewerageFinanceSettle(
request: SewerageFinanceSettleSaveRequest,
): Promise<SewerageFinanceSettleSaveResponse>;
submitSewerageFinanceSettle(
request: SewerageFinanceSettleSubmitRequest,
): Promise<SewerageFinanceSettleSubmitResponse>;
getSewerageChargeList(
params: SewerageChargeRequestParams,
): Promise<SewerageChargeApiResponse>;
saveSewerageCharge(
request: SewerageChargeSaveRequest,
): Promise<SewerageChargeSaveResponse>;
submitSewerageCharge(
request: SewerageChargeSubmitRequest,
): Promise<SewerageFinanceSubmitResponse>;
getSewerageUsageFeeList(
params: SewerageUsageFeeRequestParams,
): Promise<SewerageUsageFeeApiResponse>;
saveSewerageUsageFee(
request: SewerageUsageFeeSaveRequest,
): Promise<SewerageUsageFeeSaveResponse>;
submitSewerageUsageFee(
request: SewerageUsageFeeSubmitRequest,
): Promise<SewerageFinanceSubmitResponse>;
getCauserBurdenList(
params: CauserBurdenRequestParams,
): Promise<CauserBurdenApiResponse>;
saveCauserBurden(
request: CauserBurdenSaveRequest,
): Promise<CauserBurdenSaveResponse>;
submitCauserBurden(
request: CauserBurdenSubmitRequest,
): Promise<SewerageFinanceSubmitResponse>;
}