diff --git a/apps/wr/app/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx b/apps/wr/app/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx index 9389bab16..8064aa2bb 100644 --- a/apps/wr/app/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx +++ b/apps/wr/app/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx @@ -3,6 +3,7 @@ import { useWrStore } from "@/app/store"; import { btnClass } from "@/app/store/common/code"; import { initValInUsage, initValOutUsage, subTotalObj, totalObj, type FcPrfType, type PrfType } from "@/app/store/prfmncReg/pbnstPrfmncReg/type"; +import { excelPrfmncSttnParsing } from "@/app/store/prfmncSttn/pbnstPrfmncSttn/excel"; import { excelDownload, yearOptions } from "@/components/lib/func/commom"; import SearchInputText from "@/components/ui/searchInput/searchInput"; import { CHART_FORM, ContentsDiv, MainChart, ScrollArea, SearchBaseForm, SearchInput, SelectBox, Title, UiTable, type ChartConfig, type ReturnType } from "@common/business_components"; @@ -23,7 +24,7 @@ export default function PbnstPrfmncSttn() { pbnNmSearch } = useWrStore((state) => state); const { monthHeadList } = prfmnc - const { pbnstPrfHeadList, pbnstPrfmncRes, prfmncRes, rawData, selectYearList } = pbnstPrfmncSttn; + const { pbnstPrfHeadList, prfmncRes, rawData, selectYearList } = pbnstPrfmncSttn; const [isChHead, setIsChHead] = useState(false); const [fromDate, setFromDate] = useState(String(new Date().getFullYear())); const [toDate, setToDate] = useState(String(new Date().getFullYear())); @@ -32,14 +33,16 @@ export default function PbnstPrfmncSttn() { const ref = useRef({} as ReturnType); const [swtrmtFcltNm, setSwtrmtFcltNm] = useState(); const [pbnRuseNm, setPbnRuseNm] = useState(""); + const [excelData, setExcelData] = useState([]); const excelClick = useCallback(() => { excelDownload( - [[]], - "하수재이용실적 현황", - "sample_pbnstPrfmncReg.xlsx", - "A1:O1" + excelData, + "하수재이용실적 현황", + "sample_pbnstPrfmncSttn.xlsx", + "A1:N1", + 2 ); - }, [prfmnc.excelList]); + }, [excelData]); const [chartConfig, setChartConfig] = useState({}); const [chartData, setChartData] = useState([]); @@ -72,13 +75,11 @@ export default function PbnstPrfmncSttn() { chartData6: lineChartDataProps[]; }>(); - - type dnChartForm = { label: string, val: number, fill?: string }; type barChartForm = { label: string, "장내용수": number, "장외용수": number }; type lineChartDataProps = { label: string, val: number, color: string }; - const prfTableData = (prfList: PrfType[], year:string) => { + const prfTableData = (prfList: PrfType[], year: string) => { const inUsageData = structuredClone(initValInUsage); const outUsageData = structuredClone(initValOutUsage); @@ -132,7 +133,7 @@ export default function PbnstPrfmncSttn() { } const tableData = [...inUsageData, ...outUsageData, usageTotalObj]; setPrfData(tableData); - + setExcelData(excelPrfmncSttnParsing(prfData ?? [])) } else { setPrfData([]); } diff --git a/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/excel.tsx b/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/excel.tsx new file mode 100644 index 000000000..113a35289 --- /dev/null +++ b/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/excel.tsx @@ -0,0 +1,24 @@ +export const excelPrfmncSttnParsing = ( + data: any[] +): string[][] => { + const excelExportData: string[][] = []; + data.forEach((item) => { + excelExportData.push([ + item.용수명, + item.total, + item["1월"], + item["2월"], + item["3월"], + item["4월"], + item["5월"], + item["6월"], + item["7월"], + item["8월"], + item["9월"], + item["10월"], + item["11월"], + item["12월"], + ]); + }); + return excelExportData; +}; \ No newline at end of file diff --git a/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/index.tsx b/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/index.tsx index 8af811463..d0e958785 100644 --- a/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/index.tsx +++ b/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/index.tsx @@ -49,7 +49,6 @@ const hasuListFetch = async (page: string, sggOrCity: string) => { checkWrRegListRes?.fcltCds, fetchType.COMMON ); - console.log("api 호출", rainRes) const data = checkWrRegListRes.fcPrfList.map((item: FcPrfType) => { const findData = rainRes.data.find( (fclt: pubHasuType) => @@ -87,7 +86,7 @@ export const pbnstPrfmncSttnActionsExport: (set: any) => pbnstPrfmncSttnActions yearHead[0].title = i + "년도" } yearHeader = [...yearHeader, ...yearHead] - selectList.push({text: i + "년도", val: String(i)} ) + selectList.push({ text: i + "년도", val: String(i) }) } set((state: pbnstPrfmncSttnState) => { return { @@ -143,7 +142,6 @@ export const pbnstPrfmncSttnActionsExport: (set: any) => pbnstPrfmncSttnActions bscFctCdList, `wr`, ) - console.log("res", res) let inUsageSum = 0; let outUsageSum = 0; let usageSum = 0; @@ -177,9 +175,6 @@ export const pbnstPrfmncSttnActionsExport: (set: any) => pbnstPrfmncSttnActions resData.push({ ...data, ...acc }) } }) - - - return set((state: pbnstPrfmncSttnState) => ({ ...state, pbnstPrfmncSttn: { diff --git a/apps/wr/public/sample_pbnstPrfmncSttn.xlsx b/apps/wr/public/sample_pbnstPrfmncSttn.xlsx new file mode 100644 index 000000000..183434984 Binary files /dev/null and b/apps/wr/public/sample_pbnstPrfmncSttn.xlsx differ