지도점검 페이지네이션 수정, 엑셀 등록 수정, 점검일 날짜 포매터 적용

This commit is contained in:
jyha00
2025-08-04 19:53:36 +09:00
parent 2c6327bc3a
commit 1e650a72ba
5 changed files with 77 additions and 28 deletions
@@ -118,13 +118,33 @@ export default function Page() {
const rainPageChange = (pageNo: number) => {
if (pageNo > 0) {
setRainPageNation(pageNo);
rainChkInit(pageNo, rainPageSize, searchYear, commonCd);
if (fcltNm) {
rainChkNmSearch(
pageNo,
rainPageSize,
searchYear,
commonCd,
fcltNm
);
} else {
rainChkInit(pageNo, rainPageSize, searchYear, commonCd);
}
}
};
const rswtPageChange = (pageNo: number) => {
if (pageNo > 0) {
setRswtPageNation(pageNo);
rswtChkgdnInit(pageNo, rswtPageSize, searchYear, commonCd);
if (fcltNm) {
rswtChkNmSearch(
pageNo,
rainPageSize,
searchYear,
commonCd,
fcltNm
);
} else {
rswtChkgdnInit(pageNo, rswtPageSize, searchYear, commonCd);
}
}
};
@@ -83,14 +83,34 @@ export default function Page() {
const rainPageChange = (pageNo: number) => {
if (pageNo > 0) {
setRainPageNation(pageNo);
rainChkSttnInit(pageNo, rainPageSize, searchYear, commonCd);
if (fcltNm) {
rainChkSttnNmSearch(
pageNo,
rainPageSize,
searchYear,
commonCd,
fcltNm
);
} else {
rainChkSttnInit(pageNo, rainPageSize, searchYear, commonCd);
}
}
};
const rswtPageChange = (pageNo: number) => {
if (pageNo > 0) {
setRswtPageNation(pageNo);
rswtChkSttnInit(pageNo, rswtPageSize, searchYear, commonCd);
if (fcltNm) {
rswtChkNmSttnSearch(
pageNo,
rainPageSize,
searchYear,
commonCd,
fcltNm
);
} else {
rswtChkSttnInit(pageNo, rswtPageSize, searchYear, commonCd);
}
}
};
@@ -132,20 +132,20 @@ export const excelToRainChkData = (excelData: any, year: string) => {
bdstNm: item["시설명"] ?? "",
bdstRuseFcltSn: Number(item["NO"]),
chckYmd: checkYmd,
spwtPositn: item["유량측정방법"] ?? "",
rgtr: TEST_UUID,
oilqMeasMthd: item["운영관리형태"] ?? "",
operMngCd: item["운영관리형태"] ?? "",
anlOperCst: parseRawValue(item["연간운영비(원/년)"]),
operMngCd: item["유량측정방법"] ?? "",
oilqMeasMthd: item["유량측정방법"] ?? "",
guideDetails: makeGuidDetail,
rainyDetails: [
{
ph: item["PH"],
utztnUsgCd: item["이용용도"],
trbt: parseRawValue(item["탁도"]),
grssClfg: parseRawValue(item["총대장균군수"]),
etc: item["기타"] || "", // 필드 누락 방지
vltnDt: vltnDt || "-",
vltnMttr: item["위반사항"] || "-",
vltnDt: vltnDt || "",
vltnMttr: item["위반사항"] || "",
levyAmt: parseRawValue(item["과태료부과금액(천원)"]),
rgtr: TEST_UUID,
},
@@ -177,12 +177,6 @@ console.log("rainChkgdData", rainChkgdData);
defaultMessage + `유량측정방법: 위탁 혹은 자체 만 허용) /입력값:${rain.oilqMeasMthd}`
);
}
if (rain.spwtPositn.length > 1 && !chkSpwtPositnType.includes(rain.spwtPositn)) {
issues.push(
defaultMessage + `측정위치: 유량계, 수위계, 펌프적산전력계, 기타 중 하나만 허용) /입력값:${rain.spwtPositn}`
);
}
rain.rainyDetails?.forEach((key) => {
if (key.ph?.length > 1 && isInvalidNumber(key.ph)) {
+17 -13
View File
@@ -8,11 +8,12 @@ import {
TableCell,
TableRow,
} from "@common/components/ui";
import moment from "moment";
import {
formatCommaNumber,
handleCommaNumberChange,
formatYyyymmdd,
handleCommaNumberChange
} from "./commom";
import moment from "moment";
export const rainChkTableData = (chkData: rainChkZodType[]) => {
// 1. chkgdnSn + utztnUsgCd 기준 누계 정보 만들기
@@ -149,13 +150,16 @@ export const chRowspanTable = (
) : key === "order" ? (
++order
) : // value
["anlOperCst", "dtfcltCpct", "prcsCpct"].includes(
["anlOperCst", "dtfcltCpct", "prcsCpct"].includes(
head.id
) ? (
formatCommaNumber(value)
) : (
<>{value}</>
)}
formatCommaNumber(value)
) : key === "chckYmd" ? (
<>{formatYyyymmdd(value)}</>
) :
(
<>{value}</>
)}
</TableCell>
);
}
@@ -231,12 +235,12 @@ export const chRowspanTable = (
/>
)
) : [
"totalSplyUswtrUtztnQnt",
"totalRuseFcltUtztnQnt",
"splyUswtrUtztnQnt",
"ruseFcltUtztnQnt",
"levyAmt",
].includes(head.id) ? (
"totalSplyUswtrUtztnQnt",
"totalRuseFcltUtztnQnt",
"splyUswtrUtztnQnt",
"ruseFcltUtztnQnt",
"levyAmt",
].includes(head.id) ? (
<span
className={
[
+11
View File
@@ -7,6 +7,7 @@ import {
type SheetParameter,
} from "@common/business_components/ui";
import { Button } from "@common/components/ui";
import moment from "moment";
import type { RefObject } from "react";
import toast from "react-hot-toast";
@@ -263,3 +264,13 @@ export const showConfirmToast = (message: string) => {
{ duration: Infinity }
); // 수동 닫기
};
// yyyy-mm-dd 형태로 포맷
export const formatYyyymmdd = (val: string | undefined) => {
if (!val) return "";
if (/^\d{8}$/.test(val)) {
return moment(val, "YYYYMMDD").format("YYYY-MM-DD");
}
const m = moment(val);
return m.isValid() ? m.format("YYYY-MM-DD") : val;
};