import { postFetch } from "@/app/components/api"; import DataForm from "@/app/components/common/DataForm"; import { fetchPlanInfo } from "../common"; import type { TableUpperProps } from "../dashboard"; export type { TableUpperProps }; /**==================================== * Store - 타입 ====================================*/ /** * (1) 메인페이지 */ // 처리구역 리스트 export type ProcessAreaProps = { swtrmtFcltCd : string, ctpvNm?: string, sggNm?: string, swtrmtFcltNm : string, location : string, fctCpc : number | '', fcltCpctSum : number | '', ruse : boolean, planYrDt4 : string, planYr : string, planYrDc1 : string, planYrDc2 : string, planYrDc3 : string, planYrDc4 : string, /** * 증설계획 */ // 기승인(당초4단계), 현재, 변경1~4 planSwageQntSumDt4 : number | '', planSwageQntSum : number | '', planSwageQntSumDc1 : number | '', planSwageQntSumDc2 : number | '', planSwageQntSumDc3 : number | '', planSwageQntSumDc4 : number | '', /** * 처리인구 */ // 기승인(당초4단계), 변경1~4 swtrmtPpltnCntDt4 : number | '', swtrmtPpltnCnt : number | '', swtrmtPpltnCntDc1 : number | '', swtrmtPpltnCntDc2 : number | '', swtrmtPpltnCntDc3 : number | '', swtrmtPpltnCntDc4 : number | '', /** * 처리구역면적 */ // 기승인(당초4단계), 변경1~4 swtrmtZoneAreaDt4 : number | '', swtrmtZoneArea : number | '', swtrmtZoneAreaDc1 : number | '', swtrmtZoneAreaDc2 : number | '', swtrmtZoneAreaDc3 : number | '', swtrmtZoneAreaDc4 : number | '', // 처리구역 trtDstr : string | '', } export interface ExcelType { 시설코드: string, 시설명: string, 주소: string, "시설옹량(m³/일)": number | '', "증설계획기존(m³/일)": number | '', "증설계획현재(m³/일)": number | '', "증설계획1단계(m³/일)": number | '', "증설계획2단계(m³/일)": number | '', "증설계획3단계(m³/일)": number | '', "증설계획4단계(m³/일)": number | '', "처리인구기존(인)": number | '', "처리인구현재(인)": number | '', "처리인구1단계(인)": number | '', "처리인구2단계(인)": number | '', "처리인구3단계(인)": number | '', "처리인구4단계(인)": number | '', "처리구역기존(km²)": number | '', "처리구역현재(km²)": number | '', "처리구역1단계(km²)": number | '', "처리구역2단계(km²)": number | '', "처리구역3단계(km²)": number | '', "처리구역4단계(km²)": number | '', 처리구역: string | '' } // (2) 처리구역 팝업 // 시설증설 계획 export type FcltyImproveInfoProps = { planSwageQntSumDt4 : number | '', planSwageQntSum : number | '', planSwageQntSumDc1 : number | '', planSwageQntSumDc2 : number | '', planSwageQntSumDc3 : number | '', planSwageQntSumDc4 : number | '', } // 처리인구 계획 export type ProcessPopulationProps = { swtrmtPpltnCntDt4 : number | '', swtrmtPpltnCnt : number | '', swtrmtPpltnCntDc1 : number | '', swtrmtPpltnCntDc2 : number | '', swtrmtPpltnCntDc3 : number | '', swtrmtPpltnCntDc4 : number | '', } // 처리구역 계획 export type ProcessAreaPlanProps = { swtrmtZoneAreaDt4 : number | '', swtrmtZoneArea : number | '', swtrmtZoneAreaDc1 : number | '', swtrmtZoneAreaDc2 : number | '', swtrmtZoneAreaDc3 : number | '', swtrmtZoneAreaDc4 : number | '', trtDstr : string, } /**==================================== * Store - data ====================================*/ /** * (1) 메인페이지 */ // 검색단 const ProcessFacilityLabelArray:string[] = ['구분', '시도', '시군구','용량별', '시설명', '시설상태', '연도별', '권역', '단위유역', '중권역', '환경청별']; // 리스트 헤더(행정별) const upHeadList1:TableUpperProps[] = [ { id: "A", title: "행정구역", colSpan:2, rowSpan:2, row:0 }, { id: "ctpvNm", title: "시도", upName:"upChangeRe", row:2, widthPercent:4 }, { id: "sggNm", title: "시군구", upName:"upChangeRe", row:2, widthPercent:4 }, { id: "swtrmtFcltNm", title: "시설명", rowSpan:3, row:0, widthPercent: 6 }, { id: "location", title: "주소", rowSpan:3, row:0, widthPercent: 12 }, { id: "fctCpc", title: "시설용량(m³/일)", align:"right", rowSpan:3, row:0, widthPercent: 5 }, { id: "B", title: "시설계획", colSpan:19, row: 0 }, { id: "C", title: "증설계획(m³/일)", colSpan:6, row: 1 }, { id: "planSwageQntSumDt4", title: "기승인\n4단계", row:2, align:"right", widthPercent: 3.5 }, { id: "planSwageQntSum", title: "현재", row:2, align:"right", widthPercent: 3.5 }, { id: "planSwageQntSumDc1", title: "1단계", row:2, align:"right", widthPercent: 3.5 }, { id: "planSwageQntSumDc2", title: "2단계", row:2, align:"right", widthPercent: 3.5 }, { id: "planSwageQntSumDc3", title: "3단계", row:2, align:"right", widthPercent: 3.5 }, { id: "planSwageQntSumDc4", title: "4단계", row:2, align:"right", widthPercent: 3.5 }, { id: "D", title: "처리인구(인)", colSpan:6, row:1 }, { id: "swtrmtPpltnCntDt4", title: "기승인\n4단계", row:2, align:"right", widthPercent: 3.5 }, { id: "swtrmtPpltnCnt", title: "현재", row:2, align:"right", widthPercent: 3.5 }, { id: "swtrmtPpltnCntDc1", title: "1단계", row:2, align:"right", widthPercent: 3.5 }, { id: "swtrmtPpltnCntDc2", title: "2단계", row:2, align:"right", widthPercent: 3.5 }, { id: "swtrmtPpltnCntDc3", title: "3단계", row:2, align:"right", widthPercent: 3.5 }, { id: "swtrmtPpltnCntDc4", title: "4단계", row:2, align:"right", widthPercent: 3.5 }, { id: "E", title: "처리구역(km²)", colSpan:7, row:1 }, { id: "swtrmtZoneAreaDt4", title: "기승인\n4단계", row:2, align:"right", widthPercent: 3.5 }, { id: "swtrmtZoneArea", title: "현재", row:2, align:"right", widthPercent: 3.5 }, { id: "swtrmtZoneAreaDc1", title: "1단계", row:2, align:"right", widthPercent: 3.5 }, { id: "swtrmtZoneAreaDc2", title: "2단계", row:2, align:"right", widthPercent: 3.5 }, { id: "swtrmtZoneAreaDc3", title: "3단계", row:2, align:"right", widthPercent: 3.5 }, { id: "swtrmtZoneAreaDc4", title: "4단계", row:2, align:"right", widthPercent: 3.5 }, { id: "trtDstr", title: "처리구역", row:2} ]; const processAreaList:ProcessAreaProps[] = [ ] /** * 처리구역정보 상세팝업 */ // 시설증설 계획 (헤더) const upHeadListFcltyImproveInfo:TableUpperProps[] = [ { id: "planSwageQntSumDt4", title: "기승인\n4단계(m³/일)", rowSpan:2, row:0, align:"right"}, { id: "A", title: "증설계획(m³/일)", colSpan:5, row:0}, { id: "planSwageQntSum", title: "현재", row:1, align:"right"}, { id: "planSwageQntSumDc1", title: "1단계", row:1, align:"right"}, { id: "planSwageQntSumDc2", title: "2단계", row:1, align:"right"}, { id: "planSwageQntSumDc3", title: "3단계", row:1, align:"right"}, { id: "planSwageQntSumDc4", title: "4단계", row:1, align:"right"}, ]; // 시설증설 계획 (리스트) const gridListFcltyImproveInfo:FcltyImproveInfoProps[] = [ ]; // 처리인구 계획 (헤더) const upHeadListProcessPopulation:TableUpperProps[] = [ { id: "swtrmtPpltnCntDt4", title: "기승인\n4단계(인)", rowSpan:2, row:0, align:"right"}, { id: "A", title: "처리인구(인)", colSpan:5, row:0}, { id: "swtrmtPpltnCnt", title: "현재", row:1, align:"right"}, { id: "swtrmtPpltnCntDc1", title: "1단계", row:1, align:"right"}, { id: "swtrmtPpltnCntDc2", title: "2단계", row:1, align:"right"}, { id: "swtrmtPpltnCntDc3", title: "3단계", row:1, align:"right"}, { id: "swtrmtPpltnCntDc4", title: "4단계", row:1, align:"right"}, ]; // 처리인구 계획 (리스트) const gridListProcessPopulation:ProcessPopulationProps[] = [ ]; // 처리구역 계획 (헤더) const upHeadListProcessAreaPlan:TableUpperProps[] = [ { id: "swtrmtZoneAreaDt4", title: "기승인\n4단계(km²)", rowSpan:2, row:0, align:"right"}, { id: "A", title: "처리면적(km²)", colSpan:6, row:0, align:"right"}, { id: "swtrmtZoneArea", title: "현재", row:1, align:"right"}, { id: "swtrmtZoneAreaDc1", title: "1단계", row:1, align:"right"}, { id: "swtrmtZoneAreaDc2", title: "2단계", row:1, align:"right"}, { id: "swtrmtZoneAreaDc3", title: "3단계", row:1, align:"right"}, { id: "swtrmtZoneAreaDc4", title: "4단계", row:1, align:"right"}, { id: "trtDstr", title: "처리구역", row:1} ]; // 시설증설 계획 (리스트) const gridListProcessAreaPlan:ProcessAreaPlanProps[] = [ ]; /**==================================== * Store - API =====================================*/ // 시설 상세 정보 조회 API /* const fetchFacilityDetailInfo = async (swtrmtFcltCd: string) => { try { const tailUrl = '/1/5/A/0/0/0/SW'; const res = await postFetch('fo', '/prcsFclt/ruseInfo'+tailUrl, [swtrmtFcltCd]); return { data:res.data, count:res.count }; } catch (error) { console.error('시설정보 데이터를 가져오는데 실패했습니다:', error); return {data: [], count: 0}; } }; */ const fetchFacilityDetailInfo = async (pageNo:number, pageSize:number, swtrmtFcltCd: string[]) : Promise<{data:any[], count:number}> => { try { const res = await postFetch('fo', '/prcsFclt/ruseInfo/'+pageNo+'/'+pageSize, swtrmtFcltCd); return {data: res.data, count:res.count}; } catch (error) { console.error('시설정보 데이터를 가져오는데 실패했습니다:', error); return {data:[], count:0}; } }; // 시설정보 리스트 데이터 호출(구분 선택 후 시설명 있을 경우) const fetchProcessAreaList = async (pageNo : number, pageSize : number, ctpvNm : string | undefined, sggNm : string | undefined, targetYear : string | undefined, set : (fn: (state: ProcessAreaType) => ProcessAreaType) => void): Promise<{data:any[], count:number}> => { try { const res = await fetchPlanInfo(targetYear, ctpvNm, sggNm, undefined); if(res && res.length > 0){ const enrichedData = await Promise.all( res.map(async (item: ProcessAreaProps) => { upHeadList1.forEach((head:TableUpperProps) => { /* if (head.id === 'planSwageQntSum' || head.id === 'swtrmtPpltnCnt' || head.id === 'swtrmtZoneArea') { head.title = '현재\n(' + item.planYr + '년)'; } else if(head.id === 'planSwageQntSumDc1' || head.id === 'swtrmtPpltnCntDc1' || head.id === 'swtrmtZoneAreaDc1') { head.title = '1단계\n(' + item.planYrDc1 + '년)'; } else if(head.id === 'planSwageQntSumDc2' || head.id === 'swtrmtPpltnCntDc2' || head.id === 'swtrmtZoneAreaDc2') { head.title = '2단계\n(' + item.planYrDc2 + '년)'; } else if(head.id === 'planSwageQntSumDc3' || head.id === 'swtrmtPpltnCntDc3' || head.id === 'swtrmtZoneAreaDc3') { head.title = '3단계\n(' + item.planYrDc3 + '년)'; } else if(head.id === 'planSwageQntSumDc4' || head.id === 'swtrmtPpltnCntDc4' || head.id === 'swtrmtZoneAreaDc4') { head.title = '4단계\n(' + item.planYrDc4 + '년)'; } else if(head.id === 'planSwageQntSumDt4' || head.id === 'swtrmtPpltnCntDt4' || head.id === 'swtrmtZoneAreaDt4') { head.title = '기승인\n4단계(' + item.planYrDt4 + '년)'; } */ if (head.id === 'planSwageQntSum' || head.id === 'swtrmtPpltnCnt' || head.id === 'swtrmtZoneArea') { head.title = '현재'; } else if(head.id === 'planSwageQntSumDc1' || head.id === 'swtrmtPpltnCntDc1' || head.id === 'swtrmtZoneAreaDc1') { head.title = '1단계'; } else if(head.id === 'planSwageQntSumDc2' || head.id === 'swtrmtPpltnCntDc2' || head.id === 'swtrmtZoneAreaDc2') { head.title = '2단계'; } else if(head.id === 'planSwageQntSumDc3' || head.id === 'swtrmtPpltnCntDc3' || head.id === 'swtrmtZoneAreaDc3') { head.title = '3단계'; } else if(head.id === 'planSwageQntSumDc4' || head.id === 'swtrmtPpltnCntDc4' || head.id === 'swtrmtZoneAreaDc4') { head.title = '4단계'; } else if(head.id === 'planSwageQntSumDt4' || head.id === 'swtrmtPpltnCntDt4' || head.id === 'swtrmtZoneAreaDt4') { head.title = '기승인\n4단계'; } }); return item; }) ); const startIndex = (pageNo - 1) * pageSize; const endIndex = startIndex + pageSize; const paginatedData = enrichedData.slice(startIndex, endIndex); const fcltyCdList : string[]= []; paginatedData.forEach(item => { fcltyCdList.push(item.swtrmtFcltCd); }) const detailFcltylist = await fetchFacilityDetailInfo(1, pageSize, fcltyCdList); paginatedData.forEach(item => { const filterdData = detailFcltylist.data.filter(fItem=>fItem.bscFctCd === item.swtrmtFcltCd)[0] || null; item.fcltCpctSum = filterdData ? filterdData.fctCpc : ''; item.location = filterdData ? filterdData.addr : ''; item.ctpvNm = filterdData ? filterdData.sido : ''; item.sggNm = filterdData ? filterdData.gugun : ''; }); return {data: paginatedData, count: enrichedData.length}; }else{ return {data: [], count: 0}; } } catch (error) { console.error('시설계획정보를 가져오는데 실패했습니다:', error); set((state) => ({ ...state, ProcessArea : { ...state.ProcessArea, isLoading : false } })); return {data: [], count: 0}; } }; /**==================================== * Store - expaort =====================================*/ export type ProcessAreaActions = { searchProcessAreaList : (pageNo: number, pageSize: number, ctpvNm?:string, sggNm?:string, targetYear?:string) => void; initModalData : (swtrmtFcltCd:string) => void; } export type ProcessAreaType = { ProcessAreaSearch: { isInit: boolean; processFacilityLabelArray:string[]; }, ProcessArea : { isInit: boolean; upHeadList1: TableUpperProps[]; processAreaList: ProcessAreaProps[]; processAreaCount: number; excelList: ExcelType[]; isLoading: boolean; }, ProcessAreaDetail : { isInit: boolean; upHeadListFcltyImproveInfo: TableUpperProps[]; gridListFcltyImproveInfo: FcltyImproveInfoProps[]; // Changed from facilityAreaProps to ProcessAreaProps upHeadListProcessPopulation: TableUpperProps[]; gridListProcessPopulation: ProcessPopulationProps[]; // Changed from facilityAreaProps to ProcessAreaProps upHeadListProcessAreaPlan: TableUpperProps[]; gridListProcessAreaPlan: ProcessAreaPlanProps[]; // Changed from facilityAreaProps to ProcessAreaProps }, } export const processAreaInitState: ProcessAreaType = { ProcessAreaSearch: { isInit: false, processFacilityLabelArray: ProcessFacilityLabelArray, }, ProcessArea : { isInit : false, upHeadList1 : upHeadList1, processAreaList : processAreaList, processAreaCount : 0, excelList : [], isLoading : true, }, ProcessAreaDetail : { isInit : false, upHeadListFcltyImproveInfo : upHeadListFcltyImproveInfo, gridListFcltyImproveInfo : gridListFcltyImproveInfo, upHeadListProcessPopulation : upHeadListProcessPopulation, gridListProcessPopulation : gridListProcessPopulation, upHeadListProcessAreaPlan : upHeadListProcessAreaPlan, gridListProcessAreaPlan : gridListProcessAreaPlan, }, } // 상태 설정 함수 타입 정의 type SetStateFunction = (state: ProcessAreaType | ((state: ProcessAreaType) => ProcessAreaType)) => void; export type ProcessAreaStore = ProcessAreaType & ProcessAreaActions; export const processAreaReducer:(set:SetStateFunction)=>ProcessAreaActions=(set: SetStateFunction) => { return { /** * 시설정보 리스트 데이터 호출 * @param pageNo : 페이지 번호 * @param pageSize : 페이지 크기 */ searchProcessAreaList: async ( pageNo:number, pageSize:number, ctpvNm?:string, sggNm?:string, targetYear?:string) => { set((state: ProcessAreaType) => ({ ...state, ProcessArea: { ...state.ProcessArea, isLoading: true, }, })); const res = await fetchProcessAreaList(pageNo, pageSize, ctpvNm, sggNm, targetYear, set); res.data.forEach((item:ProcessAreaProps) => { item.fctCpc = item.fcltCpctSum; DataForm({ type: 'float1', column: 'fctCpc', item:item as unknown as Record}); }) const excelDownList: ExcelType[] = []; if(pageSize>5000){ res.data.forEach(item => { item.fctCpc = item.fctCpc ? parseFloat(item.fctCpc.toString().replace(/,/g, '')) : ''; excelDownList.push({ 시설코드: item.swtrmtFcltCd, 시설명: item.swtrmtFcltNm, 주소: item.location, "시설옹량(m³/일)": item.fctCpc, "증설계획기존(m³/일)": item.planSwageQntSumDt4, "증설계획현재(m³/일)": item.planSwageQntSum, "증설계획1단계(m³/일)": item.planSwageQntSumDc1, "증설계획2단계(m³/일)": item.planSwageQntSumDc2, "증설계획3단계(m³/일)": item.planSwageQntSumDc3, "증설계획4단계(m³/일)": item.planSwageQntSumDc4, "처리인구기존(인)": item.swtrmtPpltnCntDt4, "처리인구현재(인)": item.swtrmtPpltnCnt, "처리인구1단계(인)": item.swtrmtPpltnCntDc1, "처리인구2단계(인)": item.swtrmtPpltnCntDc2, "처리인구3단계(인)": item.swtrmtPpltnCntDc3, "처리인구4단계(인)": item.swtrmtPpltnCntDc4, "처리구역기존(km²)": item.swtrmtZoneAreaDt4, "처리구역현재(km²)": item.swtrmtZoneArea, "처리구역1단계(km²)": item.swtrmtZoneAreaDc1, "처리구역2단계(km²)": item.swtrmtZoneAreaDc2, "처리구역3단계(km²)": item.swtrmtZoneAreaDc3, "처리구역4단계(km²)": item.swtrmtZoneAreaDc4, 처리구역: item.trtDstr }); }); }else{ res.data.forEach(item => { item.fctCpc = item.fctCpc ? parseFloat(item.fctCpc.toString().replace(/,/g, '')) : ''; }) } set((state:ProcessAreaType) => ({ ...state, ProcessArea: pageSize<5000?{ ...state.ProcessArea, processAreaList: res.data, processAreaCount: res.count, isLoading : false, }:{ ...state.ProcessArea, excelList: excelDownList, isLoading : false, }, })) }, initModalData: async (swtrmtFcltCd:string) => { set((state: ProcessAreaType) => { const rtnData = state.ProcessArea.processAreaList.find((item: ProcessAreaProps) => item.swtrmtFcltCd === swtrmtFcltCd); if (rtnData) { upHeadListFcltyImproveInfo.forEach((head:TableUpperProps) => { if(head.id === 'planSwageQntSum' || head.id === 'swtrmtPpltnCnt' || head.id === 'swtrmtZoneArea') { head.title = rtnData.planYr? '현재\n(' + rtnData.planYr + '년)':head.title = '현재'; } else if(head.id === 'planSwageQntSumDc1' || head.id === 'swtrmtPpltnCntDc1' || head.id === 'swtrmtZoneAreaDc1') { head.title = rtnData.planYrDc1? '1단계\n(' + rtnData.planYrDc1 + '년)':head.title = '1단계'; } else if(head.id === 'planSwageQntSumDc2' || head.id === 'swtrmtPpltnCntDc2' || head.id === 'swtrmtZoneAreaDc2') { head.title = rtnData.planYrDc2? '2단계\n(' + rtnData.planYrDc2 + '년)':head.title = '2단계'; } else if(head.id === 'planSwageQntSumDc3' || head.id === 'swtrmtPpltnCntDc3' || head.id === 'swtrmtZoneAreaDc3') { head.title = rtnData.planYrDc3? '3단계\n(' + rtnData.planYrDc3 + '년)':head.title = '3단계'; } else if(head.id === 'planSwageQntSumDc4' || head.id === 'swtrmtPpltnCntDc4' || head.id === 'swtrmtZoneAreaDc4') { head.title = rtnData.planYrDc4? '4단계\n(' + rtnData.planYrDc4 + '년)':head.title = '4단계'; } else if(head.id === 'planSwageQntSumDt4' || head.id === 'swtrmtPpltnCntDt4' || head.id === 'swtrmtZoneAreaDt4') { head.title = rtnData.planYrDt4? '기승인\n4단계(' + rtnData.planYrDt4 + '년)':head.title = '기승인\n4단계'; } }); upHeadListProcessAreaPlan.forEach((head:TableUpperProps) => { if(head.id === 'planSwageQntSum' || head.id === 'swtrmtPpltnCnt' || head.id === 'swtrmtZoneArea') { head.title = rtnData.planYr? '현재\n(' + rtnData.planYr + '년)':head.title = '현재'; } else if(head.id === 'planSwageQntSumDc1' || head.id === 'swtrmtPpltnCntDc1' || head.id === 'swtrmtZoneAreaDc1') { head.title = rtnData.planYrDc1?'1단계\n(' + rtnData.planYrDc1 + '년)':head.title = '1단계'; } else if(head.id === 'planSwageQntSumDc2' || head.id === 'swtrmtPpltnCntDc2' || head.id === 'swtrmtZoneAreaDc2') { head.title = rtnData.planYrDc2?'2단계\n(' + rtnData.planYrDc2 + '년)':head.title = '2단계'; } else if(head.id === 'planSwageQntSumDc3' || head.id === 'swtrmtPpltnCntDc3' || head.id === 'swtrmtZoneAreaDc3') { head.title = rtnData.planYrDc3? '3단계\n(' + rtnData.planYrDc3 + '년)':head.title = '3단계'; } else if(head.id === 'planSwageQntSumDc4' || head.id === 'swtrmtPpltnCntDc4' || head.id === 'swtrmtZoneAreaDc4') { head.title = rtnData.planYrDc4?'4단계\n(' + rtnData.planYrDc4 + '년)':head.title = '4단계'; } else if(head.id === 'planSwageQntSumDt4' || head.id === 'swtrmtPpltnCntDt4' || head.id === 'swtrmtZoneAreaDt4') { head.title = rtnData.planYrDt4?'기승인\n4단계(' + rtnData.planYrDt4 + '년)':head.title = '기승인\n4단계'; } }); upHeadListProcessPopulation.forEach((head:TableUpperProps) => { if(head.id === 'planSwageQntSum' || head.id === 'swtrmtPpltnCnt' || head.id === 'swtrmtZoneArea') { head.title = rtnData.planYr?'현재\n(' + rtnData.planYr + '년)':head.title = '현재'; } else if(head.id === 'planSwageQntSumDc1' || head.id === 'swtrmtPpltnCntDc1' || head.id === 'swtrmtZoneAreaDc1') { head.title = rtnData.planYrDc1?'1단계\n(' + rtnData.planYrDc1 + '년)':head.title = '1단계'; } else if(head.id === 'planSwageQntSumDc2' || head.id === 'swtrmtPpltnCntDc2' || head.id === 'swtrmtZoneAreaDc2') { head.title = rtnData.planYrDc2?'2단계\n(' + rtnData.planYrDc2 + '년)':head.title = '2단계'; } else if(head.id === 'planSwageQntSumDc3' || head.id === 'swtrmtPpltnCntDc3' || head.id === 'swtrmtZoneAreaDc3') { head.title = rtnData.planYrDc3?'3단계\n(' + rtnData.planYrDc3 + '년)':head.title = '3단계'; } else if(head.id === 'planSwageQntSumDc4' || head.id === 'swtrmtPpltnCntDc4' || head.id === 'swtrmtZoneAreaDc4') { head.title = rtnData.planYrDc4?'4단계\n(' + rtnData.planYrDc4 + '년)':head.title = '4단계'; } else if(head.id === 'planSwageQntSumDt4' || head.id === 'swtrmtPpltnCntDt4' || head.id === 'swtrmtZoneAreaDt4') { head.title = rtnData.planYrDt4?'기승인\n4단계(' + rtnData.planYrDt4 + '년)':head.title = '기승인\n4단계'; } }); // 시설증설 계획 데이터 생성 const fcltyImproveInfo: FcltyImproveInfoProps = { planSwageQntSumDt4: rtnData.planSwageQntSumDt4, planSwageQntSum: rtnData.planSwageQntSum, planSwageQntSumDc1: rtnData.planSwageQntSumDc1, planSwageQntSumDc2: rtnData.planSwageQntSumDc2, planSwageQntSumDc3: rtnData.planSwageQntSumDc3, planSwageQntSumDc4: rtnData.planSwageQntSumDc4 }; // 처리인구 계획 데이터 생성 const processPopulation: ProcessPopulationProps = { swtrmtPpltnCntDt4: rtnData.swtrmtPpltnCntDt4, swtrmtPpltnCnt: rtnData.swtrmtPpltnCnt, swtrmtPpltnCntDc1: rtnData.swtrmtPpltnCntDc1, swtrmtPpltnCntDc2: rtnData.swtrmtPpltnCntDc2, swtrmtPpltnCntDc3: rtnData.swtrmtPpltnCntDc3, swtrmtPpltnCntDc4: rtnData.swtrmtPpltnCntDc4 }; // 처리구역 계획 데이터 생성 const processAreaPlan: ProcessAreaPlanProps = { swtrmtZoneAreaDt4: rtnData.swtrmtZoneAreaDt4, swtrmtZoneArea: rtnData.swtrmtZoneArea, swtrmtZoneAreaDc1: rtnData.swtrmtZoneAreaDc1, swtrmtZoneAreaDc2: rtnData.swtrmtZoneAreaDc2, swtrmtZoneAreaDc3: rtnData.swtrmtZoneAreaDc3, swtrmtZoneAreaDc4: rtnData.swtrmtZoneAreaDc4, trtDstr: rtnData.trtDstr }; return { ...state, ProcessAreaDetail: { ...state.ProcessAreaDetail, gridListFcltyImproveInfo: [fcltyImproveInfo], gridListProcessPopulation: [processPopulation], gridListProcessAreaPlan: [processAreaPlan] } }; } return state; }); } } }