Files
frontend/apps/st/src/entities/statistics/model/input/statistics-sewage-pipe-input-interface.ts
T

624 lines
19 KiB
TypeScript

import type { SewerageStatusInfo } from "../statistics-interface";
export interface SeweragePipeRequestParams {
ctpvNm?: string;
sggNm?: string;
sewerBzmnCd?: string;
statsYr?: string;
mode?: string;
}
export interface VerifyResultItem {
vrfcCd: string;
rsnExpln: string;
/** 현재값(문자열로 내려오는 경우가 많음) */
nowVlCn?: string;
/** 비교값 */
compVlCn?: string;
}
/** 필드명 -> 검증 결과 배열 */
export type SeweragePipeInputVerificationResult = Record<string, VerifyResultItem[]>;
export interface SeweragePipeInputCommonInfo {
statsYr: string;
ctpvNm: string;
sewerBzmnCd: string;
statsCd: string;
verificationResult?: SeweragePipeInputVerificationResult;
}
export interface SeweragePipeInputRegionalFactStatusItem {
admdstCd: string;
sggNm: string;
admdstNm: string;
goalYr: string;
wholPplMtncPlanPrlg: number;
wholPlanPrlg: number;
wholFcltPrlg: number;
swagePplPsplyRt: number;
cbsysPplMtncPlanArea: number;
cbsysPplMtncPlanPrlg: number;
cbsysPlanPrlg: number;
cbsysFcltPrlg: number;
cbsysSqrePrlg: number;
cbsysCiclPrlg: number;
cbsysOpnPrlg: number;
cbsysGttrPrlg: number;
drtwPplMtncPlanArea: number;
drtwPplMtncPlanPrlg: number;
drtwPplPlanPrlg: number;
drtwPplFcltPrlg: number;
drtwPplSqrePrlg: number;
drtwPplCiclPrlg: number;
exlnPplMtncPlanArea: number;
exlnPplMtncPlanPrlg: number;
exlnPplPlanPrlg: number;
exlnPplFcltPrlg: number;
exlnPplSqrePrlg: number;
exlnPplCiclPrlg: number;
exlnPplOpnPrlg: number;
exlnPplGttrPrlg: number;
cbsysMnhlCnt: number;
sprsysDrtwMnhlCnt: number;
sprsysExlnMnhlCnt: number;
drtwRcvprpCnt: number;
exlnRcvprpCnt: number;
stofcbrCnt: number;
exlnOtflCnt: number;
sewerLdgrEdpPrlg: number;
sewerLdgrEdpRt: number;
rmrk: string | null;
verificationResult?: SeweragePipeInputVerificationResult;
}
export interface SeweragePipeInputRegionalResponseData {
statusInfo: SewerageStatusInfo;
commonInfo: SeweragePipeInputCommonInfo;
regionalFactStatusList: SeweragePipeInputRegionalFactStatusItem[];
}
export interface SeweragePipeInputRegionalResponse {
status: string;
data: SeweragePipeInputRegionalResponseData;
message?: string;
}
/** 지역별 시설현황(Tab1) 저장 — saveList 행 (검증 결과 제외) */
export type SeweragePipeInputRegionalFactStatusSaveItem = Omit<
SeweragePipeInputRegionalFactStatusItem,
"verificationResult"
>;
/** Tab2 저장 — saveList */
export type SeweragePipeInputFactInstallStatusSaveItem = Omit<
SeweragePipeInputFactInstallStatusItem,
"verificationResult"
>;
/** 지역별 시설현황 저장 API 요청 */
export interface SeweragePipeInputRegionalFactStatusSaveRequest {
statsYr: string;
ctpvNm: string;
sggNm: string;
sewerBzmnCd: string;
userId: string;
superAdmin: string;
saveList: SeweragePipeInputRegionalFactStatusSaveItem[];
}
export interface SeweragePipeInputRegionalFactStatusSaveResponse {
data?: string;
message?: string;
status: string;
}
/** 하수관로 입력 제출 공통 본문 (`submitList` 제외) */
export interface SeweragePipeInputSubmitRequestBase {
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;
}
/** ST00020001 지역별 시설현황 제출 API 요청 (`submitList` 행은 저장과 동일) */
export interface SeweragePipeInputRegionalFactStatusSubmitRequest extends SeweragePipeInputSubmitRequestBase {
submitList: SeweragePipeInputRegionalFactStatusSaveItem[];
}
export interface SeweragePipeInputRegionalFactStatusSubmitResponse {
data: {
finalStatus: string;
nvpassed: boolean;
}
message?: string;
status: string;
}
export interface SeweragePipeInputFactInstallStatusSaveRequest {
statsYr: string;
ctpvNm: string;
sggNm: string;
sewerBzmnCd: string;
userId: string;
superAdmin: string;
saveList: SeweragePipeInputFactInstallStatusSaveItem[];
}
export interface SeweragePipeInputFactInstallStatusSaveResponse {
data?: string;
message?: string;
status: string;
}
/** ST00020002 시설별 설치현황 제출 API 요청 (`submitList` 행은 Tab2 저장과 동일) */
export interface SeweragePipeInputFactInstallStatusSubmitRequest extends SeweragePipeInputSubmitRequestBase {
submitList: SeweragePipeInputFactInstallStatusSaveItem[];
}
export interface SeweragePipeInputFactInstallStatusSubmitResponse {
data: {
finalStatus: string;
nvpassed: boolean;
}
message?: string;
status: string;
}
/** 하수관로 입력 제출 API 공통 응답 */
export interface SeweragePipeInputSubmitResponse {
data: {
finalStatus: string;
nvpassed: boolean;
}
message?: string;
status: string;
}
/** 시설별 설치 현황 — 목록 항목 */
export interface SeweragePipeInputFactInstallStatusItem {
admdstCd: string;
sggNm: string;
admdstNm: string;
fcltSn: string;
swtrmtFcltCd: string;
swtrmtFcltNm: string;
prcsFcltCpct: number;
prcsZoneArea: number;
cbsysPrcsZoneArea: number;
sprsysPrcsZoneArea: number;
sprsysVartnRt: number;
mltvEqpmCnt: number;
cbsysMltvEqpmCnt: number;
sprsysMltvEqpmCnt: number;
sprsysMltvLnkgCnt: number;
sprsysMltvYetLnkgCnt: number;
wholFcltPrlg: number;
wholIcptgAtlfcsPrlg: number;
icptgPrlg: number;
atlfcsPrlg: number;
cbsysStofcbrCnt: number;
sprsysStofcbrCnt: number;
sprsysExlnOtflCnt: number;
wholBrchlnPrlg: number;
cbsysBrchlnPrlg: number;
exlnBrchlnPrlg: number;
drtwBrchlnPrlg: number;
rmrk: string;
verificationResult?: SeweragePipeInputVerificationResult;
}
/** 시설별 설치 현황 — data 본문 */
export interface SeweragePipeInputFactInstallResponseData {
statusInfo: SewerageStatusInfo;
commonInfo: SeweragePipeInputCommonInfo;
factInstallStatusList: SeweragePipeInputFactInstallStatusItem[];
}
/** 시설별 설치 현황 — API 응답 */
export interface SeweragePipeInputFactInstallResponse {
status: string;
data: SeweragePipeInputFactInstallResponseData;
message?: string;
}
/** 관종별 현황 - 연도별 통계 항목(신규 스펙) */
export interface SeweragePipeInputPipeTypeYearlyStatItem {
lyngYr: string;
prlgWhol: number;
lyngPrlg: number;
dmltnPrlg: number;
}
/** 관종별 현황 — 목록 항목 */
export interface SeweragePipeInputPipeTypeStatusItem {
admdstCd: string;
sggNm: string;
admdstNm: string;
pipeSeCd: string;
pipeSeNm: string;
pipeByPrstWhol: number;
/** 구 스펙 */
lyngPrlg?: number;
dmltnPrlg?: number;
/** 신 스펙 */
lyngPrlgWhol?: number;
dmltnPrlgWhol?: number;
yearlyStatList?: SeweragePipeInputPipeTypeYearlyStatItem[];
rmrk: string;
verificationResult?: SeweragePipeInputVerificationResult;
}
/** 관종별 현황 — data 본문 */
export interface SeweragePipeInputPipeTypeResponseData {
statusInfo: SewerageStatusInfo;
commonInfo: SeweragePipeInputCommonInfo;
pipeTypeStatusList: SeweragePipeInputPipeTypeStatusItem[];
}
/** 관종별 현황 — API 응답 */
export interface SeweragePipeInputPipeTypeResponse {
status: string;
data: SeweragePipeInputPipeTypeResponseData;
message?: string;
}
/** 관종별 현황 저장 — saveList 항목 */
export interface SeweragePipeInputPipeTypeStatusSaveItem {
admdstCd: string;
admdstNm: string;
pipeSeCd: string;
yearlyStatList: SeweragePipeInputPipeTypeYearlyStatItem[];
rmrk: string;
lyngPrlgWhol: number;
dmltnPrlgWhol: number;
pipeByPrstWhol: number;
}
/** 관종별 현황 저장 API 요청 */
export interface SeweragePipeInputPipeTypeStatusSaveRequest {
statsYr: string;
ctpvNm: string;
sggNm: string;
sewerBzmnCd: string;
userId: string;
superAdmin: string;
saveList: SeweragePipeInputPipeTypeStatusSaveItem[];
}
/** 관종별 현황 저장 API 응답 */
export interface SeweragePipeInputPipeTypeStatusSaveResponse {
data?: string;
message?: string;
status: string;
}
/** ST00020003 관종별 현황 제출 API 요청 */
export interface SeweragePipeInputPipeTypeStatusSubmitRequest extends SeweragePipeInputSubmitRequestBase {
submitList: SeweragePipeInputPipeTypeStatusSaveItem[];
}
/** 관경별 현황 — 목록 항목 */
export interface SeweragePipeInputPipeDiameterStatusItem {
admdstCd: string;
sggNm: string;
admdstNm: string;
pipeSeCd: string;
pipeSeNm: string;
pdmtByTsmWhol: number;
step1PdmtPrlg: number;
step2PdmtPrlg: number;
step3PdmtPrlg: number;
step4PdmtPrlg: number;
step5PdmtPrlg: number;
sqrePdmtPrlg: number;
etcPdmtPrlg: number;
rmrk: string;
verificationResult?: SeweragePipeInputVerificationResult;
}
/** 관경별 현황 — data 본문 */
export interface SeweragePipeInputPipeDiameterResponseData {
statusInfo: SewerageStatusInfo;
commonInfo: SeweragePipeInputCommonInfo;
pipeDiameterStatusList: SeweragePipeInputPipeDiameterStatusItem[];
}
/** 관경별 현황 — API 응답 */
export interface SeweragePipeInputPipeDiameterResponse {
status: string;
data: SeweragePipeInputPipeDiameterResponseData;
message?: string;
}
/** 관경별 현황 저장 — saveList 항목 */
export interface SeweragePipeInputPipeDiameterStatusSaveItem {
pipeSeCd: string;
step1PdmtPrlg: number;
step2PdmtPrlg: number;
step3PdmtPrlg: number;
step4PdmtPrlg: number;
step5PdmtPrlg: number;
sqrePdmtPrlg: number;
etcPdmtPrlg: number;
rmrk: string;
pdmtByTsmWhol: number;
admdstCd: string;
admdstNm: string;
}
/** 관경별 현황 저장 API 요청 */
export interface SeweragePipeInputPipeDiameterStatusSaveRequest {
statsYr: string;
ctpvNm: string;
sggNm: string;
sewerBzmnCd: string;
userId: string;
superAdmin: string;
saveList: SeweragePipeInputPipeDiameterStatusSaveItem[];
}
/** 관경별 현황 저장 API 응답 */
export interface SeweragePipeInputPipeDiameterStatusSaveResponse {
data?: string;
message?: string;
status: string;
}
/** ST00020004 관경별 현황 제출 API 요청 */
export interface SeweragePipeInputPipeDiameterStatusSubmitRequest extends SeweragePipeInputSubmitRequestBase {
submitList: SeweragePipeInputPipeDiameterStatusSaveItem[];
}
/** 맨홀 현황 — 연도별 통계 항목 */
export interface SeweragePipeInputManholeYearlyStatItem {
manhYr: string;
wholMnhlCnt: number;
step1MnhlCnt: number;
step2MnhlCnt: number;
step3MnhlCnt: number;
step4MnhlCnt: number;
step5MnhlCnt: number;
}
type SeweragePipeInputManholeLegacyYy = 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25;
type SeweragePipeInputManholeLegacySuffix =
| "WholMnhlCnt"
| "Step1MnhlCnt"
| "Step2MnhlCnt"
| "Step3MnhlCnt"
| "Step4MnhlCnt"
| "Step5MnhlCnt";
type SeweragePipeInputManholeLegacyYearField =
`yy${SeweragePipeInputManholeLegacyYy}${SeweragePipeInputManholeLegacySuffix}`;
/** 맨홀 현황 — 목록 항목 */
export interface SeweragePipeInputManholeStatusItem
extends Partial<Record<SeweragePipeInputManholeLegacyYearField, number>> {
sggNm: string;
admdstCd: string;
admdstNm: string;
emphsMngSeCd: string;
emphsMngSeNm: string;
totalWholMnhlCnt: number;
totalStep1MnhlCnt: number;
totalStep2MnhlCnt: number;
totalStep3MnhlCnt: number;
totalStep4MnhlCnt: number;
totalStep5MnhlCnt: number;
yearlyStats?: SeweragePipeInputManholeYearlyStatItem[];
rmrk: string;
verificationResult?: SeweragePipeInputVerificationResult;
}
/** 맨홀 현황 — data 본문 */
export interface SeweragePipeInputManholeResponseData {
statusInfo: SewerageStatusInfo;
commonInfo: SeweragePipeInputCommonInfo;
manholeStatusList: SeweragePipeInputManholeStatusItem[];
}
/** 맨홀 현황 — API 응답 */
export interface SeweragePipeInputManholeResponse {
status: string;
data: SeweragePipeInputManholeResponseData;
message?: string;
}
/** 맨홀 현황 저장 — yearlyStats 항목 */
export interface SeweragePipeInputManholeStatusSaveYearlyStatItem {
manhYr: string;
wholMnhlCnt: number;
step1MnhlCnt: number;
step2MnhlCnt: number;
step3MnhlCnt: number;
step4MnhlCnt: number;
step5MnhlCnt: number;
}
/** 맨홀 현황 저장 — saveList 항목 */
export interface SeweragePipeInputManholeStatusSaveItem {
emphsMngSeCd: string;
admdstCd: string;
admdstNm: string;
yearlyStats: SeweragePipeInputManholeStatusSaveYearlyStatItem[];
rmrk: string;
}
/** 맨홀 현황 저장 API 요청 */
export interface SeweragePipeInputManholeStatusSaveRequest {
statsYr: string;
ctpvNm: string;
sggNm: string;
sewerBzmnCd: string;
userId: string;
superAdmin: string;
saveList: SeweragePipeInputManholeStatusSaveItem[];
}
/** 맨홀 현황 저장 API 응답 */
export interface SeweragePipeInputManholeStatusSaveResponse {
data?: string;
message?: string;
status: string;
}
/** ST00020005 맨홀 현황 제출 API 요청 */
export interface SeweragePipeInputManholeStatusSubmitRequest extends SeweragePipeInputSubmitRequestBase {
submitList: SeweragePipeInputManholeStatusSaveItem[];
}
/** 시설별 현황 관리 - 하수처리장별 연결 현황 목록 항목 */
export interface SeweragePipeInputFacilityConnectionItem {
fcltNm: string;
fcltCpct: number;
fcltSn: string;
isConnection: string;
connectionAreaList: string;
}
/** 시설별 현황 관리 - 행정구역별 연결 현황 목록 항목 */
export interface SeweragePipeInputAdminAreaConnectionItem {
ctpvNm: string;
sggNm: string;
admdstNm: string;
admdstCd: string;
isConnection: string;
connectionBscFctNmList: string;
}
/** 시설별 현황 관리 — data 본문 */
export interface SeweragePipeInputConnectionStatusResponseData {
statusInfo: SewerageStatusInfo;
commonInfo: SeweragePipeInputCommonInfo;
facilityConnectionList: SeweragePipeInputFacilityConnectionItem[];
adminAreaConnectionList: SeweragePipeInputAdminAreaConnectionItem[];
}
/** 시설별 현황 관리 — API 응답 */
export interface SeweragePipeInputConnectionStatusResponse {
status: string;
data: SeweragePipeInputConnectionStatusResponseData;
message?: string;
}
/** facilitiesList 요청 — statsYr 필수, 나머지 선택 */
export interface SeweragePipeFacilitiesListRequest {
statsYr: string;
sewerBzmnCd?: string;
ctpvNm?: string;
sggNm?: string;
fcltyNm?: string;
}
/** facilitiesList 응답 — 목록 항목 */
export interface SeweragePipeFacilitiesListItem {
statsYr: string;
ctpvNm: string;
sggNm: string;
admdstCd: string;
fcltNm: string;
fcltCpct: number;
fcltCd: string;
fcltSn: string;
}
/** facilitiesList API 응답 */
export interface SeweragePipeFacilitiesListResponse {
status: string;
data: SeweragePipeFacilitiesListItem[];
message?: string;
}
/** 처리시설 선택 후 행정구역(연결) 목록 조회 요청 */
export interface SeweragePipeFacilityAdminAreaListRequest {
statsYr: string;
swtrmtFcltCd: string;
sewerBzmnCd: string;
ctpvNm: string;
sggNm?: string;
}
/** 처리시설별 행정구역 목록 항목 */
export interface SeweragePipeFacilityAdminAreaItem {
ctpvNm: string;
sggNm: string;
admdstNm: string;
admdstCd: string;
isConnection: string;
}
/** 처리시설별 행정구역 목록 API 응답 */
export interface SeweragePipeFacilityAdminAreaListResponse {
status: string;
data: SeweragePipeFacilityAdminAreaItem[];
message?: string;
}
/** 시설별 연결관계 저장 — saveList 항목 */
export interface SeweragePipeFactConnectionSaveItem {
admdstCd: string;
admdstNm: string;
}
/** 시설별 연결관계 저장 요청 */
export interface SeweragePipeFactConnectionSaveRequest {
ctpvNm: string;
sggNm: string;
fcltSn: string;
statsYr: string;
swtrmtFcltCd: string;
swtrmtFcltNm: string;
prcsFcltCpct: number;
sewerBzmnCd: string;
userId: string;
saveList: SeweragePipeFactConnectionSaveItem[];
deleteList: string[];
}
/** 시설별 연결관계 저장 응답 */
export interface SeweragePipeFactConnectionSaveResponse {
status: string;
data?: string;
message?: string;
}
export interface StatisticsInputSewPipeService {
getRegionalFactStatus(param: SeweragePipeRequestParams): Promise<SeweragePipeInputRegionalResponse>;
getFactInstallStatus(param: SeweragePipeRequestParams): Promise<SeweragePipeInputFactInstallResponse>;
getPipeTypeStatus(param: SeweragePipeRequestParams): Promise<SeweragePipeInputPipeTypeResponse>;
getPipeDiameterStatus(param: SeweragePipeRequestParams): Promise<SeweragePipeInputPipeDiameterResponse>;
getManholeStatus(param: SeweragePipeRequestParams): Promise<SeweragePipeInputManholeResponse>;
getConnectionStatus(param: SeweragePipeRequestParams): Promise<SeweragePipeInputConnectionStatusResponse>;
getFacilitiesList(param: SeweragePipeFacilitiesListRequest): Promise<SeweragePipeFacilitiesListResponse>;
getFacilityAdminAreaList(param: SeweragePipeFacilityAdminAreaListRequest): Promise<SeweragePipeFacilityAdminAreaListResponse>;
saveFactConnection(param: SeweragePipeFactConnectionSaveRequest): Promise<SeweragePipeFactConnectionSaveResponse>;
saveRegionalFactStatus(param: SeweragePipeInputRegionalFactStatusSaveRequest): Promise<SeweragePipeInputRegionalFactStatusSaveResponse>;
submitRegionalFactStatus(param: SeweragePipeInputRegionalFactStatusSubmitRequest): Promise<SeweragePipeInputRegionalFactStatusSubmitResponse>;
saveFactInstallStatus(param: SeweragePipeInputFactInstallStatusSaveRequest): Promise<SeweragePipeInputFactInstallStatusSaveResponse>;
submitFactInstallStatus(param: SeweragePipeInputFactInstallStatusSubmitRequest): Promise<SeweragePipeInputFactInstallStatusSubmitResponse>;
savePipeTypeStatus(param: SeweragePipeInputPipeTypeStatusSaveRequest): Promise<SeweragePipeInputPipeTypeStatusSaveResponse>;
submitPipeTypeStatus(param: SeweragePipeInputPipeTypeStatusSubmitRequest): Promise<SeweragePipeInputSubmitResponse>;
savePipeDiameterStatus(param: SeweragePipeInputPipeDiameterStatusSaveRequest): Promise<SeweragePipeInputPipeDiameterStatusSaveResponse>;
submitPipeDiameterStatus(param: SeweragePipeInputPipeDiameterStatusSubmitRequest): Promise<SeweragePipeInputSubmitResponse>;
saveManholeStatus(param: SeweragePipeInputManholeStatusSaveRequest): Promise<SeweragePipeInputManholeStatusSaveResponse>;
submitManholeStatus(param: SeweragePipeInputManholeStatusSubmitRequest): Promise<SeweragePipeInputSubmitResponse>;
}