464 lines
12 KiB
TypeScript
464 lines
12 KiB
TypeScript
export interface Sido {
|
|
adstDstrCd: string;
|
|
sido: string;
|
|
bsnmCd: string;
|
|
}
|
|
|
|
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;
|
|
mdfrId: 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 {
|
|
statsYr: string;
|
|
seCd: number;
|
|
seType: string;
|
|
inptBgngYmd: string;
|
|
inptEndYmd: string;
|
|
}
|
|
|
|
/** `data`가 `StatsInputPeriodItem[]` 인 조회 응답 */
|
|
export type StatsInputPeriodListApiResponse = ApiResponse<StatsInputPeriodItem[]>;
|
|
|
|
/** 통계 입력 기간 목록 조회 요청 쿼리 */
|
|
export interface StatsInputPeriodListRequest {
|
|
statsYr?: string;
|
|
seType?: string;
|
|
}
|
|
|
|
export interface StatsInputPeriodDetailRequest {
|
|
statsYr: string;
|
|
seType: string;
|
|
seCd: number;
|
|
}
|
|
|
|
export interface StatsInputPeriodDetailResponse {
|
|
status: string;
|
|
message?: string;
|
|
data: StatsInputPeriodItem;
|
|
}
|
|
|
|
/** 통계 입력 기간 등록·수정 등 요청 본문 */
|
|
export interface StatsInputPeriodSaveRequest {
|
|
statsYr: string;
|
|
seType: string;
|
|
seCd?: number;
|
|
/** 시작일 (백엔드 형식 문자열, 예: YYYYMMDD) */
|
|
inptBgngYmd: string;
|
|
/** 종료일 (백엔드 형식 문자열, 예: YYYYMMDD) */
|
|
inptEndYmd: string;
|
|
rgtrId: string;
|
|
}
|
|
|
|
/** 통계 입력 기간 저장 응답 */
|
|
export type StatsInputPeriodSaveApiResponse = ApiResponse<unknown>;
|
|
|
|
/** 통계 입력 기간 삭제 요청 */
|
|
export interface StatsInputPeriodDeleteRequest {
|
|
statsYr: string;
|
|
seType: string;
|
|
seCd: number;
|
|
inptBgngYmd: string;
|
|
inptEndYmd: string;
|
|
rgtrId: string;
|
|
}
|
|
|
|
/** 통계 입력 기간 삭제 응답 */
|
|
export type StatsInputPeriodDeleteApiResponse = ApiResponse<unknown>;
|
|
|
|
/** 하수 입력/보급률 등 조회 `data.statusInfo` 공통 (LAE 제출·담당자 정보) */
|
|
export interface SewerageStatusInfo {
|
|
laePicNm: string | null;
|
|
laePicTelNo: string | null;
|
|
laeKbrdrDeptNm: string | null;
|
|
laeKbrdrJbgdNm: string | null;
|
|
laeIdfrNm: string | null;
|
|
laeIdfrTelNo: string | null;
|
|
laeIdfrDeptNm: string | null;
|
|
laeIdfrJbgdNm: string | null;
|
|
laeSbmsnSttsCd: string | null;
|
|
laeSbmsnYmd: 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;
|
|
}
|
|
|
|
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;
|
|
/** 검증 방법 코드 (예: IMR) */
|
|
vrfcMthdCd?: string;
|
|
/** 처리여부 코드 목록, 콤마 구분 */
|
|
prcsYnList?: string;
|
|
pbcpAprvYn?: string;
|
|
page?: number;
|
|
size?: number;
|
|
}
|
|
|
|
/** 검증 결과 리포트 목록 한 행 (`verifyResultList` 원소) */
|
|
export interface VerificationResultReportItem {
|
|
statsYr: string;
|
|
statsCd: string;
|
|
statsNm: string;
|
|
sewerBzmnCd: string;
|
|
ctpvNm: string;
|
|
sggNm: string;
|
|
admdstNm: string;
|
|
vrfcSn: number;
|
|
vrfcMthdCd: string;
|
|
vrfcMthdNm: string;
|
|
vrfcTrgtNm: string;
|
|
regDt: string;
|
|
rsnExpln: string;
|
|
nowVlCn: string;
|
|
compVlCn: string | null;
|
|
prcsYn: string;
|
|
prcsYnNm: string;
|
|
prcsOpnnExpln: string | null;
|
|
prcrId: string | null;
|
|
rjctOpnnCn: string | null;
|
|
pbcpAprvYn: string;
|
|
mdfrId: string | null;
|
|
mdfcnDt: string;
|
|
}
|
|
|
|
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;
|
|
userId: string;
|
|
superAdmin?: string;
|
|
laePicNm: string;
|
|
laePicTelNo: string;
|
|
laeKbrdrDeptNm: string;
|
|
laeKbrdrJbgdNm: string;
|
|
laeIdfrNm: string;
|
|
laeIdfrTelNo: string;
|
|
laeIdfrDeptNm: string;
|
|
laeIdfrJbgdNm: string
|
|
}
|
|
|
|
export interface SubmitExceptionResponse {
|
|
status: string;
|
|
message?: string;
|
|
}
|
|
|
|
export interface StatisticsLog {
|
|
statsLogSn?: number;
|
|
menuNm?: string;
|
|
tabNm?: string;
|
|
tblNm?: string;
|
|
statsDataChgComCd?: string;
|
|
rgtrId?: string;
|
|
regDt?: string;
|
|
ctpvNm?: string;
|
|
sggNm?: string;
|
|
statsDataChgComNm?: string;
|
|
statsYr?: 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[];
|
|
}
|
|
|
|
export interface getReviewOpinionDetailRequest {
|
|
statsYr: string;
|
|
sewerBzmnCd: string;
|
|
statsCd: string;
|
|
}
|
|
|
|
export interface ReviewOpinionDetailItem {
|
|
statsYr: string;
|
|
sewerBzmnCd: string;
|
|
statsCd: string;
|
|
splmntOpnnCn: string | null;
|
|
wrterOpnnCn: string | null;
|
|
}
|
|
|
|
export interface getReviewOpinionDetailResponse {
|
|
status: string;
|
|
message?: string;
|
|
data?: ReviewOpinionDetailItem[];
|
|
}
|
|
|
|
/** 검토의견 저장 API body */
|
|
export interface ReviewOpinionSaveRequest {
|
|
statsYr: string;
|
|
sewerBzmnCd: string;
|
|
statsCd: string;
|
|
splmntOpnnCn: string;
|
|
wrterOpnnCn: string;
|
|
mdfrId: string;
|
|
}
|
|
|
|
export interface ReviewOpinionSaveResponse {
|
|
status: string;
|
|
message?: string;
|
|
}
|
|
|
|
export interface ReviewReturnSaveRequest {
|
|
type: "REVIEW";
|
|
statsYr: string;
|
|
sewerBzmnCd: string;
|
|
statsCd: string;
|
|
rjctOpnnCn: string;
|
|
mdfrId: 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;
|
|
mdfrId: string;
|
|
vrfcSn?: string;
|
|
}
|
|
|
|
export interface ReviewSubmitRequest {
|
|
statsYr: string;
|
|
sewerBzmnCd: string;
|
|
statsCd: string;
|
|
mdfrId: string;
|
|
splmntOpnnCn: string;
|
|
wrterOpnnCn: 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;
|
|
mdfrId: string;
|
|
}
|
|
|
|
/** 통계 입력 현황 일괄 승인 API 요청 본문 */
|
|
export interface StatsInputStatusApproveBatchRequest {
|
|
list: StatsInputStatusApproveItem[];
|
|
}
|
|
|
|
/** 통계 입력 현황 일괄 승인 API 응답 */
|
|
export interface StatsInputStatusApproveResponse {
|
|
status: string;
|
|
message?: string;
|
|
}
|
|
|
|
export interface SubmitVerifyExceptionItem {
|
|
vrfcSn: number;
|
|
prcsOpnnExpln: string;
|
|
}
|
|
|
|
export interface SubmitVerifyExceptionRequest {
|
|
sewerBzmnCd: string;
|
|
statsYr: string;
|
|
statsCd: string;
|
|
userId: 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;
|
|
wrterOpnnCn: string;
|
|
}
|
|
}
|
|
|
|
export interface StatisticsService {
|
|
getSidoList(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>;
|
|
} |