[st] - 검토 하수관로, 하수관로 유지보수 response 수정

This commit is contained in:
2026-05-08 17:53:23 +09:00
parent 83e6db06b1
commit 9b8d48d395
12 changed files with 277 additions and 66 deletions
@@ -14,6 +14,8 @@ const SplitDataGrid = ({
setRightRowData,
leftOnRowClick,
leftCellStyleCallback,
rightOnItemChecked,
rightOnItemAllChecked,
enableSort = false,
}: SplitDataGridProps) => {
return (
@@ -35,6 +37,8 @@ const SplitDataGrid = ({
enableSort={enableSort}
rowData={rightRowData}
setRowData={setRightRowData}
onItemChecked={rightOnItemChecked}
onItemAllChecked={rightOnItemAllChecked}
/>
</div>
);
@@ -10,6 +10,8 @@ import type {
PublicSewageFacilityRequestParams,
PublicSewageFacilitySaveItem,
PublicSewageFacilitySaveRequest,
PublicSewageMainFacilityMappingSaveItem,
PublicSewageMainFacilityMappingSaveRequest,
PublicSewageMappingTargetsRequestParams,
} from '@/entities/statistics/model/input/statistics-public-sewage-facility-input-interface';
import {
@@ -199,6 +201,11 @@ const PublicSewageFacilityInp = () => {
return noApplicableVisible ? Boolean(isNotApplicable) : false;
};
const isCheckedRow = (row: Record<string, string | number>): boolean => {
const v = row.__checked;
return v === 1 || v === '1' || v === 'Y' || v === 'y' || v === 'true';
};
const executeSubmit = async (submitInfo: StatisticsInputSubmitInfoFormData) => {
const verificationBlocked = getVerificationPeriodActionBlockedMessage(periodCheckList);
if (verificationBlocked) {
@@ -284,51 +291,113 @@ const PublicSewageFacilityInp = () => {
const saveFunc = () => {
void (async () => {
if (activeTab !== 'ST00060001') {
alert('ST00060002 저장 API 연동 전입니다.');
return;
}
if (!lastSearchedValues || !searchParamRef.current) {
alert('먼저 조회를 진행해주세요.');
return;
}
const currentData = rowDataMap.get('ST00060001') ?? [];
if (!currentData || currentData.length === 0) {
alert('저장할 데이터가 없습니다.');
return;
}
if (!(await confirm("저장 하시겠습니까?"))) return;
const userInfo = await getUserInfo();
const saveList = buildFacilitySaveList(currentData);
const param: PublicSewageFacilitySaveRequest = {
statsYr: lastSearchedValues.year ?? '',
ctpvNm: lastSearchedValues.sido ?? '',
sggNm: lastSearchedValues.gugun === 'ALL' ? '' : lastSearchedValues.gugun ?? '',
sewerBzmnCd: lastSearchedValues.bsnmCd ?? '',
userId: userInfo.userUnqId,
superAdmin: isAdminInfo ? 'superAdmin' : '',
noApplicable: getNoApplicableForRequest(),
saveList,
};
try {
setIsLoading(true);
const response = await statisticsInputPublicSewageFacilityApiService.savePublicSewageFacility(param);
if (response.status === 'success') {
alert('저장되었습니다.');
await loadPublicSewageFacilityActiveTabData(
'ST00060001',
searchParamRef.current,
lastSearchedValues,
);
} else {
alert(response.message || '데이터 저장 중 오류가 발생했습니다.');
const userInfo = await getUserInfo();
if (activeTab === 'ST00060001') {
const currentData = rowDataMap.get('ST00060001') ?? [];
if (!currentData || currentData.length === 0) {
alert('저장할 데이터가 없습니다.');
return;
}
const saveList = buildFacilitySaveList(currentData);
const param: PublicSewageFacilitySaveRequest = {
statsYr: lastSearchedValues.year ?? '',
ctpvNm: lastSearchedValues.sido ?? '',
sggNm: lastSearchedValues.gugun === 'ALL' ? '' : lastSearchedValues.gugun ?? '',
sewerBzmnCd: lastSearchedValues.bsnmCd ?? '',
userId: userInfo.userUnqId,
superAdmin: isAdminInfo ? 'superAdmin' : '',
noApplicable: getNoApplicableForRequest(),
saveList,
};
const response = await statisticsInputPublicSewageFacilityApiService.savePublicSewageFacility(param);
if (response.status === 'success') {
alert('저장되었습니다.');
await loadPublicSewageFacilityActiveTabData(
'ST00060001',
searchParamRef.current,
lastSearchedValues,
);
} else {
alert(response.message || '데이터 저장 중 오류가 발생했습니다.');
}
return;
}
if (activeTab === 'ST00060002') {
const leftRows = rowDataMap.get('MainFacility') ?? [];
const rightRows = rowDataMap.get('MainFacilityTarget') ?? [];
if (!leftRows.length || !rightRows.length) {
alert('저장할 데이터가 없습니다.');
return;
}
if (!selectedMainFacilitySn) {
alert('좌측에서 중심 처리 시설을 먼저 선택해주세요.');
return;
}
const selectedMain = leftRows.find((r) => String(r.fcltSn ?? '') === selectedMainFacilitySn);
if (!selectedMain) {
alert('선택된 중심 처리 시설 정보를 찾을 수 없습니다.');
return;
}
const saveList: PublicSewageMainFacilityMappingSaveItem[] = rightRows
.filter((r) => isCheckedRow(r))
.map((r) => ({
fcltSn: String(r.fcltSn ?? ''),
admdstCd: String(r.admdstCd ?? ''),
admdstNm: String(r.admdstNm ?? ''),
swtrmtFcltCd: String(r.swtrmtFcltCd ?? ''),
swtrmtFcltNm: String(r.swtrmtFcltNm ?? ''),
isMainYn: String(r.isMainYn ?? ''),
}));
const deleteList = rightRows
.filter((r) => String(r.mappedYn ?? '') === 'Y' && !isCheckedRow(r))
.map((r) => String(r.fcltSn ?? ''))
.filter((sn) => sn !== '');
const param: PublicSewageMainFacilityMappingSaveRequest = {
statsYr: lastSearchedValues.year ?? '',
sewerBzmnCd: lastSearchedValues.bsnmCd ?? '',
mainFcltSn: String(selectedMain.fcltSn ?? ''),
mainFcltNm: String(selectedMain.swtrmtFcltNm ?? ''),
prxyBzentyNmCn: String(selectedMain.prxyBzentyNmCn ?? ''),
cnsgnCstVl: Number(selectedMain.cnsgnCstVl ?? 0),
wholNope: Number(selectedMain.wholNope ?? 0),
prxyCtrtCn: String(selectedMain.prxyCtrtCn ?? ''),
userId: userInfo.userUnqId,
saveList,
deleteList,
};
const response = await statisticsInputPublicSewageFacilityApiService.saveMainFacilityMapping(param);
if (response.status === 'success') {
alert('저장되었습니다.');
await loadPublicSewageFacilityActiveTabData(
'ST00060002',
searchParamRef.current,
lastSearchedValues,
);
} else {
alert(response.message || '데이터 저장 중 오류가 발생했습니다.');
}
return;
}
alert('현재 탭 저장 API 연동 전입니다.');
} finally {
setIsLoading(false);
}
@@ -753,6 +822,38 @@ const PublicSewageFacilityInp = () => {
? leftMainFacilityCellStyleCallback
: undefined
}
rightOnItemChecked={
tab.tabKey === 'ST00060002'
? (itemIndex, checked) => {
setRowDataMap((prev) => {
const next = new Map(prev);
const rows = [...(next.get('MainFacilityTarget') ?? [])];
if (!rows[itemIndex]) return prev;
rows[itemIndex] = {
...rows[itemIndex],
__checked: checked ? 'Y' : '',
};
next.set('MainFacilityTarget', rows);
return next;
});
}
: undefined
}
rightOnItemAllChecked={
tab.tabKey === 'ST00060002'
? (checked) => {
setRowDataMap((prev) => {
const next = new Map(prev);
const rows = [...(next.get('MainFacilityTarget') ?? [])].map((r) => ({
...r,
__checked: checked ? 'Y' : '',
}));
next.set('MainFacilityTarget', rows);
return next;
});
}
: undefined
}
setLeftRowData={(updater) => {
setRowDataMap((prev) => {
const next = new Map(prev);
@@ -9,8 +9,8 @@ import ApproveButton from "@/components/button/ApproveButton";
import ReturnButton from "@/components/button/ReturnButton";
import ReviewOpinionButton from "@/components/button/ReviewOpinionButton";
import SaveButton from "@/components/button/SaveButton";
import SearchForm from "@/components/module/SearchForm";
import DataGrid from "@/components/module/DataGrid";
import SearchForm from "@/components/module/SearchForm";
import type { ColumnConfig, ColumnInfo, ColumnInfoList } from "@/components/type/DataGrid.type";
import type { SearchFormValues } from "@/components/type/SearchForm.type";
import { SewagePipeMaintainColumnInfoList } from "@/components/util/column/review/SewagePipeMaintainRvwColumn";
@@ -40,10 +40,12 @@ function getListDataByTab(tabKey: string, responseData: unknown): object[] {
return [];
}
if (tabKey === "ST00030001") {
return (((responseData as { mtcStatusList?: unknown[] }).mtcStatusList) ?? []) as object[];
const list = (responseData as { sewerPipeMtcList?: unknown }).sewerPipeMtcList;
return Array.isArray(list) ? (list as object[]) : [];
}
if (tabKey === "ST00030002") {
return (((responseData as { drdgStatusList?: unknown[] }).drdgStatusList) ?? []) as object[];
const list = (responseData as { sewerPipeDrdgList?: unknown }).sewerPipeDrdgList;
return Array.isArray(list) ? (list as object[]) : [];
}
return [];
}
@@ -9,8 +9,8 @@ import ApproveButton from "@/components/button/ApproveButton";
import ReturnButton from "@/components/button/ReturnButton";
import ReviewOpinionButton from "@/components/button/ReviewOpinionButton";
import SaveButton from "@/components/button/SaveButton";
import SearchForm from "@/components/module/SearchForm";
import DataGrid from "@/components/module/DataGrid";
import SearchForm from "@/components/module/SearchForm";
import type { ColumnInfo } from "@/components/type/DataGrid.type";
import type { SearchFormValues } from "@/components/type/SearchForm.type";
import { SewagePipeColumnInfoListRvw } from "@/components/util/column/review/SewagePipeRvwColumn";
@@ -37,6 +37,28 @@ async function fetchSewagePipeReviewTab(
return null;
}
function extractReviewRowsFromResponseData(
tabKey: string,
data: unknown,
): object[] {
if (Array.isArray(data)) return data as object[];
if (!data || typeof data !== "object") return [];
const d = data as Record<string, unknown>;
switch (tabKey) {
case "ST00020001":
return Array.isArray(d.regionalStatusList) ? (d.regionalStatusList as object[]) : [];
case "ST00020002":
return Array.isArray(d.facilityStatusList) ? (d.facilityStatusList as object[]) : [];
case "ST00020003":
return Array.isArray(d.pipeTypeList) ? (d.pipeTypeList as object[]) : [];
case "ST00020004":
return Array.isArray(d.pipeDiamList) ? (d.pipeDiamList as object[]) : [];
default:
return [];
}
}
// 하수도 통계 검토 02.하수관로
const SewagePipeRvw = () => {
const { setMessage: alert } = useAlertStore((state) => state);
@@ -79,9 +101,10 @@ const SewagePipeRvw = () => {
const response = await fetchSewagePipeReviewTab(activeTab, searchParam);
if (response?.status === "success" && response.data) {
const rows = extractReviewRowsFromResponseData(activeTab, response.data);
setRowDataMap((prev) => {
const next = new Map(prev);
next.set(activeTab, toGridRows(response.data as object[]));
next.set(activeTab, toGridRows(rows));
return next;
});
} else {
@@ -118,9 +141,10 @@ const SewagePipeRvw = () => {
lazyTabLoggedRef.current.add(tabKey);
if (response?.status === "success" && response.data) {
const rows = extractReviewRowsFromResponseData(tabKey, response.data);
setRowDataMap((prev) => {
const next = new Map(prev);
next.set(tabKey, toGridRows(response.data as object[]));
next.set(tabKey, toGridRows(rows));
return next;
});
} else {
@@ -369,6 +369,10 @@ export type SplitDataGridProps = {
leftOnRowClick?: (rowData: Record<string, string | number>) => void;
/** 좌측 분할 그리드 셀 스타일 콜백 */
leftCellStyleCallback?: CellStyleCallback;
/** 우측 분할 그리드 행 체크 변경 */
rightOnItemChecked?: (itemIndex: number, checked: boolean) => void;
/** 우측 분할 그리드 헤더 전체 체크 변경 */
rightOnItemAllChecked?: (checked: boolean) => void;
/** 전체 정렬 기능 on/off (기본값: false) */
enableSort?: boolean;
};
@@ -4,10 +4,10 @@ export const MainFacilityColumn = {
columns: [
{ name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '시설명' }, editable: false },
{ name: 'fcltPstnCn', fieldName: 'fcltPstnCn', header: { text: '소재지' }, editable: false },
{ name: 'prxyBzentyNmCn', fieldName: 'prxyBzentyNmCn', header: { text: '위탁업체명' }, editable: false },
{ name: 'prxyBzentyNmCn', fieldName: 'prxyBzentyNmCn', header: { text: '위탁업체명' } },
{ name: 'cnsgnCstVl', fieldName: 'cnsgnCstVl', header: { text: '위탁비용(백만원/년)' }, editable: false },
{ name: 'prxyCtrtCn', fieldName: 'prxyCtrtCn', header: { text: '위탁계약기간' }, editable: false },
{ name: 'wholNope', fieldName: 'wholNope', header: { text: '직원수(명)' }, editable: false },
{ name: 'wholNope', fieldName: 'wholNope', header: { text: '직원수(명)' } },
{ name: 'isMainYn', fieldName: 'isMainYn', header: { text: '중심처리시설여부' }, editable: false },
{ name: 'admdstCd', fieldName: 'admdstCd', header: { text: '행정구역코드' }, visible: false, editable: false, styleName: 'rg-cell-readonly' },
@@ -28,7 +28,7 @@ export class StatisticsInputSewSupplyRateApiService implements StatisticsInputSe
}
public async saveSewerageSupplyRate(params: SewerageSupplyRateSaveRequest): Promise<SewerageSupplyRateSaveResponse> {
const response = await stClient.post<SewerageSupplyRateSaveResponse>(
const response = await stClient.put<SewerageSupplyRateSaveResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/sewerage-supply-rate/save`,
params,
);
@@ -36,7 +36,7 @@ export class StatisticsInputSewSupplyRateApiService implements StatisticsInputSe
}
public async submitSewerageSupplyRate(params: SewerageSupplyRateSaveRequest): Promise<SewerageSupplyRateSubmitResponse> {
const response = await stClient.post<SewerageSupplyRateSubmitResponse>(
const response = await stClient.put<SewerageSupplyRateSubmitResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/sewerage-supply-rate/submit`,
params,
);
@@ -8,6 +8,8 @@ import type {
PublicSewageFacilitySaveResponse,
PublicSewageFacilitySubmitRequest,
PublicSewageFacilitySubmitResponse,
PublicSewageMainFacilityMappingSaveRequest,
PublicSewageMainFacilityMappingSaveResponse,
PublicSewageMainFacilityResponse,
PublicSewageMappingTargetsRequestParams,
PublicSewageMappingTargetsResponse,
@@ -41,10 +43,20 @@ export class StatisticsInputPublicSewageFacilityApiService implements Statistics
return response.data;
}
public async saveMainFacilityMapping(
param: PublicSewageMainFacilityMappingSaveRequest,
): Promise<PublicSewageMainFacilityMappingSaveResponse> {
const response = await stClient.put<PublicSewageMainFacilityMappingSaveResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/public-sewage-facility/main-facility/save`,
param,
);
return response.data;
}
public async savePublicSewageFacility(
param: PublicSewageFacilitySaveRequest,
): Promise<PublicSewageFacilitySaveResponse> {
const response = await stClient.post<PublicSewageFacilitySaveResponse>(
const response = await stClient.put<PublicSewageFacilitySaveResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/public-sewage-facility/facility/save`,
param,
);
@@ -54,7 +66,7 @@ export class StatisticsInputPublicSewageFacilityApiService implements Statistics
public async submitPublicSewageFacility(
param: PublicSewageFacilitySubmitRequest,
): Promise<PublicSewageFacilitySubmitResponse> {
const response = await stClient.post<PublicSewageFacilitySubmitResponse>(
const response = await stClient.put<PublicSewageFacilitySubmitResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/public-sewage-facility/facility/submit`,
param,
);
@@ -101,7 +101,7 @@ export class StatisticsInputSewPipeApiService implements StatisticsInputSewPipeS
}
public async saveFactConnection(param: SeweragePipeFactConnectionSaveRequest): Promise<SeweragePipeFactConnectionSaveResponse> {
const response = await stClient.post<SeweragePipeFactConnectionSaveResponse>(
const response = await stClient.put<SeweragePipeFactConnectionSaveResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/sewage-pipe/facility-connection-status/popup/save`,
param,
);
@@ -109,7 +109,7 @@ export class StatisticsInputSewPipeApiService implements StatisticsInputSewPipeS
}
public async saveRegionalFactStatus(param: SeweragePipeInputRegionalFactStatusSaveRequest): Promise<SeweragePipeInputRegionalFactStatusSaveResponse> {
const response = await stClient.post<SeweragePipeInputRegionalFactStatusSaveResponse>(
const response = await stClient.put<SeweragePipeInputRegionalFactStatusSaveResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/sewage-pipe/regional-facility-status/save`,
param,
);
@@ -117,7 +117,7 @@ export class StatisticsInputSewPipeApiService implements StatisticsInputSewPipeS
}
public async submitRegionalFactStatus(param: SeweragePipeInputRegionalFactStatusSubmitRequest): Promise<SeweragePipeInputRegionalFactStatusSubmitResponse> {
const response = await stClient.post<SeweragePipeInputRegionalFactStatusSubmitResponse>(
const response = await stClient.put<SeweragePipeInputRegionalFactStatusSubmitResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/sewage-pipe/regional-facility-status/submit`,
param,
);
@@ -125,7 +125,7 @@ export class StatisticsInputSewPipeApiService implements StatisticsInputSewPipeS
}
public async saveFactInstallStatus(param: SeweragePipeInputFactInstallStatusSaveRequest): Promise<SeweragePipeInputFactInstallStatusSaveResponse> {
const response = await stClient.post<SeweragePipeInputFactInstallStatusSaveResponse>(
const response = await stClient.put<SeweragePipeInputFactInstallStatusSaveResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/sewage-pipe/facility-install-status/save`,
param,
);
@@ -133,7 +133,7 @@ export class StatisticsInputSewPipeApiService implements StatisticsInputSewPipeS
}
public async submitFactInstallStatus(param: SeweragePipeInputFactInstallStatusSubmitRequest): Promise<SeweragePipeInputFactInstallStatusSubmitResponse> {
const response = await stClient.post<SeweragePipeInputFactInstallStatusSubmitResponse>(
const response = await stClient.put<SeweragePipeInputFactInstallStatusSubmitResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/sewage-pipe/facility-install-status/submit`,
param,
);
@@ -141,7 +141,7 @@ export class StatisticsInputSewPipeApiService implements StatisticsInputSewPipeS
}
public async savePipeTypeStatus(param: SeweragePipeInputPipeTypeStatusSaveRequest): Promise<SeweragePipeInputPipeTypeStatusSaveResponse> {
const response = await stClient.post<SeweragePipeInputPipeTypeStatusSaveResponse>(
const response = await stClient.put<SeweragePipeInputPipeTypeStatusSaveResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/sewage-pipe/pipe-type-status/save`,
param,
);
@@ -149,7 +149,7 @@ export class StatisticsInputSewPipeApiService implements StatisticsInputSewPipeS
}
public async submitPipeTypeStatus(param: SeweragePipeInputPipeTypeStatusSubmitRequest): Promise<SeweragePipeInputSubmitResponse> {
const response = await stClient.post<SeweragePipeInputSubmitResponse>(
const response = await stClient.put<SeweragePipeInputSubmitResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/sewage-pipe/pipe-type-status/submit`,
param,
);
@@ -157,7 +157,7 @@ export class StatisticsInputSewPipeApiService implements StatisticsInputSewPipeS
}
public async savePipeDiameterStatus(param: SeweragePipeInputPipeDiameterStatusSaveRequest): Promise<SeweragePipeInputPipeDiameterStatusSaveResponse> {
const response = await stClient.post<SeweragePipeInputPipeDiameterStatusSaveResponse>(
const response = await stClient.put<SeweragePipeInputPipeDiameterStatusSaveResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/sewage-pipe/pipe-diameter-status/save`,
param,
);
@@ -165,7 +165,7 @@ export class StatisticsInputSewPipeApiService implements StatisticsInputSewPipeS
}
public async submitPipeDiameterStatus(param: SeweragePipeInputPipeDiameterStatusSubmitRequest): Promise<SeweragePipeInputSubmitResponse> {
const response = await stClient.post<SeweragePipeInputSubmitResponse>(
const response = await stClient.put<SeweragePipeInputSubmitResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/sewage-pipe/pipe-diameter-status/submit`,
param,
);
@@ -173,7 +173,7 @@ export class StatisticsInputSewPipeApiService implements StatisticsInputSewPipeS
}
public async saveManholeStatus(param: SeweragePipeInputManholeStatusSaveRequest): Promise<SeweragePipeInputManholeStatusSaveResponse> {
const response = await stClient.post<SeweragePipeInputManholeStatusSaveResponse>(
const response = await stClient.put<SeweragePipeInputManholeStatusSaveResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/sewage-pipe/manhole-status/save`,
param,
);
@@ -181,7 +181,7 @@ export class StatisticsInputSewPipeApiService implements StatisticsInputSewPipeS
}
public async submitManholeStatus(param: SeweragePipeInputManholeStatusSubmitRequest): Promise<SeweragePipeInputSubmitResponse> {
const response = await stClient.post<SeweragePipeInputSubmitResponse>(
const response = await stClient.put<SeweragePipeInputSubmitResponse>(
`${ENDPOINT.ST_SERVICE.INPUT}/sewage-pipe/manhole-status/submit`,
param,
);
@@ -167,6 +167,37 @@ export interface PublicSewageMappingTargetsResponse {
data: PublicSewageMappingTargetItem[];
}
/** ST00060002 중심처리시설 매핑 저장 — saveList 항목 */
export interface PublicSewageMainFacilityMappingSaveItem {
fcltSn: string;
admdstCd: string;
admdstNm: string;
swtrmtFcltCd: string;
swtrmtFcltNm: string;
isMainYn: string;
}
/** ST00060002 중심처리시설 매핑 저장 API 요청 */
export interface PublicSewageMainFacilityMappingSaveRequest {
statsYr: string;
sewerBzmnCd: string;
mainFcltSn: string;
mainFcltNm: string;
prxyBzentyNmCn: string;
cnsgnCstVl: number;
wholNope: number;
prxyCtrtCn: string;
userId: string;
saveList: PublicSewageMainFacilityMappingSaveItem[];
deleteList: string[];
}
export interface PublicSewageMainFacilityMappingSaveResponse {
status: string;
message?: string;
data?: string;
}
/** ST00060001 공공하수처리시설 저장 — saveList 항목 */
export interface PublicSewageFacilitySaveItem {
admdstCd: string;
@@ -249,6 +280,7 @@ export interface StatisticsInputPublicSewageFacilityService {
getPublicSewageFacility(param: PublicSewageFacilityRequestParams): Promise<PublicSewageFacilityResponse>;
getPublicSewageMainFacility(param: PublicSewageFacilityRequestParams): Promise<PublicSewageMainFacilityResponse>;
getMappingTargets(param: PublicSewageMappingTargetsRequestParams): Promise<PublicSewageMappingTargetsResponse>;
saveMainFacilityMapping(param: PublicSewageMainFacilityMappingSaveRequest): Promise<PublicSewageMainFacilityMappingSaveResponse>;
savePublicSewageFacility(param: PublicSewageFacilitySaveRequest): Promise<PublicSewageFacilitySaveResponse>;
submitPublicSewageFacility(param: PublicSewageFacilitySubmitRequest): Promise<PublicSewageFacilitySubmitResponse>;
}
@@ -32,7 +32,8 @@ export interface SewerPipeMtcItem {
}
export interface SewerPipeMtcResponseData {
mtcStatusList: SewerPipeMtcItem[];
sewerPipeMtcList: SewerPipeMtcItem[];
statsStatusInfo: StatsStatusInfo;
}
export interface SewerPipeMtcRequestParams {
@@ -96,7 +97,8 @@ export interface SewerPipeDrdgItem {
export interface SewerPipeDrdgResponseData {
drdgStatusList: SewerPipeDrdgItem[];
sewerPipeDrdgList: SewerPipeDrdgItem[];
statsStatusInfo: StatsStatusInfo;
}
@@ -104,4 +106,13 @@ export type SewerPipeDrdgApiResponse = ApiResponse<SewerPipeDrdgResponseData>;
export interface SewagePipeMtcService {
getSewerPipeMtcDrdgItem(params: SewerPipeMtcRequestParams): Promise<SewerPipeDrdgApiResponse>;
}
export interface StatsStatusInfo {
statsCd?: string;
submitStatusCd?: string;
prvnStatusCd?: string;
rjctOpnnCn?: string;
splmntOpnnCn?: string;
wrterOpnnCn?: string;
}
@@ -63,7 +63,8 @@ export interface SewagePipeReviewrRegionalItem {
}
export interface SewagePipeReviewResponseData {
sewagePipeList: SewagePipeReviewrRegionalItem[];
regionalStatusList: SewagePipeReviewrRegionalItem[];
statsStatusInfo: StatsStatusInfo;
}
export interface SewagePipeReviewRequestParams {
@@ -73,7 +74,7 @@ export interface SewagePipeReviewRequestParams {
sewerBzmnCd?: string;
}
export type SewagePipeReviewRegionalApiResponse = ApiResponse<SewagePipeReviewrRegionalItem[]> & {
export type SewagePipeReviewRegionalApiResponse = ApiResponse<SewagePipeReviewResponseData> & {
message: string;
};
@@ -131,7 +132,12 @@ export interface SewagePipeReviewFacilityItem {
}
export type SewagePipeFacilityApiResponse = ApiResponse<SewagePipeReviewFacilityItem[]> & {
export interface SewagePipeFacilityResponseData {
facilityStatusList: SewagePipeReviewFacilityItem[];
statsStatusInfo: StatsStatusInfo;
}
export type SewagePipeFacilityApiResponse = ApiResponse<SewagePipeFacilityResponseData> & {
message: string;
};
@@ -165,10 +171,11 @@ export interface SewerPipeTypeItem {
export interface SewerPipeTypeResponseData {
pipeTypeStatusList: SewerPipeTypeItem[];
pipeTypeList: SewerPipeTypeItem[];
statsStatusInfo: StatsStatusInfo;
}
export type SewerPipeTypeApiResponse = ApiResponse<SewerPipeTypeItem[]>;
export type SewerPipeTypeApiResponse = ApiResponse<SewerPipeTypeResponseData>;
export interface SewagePipeTypeService {
@@ -225,9 +232,23 @@ export interface SewerPipeDiamItem {
}
export type SewerPipeDiamApiResponse = ApiResponse<SewerPipeDiamItem[]>;
export interface SewerPipeDiamResponseData {
pipeDiamList: SewerPipeDiamItem[];
statsStatusInfo: StatsStatusInfo;
}
export type SewerPipeDiamApiResponse = ApiResponse<SewerPipeDiamResponseData>;
export interface SewagePipeDiamService {
getSewagePipeDiamList(params: SewagePipeReviewRequestParams): Promise<SewerPipeDiamApiResponse>;
}
export interface StatsStatusInfo {
statsCd?: string;
submitStatusCd?: string;
prvnStatusCd?: string;
rjctOpnnCn?: string;
splmntOpnnCn?: string;
wrterOpnnCn?: string;
}