[st] feat: 통계 검증 리포트 목록 조회 API 수정

This commit is contained in:
2026-08-21 17:27:30 +09:00
parent 8e757ab9db
commit 6cc02da7a4
7 changed files with 137 additions and 24 deletions
@@ -14,12 +14,12 @@ import { CodeApi, CodeSelect } from "@/entities/code";
import {
type ApproveRequest,
type RejectRequest,
type ReportStatusResponseDto,
statisticsApprovalApi,
type StatisticsVerificationFilterState,
statisticsVerificationReportColumnInfo,
statisticsVerificationResultColumnInfo,
type StatisticsVerificationSubFilterState,
type StatsInputStatusList,
useSggList,
useSidoList,
useStatsVrfcRptData,
@@ -72,8 +72,8 @@ const getYearOptions = () => {
};
function isSameStatsInputStatusRow(
a: StatsInputStatusList,
b: StatsInputStatusList,
a: ReportStatusResponseDto,
b: ReportStatusResponseDto,
): boolean {
return (
a.ctpvNm === b.ctpvNm && a.sggNm === b.sggNm && a.statsCd === b.statsCd
@@ -132,11 +132,12 @@ const DEFAULT_FILTERS: StatisticsVerificationFilterState = {
statsYr: String(dayjs().year() - 1),
sewerBzmnCd: null,
statsCd: null,
laeSbmsnSttsCd: "3",
pbcpSbmsnSttsCd: "3",
};
const DEFAULT_SUB_FILTERS: StatisticsVerificationSubFilterState = {
...DEFAULT_FILTERS,
laeSbmsnSttsCd: "3",
prcsYnList: "1,2",
rejectCode: "0",
pbcpAprvYn: "N",
@@ -153,6 +154,13 @@ const REJECT_STATUS_OPTIONS = [
{ label: "공단반려", value: "2" },
];
const PBCP_SBMSN_STTS_OPTIONS = [
{ label: "미작성", value: "0" },
{ label: "작성중", value: "1" },
{ label: "승인", value: "3" },
{ label: "반려", value: "4" },
];
function StatisticsVerificationReport() {
const queryClient = useQueryClient();
const userInfo = useUserStore((state) => state.userInfo);
@@ -163,7 +171,7 @@ function StatisticsVerificationReport() {
const [subFilters, setSubFilters] =
useState<StatisticsVerificationSubFilterState>(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()}
/>
<FilterSelect
label="공단진행상태"
value={filters.pbcpSbmsnSttsCd ?? ""}
onChange={handleFilterChange("pbcpSbmsnSttsCd")}
options={PBCP_SBMSN_STTS_OPTIONS}
/>
<div className="flex items-center gap-2">
<Label>통계지표</Label>
<CodeSelect
@@ -645,7 +658,7 @@ function StatisticsVerificationReport() {
setRowData={() => {}}
showHeaderCheckbox={true}
gridHeight={30}
onRowClick={(row: StatsInputStatusList) => {
onRowClick={(row: ReportStatusResponseDto) => {
setSubFilters((prev) => ({
...prev,
ctpvNm: row?.ctpvNm ?? "",