From 21610c9c9f68fb28080c17a50a6afeec0ac9281a Mon Sep 17 00:00:00 2001 From: jyha00 Date: Tue, 8 Jul 2025 18:31:08 +0900 Subject: [PATCH 01/15] =?UTF-8?q?=EC=9E=A0=EC=9E=AC=EC=88=98=EC=9A=94?= =?UTF-8?q?=EC=B2=98=20=EC=97=91=EC=85=80=20=EB=8B=A4=EC=9A=B4=EB=A1=9C?= =?UTF-8?q?=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wr/app/matMng/coMng/ldrmntCoSttn/page.tsx | 101 +++++++----------- .../app/store/matDmd/ldrmntCoSttn/index.tsx | 88 +++++++++------ .../coReg/coRegExcel/coRegExcelModal.tsx | 35 +++--- 3 files changed, 109 insertions(+), 115 deletions(-) diff --git a/apps/wr/app/matMng/coMng/ldrmntCoSttn/page.tsx b/apps/wr/app/matMng/coMng/ldrmntCoSttn/page.tsx index eb43b29bf..271754938 100644 --- a/apps/wr/app/matMng/coMng/ldrmntCoSttn/page.tsx +++ b/apps/wr/app/matMng/coMng/ldrmntCoSttn/page.tsx @@ -3,11 +3,10 @@ import { useWrStore } from "@/app/store"; import { btnClass } from "@/app/store/common/code"; import { type customLdrmnt } from "@/app/store/matDmd/ldrmntCoSttn"; -import { ldrmntHeadListExport, ldrmntNodeListExport } from "@/app/store/matDmd/ldrmntCoSttn/headList"; +import { ldrmntHeadListExport } from "@/app/store/matDmd/ldrmntCoSttn/headList"; import { excelDownload, getCity, - getCityOrSgg, tableData } from "@/components/lib/func/commom"; import CoRegExcel from "@/components/ui/modal/coReg/coRegExcel/coRegExcelModal"; @@ -24,42 +23,62 @@ import { Title, UiModal, UiTable, - type ReturnType, type SelectDataType } from "@common/business_components/ui"; import ListDiv from "@common/business_components/ui/list_div"; import { Button } from "@common/components/ui"; -import { useCallback, useEffect, useRef, useState } from "react"; +import { useCallback, useEffect, useState } from "react"; +import { Toaster } from "react-hot-toast"; export default function LdrmntCoSttn() { const { code, ldrmnt, ldrmntInit, ldrmntSearch, } = useWrStore( (state) => state ); - const { ldrmntRes, excelList } = ldrmnt; + const { ldrmntRes, excelList, ldrmntResCount } = ldrmnt; const [detailModal, setDetailModal] = useState<{ isOpen: boolean, data: customLdrmnt | undefined }>({ data: undefined, isOpen: false }) const [pageNation, setPageNation] = useState(1); const [selectSgg, setSelectSgg] = useState() const [objSearch, setObjSearch] = useState({ sgg: "", city: "" }); const [bdstTable, setBdstTable] = useState(); const [searchTxt, setSearchTxt] = useState(); - const ref = useRef({} as ReturnType); const [excelData, setExcelData] = useState(); const [isExcelDownload, setIsExcelDownload] = useState(false); const excelClick = useCallback(() => { excelDownload( [[]], - "잠재수요처 관리", + "잠재수요처 등록양식", "sample_ldrmntCoSttn.xlsx", "A1:AL1", 2 ); }, []); - const excelDownloadClick = () => { - ldrmntSearch(1, "10000", "0", ""); + const computeCityNm = () => { + let cityTxt = ""; + let sggTxt = ""; + + if (objSearch.city) { + cityTxt = + code.cityCd.find((c) => c.val === objSearch.city)?.text || ""; + } + if (objSearch.sgg) { + sggTxt = + code.sggCd.find((s) => s.val === objSearch.sgg)?.text || ""; + } + + if (cityTxt === "" || cityTxt === "전체") cityTxt = "0"; + + return sggTxt && sggTxt !== "0" + ? `${cityTxt} ${sggTxt}` + : cityTxt; + }; + + const excelDownloadClick = useCallback(() => { + const cityNm = computeCityNm(); + ldrmntSearch(true, pageNation, String(ldrmntResCount), cityNm, searchTxt || ""); setIsExcelDownload(true); - } + }, [objSearch, pageNation, searchTxt, code, ldrmntSearch, computeCityNm]); useEffect(() => { if (isExcelDownload && excelData && excelData.length > 0) { @@ -141,33 +160,8 @@ export default function LdrmntCoSttn() { }, [excelList]) useEffect(() => { - let cityTxt = '' - let sggTxt = '' - - if (objSearch?.city.toString().length > 0) { - cityTxt = code.cityCd.find((item) => item.val === objSearch?.city)?.text ?? ''; - } - - if (objSearch?.sgg.toString().length > 1) { - sggTxt = code.sggCd.find((item) => item.val === objSearch?.sgg)?.text ?? ''; - } - - if (cityTxt === '전체' || cityTxt === '') { - cityTxt = '0' - } - - let cityNm = "" - - if (sggTxt !== "0") { - cityNm = cityTxt + " " + sggTxt - } else { - cityNm = cityTxt - } - if (cityNm) { - ldrmntSearch(pageNation, '20', cityNm, searchTxt || ""); - } else { - ldrmntSearch(pageNation, '20', '0', searchTxt || ""); - } + const cityNm = computeCityNm(); + ldrmntSearch(false, pageNation, '20', cityNm, searchTxt || ""); }, [pageNation]); return ( @@ -210,32 +204,8 @@ export default function LdrmntCoSttn() { + + setSearchTxt(e.target.value)} + /> +

건축물 목록 - (유의 사항: 신규등록하려는 건축물이 목록에 없을 경우 하단 건축물 정보에 추가하여 주시기 바랍니다.) + (유의 사항: 신규등록하려는 건축물이 목록에 없을 경우 하단 건축물 + 정보에 추가하여 주시기 바랍니다.)

@@ -134,24 +192,40 @@ export function BdstReg({ moType,setIsModal,isModal }: BdstReg pageSize={-10} total={-1} headName={undefined} - cellClick={(idx, headId) => (tableClick(idx, headId || ""))} + cellClick={(idx, headId) => tableClick(idx, headId || "")} onPageChange={function (page: number): void { throw new Error("Function not implemented."); - }}> - + }} + >
{/* */} -
- { moType === 'RNB'? - - :moType==='RST' - ? {setIsModal && setIsModal(open)}}> - :{setIsModal && setIsModal(open)}}> - } - -
+
+ {moType === "RNB" ? ( + + ) : moType === "RST" ? ( + { + setIsModal && setIsModal(open); + }} + > + ) : ( + { + setIsModal && setIsModal(open); + }} + > + )} +
{/*
*/} From e314369cbb77f083abc2ab5a6b2f588ea2dc1657 Mon Sep 17 00:00:00 2001 From: jyha00 Date: Tue, 8 Jul 2025 19:54:53 +0900 Subject: [PATCH 04/15] =?UTF-8?q?=ED=95=98=EC=88=98=EC=9E=AC=EC=9D=B4?= =?UTF-8?q?=EC=9A=A9=EC=8B=9C=EC=84=A4=20=EB=93=B1=EB=A1=9D=20=EC=8B=9C?= =?UTF-8?q?=EC=84=A4/=EC=B0=A8=EC=88=98=EB=B3=84=20=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=EA=B3=A0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/ruseFcltMng/fcltReg/pbnstReg/page.tsx | 103 +++++++++--------- 1 file changed, 52 insertions(+), 51 deletions(-) diff --git a/apps/wr/app/ruseFcltMng/fcltReg/pbnstReg/page.tsx b/apps/wr/app/ruseFcltMng/fcltReg/pbnstReg/page.tsx index 6a9189876..29b65c9c8 100644 --- a/apps/wr/app/ruseFcltMng/fcltReg/pbnstReg/page.tsx +++ b/apps/wr/app/ruseFcltMng/fcltReg/pbnstReg/page.tsx @@ -93,7 +93,7 @@ export default function PublicReuseFaciltyInsert() { if (!isDirty) { toast.error("변경사항이 없습니다."); // 변경사항이 없으면 메시지 표시 return; - } const data = writeRgtrAndMdfr(valuse.items); + } const data = writeRgtrAndMdfr(valuse.items); let bizs = [] as fcBizType[]; data.forEach((fclt) => { bizs = [...bizs, ...fclt.fcBizs]; @@ -118,22 +118,22 @@ export default function PublicReuseFaciltyInsert() { ]).then(([resFclt, resBiz]) => { const isFcltSuccess = resFclt.status === "fulfilled"; const isBizSuccess = resBiz.status === "fulfilled"; - + if (isFcltSuccess && isBizSuccess) { - toast.success('하수 재이용 시설 및 사업이 수정되었습니다. ') + toast.success('하수 재이용 시설 및 사업이 수정되었습니다. ') // 메시지 표시, 페이지 이동 등 } else { - let message ='' + let message = '' // ✅ 각각 어떤 항목이 실패했는지도 로그/알림 처리 if (!isFcltSuccess) { message = '하수재이용 시설 ' } if (!isBizSuccess) { - message += '하수재이용 시설 사업 ' + message += '하수재이용 시설 사업 ' } - - toast.error(message+'오류 입니다 ') + + toast.error(message + '오류 입니다 ') pubHasuInit("1", "41"); } @@ -146,45 +146,45 @@ export default function PublicReuseFaciltyInsert() { // 폼 유효성 검사 실패 시 호출될 함수 const onInvalid = (errors: FieldErrors<{ items: z.infer[] }>) => { console.log("errors:", errors); - + const findAllErrors = ( errorObject: any, path: (string | number)[] = [] ): { message: string; path: (string | number)[] }[] => { if (!errorObject) return []; - + return Object.keys(errorObject).flatMap((key) => { const value = errorObject[key]; const currentKey = !isNaN(parseInt(key)) ? parseInt(key) : key; const newPath = [...path, currentKey]; - + if (value && typeof value === "object") { if (value.message) { return [{ message: value.message, path: newPath }]; } - + return findAllErrors(value, newPath); } return []; }); }; - + const errorList = findAllErrors(errors); - + if (errorList.length > 0) { errorList.forEach((errorInfo) => { const { message, path } = errorInfo; let prefix = ""; - + const itemsIndex = path.indexOf("items"); - + if (itemsIndex > -1 && path.length > itemsIndex + 1) { const itemIdx = path[itemsIndex + 1] as number; const facilityName = form.getValues(`items.${itemIdx}.ruseUtztnFcltNm`); if (facilityName) { prefix += `[${facilityName}] `; } - + const fcBizsIndex = path.indexOf("fcBizs"); if (fcBizsIndex > -1 && path.length > fcBizsIndex + 1) { const bizIdx = path[fcBizsIndex + 1] as number; @@ -194,7 +194,7 @@ export default function PublicReuseFaciltyInsert() { } } } - + // 최종 오류 메시지 출력 toast.error(`${prefix}${message}`); }); @@ -239,7 +239,7 @@ export default function PublicReuseFaciltyInsert() { } }, [indexMng]); - + useEffect(() => { @@ -266,7 +266,7 @@ export default function PublicReuseFaciltyInsert() { // ] as fcBizType[], // }) // ); - append(createDefaultPbnstItem(selecTableRow, pbnstRes.length)); + append(createDefaultPbnstItem(selecTableRow, pbnstRes.length)); setIsRuseReg({ isModal: true }); } @@ -366,24 +366,24 @@ export default function PublicReuseFaciltyInsert() { - - {formWatch && formWatch[0]?.pbnstRuseFcltPk ? ( - - - - 시설정보 - - - 차수별정보 - - - + {formWatch && formWatch[0]?.pbnstRuseFcltPk ? ( + + + + 시설정보 + + + 차수별정보 + + + + - - ) : ( - <> + + + + ) : ( + <>
- 등록된 재이용시설 정보가 없습니다. + 등록된 재이용시설 정보가 없습니다.
-
-

- 신규등록 버튼을 클릭하여 재이용시설을 등록해주세요. -

- -
- + + - )} - + )}
} bodyClass="w-[68vw] max-w-none h-[90vh]" From e30130dc8f54918924e5221b7b4103f8b0afb2ca Mon Sep 17 00:00:00 2001 From: jyha00 Date: Tue, 8 Jul 2025 20:59:35 +0900 Subject: [PATCH 05/15] =?UTF-8?q?=EC=9E=A0=EC=9E=AC=EC=88=98=EC=9A=94?= =?UTF-8?q?=EC=B2=98=20=EC=97=91=EC=85=80=20=EB=8B=A4=EC=9A=B4=EB=A1=9C?= =?UTF-8?q?=EB=93=9C=20=EC=88=98=EC=A0=95,=20=ED=8E=98=EC=9D=B4=EC=A7=95?= =?UTF-8?q?=20=EC=B2=98=EB=A6=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wr/app/matMng/coMng/ldrmntCoSttn/page.tsx | 14 +++++----- .../app/store/matDmd/ldrmntCoSttn/index.tsx | 9 +++--- .../ruseFcltMng/fcltSttn/htdflSttn/index.tsx | 2 -- .../ruseFcltMng/fcltSttn/rainSttn/index.tsx | 2 -- .../ruseFcltMng/fcltSttn/rswtSttn/excel.tsx | 3 +- .../ruseFcltMng/fcltSttn/rswtSttn/index.tsx | 8 ++++-- .../coReg/coRegExcel/coRegExcelModal.tsx | 28 +++++++++++-------- 7 files changed, 37 insertions(+), 29 deletions(-) diff --git a/apps/wr/app/matMng/coMng/ldrmntCoSttn/page.tsx b/apps/wr/app/matMng/coMng/ldrmntCoSttn/page.tsx index 271754938..5ce69d508 100644 --- a/apps/wr/app/matMng/coMng/ldrmntCoSttn/page.tsx +++ b/apps/wr/app/matMng/coMng/ldrmntCoSttn/page.tsx @@ -42,7 +42,7 @@ export default function LdrmntCoSttn() { const [bdstTable, setBdstTable] = useState(); const [searchTxt, setSearchTxt] = useState(); const [excelData, setExcelData] = useState(); - const [isExcelDownload, setIsExcelDownload] = useState(false); + // const [isExcelDownload, setIsExcelDownload] = useState(false); const excelClick = useCallback(() => { excelDownload( @@ -77,20 +77,20 @@ export default function LdrmntCoSttn() { const excelDownloadClick = useCallback(() => { const cityNm = computeCityNm(); ldrmntSearch(true, pageNation, String(ldrmntResCount), cityNm, searchTxt || ""); - setIsExcelDownload(true); - }, [objSearch, pageNation, searchTxt, code, ldrmntSearch, computeCityNm]); + // setIsExcelDownload(true); + }, [objSearch, pageNation, searchTxt, code, ldrmntSearch, computeCityNm, ldrmntResCount]); useEffect(() => { - if (isExcelDownload && excelData && excelData.length > 0) { + if (/*isExcelDownload &&*/ excelData && excelData.length > 0) { downloadExcel({ data: excelData, fileName: "잠재수요처 관리", sheetNameArray: ["Sheet1"], headerRange: "A1:F1" }); - setIsExcelDownload(false); + // setIsExcelDownload(false); } - }, [excelData, isExcelDownload]); + }, [excelData, /*isExcelDownload*/]); const [isExcelOpen, setIsExcelOpen] = useState<{ isModal: boolean; @@ -247,7 +247,7 @@ export default function LdrmntCoSttn() { tableData={bdstTable || []} headlist={ldrmntHeadListExport} pageSize={20} - total={10000} + total={ldrmntResCount || 0} cellClick={(index: number | undefined, headId: string) => { cellClick(index ?? undefined, headId) }} onPageChange={setPageNation} /> diff --git a/apps/wr/app/store/matDmd/ldrmntCoSttn/index.tsx b/apps/wr/app/store/matDmd/ldrmntCoSttn/index.tsx index 734aca547..73c1bad7d 100644 --- a/apps/wr/app/store/matDmd/ldrmntCoSttn/index.tsx +++ b/apps/wr/app/store/matDmd/ldrmntCoSttn/index.tsx @@ -60,7 +60,7 @@ export const ldrmntActionsExport: (set: any) => ldrmntActions = ( return { ldrmntInit: async (con: string) => { try { - const ldrmntRes = await getFetch( + const ldrmntRes = await getFetchWithCount( fetchType.WR, `/reuseFc/request/temp/1/20/${con}` ); @@ -70,7 +70,8 @@ export const ldrmntActionsExport: (set: any) => ldrmntActions = ( ...state, ldrmnt: { ...state.ldrmnt, - ldrmntRes: ldrmntRes, + ldrmntRes: ldrmntRes.data, + ldrmntResCount: ldrmntRes.count, isInit: false, excelList: excelDownList, }, @@ -120,7 +121,7 @@ export const ldrmntActionsExport: (set: any) => ldrmntActions = ( fetchType.WR, searchUrl ); - +console.log("알이에스", ldrmntRes) if (isExcel) { let excelDownList: ExcelType[] = []; ldrmntRes.data.forEach((item: customLdrmnt) => { @@ -139,7 +140,7 @@ export const ldrmntActionsExport: (set: any) => ldrmntActions = ( ldrmnt: { ...state.ldrmnt, excelList: excelDownList, - + ldrmntResCount: ldrmntRes.count, }, }; }); diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/htdflSttn/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/htdflSttn/index.tsx index 29f68a6d6..fb264f669 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/htdflSttn/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/htdflSttn/index.tsx @@ -77,7 +77,6 @@ export const htdflSttnActionsExport: (set: any) => htdflSttnActions = ( htdflSttn: { ...state.htdflSttn, excelList: htdflExcel, - htdflSttnResCount: htdflSttnRes.count }, }; }); @@ -119,7 +118,6 @@ export const htdflSttnActionsExport: (set: any) => htdflSttnActions = ( htdflSttn: { ...state.htdflSttn, excelList: htdflExcel, - htdflSttnResCount: htdflSttnRes.count }, }; }); diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/index.tsx index 3ad7090ec..6c987298f 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/index.tsx @@ -153,7 +153,6 @@ export const rainSttnActionsExport: (set: any) => rainSttnActions = ( rainSttn: { ...state.rainSttn, excelList: rainExcel, - rainSttnResCount: rainSttnRes.count, }, }; }); @@ -164,7 +163,6 @@ export const rainSttnActionsExport: (set: any) => rainSttnActions = ( rainSttn: { ...state.rainSttn, rainSttnRes: rainSttnRes.data, - rainSttnResCount: rainSttnRes.count, isInit: false, }, }; diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/excel.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/excel.tsx index 9c3eb4a14..442b027e3 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/excel.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/excel.tsx @@ -1,6 +1,7 @@ import type { SelectDataType } from "@common/business_components/ui"; import type { customRswtBdst } from "../../fcltReg/rswtReg"; import { useWrStore } from "@/app/store"; +import { bdstUsgCd } from "@/app/store/common/code/basicCode"; export const excelRSwtSttnParsing = ( excel: customRswtBdst[], @@ -14,7 +15,7 @@ export const excelRSwtSttnParsing = ( sggCode.find((sgg) => sgg.val === item.sggCd.toString())?.text ?? "", item.bdstNm ?? "", item.daddr ?? "", - String(item.bdstUsgCd === -1 || item.bdstUsgCd === undefined ? "확인불가" : item.bdstUsgCd ?? ""), //건축물용도 + bdstUsgCd.find((cd)=> cd.val === item.reuseBuilding?.[0]?.bdstUsgCd.toString())?.text ?? "", //건축물용도 String(item.frstArchPrmsnDt ?? ""), String(item.archArea.split('.')[0] === '-1' ? '확인불가' : item.archArea.split('.')[0]), String(item.reuseBuilding?.[0]?.rswtrObj.wtrUsqty ?? "0"), //물사용량 diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/index.tsx index 716b4d517..e76095bd5 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/index.tsx @@ -79,7 +79,6 @@ export const rswtSttnActionsExport: (set: any) => rswtSttnActions = ( rswtSttn: { ...state.rswtSttn, excelList: rswtExcel, - rswtSttnResCount: rswtSttnRes.count, }, }; }); @@ -112,6 +111,12 @@ export const rswtSttnActionsExport: (set: any) => rswtSttnActions = ( (con ? `/${con}` : "/0") + (txt ? `/${txt}` : "") ); + console.log("주소",`/reuseFc/waterreuseFc` + + (page ? `/${page}` : "/1") + + (total ? `/${total}` : "/20") + + (con ? `/${con}` : "/0") + + (txt ? `/${txt}` : "")) + console.log("rswtSttnRes", rswtSttnRes) if (isExcel) { const rswtExcel = excelRSwtSttnParsing(rswtSttnRes, sidoCode, sggCode); set((state: rswtSttnState) => { @@ -120,7 +125,6 @@ export const rswtSttnActionsExport: (set: any) => rswtSttnActions = ( rswtSttn: { ...state.rswtSttn, excelList: rswtExcel, - rswtSttnResCount: rswtSttnRes.count, }, }; }); diff --git a/apps/wr/components/ui/modal/coReg/coRegExcel/coRegExcelModal.tsx b/apps/wr/components/ui/modal/coReg/coRegExcel/coRegExcelModal.tsx index 36645003e..24fef023c 100644 --- a/apps/wr/components/ui/modal/coReg/coRegExcel/coRegExcelModal.tsx +++ b/apps/wr/components/ui/modal/coReg/coRegExcel/coRegExcelModal.tsx @@ -5,7 +5,7 @@ import { names } from "@/app/store/matDmd/ldrmntCoSttn/excel"; import { filePicked, FileUpload, FormUi, Title } from "@common/business_components/ui"; import { Form, FormField } from "@common/business_components/ui/form"; import LoadingOverlay from "@common/business_components/ui/loadingBar"; -import { Button, Progress } from "@common/components/ui"; +import { Button, Input, Progress } from "@common/components/ui"; import { zodResolver } from "@hookform/resolvers/zod"; import { useEffect, useState } from "react"; import { useForm } from "react-hook-form"; @@ -13,7 +13,7 @@ import toast from "react-hot-toast"; import type { z } from "zod"; export default function CoRegExcel({ isModal }: { isModal: (open: boolean) => void }) { - const { ldrmnt,loadingOpen } = useWrStore((state) => state); + const { ldrmnt, loadingOpen } = useWrStore((state) => state); const { isLoading } = ldrmnt; const form = useForm>({ resolver: zodResolver(coRegExcel), @@ -23,6 +23,13 @@ export default function CoRegExcel({ isModal }: { isModal: (open: boolean) => vo const [file, setFiles] = useState(); + const handleFileChange = (e: React.ChangeEvent) => { + const selectedFile = e.target.files?.[0]; + if (selectedFile) { + setFiles(selectedFile); + } + }; + const onSubmit = (values: z.infer) => { loadingOpen(true); if (file) { @@ -59,7 +66,7 @@ export default function CoRegExcel({ isModal }: { isModal: (open: boolean) => vo alert(e) return true; } - }).catch((e)=>{ + }).catch((e) => { console.log("file", e); }); }; @@ -90,14 +97,13 @@ export default function CoRegExcel({ isModal }: { isModal: (open: boolean) => vo name="file" render={({ field }) => ( - { - if (files && files?.length === 1) setFiles(files[0]); - }} - fileTypes="" - maxFiles={1} - > +
+ +
)} /> From fa258323ecc12919a0d5a21d685234528c9a02e8 Mon Sep 17 00:00:00 2001 From: leedj312 Date: Tue, 8 Jul 2025 22:15:05 +0900 Subject: [PATCH 06/15] =?UTF-8?q?=ED=95=98=EC=88=98=EC=9E=AC=EC=9D=B4?= =?UTF-8?q?=EC=9A=A9=EC=8B=9C=EC=84=A4=20=ED=98=84=ED=99=A9=20=EC=9D=BC?= =?UTF-8?q?=EB=8B=A8=20=EC=A1=B0=ED=9A=8C=EB=A7=8C=20=EA=B0=80=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wr/app/matMng/coMng/coSttn/page.tsx | 26 ++++- .../ruseFcltMng/fcltSttn/pbnstSttn/page.tsx | 12 ++- .../prfmncReg/pbnstPrfmncReg/page.tsx | 8 +- .../prfmncReg/chkgdnReg/rainChkgdn/excel.tsx | 101 +++++++++--------- .../store/prfmncReg/pbnstPrfmncReg/index.tsx | 2 +- .../ruseFcltMng/fcltSttn/pbnstSttn/index.tsx | 83 ++++++++------ .../ui/modal/chkgd/chkgdExcel/chkgdExcel.tsx | 28 ++--- 7 files changed, 157 insertions(+), 103 deletions(-) diff --git a/apps/wr/app/matMng/coMng/coSttn/page.tsx b/apps/wr/app/matMng/coMng/coSttn/page.tsx index d9fb09031..781a02210 100644 --- a/apps/wr/app/matMng/coMng/coSttn/page.tsx +++ b/apps/wr/app/matMng/coMng/coSttn/page.tsx @@ -71,6 +71,7 @@ export default function CoSttn() { const getSgg = useCallback((val: string | number) => { setObjSearch((prev) => ({ ...prev, sgg: String(val) })); + setPageNation(1) }, []); useEffect(() => { @@ -146,12 +147,19 @@ export default function CoSttn() { if (con) { if (seartchTxt && seartchTxt?.length > 0) { - coSttnTxtSearch("1", "13", String(con), seartchTxt ?? ""); + coSttnTxtSearch(String(pageNation), "13", String(con), seartchTxt ?? ""); } else { - coSttnSearch("1", "13", String(con)); + coSttnSearch(String(pageNation), "13", String(con)); } } }; + + useEffect(() =>{ + + },[pageNation]) + + + return ( <> @@ -166,7 +174,10 @@ export default function CoSttn() { label="시도" selectClass={""} selectArray={code.cityCd || []} - onSelectValue={getSelCity} + onSelectValue={(val)=>{ + getSelCity(val) + setPageNation(1) + } } value={objSearch.city} /> { - setUpdateData(undefined); setIsDmdModal({ ...isDmdModal, isMoal: true }); }} @@ -243,7 +253,13 @@ export default function CoSttn() { cellClick={(index: number | undefined, headId: string) => { setUpdateData(coSttnRes[index as number]); }} - onPageChange={setPageNation} + onPageChange={(page) =>{ + const con = (objSearch.sgg && objSearch.sgg !== "0") ? objSearch.sgg : objSearch.city; + setPageNation(page) + coSttnSearch( String(page), "13", String(con)); + + + } } > diff --git a/apps/wr/app/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx b/apps/wr/app/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx index baafd8053..338ac71f9 100644 --- a/apps/wr/app/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx +++ b/apps/wr/app/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx @@ -30,6 +30,7 @@ export default function PbnstSttn() { pbnSttnInit, getPbnStnDetail, pbnNmSearch, + getFlcts } = useWrStore((state) => state); const ref = useRef({} as ReturnType); @@ -77,13 +78,20 @@ export default function PbnstSttn() { }, [pbnstSttn.excelList]); useEffect(() => { if (!pbnstSttn.isInit) { - pbnSttnInit("1", "20", ref.current, searchYear); + getFlcts() + } }, [pbnstSttn.isInit, pbnSttnInit, ref.current]); useEffect(() => { + + console.log('pbnstSttn.pbnstSttnRes ' ,pbnstSttn.pbnstSttnRes ) setBdstTable(pbnstSttn.pbnstSttnRes); }, [pbnstSttn.pbnstSttnRes]); + useEffect(() =>{ + pbnSttnInit("1", "20", ref.current, searchYear, pbnstSttn.fclts); + },[pbnstSttn.fclts]) + // useEffect(() => { // pbnstSttnSearch("1", "20", ref.current, pbnRuseNm, searchYear); // }, [pageNation, ref.current, pbnRuseNm, searchYear, pbnstSttnSearch]); @@ -94,7 +102,7 @@ export default function PbnstSttn() { // }, [pbnRuseNm,pageNation]); useEffect(() => { - pbnstSttnSearch(false, String(pageNation), "20", returnType, pbnRuseNm, searchYear); + // pbnstSttnSearch(false, String(pageNation), "20", returnType, pbnRuseNm, searchYear); }, [pageNation]); useEffect(() => { diff --git a/apps/wr/app/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx b/apps/wr/app/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx index c54725ff2..20e3652dd 100644 --- a/apps/wr/app/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx +++ b/apps/wr/app/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx @@ -37,7 +37,6 @@ import { type PrfType, } from "@/app/store/prfmncReg/pbnstPrfmncReg/type"; import { excelToPbnPrfData } from "@/app/store/prfmncReg/pbnstPrfmncReg/excel"; -import data from "@common/components/ui/icon-finder/data"; export default function prfmncPrfmncReg() { const { code, prfmnc, prfmncHasuInit, prfmnRegData } = useWrStore( @@ -169,7 +168,12 @@ export default function prfmncPrfmncReg() { } }, [prfmnc.isInit, prfmncHasuInit]); useEffect(() => { - setbdstTable(prfmncRes); + + + if(prfmncRes&&prfmncRes.length>0){ + + setbdstTable(prfmncRes); + } // cellNum이 0일 경우(첫 번째 행)도 유효한 인덱스이므로 undefined 여부만 체크합니다. if (cellNum !== undefined) { diff --git a/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/excel.tsx b/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/excel.tsx index 53b43e0f3..408d746e3 100644 --- a/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/excel.tsx +++ b/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/excel.tsx @@ -87,9 +87,6 @@ export const buildingToExcelType = ( export const excelToRainChkData = (excelData: any, year: string) => { const errors: string[] = []; const rainChkgdData: rainChkZodType[] = excelData.map((item: any) => { - - - console.log('item ', item) if (item["점검일"] !== undefined) { const checkYmd = item["점검일"].replace(/\./g, "") let vltnDt = item["과태료 부과일(위반일)"] @@ -110,7 +107,6 @@ export const excelToRainChkData = (excelData: any, year: string) => { flg: "RNB", }; }); - return { bdstNm:item["시설명"] ?? "", bdstRuseFcltFk: Number(item["NO"]), @@ -138,64 +134,67 @@ export const excelToRainChkData = (excelData: any, year: string) => { } }).filter((el: any) => el !== undefined); - // ✨ 오류 검사 - 가공된 데이터 기준 - const isInvalidNumber = (val: any) => - val !== undefined && val !== null && val !== "" && isNaN(Number(val)); + return rainChkgdData; + // // ✨ 오류 검사 - 가공된 데이터 기준 + // const isInvalidNumber = (val: any) => + // val !== undefined && val !== null && val !== "" && isNaN(Number(val)); - const isInvalidDate = (val: any) => - typeof val === "string" && !/^\d{4}\.\d{2}\.\d{2}$/.test(val.trim()); + // const isInvalidDate = (val: any) => + // typeof val === "string" && !/^\d{4}\.\d{2}\.\d{2}$/.test(val.trim()); - const buildErrorMessage = (item: any, issues: string[]): string => { - const 시설명 = item.bdstNm ?? ""; - const 점검일 = item.chckYmd ?? ""; - const 이용용도 = item.utztnUsgCd ?? ""; - return `시설명: ${시설명}, 점검일: ${점검일}, 이용용도: ${이용용도} (=> ${issues.join(", ")})`; - }; + // const buildErrorMessage = (item: any, issues: string[]): string => { + // const 시설명 = item.bdstNm ?? ""; + // const 점검일 = item.chckYmd ?? ""; + // const 이용용도 = item.utztnUsgCd ?? ""; + // return `시설명: ${시설명}, 점검일: ${점검일}, 이용용도: ${이용용도} (=> ${issues.join(", ")})`; + // }; - if (rainChkgdData.length > 0) { - rainChkgdData.forEach((rain: any) => { - const item = rain.__origin; // 원본 item - const issues: string[] = []; + // if (rainChkgdData.length > 0) { + // rainChkgdData.forEach((rain: any) => { + // const item = rain.__origin; // 원본 item + // const issues: string[] = []; - if (rain.chckYmd && isInvalidDate(rain.chckYmd)) { - issues.push(`점검일: 날짜 형식 아님 (${rain.chckYmd})`); - } + // if (rain.chckYmd && isInvalidDate(rain.chckYmd)) { + // issues.push(`점검일: 날짜 형식 아님 (${rain.chckYmd})`); + // } - if (rain.vltnDt && isInvalidDate(rain.vltnDt)) { - issues.push(`과태료 부과일(위반일): 날짜 형식 아님 (${rain.vltnDt})`); - } + // if (rain.vltnDt && isInvalidDate(rain.vltnDt)) { + // issues.push(`과태료 부과일(위반일): 날짜 형식 아님 (${rain.vltnDt})`); + // } - // [ - // "연간운영비(원/년)", "PH", "탁도", "총대장균군수", "과태료부과금액(천원)" - // ].forEach((key) => { - // if (isInvalidNumber(item[key])) { - // issues.push(`${key}: 숫자 형식 아님 (${item[key]})`); - // } - // } + // // [ + // // "연간운영비(원/년)", "PH", "탁도", "총대장균군수", "과태료부과금액(천원)" + // // ].forEach((key) => { + // // if (isInvalidNumber(item[key])) { + // // issues.push(`${key}: 숫자 형식 아님 (${item[key]})`); + // // } + // // } - // ); + // // ); - for (let i = 1; i <= 12; i++) { - const month = `${i}월`; - if (isInvalidNumber(item[`대체_${month}`])) { - issues.push(`대체_${month}: 숫자 형식 아님 (${item[`대체_${month}`]})`); - } - if (isInvalidNumber(item[`빗물_${month}`])) { - issues.push(`빗물_${month}: 숫자 형식 아님 (${item[`빗물_${month}`]})`); - } - } + // for (let i = 1; i <= 12; i++) { + // const month = `${i}월`; + // if (isInvalidNumber(item[`대체_${month}`])) { + // issues.push(`대체_${month}: 숫자 형식 아님 (${item[`대체_${month}`]})`); + // } + // if (isInvalidNumber(item[`빗물_${month}`])) { + // issues.push(`빗물_${month}: 숫자 형식 아님 (${item[`빗물_${month}`]})`); + // } + // } - if (issues.length > 0) { - errors.push(buildErrorMessage(item, issues)); - } - }); - } + // if (issues.length > 0) { + // errors.push(buildErrorMessage(item, issues)); + // } + // }); + // } - if (errors.length > 0) { - return { rainChkgdData: [], errors }; - } + // if (errors.length > 0) { + // return { rainChkgdData: [], errors }; + // } - return { rainChkgdData, errors: [] }; + // return { rainChkgdData, errors: [] }; + + return rainChkgdData; }; diff --git a/apps/wr/app/store/prfmncReg/pbnstPrfmncReg/index.tsx b/apps/wr/app/store/prfmncReg/pbnstPrfmncReg/index.tsx index 387f56eb7..87007d5f6 100644 --- a/apps/wr/app/store/prfmncReg/pbnstPrfmncReg/index.tsx +++ b/apps/wr/app/store/prfmncReg/pbnstPrfmncReg/index.tsx @@ -68,7 +68,7 @@ const hasuListFetch = async (page: number, sggOrCity: string) => { prfList: data.prfList, }); } - }); + }).filter(Boolean); // undefined 값을 제거합니다. return findData; }; diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx index 76a13943f..939d2c37a 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx @@ -1,5 +1,5 @@ import type { CommonTableProps, TableUpperProps } from "@/app/store/common/type/header"; -import type { z } from "zod"; +import { any, type z } from "zod"; import { pbnSttHeadListExport, pbnstSttNodeListExport, ruseDmdHeadListExport, ruseFcltHeadListExport, ruseFcltNodeListExport, ruseGuranteeHeadListExport, rusePplHeadListExport, ruseSplyHeadListExport } from "./headList"; import { fetchType, getFetch, postFectch } from "@/components/lib/api"; import { controlHeadView } from "../rainSttn"; @@ -28,6 +28,7 @@ export type pbnstSttnState = { ruseDmdHeadList: TableUpperProps[] ruseFcltHeadList: TableUpperProps[] excelList: []; + fclts:string[] isInit: boolean; }; }; @@ -40,13 +41,15 @@ type pbnstSttnActions = { total: string, reurnValue: ReturnType, searchNm: string | undefined, - year: string, + year: string ) => void; + getFlcts:()=>void; pbnSttnInit: ( page: string, total: string, reurnValue: ReturnType, - year: string + year: string, + flcts:string[] ) => void; getPbnStnDetail: (pbnstRuseFcltPk: string) => void; pbnNmSearch: ( @@ -74,6 +77,7 @@ export const pbnstSttnStateExport: pbnstSttnState = { pbnstDetail: {} as customPbnst, pbnstSearchData: [], excelList: [], + fclts:[], isInit: false, }, }; @@ -83,46 +87,49 @@ const hasuListFetch = async ( total: string, reurnValue: ReturnType, searchNm: string | undefined, - year: string + year: string, + flcts:string[] ) => { + let url = `/prcsFclt/ruseInfo/`; - let url = ""; if (reurnValue.partValue === "A") { - url = `/prcsFclt/info/${page}/${total}/${reurnValue.partValue}/${ + url+=`${page}/${total}/${reurnValue.partValue}/${ // reurnValue.sidoValue ? reurnValue.sidoValue : reurnValue.sigunValue reurnValue.sigunValue !== '0' ? reurnValue.sigunValue : reurnValue.sidoValue }/0/1/SW` } else if (reurnValue.partValue === "R") { - url = `/prcsFclt/info/${page}/${total}/${reurnValue.partValue}/${reurnValue.regionValue + url += `${page}/${total}/${reurnValue.partValue}/${reurnValue.regionValue ? reurnValue.regionValue : reurnValue.unitWaterShedValue ? reurnValue.unitWaterShedValue : reurnValue.middleRegionValue }/0/1/SW` - } else { - url = `/prcsFclt/info/${page}/${total}/${reurnValue.envPartValue}/${reurnValue.sidoValue ? reurnValue.sidoValue : reurnValue.sigunValue}/0/1/SW` + } else if( reurnValue.partValue === 'G2120'){ + url += `${page}/${total}/${reurnValue.envPartValue}/${reurnValue.sidoValue ? reurnValue.sidoValue : reurnValue.sigunValue}/0/1/SW` + + }else{ + url += `1/2/A/0/0/1/SW` } if (searchNm && searchNm?.length > 0) { url += "/" + searchNm } - console.log("주소", url) - const pbnList = await getFetch(fetchType.COMMON, url); - console.log("pbnList", pbnList) - const arrayList = pbnList.map((item: pubHasuType) => item.bscFctCd); - console.log("어레이리스트", arrayList) + + const pbnList = await postFectch(url, flcts,fetchType.COMMON); + + const getRuseList = await postFectch( `/reuseFc/pubDetailList/${year}`, - arrayList, + flcts, fetchType.WR ); - console.log("getRuseList", getRuseList) const checkWrRegListRes = getRuseList.data; + const count = getRuseList.count; const data: WaterReuseFacility[] = checkWrRegListRes.map( (item: FcPrfType) => { - const findData = pbnList.find( + const findData = pbnList.data.find( (fclt: pubHasuType) => fclt.bscFctCd === item.pbnstRuseFcltPk.substring(0, 11) ); @@ -182,6 +189,8 @@ const hasuListFetch = async ( }; } ); + + console.log('data ', data) return data; }; @@ -189,6 +198,15 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( set: any ) => { return { + getFlcts:async ()=>{ + const fclts= await getFetch(fetchType.WR,'/reuseFc/pubFc') + return set((state: pbnstSttnState) => ({ + pbnstSttn: { + ...state.pbnstSttn, + fclts:fclts + }, + })); + }, pbnstChSttnHead: async ( headList: z.infer ): Promise => { @@ -211,16 +229,20 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( year: string, ) => { try { - console.log("여기") + + let fclts = [] as any + set((state: pbnstSttnState) => { + fclts = state.pbnstSttn.fclts + }); const pbnstSttnRes = await hasuListFetch( page, total, reurnValue, searchNm, - year + year, + fclts, ); - console.log("pbnstSttnRes", pbnstSttnRes); // if (Number(total) > 9000) { if (isExcel) { const pbnstExcel = excelPbnstSttnParsing(pbnstSttnRes); @@ -249,23 +271,24 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( console.log("error", erTxt); } }, - pbnSttnInit: async ( + pbnSttnInit: async( page: string, total: string, reurnValue: ReturnType, - year: string + year: string, + fclts:string[] ) => { try { - const pbnstSttnRes = await hasuListFetch( - page, - total, - reurnValue, - undefined, - year - ); + page, + total, + reurnValue, + undefined, + year, + fclts + ); - set((state: pbnstSttnState) => { + set( (state: pbnstSttnState) => { return { ...state, pbnstSttn: { diff --git a/apps/wr/components/ui/modal/chkgd/chkgdExcel/chkgdExcel.tsx b/apps/wr/components/ui/modal/chkgd/chkgdExcel/chkgdExcel.tsx index a7b66d811..6ebbe4c6c 100644 --- a/apps/wr/components/ui/modal/chkgd/chkgdExcel/chkgdExcel.tsx +++ b/apps/wr/components/ui/modal/chkgd/chkgdExcel/chkgdExcel.tsx @@ -71,22 +71,26 @@ export default function ChkgdExcel({ type,setIsRegExcel }: { type: string, setI if (file) if (type === "RNB") { filePicked(file, 0).then((res) => { - if (res !== undefined){ + // if (res !== undefined){ - const excelData = excelToRainChkData(res, form.getValues("chckYr")) - - if( excelData&&excelData.errors.length>0){ + const excelData = excelToRainChkData(res, form.getValues("chckYr")) + if(res !== undefined) + setExcelData(excelData) + + // if( excelData&&excelData.errors.length>0){ - excelData.errors.forEach((err) =>{ - toast.error(err) - }) - }else{ + // excelData.errors.forEach((err) =>{ + // toast.error(err) + // }) + // }else{ - setExcelData(excelData.rainChkgdData) - } - } + // } + + // } - }); + + + }) } else if (type === "RST") { filePickedArray(file, 0).then((res) => { if (res && res?.length > 1) { From e0e2530a56d6047365f0b99bff3110b39c5afe7f Mon Sep 17 00:00:00 2001 From: leedj312 Date: Wed, 9 Jul 2025 00:55:28 +0900 Subject: [PATCH 07/15] =?UTF-8?q?=ED=95=98=EC=88=98=EC=9E=AC=EC=9D=B4?= =?UTF-8?q?=EC=9A=A9=20=EC=8B=9C=EC=84=A4=ED=98=84=ED=99=A9=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C,=20=EC=97=91=EC=85=80=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruseFcltMng/fcltSttn/pbnstSttn/page.tsx | 60 ++++---- .../ruseFcltMng/fcltSttn/pbnstSttn/excel.tsx | 8 +- .../ruseFcltMng/fcltSttn/pbnstSttn/index.tsx | 145 +++++++++--------- 3 files changed, 109 insertions(+), 104 deletions(-) diff --git a/apps/wr/app/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx b/apps/wr/app/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx index 338ac71f9..50f0afeea 100644 --- a/apps/wr/app/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx +++ b/apps/wr/app/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx @@ -33,6 +33,7 @@ export default function PbnstSttn() { getFlcts } = useWrStore((state) => state); + const { pbnstSttnRes, fclts,pbnstSttnResCount} =pbnstSttn const ref = useRef({} as ReturnType); const [searchYear, setSearchYear] = useState( String(new Date().getFullYear()) @@ -49,21 +50,21 @@ export default function PbnstSttn() { const [pbnRuseNm, setPbnRuseNm] = useState(""); const excelClick = useCallback(() => { - pbnstSttnSearch(true, String(pageNation), "20", ref.current, "", searchYear); - }, [pbnstSttnSearch]); + pbnstSttnSearch(true, String(pageNation), "100000", ref.current, pbnRuseNm, searchYear,fclts ); + }, [pbnstSttnSearch,fclts,pbnRuseNm]); const cellCLick = useCallback( (index: number | undefined) => { if ( index !== undefined && - pbnstSttn.pbnstSttnRes && - pbnstSttn.pbnstSttnRes[index] + pbnstSttnRes && + pbnstSttnRes[index] ) { - const pbnstRuseFcltPk = pbnstSttn.pbnstSttnRes[index].pbnstRuseFcltPk; + const pbnstRuseFcltPk = pbnstSttnRes[index].pbnstRuseFcltPk; getPbnStnDetail(pbnstRuseFcltPk); } }, - [getPbnStnDetail, pbnstSttn.pbnstSttnRes] + [getPbnStnDetail, pbnstSttnRes] ); useEffect(() => { @@ -72,7 +73,8 @@ export default function PbnstSttn() { pbnstSttn.excelList, "하수재이용시설 현황", "sample_pbnstSttn.xlsx", - "A1:U2" + "A1:U2", + 3 ); } }, [pbnstSttn.excelList]); @@ -83,27 +85,16 @@ export default function PbnstSttn() { } }, [pbnstSttn.isInit, pbnSttnInit, ref.current]); useEffect(() => { - - console.log('pbnstSttn.pbnstSttnRes ' ,pbnstSttn.pbnstSttnRes ) - setBdstTable(pbnstSttn.pbnstSttnRes); - }, [pbnstSttn.pbnstSttnRes]); + if(pbnstSttnRes && pbnstSttnRes.length>0) { + setBdstTable(pbnstSttnRes); + }else{ + setBdstTable([]); + } + }, [pbnstSttnRes]); useEffect(() =>{ - pbnSttnInit("1", "20", ref.current, searchYear, pbnstSttn.fclts); - },[pbnstSttn.fclts]) - - // useEffect(() => { - // pbnstSttnSearch("1", "20", ref.current, pbnRuseNm, searchYear); - // }, [pageNation, ref.current, pbnRuseNm, searchYear, pbnstSttnSearch]); - - // useEffect(() => { - // if (pbnRuseNm.length > 1) - // pbnNmSearch(String(pageNation), "23", ref.current, pbnRuseNm, searchYear); - // }, [pbnRuseNm,pageNation]); - - useEffect(() => { - // pbnstSttnSearch(false, String(pageNation), "20", returnType, pbnRuseNm, searchYear); - }, [pageNation]); + pbnSttnInit("1", "15", ref.current, searchYear, pbnstSttn.fclts); + },[fclts]) useEffect(() => { if (pbnstSttn.pbnstDetail.pbnstRuseFcltPk) @@ -165,12 +156,14 @@ export default function PbnstSttn() { } queryClick={function (returnType: ReturnType): void { - console.log("시군구코드", returnType) setReturnType(returnType); - pbnstSttnSearch(false, "1", "20", returnType, pbnRuseNm, searchYear); + pbnstSttnSearch(false, "1", "15", returnType, pbnRuseNm, searchYear, fclts); }} excelClick={excelClick} - initClick={function (): void { }} + initClick={function (): void { + setPbnRuseNm('') + + }} btnClass={btnClass} ref={ref} isAdmin={false} @@ -187,8 +180,8 @@ export default function PbnstSttn() { } headlist={pbnstSttn.pbnstSttHeadList} - pageSize={20} - total={100000} + pageSize={15} + total={pbnstSttnResCount} cellClick={(index: number | undefined, headId: string) => { cellCLick(index); }} @@ -196,10 +189,11 @@ export default function PbnstSttn() { pbnstSttnSearch( false, String(page), - String(20), + String(15), ref.current, pbnRuseNm, - searchYear + searchYear, + fclts ); }} > diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/excel.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/excel.tsx index 8a1db05a2..d39a63680 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/excel.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/excel.tsx @@ -13,15 +13,19 @@ export const excelPbnstSttnParsing = (data: any[]): string[][] => { String(item.gugun ?? ""), String(item.bscFctNm ?? ""), String(item.efflWqltStndrdNm ?? ""), - String(item.fctCpc ?? ""), String(item.tel ?? ""), + String(item.fctCpc ?? ""), String(item.ruseUtztnFcltNm ?? ""), String(item.fcltCpct ?? ""), String(item.splyExtraCpct ?? ""), String(item.ruseCpct ?? ""), String(item.usageTotal ?? ""), String(item.inUsage ?? ""), - String(item.outUsage ?? ""), + String(item.outUsage ?? ""), + String(item.operMthd ?? ""), + String(item.rprtvBzenty ?? ""), + String(item.bgngDt ?? ""), + String(item.endDt ?? ""), ]) }) return excelExportData; diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx index 939d2c37a..f54eb5cbd 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx @@ -27,6 +27,7 @@ export type pbnstSttnState = { ruseGuranteeHeadList: TableUpperProps[] ruseDmdHeadList: TableUpperProps[] ruseFcltHeadList: TableUpperProps[] + pbnstSttnResCount:number; excelList: []; fclts:string[] isInit: boolean; @@ -41,7 +42,8 @@ type pbnstSttnActions = { total: string, reurnValue: ReturnType, searchNm: string | undefined, - year: string + year: string, + fclts:string[] ) => void; getFlcts:()=>void; pbnSttnInit: ( @@ -74,6 +76,7 @@ export const pbnstSttnStateExport: pbnstSttnState = { ruseDmdHeadList: ruseDmdHeadListExport, ruseFcltHeadList: ruseFcltHeadListExport, pbnstSttnRes: [], + pbnstSttnResCount:1, pbnstDetail: {} as customPbnst, pbnstSearchData: [], excelList: [], @@ -104,21 +107,21 @@ const hasuListFetch = async ( ? reurnValue.unitWaterShedValue : reurnValue.middleRegionValue }/0/1/SW` - } else if( reurnValue.partValue === 'G2120'){ - url += `${page}/${total}/${reurnValue.envPartValue}/${reurnValue.sidoValue ? reurnValue.sidoValue : reurnValue.sigunValue}/0/1/SW` + } else if( reurnValue.partValue === 'G'){ + + console.log('reurnValue.sigunValue ', reurnValue.sidoValue) + + console.log('reurnValue.sigunValue ', reurnValue.sigunValue) + url += `${page}/${total}/${reurnValue.envPartValue}/${reurnValue.sigunValue !== '0' ? reurnValue.sigunValue : reurnValue.sidoValue}/0/1/SW` }else{ url += `1/2/A/0/0/1/SW` - } + if (searchNm && searchNm?.length > 0) { url += "/" + searchNm } - - const pbnList = await postFectch(url, flcts,fetchType.COMMON); - - const getRuseList = await postFectch( `/reuseFc/pubDetailList/${year}`, flcts, @@ -133,64 +136,66 @@ const hasuListFetch = async ( (fclt: pubHasuType) => fclt.bscFctCd === item.pbnstRuseFcltPk.substring(0, 11) ); + if(findData){ - const usage = item.prfList.reduce( - (acc, cur) => { - acc.inUsage += - cur.wshwtr + - cur.coolUswtr + - cur.cleanUswtr + - cur.drwtUswtr + - cur.dltnUswtr + - cur.ithlRswtr + - cur.ithlEtcUswtr + - cur.cleanToilUswtr + - cur.resn; - acc.outUsage += - cur.lndwtr + - cur.hydUswtr + - cur.ugwtChr + - cur.farmUswtr + - cur.rvrKeepUswtr + - cur.indstUswtr; - acc.total = acc.inUsage + acc.outUsage; + const usage = item.prfList.reduce( + (acc, cur) => { + acc.inUsage += + cur.wshwtr + + cur.coolUswtr + + cur.cleanUswtr + + cur.drwtUswtr + + cur.dltnUswtr + + cur.ithlRswtr + + cur.ithlEtcUswtr + + cur.cleanToilUswtr + + cur.resn; + acc.outUsage += + cur.lndwtr + + cur.hydUswtr + + cur.ugwtChr + + cur.farmUswtr + + cur.rvrKeepUswtr + + cur.indstUswtr; + acc.total = acc.inUsage + acc.outUsage; + + return acc; + }, + { total: 0, inUsage: 0, outUsage: 0 } + ); + + return { + rvbsn: findData?.rvbsn ||'-', + lgbsn: findData?.lgbsn||'-', + mdmbsn: findData?.mdmbsn||'-', + rgnNm: findData?.rgnNm||'-', + sido: findData?.sido||'-', + gugun: findData?.gugun||'-', + bscFctNm: findData?.bscFctNm||'-', + efflWqltStndrdNm: findData?.efflWqltStndrdNm||'-', + fctCpc: Number(findData?.fctCpc)||0, + tel: findData?.tel ?? "-", + ruseUtztnFcltNm: item?.ruseUtztnFcltNm||'-', + fcltCpct: item?.fcltCpct||'-', + splyExtraCpct: item?.splyExtraCpct||'-', + ruseCpct: item?.ruseCpct||'-', + pbnstRuseFcltPk: item.pbnstRuseFcltPk||'-', + usageTotal: usage?.total, + inUsage: usage?.inUsage, + outUsage: usage?.outUsage, + operMthd: item.operList[0]?.operMthd||'-', + rprtvBzenty: item.operList[0]?.rprtvBzenty, + bgngDt: moment(item.operList[0]?.bgngDt).format("YYYY-MM-DD") ?? "", + endDt: moment(item.operList[0]?.endDt).format("YYYY-MM-DD") ?? "", + searchNm: findData?.bscFctNm||'-', + searchPk: findData?.bscFctCd||'-', + prfList: item?.prfList ?? [] + }; + } - return acc; - }, - { total: 0, inUsage: 0, outUsage: 0 } - ); - - return { - rvbsn: findData?.rvbsn, - lgbsn: findData?.lgbsn, - mdmbsn: findData?.mdmbsn, - rgnNm: findData?.rgnNm, - sido: findData?.sido, - gugun: findData?.gugun, - bscFctNm: findData?.bscFctNm, - efflWqltStndrdNm: findData?.efflWqltStndrdNm, - fctCpc: findData.fctCpc, - tel: findData?.tel ?? "-", - ruseUtztnFcltNm: item.ruseUtztnFcltNm, - fcltCpct: item.fcltCpct, - splyExtraCpct: item.splyExtraCpct, - ruseCpct: item.ruseCpct, - pbnstRuseFcltPk: item.pbnstRuseFcltPk, - usageTotal: usage.total, - inUsage: usage.inUsage, - outUsage: usage.outUsage, - operMthd: item.operList[0]?.operMthd, - rprtvBzenty: item.operList[0]?.rprtvBzenty, - bgngDt: moment(item.operList[0]?.bgngDt).format("YYYY-MM-DD") ?? "", - endDt: moment(item.operList[0]?.endDt).format("YYYY-MM-DD") ?? "", - searchNm: findData.bscFctNm, - searchPk: findData.bscFctCd, - prfList: item?.prfList ?? [] - }; } - ); + ).filter(Boolean); - console.log('data ', data) return data; }; @@ -227,13 +232,11 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( reurnValue: ReturnType, searchNm: string | undefined, year: string, + fclts:string[] ) => { try { - let fclts = [] as any - set((state: pbnstSttnState) => { - fclts = state.pbnstSttn.fclts - }); + const pbnstSttnRes = await hasuListFetch( page, total, @@ -246,7 +249,6 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( // if (Number(total) > 9000) { if (isExcel) { const pbnstExcel = excelPbnstSttnParsing(pbnstSttnRes); - set((state: pbnstSttnState) => { return { ...state, @@ -256,17 +258,20 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( }, }; }); - } else + } else{ + set((state: pbnstSttnState) => { return { ...state, pbnstSttn: { ...state.pbnstSttn, pbnstSttnRes: pbnstSttnRes, - isInit: false, + pbnstSttnResCount:pbnstSttnRes.length + // isInit: false, }, }; }); + } } catch (erTxt) { console.log("error", erTxt); } @@ -294,6 +299,7 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( pbnstSttn: { ...state.pbnstSttn, pbnstSttnRes: pbnstSttnRes, + pbnstSttnResCount:pbnstSttnRes.length, isInit: false, }, }; @@ -344,6 +350,7 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( pbnstSttn: { ...state.pbnstSttn, pbnstSearchData: pbnstSttnRes, + pbnstSttnResCount:pbnstSttnRes.length, }, }; }); From 8b6ade0541e7473a597a5c5dc52e001a9cbc8274 Mon Sep 17 00:00:00 2001 From: leedj312 Date: Wed, 9 Jul 2025 01:35:29 +0900 Subject: [PATCH 08/15] =?UTF-8?q?=EC=88=98=EC=9A=94=EC=B2=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wr/app/matMng/coMng/coSttn/page.tsx | 55 ++++++++------------ apps/wr/app/store/common/searchCode/index.ts | 3 ++ apps/wr/app/store/matDmd/coSttn/excel.tsx | 7 +-- apps/wr/app/store/matDmd/coSttn/index.tsx | 5 +- 4 files changed, 31 insertions(+), 39 deletions(-) diff --git a/apps/wr/app/matMng/coMng/coSttn/page.tsx b/apps/wr/app/matMng/coMng/coSttn/page.tsx index 781a02210..20a0fa945 100644 --- a/apps/wr/app/matMng/coMng/coSttn/page.tsx +++ b/apps/wr/app/matMng/coMng/coSttn/page.tsx @@ -110,40 +110,32 @@ export default function CoSttn() { } }, [coSttnRes, code]); - // useEffect(() => { - // if (coSttn.excelList.length > 0) { - // if (coSttn.excelList.length === 0) return; - // excelDownload( - // coSttn.excelList, - // "수요처 관리", - // "sample_coSttn.xlsx", - // "A1:H1", - // 2 - // ); - // } - // }, [coSttn.excelList]); + useEffect(() => { + if (coSttn.excelList.length > 0) { + if (coSttn.excelList.length === 0) return; - - const excelClick = useCallback(() => { - // const con = objSearch.sgg ? objSearch.sgg : objSearch.city; - // if (con) coSttnSearch("1", "10000", String(con)); - if(bdstTable){ - const excelData = excelCoSttnParsing(bdstTable); + const coExcel = excelCoSttnParsing(coSttn.excelList, code.cityCd, code.sggCd); excelDownload( - excelData as [], + coExcel as [], "수요처 관리", "sample_coSttn.xlsx", - "A1:G1", + "A1:H1", 2 ); } + }, [coSttn.excelList, code]); - // }, [coSttnSearch, objSearch.city, objSearch.sgg]); -}, [excelDownload, bdstTable]); - const searchClick = () => { + const excelClick = useCallback(() => { const con = (objSearch.sgg && objSearch.sgg !== "0") ? objSearch.sgg : objSearch.city; + if (con) coSttnSearch("1", "10000", String(con)); + + + }, [coSttnSearch, objSearch.city, objSearch.sgg]); +// }, [excelDownload, bdstTable]); + const searchClick = () => { + const con = (objSearch.sgg && objSearch.sgg !== "0") ? objSearch.sgg : objSearch.city; if (con) { if (seartchTxt && seartchTxt?.length > 0) { @@ -154,12 +146,6 @@ export default function CoSttn() { } }; - useEffect(() =>{ - - },[pageNation]) - - - return ( <> @@ -249,7 +235,7 @@ export default function CoSttn() { tableData={bdstTable || []} headlist={coSttn.coSttHeadList} pageSize={20} - total={ coSttnResCount || 0 } + total={ coSttnResCount+10 || 0 } cellClick={(index: number | undefined, headId: string) => { setUpdateData(coSttnRes[index as number]); }} @@ -265,7 +251,10 @@ export default function CoSttn() { { setIsDmdModal({ isMoal: false, data: {} as DemandCompType }); @@ -280,9 +269,9 @@ export default function CoSttn() { }} rtnInputData={ async(data) => { const con = (objSearch.sgg && objSearch.sgg !== "0") ? objSearch.sgg : objSearch.city; - + console.log('data ', data) if(upadateData?.dmdInfoPk){ - + console.log('data ', data) await updateDemandCompany(data as DemandCompType) coSttnInit("1", "13", String(con)); setIsDmdModal({ isMoal: false, data: data as DemandCompType }); diff --git a/apps/wr/app/store/common/searchCode/index.ts b/apps/wr/app/store/common/searchCode/index.ts index 4e383b4a4..9c0f266ab 100644 --- a/apps/wr/app/store/common/searchCode/index.ts +++ b/apps/wr/app/store/common/searchCode/index.ts @@ -132,6 +132,7 @@ export const comFcltSearchAction: (set: any) => comFcltActions = (set: any) => { let message = ""; if (response.status === 200) { message = "success"; + toast.success('수요처 정보가 변경되었습니다. ' ) } else { message = "fail"; } @@ -144,6 +145,8 @@ export const comFcltSearchAction: (set: any) => comFcltActions = (set: any) => { }); } catch (err) { console.log(err); + toast.success('수요처 정보가 오류입니다. ' ) + } }, getRateFee: async (year: string) => { diff --git a/apps/wr/app/store/matDmd/coSttn/excel.tsx b/apps/wr/app/store/matDmd/coSttn/excel.tsx index 3b6d73c8b..e22f71367 100644 --- a/apps/wr/app/store/matDmd/coSttn/excel.tsx +++ b/apps/wr/app/store/matDmd/coSttn/excel.tsx @@ -1,11 +1,12 @@ +import type { SelectDataType } from "@common/business_components/ui"; import moment from "moment"; -export const excelCoSttnParsing = (data: any[]): string[][] => { +export const excelCoSttnParsing = (data: any[],sidoCode:SelectDataType[] , sggCode:SelectDataType[]): string[][] => { const excelExportData: string[][] = []; data.forEach((item) => { excelExportData.push([ - String(item.cityText)??'', - String(item.sggText)??'', + sidoCode.find((sido) => sido.val === item.ctpvCd.toString().trim() )?.text ?? "", + sggCode.find((sgg) => sgg.val === item.sggCd.toString().trim() )?.text ?? "", item.dmdCoNm ?? "", item.daddr ?? "", String(item.dmdInfoPk ?? ""), diff --git a/apps/wr/app/store/matDmd/coSttn/index.tsx b/apps/wr/app/store/matDmd/coSttn/index.tsx index 4c9a7fcce..d80b36420 100644 --- a/apps/wr/app/store/matDmd/coSttn/index.tsx +++ b/apps/wr/app/store/matDmd/coSttn/index.tsx @@ -77,14 +77,13 @@ export const coSttnActionsExport: (set: any) => coSttnActions = ( `/reuseFc/request/${pageNo}/${pageCnt}/${con}` ); if (Number(pageCnt) >= 10000) { - const coExcel = excelCoSttnParsing(coSttnRes.data); set((state: coSttnState) => { return { ...state, coSttn: { ...state.coSttn, - excelList: coExcel, - isInit: false, + excelList: coSttnRes.data, + //isInit: false, }, }; }); From 779cc442e84acbcc48a78c91ea936a33cc867e56 Mon Sep 17 00:00:00 2001 From: leedj312 Date: Wed, 9 Jul 2025 09:44:19 +0900 Subject: [PATCH 09/15] =?UTF-8?q?=EC=8B=9C=EC=84=A4=EB=AA=85=20=EC=9E=91?= =?UTF-8?q?=EC=97=85=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wr/app/ruseFcltMng/fcltReg/rainReg/page.tsx | 3 ++- .../app/store/ruseFcltMng/fcltReg/htdflReg/headList.tsx | 2 +- apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx | 8 +++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/apps/wr/app/ruseFcltMng/fcltReg/rainReg/page.tsx b/apps/wr/app/ruseFcltMng/fcltReg/rainReg/page.tsx index 5b358977b..426ca7f61 100644 --- a/apps/wr/app/ruseFcltMng/fcltReg/rainReg/page.tsx +++ b/apps/wr/app/ruseFcltMng/fcltReg/rainReg/page.tsx @@ -118,7 +118,8 @@ export default function Home() { className="" size={"sm"} onClick={(e) => { - rainSearch(searchTxt || "", pageNation, "41"); + rainSearch(searchTxt || "", 1, "41"); + //rainSearch(searchTxt || "", pageNation, "41"); }} > 조회 diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/htdflReg/headList.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/htdflReg/headList.tsx index da1fa6f09..53c18f56d 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/htdflReg/headList.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/htdflReg/headList.tsx @@ -3,7 +3,7 @@ import type { TableUpperProps } from "@/app/store/common/type/header"; export const htdTableHeadList: TableUpperProps[] = [ { id: "cityText", title: "시도" }, { id: "sggText", title: "시군구" }, - { id: "bdstNm", title: "발전소명" }, + { id: "bdstNm", title: "시설명" }, { id: "daddr", title: "위치" }, { id: "frstArchPrmsnDt", title: "준공년도" }, { id: "archArea", title: "건축면적" }, diff --git a/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx b/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx index bceee1a17..6462231b9 100644 --- a/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx +++ b/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx @@ -180,7 +180,10 @@ export default function BdstReg({ form, type }: { form: any; type?: string }) { className={selectClass} placeholder= {type !== "HTB"?"건축물 명 입력하세요":'시설명 입력하세요' } type="text" - {...field} + onChange={(e) => { + field.onChange(e.target.value) + }} + value={field.value} /> )} @@ -215,6 +218,9 @@ export default function BdstReg({ form, type }: { form: any; type?: string }) { value: field.value ?? new Date(), onChange: (date: Date | undefined) => field.onChange(date), }} + // modifiers={{ + // disabled: { after: new Date() } + // }} selectClass={"w-full"} > From 2413cdeb6c25bf5440e7adb136037ab483c6f3ef Mon Sep 17 00:00:00 2001 From: jyha00 Date: Wed, 9 Jul 2025 10:05:06 +0900 Subject: [PATCH 10/15] =?UTF-8?q?=EB=B9=97=EB=AC=BC/=EC=A4=91=EC=88=98?= =?UTF-8?q?=EB=8F=84/=EC=98=A8=EB=B0=B0=EC=88=98=20=EC=8A=A4=ED=81=AC?= =?UTF-8?q?=EB=A1=A4=20=EC=82=AC=EC=9D=B4=EC=A6=88=20=EC=A1=B0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wr/components/ui/form/fcltReg/htdflReg/htdflRegForm.tsx | 2 +- apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx | 5 ++++- apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/wr/components/ui/form/fcltReg/htdflReg/htdflRegForm.tsx b/apps/wr/components/ui/form/fcltReg/htdflReg/htdflRegForm.tsx index 5e0786f8b..e114d842b 100644 --- a/apps/wr/components/ui/form/fcltReg/htdflReg/htdflRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/htdflReg/htdflRegForm.tsx @@ -154,7 +154,7 @@ export default function HtdflRegForm({ )} - + {isModal && htdflForm != undefined ? ( ) : ( diff --git a/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx b/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx index 974d9269c..a0d0f5405 100644 --- a/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx @@ -81,6 +81,9 @@ export default function RainRegForm({ })), }; }; + useEffect(()=>{ + console.log("이즈모달", isModal) + }, []) useEffect(() => { if (grntchBdstCertYn === "N") { @@ -161,7 +164,7 @@ export default function RainRegForm({ )} - + {isModal && rainForm != undefined ? : <>} {isModal ? (

diff --git a/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx b/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx index f70f4548c..e124ecc6f 100644 --- a/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx @@ -151,7 +151,7 @@ export default function RswtrRegForm({ )} - + {isModal && rswtForm != undefined ? : <>} {isModal ? (

From bb70090766287a484d307896f54817d7f1fe59f8 Mon Sep 17 00:00:00 2001 From: leedj312 Date: Wed, 9 Jul 2025 10:32:57 +0900 Subject: [PATCH 11/15] =?UTF-8?q?=EC=A4=91=EC=88=98=EB=8F=84=20=EC=A0=80?= =?UTF-8?q?=EC=9E=A5=EC=8B=9C=20=EB=A9=94=EC=8B=9C=EC=A7=80=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/ruseFcltMng/fcltReg/rswtReg/index.tsx | 10 ++++++---- .../ui/form/fcltReg/bdstReg/bdstReg.tsx | 11 +++++++---- .../ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx | 16 ++++++++-------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/rswtReg/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/rswtReg/index.tsx index 8c3579a5d..e969c7405 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/rswtReg/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/rswtReg/index.tsx @@ -30,8 +30,8 @@ import toast from "react-hot-toast"; export const rswtZod = z.object({ bdstInfoPk: z.number().nullish(), - ctpvCd: z.number(), - sggCd: z.number(), + ctpvCd: z.number({ required_error: '시도를 선택하세요.' }), + sggCd: z.number({ required_error: '시군구를 선택하세요.' }), daddr: z.string().default(""), bdstNm: z.string().default(""), frstArchPrmsnDt: z.date().default(() => new Date()), @@ -182,7 +182,7 @@ export const rswtFacActionsExport: (set: any) => rswtFacSActions = ( const chData = await makeRstr(data); const res = await postFectch("/reuseFc/waterreuseFc", chData); if (res.status===200) { - if(data.chgBuilding ){ + if(data.chgBuilding.length>0 ){ const chPK = res?.data?.bdstInfoPk const makeCh= res.data.chgBuilding.map((item: chgBuilding) => @@ -194,7 +194,9 @@ export const rswtFacActionsExport: (set: any) => rswtFacSActions = ( const chch= await postFectch("/reuseFc/chgBuilding", makeCh); if(chch.status ===200) { - toast.success("건축물 등록이 완료되었습니다."); + + console.log('chch.status' , chch.status) + toast.success("건축물 및 증축/개축/중축 등록이 완료되었습니다."); }else{ toast.error("건축물 증축/개축/중축 오류입니다."); } diff --git a/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx b/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx index 6462231b9..188b1380a 100644 --- a/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx +++ b/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx @@ -183,7 +183,7 @@ export default function BdstReg({ form, type }: { form: any; type?: string }) { onChange={(e) => { field.onChange(e.target.value) }} - value={field.value} + value={field.value||''} /> )} @@ -199,7 +199,10 @@ export default function BdstReg({ form, type }: { form: any; type?: string }) { className={selectClass} placeholder="위치를 입력해주세요" type="search" - {...field} + onChange={(e) => { + field.onChange(e.target.value) + }} + value={field.value||''} /> )} @@ -266,7 +269,7 @@ export default function BdstReg({ form, type }: { form: any; type?: string }) { onChange={(e) => { field.onChange(e.target.value) }} - value={field.value} + value={field.value||''} /> )} @@ -364,7 +367,7 @@ export default function BdstReg({ form, type }: { form: any; type?: string }) { placeholder="-" type="text" onChange={(e) => f.onChange} - value={f.value} + value={f.value||''} className={selectClass} /> diff --git a/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx b/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx index f70f4548c..d37049445 100644 --- a/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx @@ -80,7 +80,7 @@ export default function RswtrRegForm({ instlCmptnDt: item?.instlCmptnDt ? new Date(item.instlCmptnDt) : new Date(), // item?.instlCmptnDt가 유효하지 않으면 현재 날짜로 초기화 - operMngCd: item?.operMngCd ?? "", // null → "" + operMngCd: item?.operMngCd || "", // null → "" instlCstSprtYn: item?.instlCstSprtYn || code.yn[0]?.val, // null → "Y" grntchBdstCertYn: item?.grntchBdstCertYn || code.yn[0]?.val, rswtrObj: { @@ -192,7 +192,7 @@ export default function RswtrRegForm({ const value = field.value; const isUnknown = value === null || value === -1; // 또는 Number(value) === -1 return ( - + { } : field.onChange} - value={field.value ?? code.orgwtKndCd[0]?.val} + value={field.value || code.orgwtKndCd[0]?.val} readOnly={readonly} /> @@ -290,7 +290,7 @@ export default function RswtrRegForm({ label={""} selectArray={code.rswtPrscCdMthdCd} onSelectValue={readonly ? () => { } : field.onChange} - value={field.value ?? code.rswtPrscCdMthdCd[0]?.val} + value={field.value || code.rswtPrscCdMthdCd[0]?.val} readOnly={readonly} /> @@ -303,7 +303,7 @@ export default function RswtrRegForm({

인센티브 정보

-

설치비 지원

+

설치비(원) 지원

@@ -311,14 +311,14 @@ export default function RswtrRegForm({ control={form.control} name="reuseBuilding.0.instlCstSprtYn" render={({ field }) => ( - + { } : field.onChange} - value={field.value ?? code.bdstIncenYn[0]?.val} + value={field.value || code.bdstIncenYn[0]?.val} readOnly={readonly} /> @@ -471,7 +471,7 @@ export default function RswtrRegForm({ label={""} selectArray={code.bdstGrntchClass} onSelectValue={readonly ? () => { } : field.onChange} - value={field.value ?? code.bdstGrntchClass[0]?.val} + value={field.value || code.bdstGrntchClass[0]?.val} readOnly={readonly} /> From 1846873602aa904a28ee0b1c424ad5b6479dc419 Mon Sep 17 00:00:00 2001 From: jyha00 Date: Wed, 9 Jul 2025 10:57:02 +0900 Subject: [PATCH 12/15] =?UTF-8?q?=EB=B9=97=EB=AC=BC/=EC=A4=91=EC=88=98?= =?UTF-8?q?=EB=8F=84/=EC=98=A8=EB=B0=B0=EC=88=98=20=EC=8A=A4=ED=81=AC?= =?UTF-8?q?=EB=A1=A4=20=EC=82=AC=EC=9D=B4=EC=A6=88=20=EC=9E=AC=EC=A1=B0?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/form/fcltReg/htdflReg/htdflRegForm.tsx | 14 ++++++++++++-- .../ui/form/fcltReg/rainReg/rainRegForm.tsx | 13 ++++++++++++- .../ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx | 15 ++++++++++++--- 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/apps/wr/components/ui/form/fcltReg/htdflReg/htdflRegForm.tsx b/apps/wr/components/ui/form/fcltReg/htdflReg/htdflRegForm.tsx index e114d842b..34163d65f 100644 --- a/apps/wr/components/ui/form/fcltReg/htdflReg/htdflRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/htdflReg/htdflRegForm.tsx @@ -16,7 +16,7 @@ import { hdtflZod, type customHtdflBdst, } from "@/app/store/ruseFcltMng/fcltReg/htdflReg"; -import { useEffect } from "react"; +import { useEffect, useState } from "react"; import BdstReg from "../bdstReg/bdstReg"; import { formatCommaNumber, @@ -89,6 +89,16 @@ export default function HtdflRegForm({ })), }; }; + const [divStyle, setDivStyle] = useState("h-[53vh]"); + useEffect(()=>{ + if(isModal===true){ + setDivStyle("h-[53vh] max-h-[37vh]") + }else if(readonly===true){ + setDivStyle("h-[62vh]") + }else{ + setDivStyle("h-[53vh]") + } + },[isModal,readonly]); useEffect(() => { console.log("form errors:", form.formState.errors); @@ -154,7 +164,7 @@ export default function HtdflRegForm({ )}
- + {isModal && htdflForm != undefined ? ( ) : ( diff --git a/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx b/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx index a0d0f5405..099d9efb1 100644 --- a/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx @@ -49,6 +49,17 @@ export default function RainRegForm({ "reuseBuilding.0.rainyObj.filtrTrtmfctYn", ]); + const [divStyle, setDivStyle] = useState("h-[53vh]"); + useEffect(()=>{ + if(isModal===true){ + setDivStyle("h-[53vh] max-h-[37vh]") + }else if(readonly===true){ + setDivStyle("h-[62vh]") + }else{ + setDivStyle("h-[53vh]") + } + },[isModal,readonly]); + const cleanRainData = (raw: any): z.infer => { const buildings = raw?.reuseBuilding && raw.reuseBuilding.length > 0 @@ -164,7 +175,7 @@ export default function RainRegForm({ )} - + {isModal && rainForm != undefined ? : <>} {isModal ? (

diff --git a/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx b/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx index e124ecc6f..3a10bf839 100644 --- a/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx @@ -21,7 +21,7 @@ import { } from "@common/business_components/ui"; import { Button, Input, ScrollArea } from "@common/components/ui"; import { zodResolver } from "@hookform/resolvers/zod"; -import { useEffect } from "react"; +import { useEffect, useState } from "react"; import { useForm, type UseFormReturn } from "react-hook-form"; import { z } from "zod"; import BdstReg from "../bdstReg/bdstReg"; @@ -40,7 +40,16 @@ export default function RswtrRegForm({ const { rswt, code, rswtBdstUpdate, rswtBdstReg } = useWrStore( (state) => state ); - + const [divStyle, setDivStyle] = useState("h-[53vh]"); + useEffect(()=>{ + if(isModal===true){ + setDivStyle("h-[53vh] max-h-[37vh]") + }else if(readonly===true){ + setDivStyle("h-[62vh]") + }else{ + setDivStyle("h-[53vh]") + } + },[isModal,readonly]); // const defaultValues: z.infer = rswtZod.parse({}); const form = useForm>({ @@ -151,7 +160,7 @@ export default function RswtrRegForm({ )} - + {isModal && rswtForm != undefined ? : <>} {isModal ? (

From b444f24d41ae6a300fb32abb9345ac9bd618b5a6 Mon Sep 17 00:00:00 2001 From: leedj312 Date: Wed, 9 Jul 2025 11:37:46 +0900 Subject: [PATCH 13/15] =?UTF-8?q?=EC=A7=80=EB=8F=84=EC=A0=90=EA=B2=80=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EB=93=B1=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruseFcltMng/prfmncReg/chkgdnReg/page.tsx | 35 +++++++++++-------- .../prfmncReg/chkgdnReg/rainChkgdn/index.tsx | 20 +++++------ .../prfmncReg/chkgdnReg/rswrtChkgdn/index.tsx | 15 ++++---- .../ui/modal/chkgd/chkgdExcel/chkgdExcel.tsx | 10 +++--- .../ui/modal/chkgd/chkgdModal/chkgdModal.tsx | 1 + 5 files changed, 41 insertions(+), 40 deletions(-) diff --git a/apps/wr/app/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx b/apps/wr/app/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx index 0ac9145a5..ecd2fd0f6 100644 --- a/apps/wr/app/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx +++ b/apps/wr/app/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx @@ -92,6 +92,7 @@ export default function Page() { commonCd, fcltNm ); + setRainPageNation(1); } else { rainChkInit(rainPageNation, rainPageSize, searchYear, commonCd); } @@ -104,6 +105,7 @@ export default function Page() { commonCd, fcltNm ); + setRswtPageNation(1); } else { rswtChkgdnInit(rswtPageNation, rswtPageSize, searchYear, commonCd); } @@ -202,22 +204,22 @@ export default function Page() { const clickDelete = (data: number[], selFcltDiv: string) => { if (data.length > 0) { if (selFcltDiv === "RNB") { - rainChkDelete(data); + rainChkDelete(data, searchYear); } else { - rswtChkDelete(data); + rswtChkDelete(data, searchYear); } } }; const chkUpdateTable = (selFcltDiv: string) => { if (selFcltDiv === "RNB") { if (updateRainDetail && updateRainDetail.length > 0) { - rainChkDetilUpdate(updateRainDetail); - } else { + rainChkDetilUpdate(updateRainDetail, searchYear); + } else { toast.error("수정을 원하는 행을 선택하고 저장버튼을 눌러주세요 "); } } else { if (updateRswtDetail && updateRswtDetail.length > 0) { - rswtChkDetilsUpdate(updateRswtDetail); + rswtChkDetilsUpdate(updateRswtDetail, searchYear); } else { toast.error("수정을 원하는 행을 선택하고 저장버튼을 눌러주세요 "); } @@ -297,14 +299,14 @@ export default function Page() { - +

@@ -314,7 +316,6 @@ export default function Page() { -