From 79b39fc22fca956dc5cc29cac4ee2829127ba9b3 Mon Sep 17 00:00:00 2001 From: jyha00 Date: Fri, 20 Jun 2025 16:35:45 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A4=91=EC=88=98=EB=8F=84=EC=8B=9C=EC=84=A4?= =?UTF-8?q?=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=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruseFcltMng/fcltSttn/rswtSttn/page.tsx | 35 +++++----- .../ruseFcltMng/fcltSttn/rswtSttn/excel.tsx | 27 ++++---- .../ruseFcltMng/fcltSttn/rswtSttn/index.tsx | 65 +++++++++--------- apps/wr/public/sample_rswtSttn.xlsx | Bin 9159 -> 10806 bytes 4 files changed, 64 insertions(+), 63 deletions(-) diff --git a/apps/wr/app/ruseFcltMng/fcltSttn/rswtSttn/page.tsx b/apps/wr/app/ruseFcltMng/fcltSttn/rswtSttn/page.tsx index 48f6aa452..2cecd8e91 100644 --- a/apps/wr/app/ruseFcltMng/fcltSttn/rswtSttn/page.tsx +++ b/apps/wr/app/ruseFcltMng/fcltSttn/rswtSttn/page.tsx @@ -34,7 +34,7 @@ export default function RswtSttn() { const [isChHead, setIsChHead] = useState(false); const ref = useRef({} as ReturnType); const [bdstTable, setBdstTable] = useState(); - const [detailModal, setDetailModal] = useState<{isOpen:boolean,data:customRswtBdst|undefined}>({data:undefined,isOpen:false }) + const [detailModal, setDetailModal] = useState<{ isOpen: boolean, data: customRswtBdst | undefined }>({ data: undefined, isOpen: false }) const [bdstChgProps, setBdstChgProps] = useState<{ isOpen: boolean; chBuilding: chgBuilding[]; @@ -43,18 +43,18 @@ export default function RswtSttn() { const codeCityOrSgg = getCityOrSgg(ref); -const cellClick=(index:number|undefined, headId: string)=>{ + const cellClick = (index: number | undefined, headId: string) => { - if(headId!=='chBuildingYn' && index!==undefined && bdstTable!==undefined){ - setDetailModal({isOpen:true ,data:bdstTable[index] }) - }else if( headId==='chBuildingYn' && index!==undefined && bdstTable!==undefined){ + if (headId !== 'chBuildingYn' && index !== undefined && bdstTable !== undefined) { + setDetailModal({ isOpen: true, data: bdstTable[index] }) + } else if (headId === 'chBuildingYn' && index !== undefined && bdstTable !== undefined) { if ( bdstTable[index] && - bdstTable[index]?.chBuildingYn ==='Y' - + bdstTable[index]?.chBuildingYn === 'Y' + ) { - setBdstChgProps({ isOpen:true , chBuilding: bdstTable[index].chgBuilding}); + setBdstChgProps({ isOpen: true, chBuilding: bdstTable[index].chgBuilding }); } } @@ -74,7 +74,7 @@ const cellClick=(index:number|undefined, headId: string)=>{ ...item, ...item.reuseBuilding[0], ...item.reuseBuilding[0]?.rswtrObj, - chBuildingYn:item?.chgBuilding[0]?.bdstChgNm!==null &&item?.chgBuilding.length>0?'Y':'N' + chBuildingYn: item?.chgBuilding[0]?.bdstChgNm !== null && item?.chgBuilding.length > 0 ? 'Y' : 'N' })) .filter( (item: customRswtBdst) => @@ -91,17 +91,18 @@ const cellClick=(index:number|undefined, headId: string)=>{ excelDownload( rswtSttn.excelList, "중수도시설 현황", - "sample_rswtSttn.xlsx" + "sample_rswtSttn.xlsx", + "A1:W3", ); } }, [rswtSttn.excelList]); const excelClick = useCallback( (returnType: ReturnType) => { - if(codeCityOrSgg) - rswtSttnSearch(1, "10000", codeCityOrSgg); + if (codeCityOrSgg) + rswtSttnSearch(1, "10000", codeCityOrSgg); }, - [rswtSttnSearch,codeCityOrSgg] + [rswtSttnSearch, codeCityOrSgg] ); useEffect(() => { @@ -134,11 +135,11 @@ const cellClick=(index:number|undefined, headId: string)=>{ leftChildren={undefined} queryClick={function (returnType: ReturnType): void { // '{partValue: 'A', sidoValue: '0', sigunValue: '0', regionValue: '0', unitWaterShedValue: '0', …}' - if(codeCityOrSgg) - rswtSttnSearch(1, "20", codeCityOrSgg); + if (codeCityOrSgg) + rswtSttnSearch(1, "20", codeCityOrSgg); }} excelClick={excelClick} - initClick={function (): void {}} + initClick={function (): void { }} btnClass={btnClass} ref={ref} /> @@ -156,7 +157,7 @@ const cellClick=(index:number|undefined, headId: string)=>{ headlist={rswtSttn.rswtSttHeadList} pageSize={20} total={10000} - cellClick={(index: number | undefined,headId:string)=>{cellClick(index ?? undefined,headId)} } + cellClick={(index: number | undefined, headId: string) => { cellClick(index ?? undefined, headId) }} onPageChange={setPageNation} > diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/excel.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/excel.tsx index 9a342274d..5c0ecf0b3 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/excel.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/excel.tsx @@ -5,24 +5,25 @@ export const excelRSwtSttnParsing = (data: customRswtBdst[]): string[][] => { data.forEach((item) => { excelExportData.push([ - String(item.cityText), - String(item.sggText), + String(item.ctpvCd), + String(item.sggCd), item.bdstNm ?? "", item.daddr ?? "", String(item.bdstUsgText ?? ""), String(item.frstArchPrmsnDt ?? ""), String(item.archArea ?? ""), - String(item.reuseBuilding?.[0]?.rswtrObj.oblgTrgtWtrUsqty ?? ""), - String(item.chgBuilding.length>0 ? "Y" :"N"), - String(item.reuseBuilding?.[0]?.lawTrgtYn ?? ""), - String(item.reuseBuilding?.[0]?.instlCmptnDt ?? ""), - String(item.reuseBuilding?.[0]?.instlCst ?? ""), - item.reuseBuilding?.[0]?.rswtrObj?.orgwtKndCd ?? "", - String(item.reuseBuilding?.[0]?.rswtrObj.filtrTrtmfctCpct ?? ""), - String(item.reuseBuilding?.[0]?.rswtrObj?.filtrTrtmfctProcs ?? ""), - String(item.reuseBuilding?.[0]?.rswtrObj?.filtrTrtmfctUsgCd ?? ""), - String(item.reuseBuilding?.[0]?.instlCstSprtYn ?? ""), - String(item.reuseBuilding?.[0]?.instlCstSprtAmt ?? ""), + String(item.reuseBuilding?.[0]?.rswtrObj.wtrUsqty ?? "0"), //물사용량 + String(item.chgBuilding.length>0 ? "Y" :"N"), //중축・개축・재축여부 + String(item.reuseBuilding?.[0]?.lawTrgtYn ?? ""), //법적의무대상여부 + String(item.reuseBuilding?.[0]?.rswtrObj.oblgTrgtWtrUsqty ?? ""), //의무대상물사용량 + String(item.reuseBuilding?.[0]?.instlCmptnDt ?? ""), //설치완료일시 + String(item.reuseBuilding?.[0]?.instlCst ?? ""), //설치비용 + item.reuseBuilding?.[0]?.rswtrObj?.orgwtKndCd ?? "", //원수종류 + String(item.reuseBuilding?.[0]?.rswtrObj.filtrTrtmfctCpct ?? ""), //처리시설용량 + String(item.reuseBuilding?.[0]?.rswtrObj?.filtrTrtmfctProcs ?? ""), //주요처리공정 + String(item.reuseBuilding?.[0]?.rswtrObj?.filtrTrtmfctUsgCd ?? ""), //이용용도 + String(item.reuseBuilding?.[0]?.instlCstSprtYn ?? ""), //설치지원비용여부 + String(item.reuseBuilding?.[0]?.instlCstSprtAmt ?? ""), //설치지원비용 String(item.reuseBuilding?.[0]?.grntchBdstCertYn ?? ""), String(item.reuseBuilding?.[0]?.grntchBdstCertYr ?? ""), String(item.reuseBuilding?.[0]?.grntchBdstCertNo ?? ""), diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/index.tsx index 05c845fde..775e22e0c 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/index.tsx @@ -1,17 +1,17 @@ import type { CommonTableProps } from "@/app/store/common/type/header"; -import type { customRswtBdst } from "../../fcltReg/rswtReg"; -import type { sttnHeadListType } from "../rainSttn/headList"; -import type { z } from "zod"; -import { rswtSttHeadListExport, rswtSttNodeListExport } from "./headList"; -import { controlHeadView } from "../rainSttn"; import { fetchType, getFetch } from "@/components/lib/api"; -import { excelRainSttnParsing } from "../rainSttn/excel"; +import type { z } from "zod"; +import type { customRswtBdst } from "../../fcltReg/rswtReg"; +import { controlHeadView } from "../rainSttn"; +import type { sttnHeadListType } from "../rainSttn/headList"; +import { excelRSwtSttnParsing } from "./excel"; +import { rswtSttHeadListExport, rswtSttNodeListExport } from "./headList"; // 테이블 헤드 리스트 const rswtSttNodeList = rswtSttNodeListExport; -const rswtSttHeadList = rswtSttHeadListExport; +const rswtSttHeadList = rswtSttHeadListExport; const rswtSttnRes: customRswtBdst[] = []; @@ -29,7 +29,7 @@ export type rswtSttnState = { type rswtSttnActions = { - rswtSttnInit:(con:string) => void; + rswtSttnInit: (con: string) => void; rswtSttnSearch: (page: number, total: string, con: string) => void; rswtChSttnHead: ( headList: z.infer, @@ -56,27 +56,27 @@ export const rswtSttnActionsExport: (set: any) => rswtSttnActions = ( set: any ) => { return { - rswtSttnInit: async( con:string)=>{ - try{ - - const rswtSttnRes = await getFetch( - fetchType.WR, - `/reuseFc/waterreuseFc/1/20/${con}` - ); - set((state: rswtSttnState) => { - return { - ...state, - rswtSttn: { - ...state.rswtSttn, - rswtSttnRes: rswtSttnRes, - isInit: false, - }, - }; - }); - }catch(e){ - console.log(e) - } - }, + rswtSttnInit: async (con: string) => { + try { + + const rswtSttnRes = await getFetch( + fetchType.WR, + `/reuseFc/waterreuseFc/1/20/${con}` + ); + set((state: rswtSttnState) => { + return { + ...state, + rswtSttn: { + ...state.rswtSttn, + rswtSttnRes: rswtSttnRes, + isInit: false, + }, + }; + }); + } catch (e) { + console.log(e) + } + }, rswtSttnSearch: async (page: number, total: string, con: string) => { try { const rswtSttnRes = await getFetch( @@ -84,13 +84,13 @@ export const rswtSttnActionsExport: (set: any) => rswtSttnActions = ( `/reuseFc/waterreuseFc/${page}/${total}/${con}` ); if (Number(total) > 9000) { - const rainExcel = excelRainSttnParsing(rswtSttnRes); + const rswtExcel = excelRSwtSttnParsing(rswtSttnRes); set((state: rswtSttnState) => { return { ...state, rswtSttn: { ...state.rswtSttn, - excelList: rainExcel, + excelList: rswtExcel, }, }; }); @@ -114,8 +114,7 @@ export const rswtSttnActionsExport: (set: any) => rswtSttnActions = ( headList: z.infer ): Promise => { - console.log('head ', headList) - const changeNodeList= controlHeadView(headList,rswtSttNodeList) + const changeNodeList = controlHeadView(headList, rswtSttNodeList) return set((state: rswtSttnState) => ({ rswtSttn: { diff --git a/apps/wr/public/sample_rswtSttn.xlsx b/apps/wr/public/sample_rswtSttn.xlsx index 9f602475286e37f996002d81a9eef0bfd61d51ca..f64b37ea34efcb3e8a75dfe170def88a3aeba7cd 100644 GIT binary patch literal 10806 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