(DEFAULT_SUB_FILTERS);
const [selectedReportRows, setSelectedReportRows] = useState<
- StatsInputStatusList[]
+ ReportStatusResponseDto[]
>([]);
const [selectedResultRows, setSelectedResultRows] = useState<
VerifyResultItem[]
@@ -227,9 +235,6 @@ function StatisticsVerificationReport() {
const statisticsVerificationReportQuery = useStatsVrfcRptData(
statisticsVerificationReportFilters,
);
- const statisticsVerificationResultQuery =
- useStatsVrfcRsltData(detailParams);
-
const statisticsVerificationReportData =
statisticsVerificationReportQuery.data ?? [];
const statisticsVerificationReportGridRows = useMemo(
@@ -237,6 +242,8 @@ function StatisticsVerificationReport() {
[statisticsVerificationReportData],
);
+ const statisticsVerificationResultQuery =
+ useStatsVrfcRsltData(detailParams);
const statisticsVerificationResultData = useMemo(
() =>
statisticsVerificationResultQuery.data?.pages.flatMap(
@@ -560,7 +567,7 @@ function StatisticsVerificationReport() {
function handleReportRefresh() {
queryClient.invalidateQueries({
- queryKey: [ENDPOINT.ST_SERVICE.INPUT, "statistics-input-status"],
+ queryKey: [ENDPOINT.ST_SERVICE.INPUT, "validation-report"],
});
}
@@ -605,6 +612,12 @@ function StatisticsVerificationReport() {
onChange={handleFilterChange("statsYr")}
options={getYearOptions()}
/>
+
{}}
showHeaderCheckbox={true}
gridHeight={30}
- onRowClick={(row: StatsInputStatusList) => {
+ onRowClick={(row: ReportStatusResponseDto) => {
setSubFilters((prev) => ({
...prev,
ctpvNm: row?.ctpvNm ?? "",
diff --git a/apps/st/src/components/util/input/nullableString.ts b/apps/st/src/components/util/input/nullableString.ts
new file mode 100644
index 000000000..a02f9c84a
--- /dev/null
+++ b/apps/st/src/components/util/input/nullableString.ts
@@ -0,0 +1,8 @@
+/** 그리드/폼 문자열 → API 전송용. 빈값·공백만이면 null */
+export function nullableTrimmedString(
+ value: string | number | null | undefined | unknown,
+): string | null {
+ if (value === null || value === undefined) return null;
+ const s = typeof value === "string" ? value.trim() : String(value).trim();
+ return s === "" ? null : s;
+}
diff --git a/apps/st/src/entities/statistics/api/input/statistics-input-status-service.ts b/apps/st/src/entities/statistics/api/input/statistics-input-status-service.ts
index 3d3d164aa..1293af423 100644
--- a/apps/st/src/entities/statistics/api/input/statistics-input-status-service.ts
+++ b/apps/st/src/entities/statistics/api/input/statistics-input-status-service.ts
@@ -2,6 +2,8 @@ import { stClient } from "@/shared/api";
import { ENDPOINT } from "@/shared/config";
import type {
+ ReportSearchRequestDto,
+ ReportStatusListApiResponse,
StatisticsInputStatusService,
StatsInputStatusListApiResponse,
StatsInputStatusListRequestParams,
@@ -17,6 +19,16 @@ export class StatisticsInputStatusApiService implements StatisticsInputStatusSer
);
return response.data;
}
+
+ public async getStatsValidationReport(
+ request: ReportSearchRequestDto,
+ ): Promise {
+ const response = await stClient.get(
+ `${ENDPOINT.ST_SERVICE.INPUT}/stats-input-status/validation-report`,
+ { params: request },
+ );
+ return response.data;
+ }
}
export const StatisticsInputStatusApi = new StatisticsInputStatusApiService();
diff --git a/apps/st/src/entities/statistics/api/queries.ts b/apps/st/src/entities/statistics/api/queries.ts
index 3b5fad7d8..b59af9f07 100644
--- a/apps/st/src/entities/statistics/api/queries.ts
+++ b/apps/st/src/entities/statistics/api/queries.ts
@@ -122,18 +122,24 @@ export const useStatsVrfcRptData = (
return useQuery({
queryKey: [
ENDPOINT.ST_SERVICE.INPUT,
- "statistics-input-status",
+ "validation-report",
submittedMainFilters?.statsYr ?? "",
submittedMainFilters?.ctpvNm ?? "",
submittedMainFilters?.sggNm ?? "",
submittedMainFilters?.sewerBzmnCd ?? "",
submittedMainFilters?.statsCd ?? "",
+ submittedMainFilters?.pbcpSbmsnSttsCd ?? "",
],
queryFn: async () => {
if (!submittedMainFilters) return [];
+ const {
+ ctpvSewerBzmnCd: _ctpvSewerBzmnCd,
+ sggSewerBzmnCd: _sggSewerBzmnCd,
+ ...request
+ } = submittedMainFilters;
const response =
- await StatisticsInputStatusApi.getStatisticsInputStatusList(
- submittedMainFilters,
+ await StatisticsInputStatusApi.getStatsValidationReport(
+ request,
);
if (response.status !== "success")
throw new Error(response.message);
diff --git a/apps/st/src/entities/statistics/index.ts b/apps/st/src/entities/statistics/index.ts
index 90dfb00f6..8123b72f4 100644
--- a/apps/st/src/entities/statistics/index.ts
+++ b/apps/st/src/entities/statistics/index.ts
@@ -76,7 +76,11 @@ export {
type ImrLogResponse,
} from "./model/imr/imr-interface";
export { imrVerificationHistoryColumns } from "./model/imr/imr-verification-history-columns";
-export { type StatsInputStatusList } from "./model/input/statistics-input-status-interface";
+export {
+ type ReportSearchRequestDto,
+ type ReportStatusResponseDto,
+ type StatsInputStatusList,
+} from "./model/input/statistics-input-status-interface";
export { userListColumns } from "./model/notice-talk/notice-talk-sending-columns";
export {
type BusinessSendRequest,
diff --git a/apps/st/src/entities/statistics/model/input/statistics-input-excreta-treatment-facility-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-input-excreta-treatment-facility-interface.ts
index 82a721d35..d65b3ff32 100644
--- a/apps/st/src/entities/statistics/model/input/statistics-input-excreta-treatment-facility-interface.ts
+++ b/apps/st/src/entities/statistics/model/input/statistics-input-excreta-treatment-facility-interface.ts
@@ -97,10 +97,39 @@ export interface ExcretaTreatmentFacilityRequestParams {
*/
export type ExcretaTreatmentFacilitySaveItem = Omit<
ExcretaTreatmentFacilityItem,
- "sggNm" | "verificationResult" | "cmptnStrtYmd" | "oprtngStrtYmd"
+ | "sggNm"
+ | "verificationResult"
+ | "cmptnStrtYmd"
+ | "oprtngStrtYmd"
+ | "admdstCd"
+ | "admdstNm"
+ | "fcltSn"
+ | "fcltNm"
+ | "fcltPstnCn"
+ | "telNo"
+ | "prcsMthdExpln"
+ | "linkTmplntCn"
+ | "wtsysNm"
+ | "trbtrNm"
+ | "msirbCn"
+ | "ssirbCn"
+ | "operMthdCdCn"
> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+ fcltSn: string | null;
+ fcltNm: string | null;
+ fcltPstnCn: string | null;
+ telNo: string | null;
cmptnStrtYmd: string | null;
oprtngStrtYmd: string | null;
+ prcsMthdExpln: string | null;
+ linkTmplntCn: string | null;
+ wtsysNm: string | null;
+ trbtrNm: string | null;
+ msirbCn: string | null;
+ ssirbCn: string | null;
+ operMthdCdCn: string | null;
};
/** 분뇨처리시설(ST00070001) 저장 API 요청 */
diff --git a/apps/st/src/entities/statistics/model/input/statistics-input-private-sewage-facility-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-input-private-sewage-facility-interface.ts
index b0285ac8d..10c712d7a 100644
--- a/apps/st/src/entities/statistics/model/input/statistics-input-private-sewage-facility-interface.ts
+++ b/apps/st/src/entities/statistics/model/input/statistics-input-private-sewage-facility-interface.ts
@@ -207,8 +207,8 @@ export interface PrivateSewageDesigStatusRequestParams {
* `sggNm`·계산필드(`wholDrtwPrcsFcltCnt`, `wholStaaCnt`, `staaExcpWhol`)·검증결과는 제외.
*/
export interface SewageTreatFactStatusSaveItem {
- admdstCd: string;
- admdstNm: string;
+ admdstCd: string | null;
+ admdstNm: string | null;
step1StaaPrcsQnt: number;
step2StaaPrcsQnt: number;
step3StaaPrcsQnt: number;
@@ -279,8 +279,8 @@ export interface SewageTreatFactStatusSubmitResponse {
* `staaExcpWhol`, `staaExcpPrcsMthByWhol`, `staaExcpPrcsCpctByWhol`)·검증결과는 제외.
*/
export interface SepticTankStatusSaveItem {
- admdstCd: string;
- admdstNm: string;
+ admdstCd: string | null;
+ admdstNm: string | null;
staaInsdSttkNprsflCnt: number;
step1StaaInsdSttkFrcCnt: number;
staaInsdSprktpFltrtbCnt: number;
@@ -364,8 +364,8 @@ export interface SepticTankStatusSubmitResponse {
* `sggNm`·검증결과는 제외.
*/
export interface PrivateSewageDesigStatusSaveItem {
- admdstCd: string;
- admdstNm: string;
+ admdstCd: string | null;
+ admdstNm: string | null;
indvSwagePbancRgnCnt: number;
indvSwageDsgnScpLen: number;
spctnkGrssFcltCnt: number;
diff --git a/apps/st/src/entities/statistics/model/input/statistics-input-pumping-station-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-input-pumping-station-interface.ts
index e9cfe9b99..b6abe3d44 100644
--- a/apps/st/src/entities/statistics/model/input/statistics-input-pumping-station-interface.ts
+++ b/apps/st/src/entities/statistics/model/input/statistics-input-pumping-station-interface.ts
@@ -107,7 +107,21 @@ export type PumpingStationSaveItem = Omit<
| "drtwPumpGrssPpqty"
| "exlnPumpGrssPpqty"
| "oprtngStrtYmd"
+ | "admdstCd"
+ | "admdstNm"
+ | "fcltSn"
+ | "swtrmtFcltNm"
+ | "fcltNm"
+ | "pumpSeNm"
+ | "fcltPstnCn"
> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+ fcltSn: string | null;
+ swtrmtFcltNm: string | null;
+ fcltNm: string | null;
+ pumpSeNm: string | null;
+ fcltPstnCn: string | null;
oprtngStrtYmd: string | null;
};
diff --git a/apps/st/src/entities/statistics/model/input/statistics-input-sewage-excreta-related-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-input-sewage-excreta-related-interface.ts
index fbfc464b3..891b8fb06 100644
--- a/apps/st/src/entities/statistics/model/input/statistics-input-sewage-excreta-related-interface.ts
+++ b/apps/st/src/entities/statistics/model/input/statistics-input-sewage-excreta-related-interface.ts
@@ -176,24 +176,54 @@ export type PrivateSewageTreatRelatedIndustryApiResponse =
/** ST00120001·ST00120002 저장 — `saveList` / `deleteList` 항목 (`sggNm`·계산필드·검증결과 제외) */
export type PublicInstitutionSewerIndustrySaveItem = Omit<
PublicInstitutionSewerIndustryItem,
- "sggNm" | "verificationResult" | "empGrssCnt" | "techWholNope"
->;
+ | "sggNm"
+ | "verificationResult"
+ | "empGrssCnt"
+ | "techWholNope"
+ | "admdstCd"
+ | "admdstNm"
+ | "ognzSn"
+ | "ognzNm"
+> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+ ognzSn: string | null;
+ ognzNm: string | null;
+};
export type PublicInstitutionExcretaIndustrySaveItem = Omit<
PublicInstitutionExcretaIndustryItem,
- "sggNm" | "verificationResult" | "empGrssCnt" | "techWholNope"
->;
+ | "sggNm"
+ | "verificationResult"
+ | "empGrssCnt"
+ | "techWholNope"
+ | "admdstCd"
+ | "admdstNm"
+ | "ognzSn"
+ | "ognzNm"
+> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+ ognzSn: string | null;
+ ognzNm: string | null;
+};
/** ST00120003·ST00120004 저장 — `saveList` 항목 (`sggNm`·계산필드·검증결과 제외) */
export type ExcretaRelatedIndustrySaveItem = Omit<
ExcretaRelatedIndustryItem,
- "sggNm" | "verificationResult" | "fcltSecrPrstCnt"
->;
+ "sggNm" | "verificationResult" | "fcltSecrPrstCnt" | "admdstCd" | "admdstNm"
+> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+};
export type PrivateSewageTreatRelatedIndustrySaveItem = Omit<
PrivateSewageTreatRelatedIndustryItem,
- "sggNm" | "verificationResult"
->;
+ "sggNm" | "verificationResult" | "admdstCd" | "admdstNm"
+> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+};
export interface SewageExcretaRelatedSaveRequestBase {
statsYr: string;
diff --git a/apps/st/src/entities/statistics/model/input/statistics-input-sewage-excreta-slurge-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-input-sewage-excreta-slurge-interface.ts
index 1ad5e2294..c8518b065 100644
--- a/apps/st/src/entities/statistics/model/input/statistics-input-sewage-excreta-slurge-interface.ts
+++ b/apps/st/src/entities/statistics/model/input/statistics-input-sewage-excreta-slurge-interface.ts
@@ -54,7 +54,7 @@ export interface SlurgeProcessingFacStatusItem {
sggNm: string;
admdstNm: string;
fcltSn: string;
- swtrmtFcltNm: string;
+ swtrmtFcltNm: string | null;
swtrmtFcltCd: string;
gnamWhol: number;
itslfQnt: number;
@@ -132,7 +132,30 @@ export type SlurgeProcessingFacStatusSaveItem = Omit<
| "dryPrcsWhol"
| "fuelPrcsWhol"
| "otsdCnsgnWhol"
->;
+ | "admdstCd"
+ | "admdstNm"
+ | "fcltSn"
+ | "swtrmtFcltCd"
+ | "transfTmplntNm"
+ | "cmpsPrcsFcltBzentyNm"
+ | "incnrPrcsFcltNm"
+ | "stbznPrcsFcltNm"
+ | "dryPrcsFcltNm"
+ | "fuelPrcsFcltNm"
+ | "otsdCnsgnFcltNm"
+> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+ fcltSn: string | null;
+ swtrmtFcltCd: string | null;
+ transfTmplntNm: string | null;
+ cmpsPrcsFcltBzentyNm: string | null;
+ incnrPrcsFcltNm: string | null;
+ stbznPrcsFcltNm: string | null;
+ dryPrcsFcltNm: string | null;
+ fuelPrcsFcltNm: string | null;
+ otsdCnsgnFcltNm: string | null;
+};
/** ST00110001 저장 API 요청 */
export interface SlurgeProcessingFacStatusSaveRequest {
@@ -193,7 +216,7 @@ export interface DigestorOperatingStatusItem {
admdstNm: string;
fcltSn: string;
swtrmtFcltCd: string;
- swtrmtFcltNm: string;
+ swtrmtFcltNm: string | null;
digstnEnYn: string;
digstnCpct: number;
actlDrvnCpct: number;
@@ -228,8 +251,21 @@ export type DigestorOperatingStatusApiResponse =
*/
export type DigestorOperatingStatusSaveItem = Omit<
DigestorOperatingStatusItem,
- "sggNm" | "verificationResult" | "digstnGasUtztnWholPrst"
->;
+ | "sggNm"
+ | "verificationResult"
+ | "digstnGasUtztnWholPrst"
+ | "admdstCd"
+ | "admdstNm"
+ | "fcltSn"
+ | "swtrmtFcltCd"
+ | "digstnEnYn"
+> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+ fcltSn: string | null;
+ swtrmtFcltCd: string | null;
+ digstnEnYn: string | null;
+};
/** ST00110002 저장 API 요청 */
export interface DigestorOperatingStatusSaveRequest {
@@ -317,8 +353,22 @@ export type SewageSlurgeProcessingFacStatusApiResponse =
*/
export type SewageSlurgeProcessingFacStatusSaveItem = Omit<
SewageSlurgeProcessingFacStatusItem,
- "sggNm" | "verificationResult" | "oprtngRt" | "fcltPstnCn"
->;
+ | "sggNm"
+ | "verificationResult"
+ | "oprtngRt"
+ | "fcltPstnCn"
+ | "admdstCd"
+ | "admdstNm"
+ | "fcltSn"
+ | "fcltNm"
+ | "prcsMthExpln"
+> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+ fcltSn: string | null;
+ fcltNm: string | null;
+ prcsMthExpln: string | null;
+};
/** ST00110003 저장 API 요청 */
export interface SewageSlurgeProcessingFacStatusSaveRequest {
@@ -390,7 +440,7 @@ export interface ExcretaSlurgeProcessingStatusItem {
fuelQnt: number;
etcQnt: number;
nondspsQnt: number;
- swtrmtFcltNm: string;
+ swtrmtFcltNm: string | null;
rmrk: string | null;
verificationResult?: SewageExcretaSlurgeVerificationResult;
}
@@ -412,8 +462,22 @@ export type ExcretaSlurgeProcessingStatusApiResponse =
*/
export type ExcretaSlurgeProcessingStatusSaveItem = Omit<
ExcretaSlurgeProcessingStatusItem,
- "sggNm" | "verificationResult" | "gnam" | "wholDspsQnt"
->;
+ | "sggNm"
+ | "verificationResult"
+ | "gnam"
+ | "wholDspsQnt"
+ | "admdstCd"
+ | "admdstNm"
+ | "fcltSn"
+ | "fcltNm"
+ | "fcltPstnCn"
+> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+ fcltSn: string | null;
+ fcltNm: string | null;
+ fcltPstnCn: string | null;
+};
/** ST00110004 저장 API 요청 */
export interface ExcretaSlurgeProcessingStatusSaveRequest {
@@ -475,7 +539,7 @@ export interface PublicSewageFacilityItem {
admdstCd: string;
admdstNm: string;
swtrmtFcltCd: string;
- swtrmtFcltNm: string;
+ swtrmtFcltNm: string | null;
fcltSn: string;
}
diff --git a/apps/st/src/entities/statistics/model/input/statistics-input-sewage-pipe-maintain-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-input-sewage-pipe-maintain-interface.ts
index df35d2f76..ca7657561 100644
--- a/apps/st/src/entities/statistics/model/input/statistics-input-sewage-pipe-maintain-interface.ts
+++ b/apps/st/src/entities/statistics/model/input/statistics-input-sewage-pipe-maintain-interface.ts
@@ -97,9 +97,9 @@ export type SewagePipeMaintainDredgingResponse = ApiResponse 개보수 저장·제출 API 행 */
export interface SewagePipeMaintainRepairSaveItem {
- admdstCd: string;
- sggNm: string;
- admdstNm: string;
+ admdstCd: string | null;
+ sggNm: string | null;
+ admdstNm: string | null;
mendngWhol: number;
cbsysMendngPrlg: number;
sprsysExlnPrlg: number;
@@ -164,9 +164,9 @@ export interface SewagePipeMaintainRepairSubmitResponse {
/** ST00030002 하수관로 유지관리 > 관로준설 저장·제출 API 행 */
export interface SewagePipeMaintainDredgingSaveItem {
- admdstCd: string;
- sggNm: string;
- admdstNm: string;
+ admdstCd: string | null;
+ sggNm: string | null;
+ admdstNm: string | null;
wholFcltPrlg: number;
wholSwagePpl: number;
cbsysPplPrlg: number;
diff --git a/apps/st/src/entities/statistics/model/input/statistics-input-sewage-reservoir-pump-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-input-sewage-reservoir-pump-interface.ts
index eb734afca..2ab79fcbd 100644
--- a/apps/st/src/entities/statistics/model/input/statistics-input-sewage-reservoir-pump-interface.ts
+++ b/apps/st/src/entities/statistics/model/input/statistics-input-sewage-reservoir-pump-interface.ts
@@ -172,9 +172,39 @@ export interface SewageReservoirRequestParams {
*/
export type SewageReservoirSaveItem = Omit<
SewageReservoirItem,
- "sggNm" | "verificationResult" | "oprtngStrtYmd"
+ | "sggNm"
+ | "verificationResult"
+ | "oprtngStrtYmd"
+ | "admdstCd"
+ | "admdstNm"
+ | "fcltSn"
+ | "fcltNm"
+ | "fcltPstnCn"
+ | "fldngPrvtnYn"
+ | "wqPlltnMtgtYn"
+ | "rtlztnUsgYn"
+ | "prcsgFcltYn"
+ | "ddrztnEqpmYn"
+ | "oslfEtgtYn"
+ | "dschgWtrsExpln"
+ | "prcptnLastDspsMthdExpln"
+ | "ctmnLastDspsMthdExpln"
> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+ fcltSn: string | null;
+ fcltNm: string | null;
+ fcltPstnCn: string | null;
oprtngStrtYmd: string | null;
+ fldngPrvtnYn: string | null;
+ wqPlltnMtgtYn: string | null;
+ rtlztnUsgYn: string | null;
+ prcsgFcltYn: string | null;
+ ddrztnEqpmYn: string | null;
+ oslfEtgtYn: string | null;
+ dschgWtrsExpln: string | null;
+ prcptnLastDspsMthdExpln: string | null;
+ ctmnLastDspsMthdExpln: string | null;
};
/** 하수저류시설(ST00040001) 저장 API 요청 */
@@ -231,9 +261,37 @@ export interface SewageReservoirSubmitResponse {
*/
export type RainfallPumpStationSaveItem = Omit<
RainfallPumpStationItem,
- "sggNm" | "verificationResult" | "oprtngStrtYmd"
+ | "sggNm"
+ | "verificationResult"
+ | "oprtngStrtYmd"
+ | "admdstCd"
+ | "admdstNm"
+ | "fcltSn"
+ | "fcltNm"
+ | "fcltPstnCn"
+ | "fcltyKndCn"
+ | "rsvrYn"
+ | "prcsgFcltYn"
+ | "ddrztnEqpmYn"
+ | "oslfEtgtYn"
+ | "dschgWtrsExpln"
+ | "prcptnLastDspsMthdExpln"
+ | "ctmnLastDspsMthdExpln"
> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+ fcltSn: string | null;
+ fcltNm: string | null;
+ fcltPstnCn: string | null;
+ fcltyKndCn: string | null;
oprtngStrtYmd: string | null;
+ rsvrYn: string | null;
+ prcsgFcltYn: string | null;
+ ddrztnEqpmYn: string | null;
+ oslfEtgtYn: string | null;
+ dschgWtrsExpln: string | null;
+ prcptnLastDspsMthdExpln: string | null;
+ ctmnLastDspsMthdExpln: string | null;
};
/**
diff --git a/apps/st/src/entities/statistics/model/input/statistics-input-sewerage-finance-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-input-sewerage-finance-interface.ts
index 239d3c9d6..a1da3c2a3 100644
--- a/apps/st/src/entities/statistics/model/input/statistics-input-sewerage-finance-interface.ts
+++ b/apps/st/src/entities/statistics/model/input/statistics-input-sewerage-finance-interface.ts
@@ -91,9 +91,9 @@ export interface SewerageFinanceSettleRequestParams {
* `SewerageFinanceSettleInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 요청 `ctpvNm` 시도명).
*/
export interface SewerageFinanceSettleSaveItem {
- admdstCd: string;
- sggNm: string;
- admdstNm: string;
+ admdstCd: string | null;
+ sggNm: string | null;
+ admdstNm: string | null;
cnterGovSprtAmt: number;
mctpvLcexpAmt: number;
wareaSggLclAmt: number;
@@ -252,9 +252,9 @@ export interface SewerageChargeRequestParams {
* `SewerageChargeInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 요청 `ctpvNm` 시도명).
*/
export interface SewerageChargeSaveItem {
- admdstCd: string;
- sggNm: string;
- admdstNm: string;
+ admdstCd: string | null;
+ sggNm: string | null;
+ admdstNm: string | null;
anlLevyQnt: number;
levyAmt: number;
grssPrmcoAmt: number;
@@ -359,9 +359,9 @@ export interface SewerageUsageFeeRequestParams {
* `SewerageUsageFeeInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 요청 `ctpvNm` 시도명).
*/
export interface SewerageUsageFeeSaveItem {
- admdstCd: string;
- sggNm: string;
- admdstNm: string;
+ admdstCd: string | null;
+ sggNm: string | null;
+ admdstNm: string | null;
hshusLevyAmt: number;
hshusLevyQnt: number;
hshusUntprcAmt: number;
@@ -469,9 +469,9 @@ export interface CauserBurdenRequestParams {
* `trgtByWholClctnEvntcsCnt`는 조회·그리드 전용이며 저장·제출 요청에는 포함하지 않음.
*/
export interface CauserBurdenSaveItem {
- admdstCd: string;
- sggNm: string;
- admdstNm: string;
+ admdstCd: string | null;
+ sggNm: string | null;
+ admdstNm: string | null;
levyEvntcsCnt: number;
levyAmt: number;
mltvEqpmEvntcsCnt: number;
diff --git a/apps/st/src/entities/statistics/model/input/statistics-input-sewerage-service-level-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-input-sewerage-service-level-interface.ts
index b2e9f95df..4508e817c 100644
--- a/apps/st/src/entities/statistics/model/input/statistics-input-sewerage-service-level-interface.ts
+++ b/apps/st/src/entities/statistics/model/input/statistics-input-sewerage-service-level-interface.ts
@@ -128,8 +128,8 @@ export interface SewerageServiceLevelResidentFriendlyFactRequestParams {
/** ST00130001 저장 `saveList[]` 한 행 */
export interface SewerageServiceLevelComplaintSaveItem {
- admdstCd: string;
- admdstNm: string;
+ admdstCd: string | null;
+ admdstNm: string | null;
swtrmtPpltnCnt: number;
dschgWqCnt: number;
odorCnt: number;
@@ -162,11 +162,11 @@ export interface SewerageServiceLevelComplaintSaveResponse {
/** ST00130002 저장 `saveList[]` 한 행 */
export interface SewerageServiceLevelResidentFriendlyFactSaveItem {
- admdstCd: string;
- admdstNm: string;
- swtrmtFcltCd: string;
- swtrmtFcltNm: string;
- fcltSn: string;
+ admdstCd: string | null;
+ admdstNm: string | null;
+ swtrmtFcltCd: string | null;
+ swtrmtFcltNm: string | null;
+ fcltSn: string | null;
tmplntArea: number;
brkFcltArea: number;
childFrshpSpacArea: number;
diff --git a/apps/st/src/entities/statistics/model/input/statistics-input-status-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-input-status-interface.ts
index 93102dc27..85638dc88 100644
--- a/apps/st/src/entities/statistics/model/input/statistics-input-status-interface.ts
+++ b/apps/st/src/entities/statistics/model/input/statistics-input-status-interface.ts
@@ -33,8 +33,63 @@ export type StatsInputStatusListApiResponse = ApiResponse<
message: string;
};
+/** 통계 검증 리포트 RequestDto */
+export interface ReportSearchRequestDto {
+ sewerBzmnCd?: string | null;
+ ctpvNm?: string | null;
+ sggNm?: string | null;
+ statsYr: string;
+ statsCd?: string | null;
+ /** 공단 상태 코드 (0:미작성, 1:작성중, 2:제출, 3:승인, 4:반려, 5:검토중) */
+ pbcpSbmsnSttsCd?: string | null;
+}
+
+/** 통계 검증 리포트 현황 조회 ResponseDto */
+export interface ReportStatusResponseDto {
+ ctpvNm?: string;
+ sggNm?: string;
+ sewerBzmnCd?: string;
+ statsCd?: string;
+ menuTabName?: string;
+ laeSbmsnSttsCd?: string;
+ laeSbmsnSttsNm?: string;
+ laeSbmsnYmd?: string;
+ statPicSbmsnSttsCd?: string;
+ statPicSbmsnSttsNm?: string;
+ ctpvSbmsnYmd?: string;
+ pbcpSbmsnSttsCd?: string;
+ pbcpSbmsnSttsNm?: string;
+ pbcpCfmtnYmd?: string;
+ laePicNm?: string;
+ laePicTelNo?: string;
+ laeKbrdrDeptNm?: string;
+ laeKbrdrJbgdNm?: string;
+ laeIdfrNm?: string;
+ laeIdfrTelNo?: string;
+ laeIdfrDeptNm?: string;
+ laeIdfrJbgdNm?: string;
+ mctpvIdfrNm?: string;
+ mctpvIdfrTelNo?: string;
+ mctpvIdfrDeptNm?: string;
+ mctpvIdfrJbgdNm?: string;
+ lastCfmtnPicNm?: string;
+ lastCfmtnPicTelNo?: string;
+ lastCfmtnPicDeptNm?: string;
+ lastCfmtnPicJbgdNm?: string;
+ rjctOpnnCn?: string;
+}
+
+export type ReportStatusListApiResponse = ApiResponse<
+ ReportStatusResponseDto[]
+> & {
+ message: string;
+};
+
export interface StatisticsInputStatusService {
getStatisticsInputStatusList(
param: StatsInputStatusListRequestParams,
): Promise;
+ getStatsValidationReport(
+ request: ReportSearchRequestDto,
+ ): Promise;
}
diff --git a/apps/st/src/entities/statistics/model/input/statistics-input-water-reuse-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-input-water-reuse-interface.ts
index b40a17da5..dc5796286 100644
--- a/apps/st/src/entities/statistics/model/input/statistics-input-water-reuse-interface.ts
+++ b/apps/st/src/entities/statistics/model/input/statistics-input-water-reuse-interface.ts
@@ -105,18 +105,18 @@ export type PublicSewageTreatWaterReuseApiResponse =
/** ST00100001 저장 — `saveList` 항목 */
export interface PublicSewageTreatWaterReuseSaveItem {
- admdstCd: string;
- admdstNm: string;
- fcltSn: string;
- swtrmtFcltCd: string;
- swtrmtFcltNm: string;
+ admdstCd: string | null;
+ admdstNm: string | null;
+ fcltSn: string | null;
+ swtrmtFcltCd: string | null;
+ swtrmtFcltNm: string | null;
wholPrcsQnt: number;
- lglYn: string;
- instlYn: string;
+ lglYn: string | null;
+ instlYn: string | null;
oprtngStrtYmd: string | null;
instlAprvYmd: string | null;
rprcsFcltCpct: number;
- mtcnsNm: string;
+ mtcnsNm: string | null;
ruswtPplLen: number;
ruswtPumpLen: number;
rmrk: string | null;
@@ -209,10 +209,29 @@ export type RecycledWaterStatusApiResponse = ApiResponse & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+ fcltSn: string | null;
+ fcltNm: string | null;
+ bldgSeCn: string | null;
+ fcltPstnCn: string | null;
+ lglTrgtYn: string | null;
cmptnStrtYmd: string | null;
oprtngStrtYmd: string | null;
+ mnUsgCn: string | null;
};
/** ST00100002 저장 API 요청 */
@@ -303,9 +322,31 @@ export type RainFallUtilFactStatusApiResponse =
/** ST00100003 저장 — `saveList` / `deleteList` 항목 (`sggNm`·검증결과 제외) */
export type RainFallUtilFactStatusSaveItem = Omit<
RainFallUtilFactStatusItem,
- "sggNm" | "verificationResult" | "cmptYmd"
+ | "sggNm"
+ | "verificationResult"
+ | "cmptYmd"
+ | "admdstCd"
+ | "admdstNm"
+ | "fcltSn"
+ | "fcltNm"
+ | "bdstTypCn"
+ | "fcltPstnCn"
+ | "lglTrgtYn"
+ | "rcptMynCn"
+ | "filtrPrcsFcltYnExpln"
+ | "exlnUtlzUsgExpln"
> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+ fcltSn: string | null;
+ fcltNm: string | null;
+ bdstTypCn: string | null;
+ fcltPstnCn: string | null;
+ lglTrgtYn: string | null;
cmptYmd: string | null;
+ rcptMynCn: string | null;
+ filtrPrcsFcltYnExpln: string | null;
+ exlnUtlzUsgExpln: string | null;
};
/** ST00100003 저장 API 요청 */
@@ -388,8 +429,22 @@ export type TreatWaterReuseDesignConstStatusApiResponse =
/** ST00100004 저장 — `saveList` / `deleteList` 항목 (`sggNm`·검증결과 제외) */
export type TreatWaterReuseDesignConstStatusSaveItem = Omit<
TreatWaterReuseDesignConstStatusItem,
- "sggNm" | "verificationResult" | "coRegYmd"
+ | "sggNm"
+ | "verificationResult"
+ | "coRegYmd"
+ | "admdstCd"
+ | "admdstNm"
+ | "bplcSn"
+ | "bplcNm"
+ | "rprsvNm"
+ | "bplcPstnCn"
> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+ bplcSn: string | null;
+ bplcNm: string | null;
+ rprsvNm: string | null;
+ bplcPstnCn: string | null;
coRegYmd: string | null;
};
@@ -474,8 +529,22 @@ export type TreatWaterReuseBusinessApprStatusApiResponse =
/** ST00100005 저장 — `saveList` / `deleteList` 항목 (`sggNm`·검증결과 제외) */
export type TreatWaterReuseBusinessApprStatusSaveItem = Omit<
TreatWaterReuseBusinessApprStatusItem,
- "sggNm" | "verificationResult" | "coRegYmd"
+ | "sggNm"
+ | "verificationResult"
+ | "coRegYmd"
+ | "admdstCd"
+ | "admdstNm"
+ | "bplcSn"
+ | "bplcNm"
+ | "rprsvNm"
+ | "bplcPstnCn"
> & {
+ admdstCd: string | null;
+ admdstNm: string | null;
+ bplcSn: string | null;
+ bplcNm: string | null;
+ rprsvNm: string | null;
+ bplcPstnCn: string | null;
coRegYmd: string | null;
};
diff --git a/apps/st/src/entities/statistics/model/input/statistics-public-sewage-facility-input-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-public-sewage-facility-input-interface.ts
index 7d685fdcb..6b8230e93 100644
--- a/apps/st/src/entities/statistics/model/input/statistics-public-sewage-facility-input-interface.ts
+++ b/apps/st/src/entities/statistics/model/input/statistics-public-sewage-facility-input-interface.ts
@@ -170,12 +170,12 @@ export interface PublicSewageMappingTargetsResponse {
/** ST00060002 중심처리시설 매핑 저장 — saveList 항목 */
export interface PublicSewageMainFacilityMappingSaveItem {
- fcltSn: string;
- admdstCd: string;
- admdstNm: string;
- swtrmtFcltCd: string;
- swtrmtFcltNm: string;
- isMainYn: string;
+ fcltSn: string | null;
+ admdstCd: string | null;
+ admdstNm: string | null;
+ swtrmtFcltCd: string | null;
+ swtrmtFcltNm: string | null;
+ isMainYn: string | null;
}
/** ST00060002 중심처리시설 매핑 저장 API 요청 */
@@ -205,11 +205,11 @@ export interface PublicSewageMainFacilityMappingSaveResponse {
/** ST00060001 공공하수처리시설 저장 — saveList 항목 */
export interface PublicSewageFacilitySaveItem {
- admdstCd: string;
- admdstNm: string;
- swtrmtFcltCd: string;
- swtrmtFcltNm: string;
- fcltSn: string;
+ admdstCd: string | null;
+ admdstNm: string | null;
+ swtrmtFcltCd: string | null;
+ swtrmtFcltNm: string | null;
+ fcltSn: string | null;
fcltPstnCn: string | null;
inflwSwagePhysQnt: number;
diff --git a/apps/st/src/entities/statistics/model/input/statistics-sewage-pipe-input-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-sewage-pipe-input-interface.ts
index 454eb4446..9854acce2 100644
--- a/apps/st/src/entities/statistics/model/input/statistics-sewage-pipe-input-interface.ts
+++ b/apps/st/src/entities/statistics/model/input/statistics-sewage-pipe-input-interface.ts
@@ -96,14 +96,34 @@ export interface SeweragePipeInputRegionalResponse {
/** 지역별 시설현황(Tab1) 저장 — saveList 행 (검증 결과 제외) */
export type SeweragePipeInputRegionalFactStatusSaveItem = Omit<
SeweragePipeInputRegionalFactStatusItem,
- "verificationResult"
->;
+ "verificationResult" | "admdstCd" | "sggNm" | "admdstNm" | "goalYr"
+> & {
+ admdstCd: string | null;
+ sggNm: string | null;
+ admdstNm: string | null;
+ goalYr: string | null;
+};
/** Tab2 저장 — saveList */
export type SeweragePipeInputFactInstallStatusSaveItem = Omit<
SeweragePipeInputFactInstallStatusItem,
- "verificationResult"
->;
+ | "verificationResult"
+ | "admdstCd"
+ | "sggNm"
+ | "admdstNm"
+ | "fcltSn"
+ | "swtrmtFcltCd"
+ | "swtrmtFcltNm"
+ | "rmrk"
+> & {
+ admdstCd: string | null;
+ sggNm: string | null;
+ admdstNm: string | null;
+ fcltSn: string | null;
+ swtrmtFcltCd: string | null;
+ swtrmtFcltNm: string | null;
+ rmrk: string | null;
+};
/** 지역별 시설현황 저장 API 요청 */
export interface SeweragePipeInputRegionalFactStatusSaveRequest {
@@ -283,11 +303,11 @@ export interface SeweragePipeInputPipeTypeResponse {
/** 관종별 현황 저장 — saveList 항목 */
export interface SeweragePipeInputPipeTypeStatusSaveItem {
- admdstCd: string;
- admdstNm: string;
- pipeSeCd: string;
+ admdstCd: string | null;
+ admdstNm: string | null;
+ pipeSeCd: string | null;
yearlyStatList: SeweragePipeInputPipeTypeYearlyStatItem[];
- rmrk: string;
+ rmrk: string | null;
lyngPrlgWhol: number;
dmltnPrlgWhol: number;
pipeByPrstWhol: number;
@@ -351,7 +371,7 @@ export interface SeweragePipeInputPipeDiameterResponse {
/** 관경별 현황 저장 — saveList 항목 */
export interface SeweragePipeInputPipeDiameterStatusSaveItem {
- pipeSeCd: string;
+ pipeSeCd: string | null;
step1PdmtPrlg: number;
step2PdmtPrlg: number;
step3PdmtPrlg: number;
@@ -359,10 +379,10 @@ export interface SeweragePipeInputPipeDiameterStatusSaveItem {
step5PdmtPrlg: number;
sqrePdmtPrlg: number;
etcPdmtPrlg: number;
- rmrk: string;
+ rmrk: string | null;
pdmtByTsmWhol: number;
- admdstCd: string;
- admdstNm: string;
+ admdstCd: string | null;
+ admdstNm: string | null;
}
/** 관경별 현황 저장 API 요청 */
@@ -456,11 +476,11 @@ export interface SeweragePipeInputManholeStatusSaveYearlyStatItem {
/** 맨홀 현황 저장 — saveList 항목 */
export interface SeweragePipeInputManholeStatusSaveItem {
- emphsMngSeCd: string;
- admdstCd: string;
- admdstNm: string;
+ emphsMngSeCd: string | null;
+ admdstCd: string | null;
+ admdstNm: string | null;
yearlyStats: SeweragePipeInputManholeStatusSaveYearlyStatItem[];
- rmrk: string;
+ rmrk: string | null;
}
/** 맨홀 현황 저장 API 요청 */
diff --git a/apps/st/src/entities/statistics/model/statistics-verification-report/statistics-verification-report-columns.ts b/apps/st/src/entities/statistics/model/statistics-verification-report/statistics-verification-report-columns.ts
index 626ff8a67..79979cc8b 100644
--- a/apps/st/src/entities/statistics/model/statistics-verification-report/statistics-verification-report-columns.ts
+++ b/apps/st/src/entities/statistics/model/statistics-verification-report/statistics-verification-report-columns.ts
@@ -29,14 +29,14 @@ export const statisticsVerificationReportColumnInfo: ColumnInfo = {
{
name: "laePicNm",
fieldName: "laePicNm",
- header: { text: "작성자" },
+ header: { text: "지자체작성자" },
styleName: READ_ONLY_STYLE,
editable: false,
},
{
name: "laePicTelNo",
fieldName: "laePicTelNo",
- header: { text: "작성자연락처" },
+ header: { text: "연락처" },
width: 130,
styleName: READ_ONLY_STYLE,
editable: false,
@@ -58,7 +58,7 @@ export const statisticsVerificationReportColumnInfo: ColumnInfo = {
{
name: "laeIdfrNm",
fieldName: "laeIdfrNm",
- header: { text: "승인자" },
+ header: { text: "지자체승인자" },
styleName: READ_ONLY_STYLE,
editable: false,
},
@@ -76,6 +76,27 @@ export const statisticsVerificationReportColumnInfo: ColumnInfo = {
styleName: READ_ONLY_STYLE,
editable: false,
},
+ {
+ name: "lastCfmtnPicNm",
+ fieldName: "lastCfmtnPicNm",
+ header: { text: "공단확인자" },
+ styleName: READ_ONLY_STYLE,
+ editable: false,
+ },
+ {
+ name: "lastCfmtnPicDeptNm",
+ fieldName: "lastCfmtnPicDeptNm",
+ header: { text: "부서" },
+ styleName: READ_ONLY_STYLE,
+ editable: false,
+ },
+ {
+ name: "lastCfmtnPicJbgdNm",
+ fieldName: "lastCfmtnPicJbgdNm",
+ header: { text: "직급" },
+ styleName: READ_ONLY_STYLE,
+ editable: false,
+ },
{
name: "rjctOpnnCn",
fieldName: "rjctOpnnCn",
@@ -108,6 +129,9 @@ export const statisticsVerificationReportColumnInfo: ColumnInfo = {
"laeIdfrNm",
"laeIdfrDeptNm",
"laeIdfrJbgdNm",
+ "lastCfmtnPicNm",
+ "lastCfmtnPicDeptNm",
+ "lastCfmtnPicJbgdNm",
"rjctOpnnCn",
"sewerBzmnCd",
"statsCd",
diff --git a/apps/st/src/entities/statistics/model/statistics-verification-report/statistics-verification-report-types.ts b/apps/st/src/entities/statistics/model/statistics-verification-report/statistics-verification-report-types.ts
index 46e74c8b5..d902c9cd6 100644
--- a/apps/st/src/entities/statistics/model/statistics-verification-report/statistics-verification-report-types.ts
+++ b/apps/st/src/entities/statistics/model/statistics-verification-report/statistics-verification-report-types.ts
@@ -1,12 +1,11 @@
import type { VerifyResultSearchRequest } from "../general-verification-interface";
-import type { StatsInputStatusListRequestParams } from "../input/statistics-input-status-interface";
+import type { ReportSearchRequestDto } from "../input/statistics-input-status-interface";
-export type StatisticsVerificationFilterState =
- StatsInputStatusListRequestParams & {
- // 셀렉트 표시용 시도, 시군구 코드
- ctpvSewerBzmnCd?: string | null;
- sggSewerBzmnCd?: string | null;
- };
+export type StatisticsVerificationFilterState = ReportSearchRequestDto & {
+ // 셀렉트 표시용 시도, 시군구 코드
+ ctpvSewerBzmnCd?: string | null;
+ sggSewerBzmnCd?: string | null;
+};
export type StatisticsVerificationSubFilterState = VerifyResultSearchRequest;