From 789b9d38ae2a853f52fdb32026cf71af4be2cb6a Mon Sep 17 00:00:00 2001 From: jyha00 Date: Wed, 4 Jun 2025 18:59:17 +0900 Subject: [PATCH] =?UTF-8?q?=ED=95=98=EC=88=98=EC=9E=AC=EC=9D=B4=EC=9A=A9?= =?UTF-8?q?=20=ED=98=84=ED=99=A9=20=EC=97=91=EC=85=80=20=EB=8B=A4=EC=9A=B4?= =?UTF-8?q?=EB=A1=9C=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruseFcltMng/fcltSttn/pbnstSttn/page.tsx | 21 ++++-- .../ruseFcltMng/fcltSttn/pbnstSttn/excel.tsx | 28 ++++++++ .../ruseFcltMng/fcltSttn/pbnstSttn/index.tsx | 67 +++++++++++++----- apps/wr/public/sample_pbnstSttn.xlsx | Bin 0 -> 9196 bytes 4 files changed, 93 insertions(+), 23 deletions(-) create mode 100644 apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/excel.tsx create mode 100644 apps/wr/public/sample_pbnstSttn.xlsx diff --git a/apps/wr/app/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx b/apps/wr/app/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx index a662ffb7a..837cf23f1 100644 --- a/apps/wr/app/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx +++ b/apps/wr/app/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx @@ -15,20 +15,27 @@ import HeadChModal from "@/components/ui/modal/sttn/headChModal/headChModal"; import { useCallback, useEffect, useRef, useState } from "react"; import { HeadMakeColSpan } from "@common/business_components/ui/table/HeadMakeColSpan"; import type { customPbnst } from "@/app/store/ruseFcltMng/fcltReg/pbnstReg/type"; +import { excelDownload, getCityOrSgg } from "@/components/lib/func/commom"; export default function PbnstSttn() { - const { code, pbnstSttn } = useWrStore( - (state) => state - ); - + const { code, pbnstSttn, pbnstSttnSearch } = useWrStore((state) => state); + const ref = useRef({} as ReturnType); + const codeData = getCityOrSgg(ref); const [pageNation, setPageNation] = useState(1); const [isChHead, setIsChHead] = useState(false); const [bdstTable, setBdstTable] = useState(); const excelClick = useCallback(() => { - }, []); + // if (codeData) pbnstSttnSearch(1, "10000", codeData); + excelDownload( + [[]], + "하수재이용시설 현황", + "sample_pbnstSttn.xlsx", + "A1:U2" + ); + }, [pbnstSttnSearch, codeData]); return ( <> @@ -65,7 +72,7 @@ export default function PbnstSttn() { // pbnstSttnSearch(1, "20", con); }} excelClick={excelClick} - initClick={function (): void {}} + initClick={function (): void { }} btnClass={btnClass} ref={ref} /> @@ -83,7 +90,7 @@ export default function PbnstSttn() { headlist={pbnstSttn.pbnstSttHeadList} pageSize={20} total={100000} - cellClick={(index: number | undefined,headId:string)=>{} } + cellClick={(index: number | undefined, headId: string) => { }} onPageChange={setPageNation} > diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/excel.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/excel.tsx new file mode 100644 index 000000000..a85a009a4 --- /dev/null +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/excel.tsx @@ -0,0 +1,28 @@ +import type { customPbnst } from "../../fcltReg/pbnstReg/type"; + +export const excelPbnstSttnParsing = (data: any[]): string[][] => { + const excelExportData: string[][] = []; + + data.forEach((item) => { + excelExportData.push([ + item.a, + String(item.aaa), + item.aaaa ?? "", + item.operMngCd ?? "", + String(item.cityText ?? ""), + String(item.sggText ?? ""), + String(item.bdnstNm ?? ""), + String(item.archArea ?? ""), + String(item.archArea ?? ""), + String(item.archArea ?? ""), + String(item.archArea ?? ""), + String(item.archArea ?? ""), + String(item.archArea ?? ""), + String(item.archArea ?? ""), + String(item.archArea ?? ""), + String(item.archArea ?? ""), + String(item.archArea ?? ""), + ]) + }) + return excelExportData; +} \ No newline at end of file diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx index e1a60d921..cb6b8e392 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/index.tsx @@ -3,11 +3,12 @@ import type { z } from "zod"; import { pbnSttHeadListExport, pbnstSttNodeListExport - } from "./headList"; +} from "./headList"; import { fetchType, getFetch } from "@/components/lib/api"; import { controlHeadView } from "../rainSttn"; import type { sttnHeadListType } from "../rainSttn/headList"; import type { customPbnst } from "../../fcltReg/pbnstReg/type"; +import { excelPbnstSttnParsing } from "./excel"; const pbnstSttHeadList = pbnSttHeadListExport; const pbnstSttNodeList = pbnstSttNodeListExport; @@ -26,6 +27,7 @@ type pbnstSttnActions = { pbnstChSttnHead: ( headList: z.infer, ) => void; + pbnstSttnSearch: (page: number, total: string, con: string) => void; }; export type pbnstSttnType = pbnstSttnState & pbnstSttnActions; @@ -34,8 +36,8 @@ export const pbnstSttnStateExport: pbnstSttnState = { pbnstSttn: { pbnstSttHeadList: pbnstSttHeadList, pbnstSttNodeList: pbnstSttNodeList, - pbnstSttnRes:[], - excelList:[], + pbnstSttnRes: [], + excelList: [], isInit: false, }, }; @@ -45,19 +47,52 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = ( ) => { return { pbnstChSttnHead: async ( - headList: z.infer - ): Promise => { - - console.log('head ', headList) - const changeNodeList= controlHeadView(headList,pbnstSttNodeList) - - return set((state: pbnstSttnState) => ({ - pbnstSttn: { - ...state.pbnstSttn, - pbnstSttHeadList: headList, - pbnstSttNodeList: changeNodeList, - }, - })); + headList: z.infer + ): Promise => { + + console.log('head ', headList) + const changeNodeList = controlHeadView(headList, pbnstSttNodeList) + + return set((state: pbnstSttnState) => ({ + pbnstSttn: { + ...state.pbnstSttn, + pbnstSttHeadList: headList, + pbnstSttNodeList: changeNodeList, }, + })); + }, + pbnstSttnSearch: async (page: number, total: string, con: string) => { + try { + const pbnstSttnRes = await getFetch( + fetchType.WR, + `/reuseFc/waterreuseFc/${page}/${total}/${con}` + ); + if (Number(total) > 9000) { + const pbnstExcel = excelPbnstSttnParsing(pbnstSttnRes); + set((state: pbnstSttnState) => { + return { + ...state, + pbnstSttn: { + ...state.pbnstSttn, + excelList: pbnstExcel, + }, + }; + }); + } else + set((state: pbnstSttnState) => { + + return { + ...state, + pbnstSttn: { + ...state.pbnstSttn, + pbnstSttnRes: pbnstSttnRes, + isInit: false, + }, + }; + }); + } catch (erTxt) { + console.log("error", erTxt); + } + }, } } diff --git a/apps/wr/public/sample_pbnstSttn.xlsx b/apps/wr/public/sample_pbnstSttn.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..8bbd47ea3b7a624c63debf7eca9da822aa4f69fa GIT binary patch literal 9196 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 literal 0 HcmV?d00001