585 lines
16 KiB
TypeScript
585 lines
16 KiB
TypeScript
export interface Sido {
|
|
adstDstrCd: string;
|
|
sido: string;
|
|
bsnmCd: string;
|
|
/** Y: 시군구 생략(광역시 등), N: 시군구 필요(도) */
|
|
gugunSkipYn: "Y" | "N";
|
|
}
|
|
|
|
export interface SearchCondition {
|
|
yearList: string[];
|
|
sidoList: Sido[];
|
|
}
|
|
|
|
export interface Sgg {
|
|
adstDstrCd: string;
|
|
gugun: string;
|
|
bsnmCd: string;
|
|
}
|
|
|
|
export interface cancelSubmitRequest {
|
|
statsYr: string;
|
|
ctpvNm: string;
|
|
sggNm?: string;
|
|
sewerBzmnCd: string;
|
|
statsCd: string;
|
|
mdfrUuid: string;
|
|
}
|
|
|
|
export interface cancelSubmitResponse {
|
|
status: string;
|
|
message?: string;
|
|
}
|
|
|
|
export interface ApiResponse<T> {
|
|
status: string;
|
|
data?: T;
|
|
message?: string;
|
|
}
|
|
|
|
/** 통계 컬럼 가이드(영문 컬럼명·한글명·유형·계산 여부·가이드 문구) 한 행 */
|
|
export interface StatisticsColumnGuideItem {
|
|
engColNm: string;
|
|
korColNm: string;
|
|
colType: string;
|
|
isCalcCol: string;
|
|
columnGuide: string;
|
|
}
|
|
|
|
/** 컬럼 가이드 정보 조회 응답 (`data`: 컬럼 가이드 배열) */
|
|
export type StatisticsColumnGuideListResponse = ApiResponse<StatisticsColumnGuideItem[]>;
|
|
|
|
/** 통계 입력 관리 등 — 연도·구분·분류(입력/검증)별 입력 기간 한 행 */
|
|
export interface StatsInputPeriodItem {
|
|
extSchdlId?: number;
|
|
statsYr: string;
|
|
cyclSeNo: number;
|
|
seTypeCd: string;
|
|
bgngYmd: string;
|
|
endYmd: string;
|
|
}
|
|
|
|
/** `data`가 `StatsInputPeriodItem[]` 인 조회 응답 */
|
|
export type StatsInputPeriodListApiResponse = ApiResponse<StatsInputPeriodItem[]>;
|
|
|
|
/** 통계 입력 기간 목록 조회 요청 쿼리 */
|
|
export interface StatsInputPeriodListRequest {
|
|
statsYr?: string;
|
|
seTypeCd?: string;
|
|
}
|
|
|
|
export interface StatsInputPeriodDetailRequest {
|
|
statsYr: string;
|
|
seTypeCd: string;
|
|
cyclSeNo: number;
|
|
extSchdlId?: number;
|
|
}
|
|
|
|
export interface StatsInputPeriodDetailResponse {
|
|
status: string;
|
|
message?: string;
|
|
data: StatsInputPeriodItem;
|
|
}
|
|
|
|
/** 통계 입력 기간 등록·수정 등 요청 본문 */
|
|
export interface StatsInputPeriodSaveRequest {
|
|
extSchdlId?: number;
|
|
statsYr: string;
|
|
seTypeCd: string;
|
|
cyclSeNo?: number;
|
|
/** 시작일 (백엔드 형식 문자열, 예: YYYYMMDD) */
|
|
bgngYmd: string;
|
|
/** 종료일 (백엔드 형식 문자열, 예: YYYYMMDD) */
|
|
endYmd: string;
|
|
rgtrUuid: string;
|
|
}
|
|
|
|
/** 통계 입력 기간 저장 응답 */
|
|
export type StatsInputPeriodSaveApiResponse = ApiResponse<unknown>;
|
|
|
|
/** 통계 입력 기간 삭제 요청 */
|
|
export interface StatsInputPeriodDeleteRequest {
|
|
extSchdlId?: number;
|
|
statsYr: string;
|
|
seTypeCd: string;
|
|
cyclSeNo: number;
|
|
bgngYmd: string;
|
|
endYmd: string;
|
|
rgtrUuid: string;
|
|
}
|
|
|
|
/** 통계 입력 기간 삭제 응답 */
|
|
export type StatsInputPeriodDeleteApiResponse = ApiResponse<unknown>;
|
|
|
|
/** 입력 조회 `data.commonInfo` 공통 필드 */
|
|
export interface StatisticsInputCommonInfoBase {
|
|
isVerificationFailed: boolean;
|
|
}
|
|
|
|
/** 하수 입력/보급률 등 조회 `data.statusInfo` 공통 (제출·담당자 정보) */
|
|
export interface SewerageStatusInfo {
|
|
lclgvPicNm: string | null;
|
|
lclgvPicTelnoCn: string | null;
|
|
lclgvKbrdrDeptNm: string | null;
|
|
lclgvKbrdrJbgdNm: string | null;
|
|
lclgvIdfrNm: string | null;
|
|
lclgvIdfrTelnoCn: string | null;
|
|
lclgvIdfrDeptNm: string | null;
|
|
lclgvIdfrJbgdNm: string | null;
|
|
lclgvSbmsnSttsCd: string | null;
|
|
lclgvSbmsnYmd: string | null;
|
|
rjctOpnnCn: string | null;
|
|
}
|
|
|
|
export interface ImrRequest {
|
|
user_id?: string;
|
|
sewer_bzmn_cd: string;
|
|
stats_cd: string;
|
|
stats_yr: string;
|
|
lae_sbmsn_stts_cd: string;
|
|
gen_verify_stts_cd?: string;
|
|
hb_pass_yn?: string;
|
|
}
|
|
|
|
export interface ImrResponse {
|
|
anls_sn: number;
|
|
job_id: string;
|
|
total_otlr_cnt: number;
|
|
status_code: string;
|
|
error_msg: string;
|
|
processing_time_ms: number;
|
|
job_prog: number;
|
|
queue_position: number;
|
|
}
|
|
|
|
export interface ImrStatusResponse {
|
|
job_id: string;
|
|
anls_sn: number;
|
|
status: string;
|
|
job_prog: number;
|
|
total_otlr_cnt: number;
|
|
total_nml_cnt: number;
|
|
total_excl_cnt: number;
|
|
processing_time_ms: number;
|
|
error_msg: string;
|
|
queue_position: string;
|
|
}
|
|
|
|
export interface VerificationResultListRequest {
|
|
statsYr: string;
|
|
sewerBzmnCd?: string;
|
|
ctpvNm?: string;
|
|
sggNm?: string;
|
|
statsCd?: string;
|
|
/** 검증 방법 코드 (예: NV, IMR, HB) */
|
|
vrfcMthdCd?: string;
|
|
/** 검증결과상태 코드 목록, 콤마 구분 (예: 0, 0,2, 2) */
|
|
vrfcSttsCdList?: string;
|
|
/** @deprecated 신규 API에서는 미사용 */
|
|
pbcpAprvYn?: string;
|
|
page?: number;
|
|
size?: number;
|
|
}
|
|
|
|
/** 검증 결과 리포트 목록 한 행 (`verifyResultList` 원소) */
|
|
export interface VerificationResultReportItem {
|
|
statsYr: string;
|
|
statsCd: string;
|
|
sewerBzmnCd: string;
|
|
ctpvNm: string;
|
|
sggNm: string;
|
|
admdstNm: string;
|
|
fcltNm: string | null;
|
|
vrfcSn: number;
|
|
vrfcMthdCd: string;
|
|
vrfcMthdNm: string;
|
|
vrfcTrgtNm: string;
|
|
rsnExpln: string;
|
|
nowCn: string;
|
|
cmprCn: string | null;
|
|
vrfcSttsCd: string;
|
|
vrfcSttsNm: string;
|
|
prcsOpnnExpln: string | null;
|
|
statsVrfcRjtComCd: string;
|
|
statsVrfcRjtComNm: string;
|
|
rjctOpnnCn: string | null;
|
|
regDt: string;
|
|
mdfcnDt: string;
|
|
/** 하위 호환: 일부 API/화면에서만 내려올 수 있음 */
|
|
statsNm?: string;
|
|
prcrId?: string | null;
|
|
pbcpAprvYn?: string;
|
|
mdfrUuid?: string | null;
|
|
}
|
|
|
|
export interface VerificationResultListPageInfo {
|
|
totalElements: number;
|
|
totalPages: number;
|
|
currentPage: number;
|
|
size: number;
|
|
}
|
|
|
|
export interface VerificationResultListData {
|
|
verifyResultList: VerificationResultReportItem[];
|
|
pageInfo: VerificationResultListPageInfo;
|
|
}
|
|
|
|
/** 검증 결과 리포트 조회 API 응답 */
|
|
export interface VerificationResultListResponse {
|
|
status: string;
|
|
message?: string;
|
|
data?: VerificationResultListData;
|
|
}
|
|
|
|
export interface SubmitExceptionRequest {
|
|
statsYr: string;
|
|
statsCd: string;
|
|
ctpvNm: string;
|
|
sggNm?: string;
|
|
sewerBzmnCd: string;
|
|
userUuid: string;
|
|
superAdmin?: string;
|
|
lclgvPicNm: string;
|
|
lclgvPicTelnoCn: string;
|
|
lclgvKbrdrDeptNm: string;
|
|
lclgvKbrdrJbgdNm: string;
|
|
lclgvIdfrNm: string;
|
|
lclgvIdfrTelnoCn: string;
|
|
lclgvIdfrDeptNm: string;
|
|
lclgvIdfrJbgdNm: string
|
|
}
|
|
|
|
export interface SubmitExceptionResponse {
|
|
status: string;
|
|
message?: string;
|
|
}
|
|
|
|
export interface StatisticsLog {
|
|
statsLogSn?: string;
|
|
statsYr?: string;
|
|
ctpvNm?: string | null;
|
|
sggNm?: string | null;
|
|
sewerBzmnCd?: string | null;
|
|
menuNm?: string;
|
|
tbmnNm?: string;
|
|
tblNm?: string;
|
|
statsDataChgComCd?: string;
|
|
statsDataChgComNm?: string;
|
|
rgtrUuid?: string;
|
|
regDt?: string;
|
|
}
|
|
|
|
export interface StatisticsLogRequest {
|
|
page: number;
|
|
size: number;
|
|
statsCd?: string;
|
|
startDate?: string;
|
|
endDate?: string;
|
|
/** 시도명 */
|
|
ctpvNm?: string;
|
|
/** 시군구명 */
|
|
sggNm?: string;
|
|
sewerBzmnCd?: string;
|
|
/** 요청 기능(통계 데이터 변경 공통코드) */
|
|
statsDataChgComCd?: string;
|
|
}
|
|
|
|
export interface StatisticsLogResponse {
|
|
status: string;
|
|
message?: string;
|
|
data?: {
|
|
statsLogList: StatisticsLog[];
|
|
pageInfo: {
|
|
totalElements: number;
|
|
totalPages: number;
|
|
currentPage: number;
|
|
size: number;
|
|
};
|
|
};
|
|
}
|
|
|
|
/**
|
|
* 통계 로그 데이터 상세조회 `data[]` 행.
|
|
* `rmrk`, `sggNm`, `admdstCd`, `admdstNm`는 공통이고, 그 외 키는 통계/탭에 따라 가변.
|
|
*/
|
|
export interface StatisticsLogDetailRow {
|
|
rmrk: string;
|
|
sggNm: string;
|
|
admdstCd: string;
|
|
admdstNm: string;
|
|
[key: string]: string | number | null | undefined;
|
|
}
|
|
|
|
export interface StatisticsLogDetailResponse {
|
|
status: string;
|
|
message?: string;
|
|
data?: StatisticsLogDetailRow[] | StatisticsLogDetailRow;
|
|
}
|
|
|
|
export interface getReviewOpinionDetailRequest {
|
|
statsYr: string;
|
|
sewerBzmnCd: string;
|
|
statsCd: string;
|
|
}
|
|
|
|
export interface ReviewOpinionDetailItem {
|
|
statsYr: string;
|
|
sewerBzmnCd: string;
|
|
statsCd: string;
|
|
splmntOpnnCn: string | null;
|
|
splmntRsltCn: string | null;
|
|
mdfrUuid: string | null;
|
|
}
|
|
|
|
export interface getReviewOpinionDetailResponse {
|
|
status: string;
|
|
message?: string;
|
|
data?: ReviewOpinionDetailItem[];
|
|
}
|
|
|
|
/** 검토의견 저장 API body */
|
|
export interface ReviewOpinionSaveRequest {
|
|
statsYr: string;
|
|
sewerBzmnCd: string;
|
|
statsCd: string;
|
|
splmntOpnnCn: string;
|
|
splmntRsltCn: string;
|
|
mdfrUuid: string;
|
|
}
|
|
|
|
export interface ReviewOpinionSaveResponse {
|
|
status: string;
|
|
message?: string;
|
|
}
|
|
|
|
export interface ReviewReturnSaveRequest {
|
|
type: "REVIEW";
|
|
statsYr: string;
|
|
sewerBzmnCd: string;
|
|
statsCd: string;
|
|
rjctOpnnCn: string;
|
|
mdfrUuid: string;
|
|
vrfcSn?: string;
|
|
}
|
|
|
|
export interface ReviewReturnSaveResponse {
|
|
exceptionCnt: number;
|
|
message: string;
|
|
resultCode: string;
|
|
updatedStts: string;
|
|
}
|
|
|
|
export interface ReviewInputSaveRequest {
|
|
type: "INPUT";
|
|
statsYr: string;
|
|
sewerBzmnCd: string;
|
|
statsCd: string;
|
|
/** 미입력·빈 문자열이면 요청 body에 포함하지 않음 */
|
|
rjctOpnnCn?: string;
|
|
mdfrUuid: string;
|
|
vrfcSn?: string;
|
|
}
|
|
|
|
export interface ReviewSubmitRequest {
|
|
statsYr: string;
|
|
/** 항목 단위 제출: string / 통계 입력 현황 일괄 제출: string[] */
|
|
sewerBzmnCd: string | string[];
|
|
mdfrUuid: string;
|
|
/** 통계항목 단위 제출 시 사용 (통계 입력 현황 일괄 제출에는 미사용) */
|
|
statsCd?: string;
|
|
splmntOpnnCn?: string;
|
|
splmntRsltCn?: string;
|
|
}
|
|
|
|
export interface ReviewSubmitResponse {
|
|
status: string;
|
|
message?: string;
|
|
}
|
|
|
|
/** 통계 일괄 승인 `/stats/approve` 쿼리 파라미터 `type` */
|
|
export type StatsInputStatusApproveKind = "INPUT" | "REVIEW";
|
|
|
|
/** 통계 입력 현황 승인 요청 항목 (행 단위) */
|
|
export interface StatsInputStatusApproveItem {
|
|
statsYr: string;
|
|
sewerBzmnCd: string;
|
|
statsCd: string;
|
|
mdfrUuid: string;
|
|
}
|
|
|
|
/** 통계 입력 현황 일괄 승인 API 요청 본문 */
|
|
export interface StatsInputStatusApproveBatchRequest {
|
|
list: StatsInputStatusApproveItem[];
|
|
}
|
|
|
|
/** 통계 입력 현황 일괄 승인 API 응답 */
|
|
export interface StatsInputStatusApproveResponse {
|
|
exceptionCnt: number;
|
|
message: string;
|
|
resultCode: string;
|
|
updatedStts: string;
|
|
}
|
|
|
|
export interface SubmitVerifyExceptionItem {
|
|
vrfcSn: number;
|
|
prcsOpnnExpln: string;
|
|
}
|
|
|
|
export interface SubmitVerifyExceptionRequest {
|
|
sewerBzmnCd: string;
|
|
statsYr: string;
|
|
statsCd: string;
|
|
userUuid: string;
|
|
exceptionList: SubmitVerifyExceptionItem[];
|
|
}
|
|
|
|
export interface SubmitVerifyExceptionResponse {
|
|
status: string;
|
|
message?: string;
|
|
}
|
|
|
|
export interface ReviewerInfoRequest {
|
|
sewerBzmnCd: string;
|
|
statsYr: string;
|
|
/** 통계항목 단위 조회 시 사용 (통계 입력 현황 일괄 제출에는 미사용) */
|
|
statsCd?: string;
|
|
instSeCd : string;
|
|
}
|
|
|
|
export interface ReviewerInfoResponse {
|
|
status: string;
|
|
data: {
|
|
userNm: string;
|
|
telOffrm: string;
|
|
dpmNm: string;
|
|
cps: string;
|
|
splmntOpnnCn: string;
|
|
splmntRsltCn: string;
|
|
}
|
|
}
|
|
|
|
export interface StatiscicsManagementReviewHistoryRequest {
|
|
statsYr: string;
|
|
sewerBzmnCd?: string;
|
|
ctpvNm?: string;
|
|
sggNm?: string;
|
|
statsCd?: string;
|
|
}
|
|
|
|
/** 공통 코드 메모리 캐시 동기화 (`INPUTCOMMON/codes-refresh`) 응답 */
|
|
export interface CodesRefreshResponse {
|
|
status: string;
|
|
message?: string;
|
|
}
|
|
|
|
/** 통계관리 검토 이력 조회 API `data` 배열 요소 */
|
|
export interface StatiscicsManagementReviewHistoryItem {
|
|
statsYr: string;
|
|
ctpvNm: string;
|
|
sggNm: string;
|
|
menuNm: string;
|
|
wrterOpinionSm: string | null;
|
|
chckerOpinionSm: string | null;
|
|
returnOpinionSm: string | null;
|
|
}
|
|
|
|
export interface StatiscicsManagementReviewHistoryResponse {
|
|
status: string;
|
|
message?: string;
|
|
data: StatiscicsManagementReviewHistoryItem[];
|
|
}
|
|
|
|
export interface StatiscicsExceptionResetRequest {
|
|
statsYr: string;
|
|
sewerBzmnCd: string;
|
|
statsCd: string;
|
|
mdfrUuid: string,
|
|
vrfcSnList: number[]
|
|
}
|
|
|
|
export interface StatiscicsExceptionResetResponse {
|
|
status: string;
|
|
message?: string;
|
|
}
|
|
|
|
export interface CheckStatusCodeRequest {
|
|
statsCd: string;
|
|
statsYr: string;
|
|
sewerBzmnCd: string;
|
|
}
|
|
|
|
export interface CheckStatusCodeResponse {
|
|
status: string;
|
|
data: string;
|
|
}
|
|
|
|
export interface unSubmitDataRequest {
|
|
statsYr: string;
|
|
dtlInstCd: string;
|
|
enoCd: string;
|
|
laeSeCd: string;
|
|
sewerBzmnCd?: string;
|
|
sido: string;
|
|
sggNm: string;
|
|
unSubmitOnly: boolean;
|
|
}
|
|
|
|
export interface UnSubmitDataStatusItem {
|
|
sidoSggNm: string;
|
|
statsCd: string;
|
|
statsNm: string;
|
|
sbmsnYn: string;
|
|
statusCd: string;
|
|
statusNm: string;
|
|
}
|
|
|
|
export interface UnSubmitData {
|
|
statsYr: string;
|
|
totalCount: number;
|
|
submittedCount: number;
|
|
unSubmittedCount: number;
|
|
statusList: UnSubmitDataStatusItem[];
|
|
}
|
|
|
|
export interface unSubmitDataResponse {
|
|
status: string;
|
|
message?: string;
|
|
data: UnSubmitData;
|
|
}
|
|
|
|
export interface StatisticsService {
|
|
getSidoList(params?: { instSeCd?: string }): Promise<ApiResponse<SearchCondition>>;
|
|
getSidoListInput(params?: { instSeCd?: string }): Promise<ApiResponse<SearchCondition>>;
|
|
getSggList(sidoName: string, params?: { instSeCd?: string; gugunSkipYn?: "Y" | "N" }): Promise<ApiResponse<Sgg[]>>;
|
|
getSggAllList(sidoName: string, params?: { instSeCd?: string; gugunSkipYn?: "Y" | "N" }): Promise<ApiResponse<Sgg[]>>;
|
|
getStatsInputPeriodList(params?: StatsInputPeriodListRequest): Promise<StatsInputPeriodListApiResponse>;
|
|
getStatsInputPeriodDetail(param: StatsInputPeriodDetailRequest): Promise<StatsInputPeriodDetailResponse>;
|
|
saveStatsInputPeriod(param: StatsInputPeriodSaveRequest): Promise<StatsInputPeriodSaveApiResponse>;
|
|
deleteStatsInputPeriod(param: StatsInputPeriodDeleteRequest): Promise<StatsInputPeriodDeleteApiResponse>;
|
|
cancelSubmit(param: cancelSubmitRequest): Promise<cancelSubmitResponse>;
|
|
callImrService(param: ImrRequest): Promise<ImrResponse>;
|
|
submitException(param: SubmitExceptionRequest): Promise<SubmitExceptionResponse>;
|
|
getLogList(param: StatisticsLogRequest): Promise<StatisticsLogResponse>;
|
|
getLogDetail(param: string): Promise<StatisticsLogDetailResponse>;
|
|
saveReviewOpinion(param: ReviewOpinionSaveRequest): Promise<ReviewOpinionSaveResponse>;
|
|
getReviewOpinionDetail(param: getReviewOpinionDetailRequest): Promise<getReviewOpinionDetailResponse>;
|
|
saveReviewReturn(param: ReviewReturnSaveRequest): Promise<ReviewReturnSaveResponse>;
|
|
saveInputReturn(items: ReviewInputSaveRequest[]): Promise<ReviewReturnSaveResponse>;
|
|
approveStatsInputStatus(
|
|
param: StatsInputStatusApproveBatchRequest,
|
|
type?: StatsInputStatusApproveKind,
|
|
): Promise<StatsInputStatusApproveResponse>;
|
|
submitReview(param: ReviewSubmitRequest): Promise<ReviewSubmitResponse>;
|
|
getVerificationResultList(param: VerificationResultListRequest): Promise<VerificationResultListResponse>;
|
|
getImrStatus(param: string): Promise<ImrStatusResponse>;
|
|
SubmitVerifyException(param: SubmitVerifyExceptionRequest): Promise<SubmitVerifyExceptionResponse>;
|
|
getColumnGuides(param: string): Promise<StatisticsColumnGuideListResponse>;
|
|
getReviewerInfo(param: ReviewerInfoRequest): Promise<ReviewerInfoResponse>;
|
|
getStatiscicsManagementReviewHistory(param: StatiscicsManagementReviewHistoryRequest): Promise<StatiscicsManagementReviewHistoryResponse>;
|
|
StatiscicsExceptionReset(param: StatiscicsExceptionResetRequest): Promise<StatiscicsExceptionResetResponse>;
|
|
CheckStatusCode(param: CheckStatusCodeRequest): Promise<CheckStatusCodeResponse>;
|
|
getUnSubmitData(param: unSubmitDataRequest): Promise<unSubmitDataResponse>;
|
|
refreshCommonCodes(): Promise<CodesRefreshResponse>;
|
|
refreshManagementCommonCodes(): Promise<CodesRefreshResponse>;
|
|
refreshAllCommonCodes(): Promise<PromiseSettledResult<CodesRefreshResponse>[]>;
|
|
} |