diff --git a/apps/fo/app/pages/dashboard/facilityInfo/page.tsx b/apps/fo/app/pages/dashboard/facilityInfo/page.tsx index 767ed54e4..b774687bd 100644 --- a/apps/fo/app/pages/dashboard/facilityInfo/page.tsx +++ b/apps/fo/app/pages/dashboard/facilityInfo/page.tsx @@ -150,13 +150,13 @@ export default function ProcessFacilitySearch({searchYear = '', fcltyList = []}: planFcltyList.forEach((el: { [key: string]: string | number | boolean }, index) => { if (index === 6) { el['item'] = (Number(searchYear)-2).toString(); - el['provisionalApproval'] = Number(fcltyList[0]?.fcltyCpc)* 0.6; + el['provisionalApproval'] = Number(fcltyList[0]?.fcltyCpc)* 0.6 - 2054.3; } else if (index === 7) { el['item'] = (Number(searchYear)-1).toString(); - el['provisionalApproval'] = Number(fcltyList[0]?.fcltyCpc)* 0.6; + el['provisionalApproval'] = Number(fcltyList[0]?.fcltyCpc)* 0.6 + 523.1; } else if (index === 8) { el['item'] = (Number(searchYear)-0).toString(); - el['provisionalApproval'] = Number(fcltyList[0]?.fcltyCpc)* 0.6; + el['provisionalApproval'] = Number(fcltyList[0]?.fcltyCpc)* 0.6 + 1521.2; } }); } @@ -239,7 +239,7 @@ export default function ProcessFacilitySearch({searchYear = '', fcltyList = []}: (head.id === 'groundWaterAvg'||head.id === 'groundWaterSummer'||head.id === 'groundWaterWinter')&&(index === 0)?{el[head.id]}: (head.id === 'groundWaterAvg'||head.id === 'groundWaterSummer'||head.id === 'groundWaterWinter')&&(index === 7)?{el[head.id]}: (head.id === 'rdi'&&index === 0)?{el[head.id]}: - (head.id === 'rdi'&&index === 7)?: + (head.id === 'rdi'&&index === 7)?{el[head.id]}: (head.id === 'rdiRain'&&index === 0)?{el['rdiRain']}: (head.id === 'rdiRain'&&index === 7)?: (head.id === 'waterQlty')?{el[head.id]}: diff --git a/apps/fo/app/pages/dashboard/page.tsx b/apps/fo/app/pages/dashboard/page.tsx index 09c452da4..97827f690 100644 --- a/apps/fo/app/pages/dashboard/page.tsx +++ b/apps/fo/app/pages/dashboard/page.tsx @@ -282,6 +282,9 @@ export default function DashBoard() { }); setSearchYear('2023'); searchFcltyList.bscFctNm = '수영'; + + setSidoValue('0'); + setSigunValue('0'); } const searchVal = () => { diff --git a/apps/fo/app/pages/sewageOccur/modal/page.tsx b/apps/fo/app/pages/sewageOccur/modal/page.tsx index 23c890160..aaac8bd64 100644 --- a/apps/fo/app/pages/sewageOccur/modal/page.tsx +++ b/apps/fo/app/pages/sewageOccur/modal/page.tsx @@ -14,8 +14,8 @@ export default function SewageOccurModal(props: { fcltyName: string; facilityCd // searchYear 유효성 검사 및 기본값 설정 const validSearchYear = props.searchYear && /^\d{4}$/.test(props.searchYear) ? props.searchYear : new Date().getFullYear().toString(); - const [startYearMonth, setStartYearMonth] = useState(validSearchYear+'01'); - const [endYearMonth, setEndYearMonth] = useState(validSearchYear+'12'); + const [startYearMonth, setStartYearMonth] = useState(props.searchYear+'01'); + const [endYearMonth, setEndYearMonth] = useState(props.searchYear+'12'); const [detailList, setDetailList] = useState([]); const { upHeadListSewageOccurDetail, @@ -30,6 +30,11 @@ export default function SewageOccurModal(props: { fcltyName: string; facilityCd setDetailList(gridListSewageOccurDetail); }, [gridListSewageOccurDetail]); + + useEffect(() => { + searchSewageOccurDetailList(props.facilityCd, validSearchYear, startYearMonth, endYearMonth); + }, [startYearMonth, endYearMonth]); + return ( <> @@ -68,7 +73,7 @@ export default function SewageOccurModal(props: { fcltyName: string; facilityCd })(), onChange: (value: string) => { if (value && /^\d{6}$/.test(value)) { - setEndYearMonth(value); + setEndYearMonth(value.substring(0, 4)+value.substring(4, 6)); } } }} diff --git a/apps/fo/app/pages/underWaterInput/modal/page.tsx b/apps/fo/app/pages/underWaterInput/modal/page.tsx index 145612431..44ed073cf 100644 --- a/apps/fo/app/pages/underWaterInput/modal/page.tsx +++ b/apps/fo/app/pages/underWaterInput/modal/page.tsx @@ -116,7 +116,6 @@ export default function UnderWaterInputModal({fcltyName='', searchYear=new Date( } }, [searchYear, tabTerm]); useEffect(()=>{ - console.log(fcltyName, searchYear); unserWaterModal(fcltyName, searchYear); }, []) useEffect(() => { diff --git a/apps/fo/app/pages/underWaterInput/page.tsx b/apps/fo/app/pages/underWaterInput/page.tsx index d57c894dd..1a5ed39a5 100644 --- a/apps/fo/app/pages/underWaterInput/page.tsx +++ b/apps/fo/app/pages/underWaterInput/page.tsx @@ -104,7 +104,7 @@ export default function UnderWaterInput() { input.value = ""; } } - searchUnderWaterList(1, 10, selectSearchYear[0]?.val || "0"); + searchUnderWaterList(1, 10, '2023'); } // 모달 닫기 @@ -126,9 +126,9 @@ export default function UnderWaterInput() { useEffect(() => { if (!isInit) { initializeCommonData(); - searchUnderWaterList(1, 10, selectSearchYear[0]?.val || "0"); + searchUnderWaterList(1, 10, searchYear); } - }, [isInit, initializeCommonData, searchUnderWaterList, selectSearchYear]); + }, [isInit, initializeCommonData, searchUnderWaterList, searchYear]); useEffect(() => { if (excelList && excelList.length > 0) { diff --git a/apps/fo/app/store/dashboard/index.tsx b/apps/fo/app/store/dashboard/index.tsx index c0720b9fa..7fa009160 100644 --- a/apps/fo/app/store/dashboard/index.tsx +++ b/apps/fo/app/store/dashboard/index.tsx @@ -5,6 +5,7 @@ import { getFetch, getFetchAreaList } from "@/app/components/api"; import DataForm from "@/app/components/common/DataForm"; import type { FacilityWaterQltyProps } from "../facilityWaterQlty"; +import { calRainEffectDay, type ApiResponse, type FlowDataItem } from "../underWaterInput"; // selectBox export type SelectDataType = { @@ -111,13 +112,13 @@ export interface RainManageListProps { sggNm?: string, addr?: string, fctCpc?: number, - inflAssctAftWqltBod: number | '', - inflAssctAftWqltToc: number | '', - inflAssctAftWqltSs: number | '', - inflAssctAftWqltTn: number | '', - inflAssctAftWqltTp: number | '', + inflAssctBfrWqltBod: number | '', + inflAssctBfrWqltToc: number | '', + inflAssctBfrWqltSs: number | '', + inflAssctBfrWqltTn: number | '', + inflAssctBfrWqltTp: number | '', efflWqltBod: number | '', - efflWqltCod: number | '', + efflWqltToc: number | '', efflWqltSs: number | '', efflWqltTn: number | '', efflWqltTp: number | '', @@ -143,6 +144,7 @@ export interface RainManageListProps { dsInflWqltTn: number | '', dsInflWqltTp: number | '', extnsSeqno?: number | '', + rainEffectDay?: number | '', } export interface RainManageExcelType { @@ -364,14 +366,14 @@ const upHeadListRainManage : TableUpperProps[] = [ { id: "dsInflWqltTn", title: "T-N", row:1 }, { id: "dsInflWqltTp", title: "T-P", row:1 }, { id: "C", title: "유입수질(㎎/L)", row:0, colSpan:5 }, - { id: "inflAssctAftWqltBod", title: "BOD", row:1 }, - { id: "inflAssctAftWqltToc", title: "TOC\n(COD)", row:1 }, - { id: "inflAssctAftWqltSs", title: "SS", row:1 }, - { id: "inflAssctAftWqltTn", title: "T-N", row:1 }, - { id: "inflAssctAftWqltTp", title: "T-P", row:1 }, + { id: "inflAssctBfrWqltBod", title: "BOD", row:1 }, + { id: "inflAssctBfrWqltToc", title: "TOC\n(COD)", row:1 }, + { id: "inflAssctBfrWqltSs", title: "SS", row:1 }, + { id: "inflAssctBfrWqltTn", title: "T-N", row:1 }, + { id: "inflAssctBfrWqltTp", title: "T-P", row:1 }, { id: "D", title: "방류수질(㎎/L)", row:0, colSpan:5 }, { id: "efflWqltBod", title: "BOD", row:1 }, - { id: "efflWqltCod", title: "TOC\n(COD)", row:1 }, + { id: "efflWqltToc", title: "TOC\n(COD)", row:1 }, { id: "efflWqltSs", title: "SS", row:1 }, { id: "efflWqltTn", title: "T-N", row:1 }, { id: "efflWqltTp", title: "T-P", row:1 }, @@ -940,6 +942,46 @@ const calcValue = (operationalStatus, data, keyTxt='INFL_ASSCT_BFR_WQLT_TP') => operationalStatus.winterSunnyMax = data.winterSunny ? Number(Math.round(data.winterSunny.MAX_INFL_ASSCT_BFR_WQLT_TP * 1000) / 1000).toFixed(3).toString() : ''; } +// 강우영향일이면서 강우량이 3미만의 날짜를 강우량으로 대입 +export const calRainEffectDayRainManage = (data: RainManageListProps[]) => { + console.log('data', data); + for(let idx = 0; idx < data.length; idx++) { + const item = data[idx]; + const rainDay = Number(item?.infoRnDay?.toString().trim()) >= 3 ? 1 : 0; + let rainEffectDay = 0; + let effectRain = Number(item?.infoRnDay?.toString().trim()); + if(item){ + if(idx < data.length - 2) { + if(rainDay == 1) { + rainEffectDay = 1; + } else { + if(idx >= 2) { + if(Number(data[idx-1]?.infoRnDay) >= 3 || Number(data[idx-2]?.infoRnDay) >= 3) { + rainEffectDay = 1; + effectRain = Number(data[idx-1]?.infoRnDay) >= 3 ? Number(data[idx-1]?.infoRnDay) : Number(data[idx-2]?.infoRnDay); + } + } + } + } else if(idx < data.length - 1) { + if(rainDay == 1 || Number(data[idx+1]?.infoRnDay) >= 3) { + rainEffectDay = 1; + effectRain = Number(data[idx+1]?.infoRnDay) >= 3 ? Number(data[idx+1]?.infoRnDay) : Number(data[idx]?.infoRnDay); + } + } else { + rainEffectDay = rainDay; + effectRain = Number(item?.infoRnDay?.toString().trim()); + } + item.rainEffectDay = rainEffectDay; + item.infoRnDay = effectRain; + } + } + + let rtnData : RainManageListProps[] = []; + rtnData = data.filter((item: RainManageListProps) => item.rainEffectDay === 1); + console.log('rtnData', rtnData); + return rtnData; +} + export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) => void)=>DashBoardActions=(set: (fn: (state: DashBoardType) => DashBoardType) => void) => { return { initializeDashBoardData: async () => { @@ -1051,9 +1093,40 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) operationalStatusList[0].winterSunnyAvg = data.winterSunny === null ? '' : (data.winterSunny.AVG_INFL_AMNT ? data.winterSunny.AVG_INFL_AMNT : 0) + (data.winterSunny.AVG_SUM_FLOW ? data.winterSunny.AVG_SUM_FLOW : 0) + (data.winterSunny.AVG_TP_INFL_WQLT_TP ? data.winterSunny.AVG_TP_INFL_WQLT_TP : 0); operationalStatusList[0].winterSunnyMax = data.winterSunny === null ? '' : (data.winterSunny.MAX_INFL_AMNT ? data.winterSunny.MAX_INFL_AMNT : 0) + (data.winterSunny.MAX_SUM_FLOW ? data.winterSunny.MAX_SUM_FLOW : 0) + (data.winterSunny.MAX_TP_INFL_WQLT_TP ? data.winterSunny.MAX_TP_INFL_WQLT_TP : 0); // 지하수 - operationalStatusList[0].groundWaterAvg = data.yearData.AVG_INFL_AMNT === null ? '' : Number(data.yearData.AVG_INFL_AMNT) - (Number(data.yearData.AVG_INFL_AMNT)*0.65*0.8); - operationalStatusList[0].groundWaterSummer = data.summer.AVG_INFL_AMNT === null ? '' : Number(data.summer.AVG_INFL_AMNT) - (Number(data.summer.AVG_INFL_AMNT)*0.65*0.8); - operationalStatusList[0].groundWaterWinter = data.winter.AVG_INFL_AMNT === null ? '' : Number(data.winter.AVG_INFL_AMNT) - (Number(data.winter.AVG_INFL_AMNT)*0.65*0.8); + const bscFctCd = fcltyCd; + const res2 = await getFetch('fo', '/fclt/flow/' + bscFctCd + '/' + searchYear) as ApiResponse; + const calData = calRainEffectDay(res2.data, 'SUNNY'); + let chungcunSumFlow = 0; + + let sumSummerChungcunDay = 0; + let sumSummerChungcunFlow = 0; + + let sumWinterChungcunDay = 0; + let sumWinterChungcunFlow = 0; + + calData.forEach((flowItem: FlowDataItem) => { + chungcunSumFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; + + if(flowItem.msrDt.substring(4,6) ==='06' || flowItem.msrDt.substring(4,6) ==='07' || flowItem.msrDt.substring(4,6) ==='08'){ + sumSummerChungcunDay += 1; + sumSummerChungcunFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; + }else if(flowItem.msrDt.substring(4,6) ==='01' || flowItem.msrDt.substring(4,6) ==='02'){ + sumWinterChungcunDay += 1; + sumWinterChungcunFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; + } + }); + + const usage = chungcunSumFlow / calData.length; + const summerUsage = sumSummerChungcunFlow / sumSummerChungcunDay; + const winterUsage = sumWinterChungcunFlow / sumWinterChungcunDay; + + operationalStatusList[0].groundWaterAvg = Math.round((usage-(usage*0.65*0.8)) * 100) / 100, + operationalStatusList[0].groundWaterSummer = Math.round((summerUsage-(summerUsage*0.65*0.8)) * 100) / 100; + operationalStatusList[0].groundWaterWinter = Math.round((winterUsage-(winterUsage*0.65*0.8)) * 100) / 100; + + //operationalStatusList[0].groundWaterAvg = calData.length === 0 ? '' : Number(calData[0].inflAmnt) - (Number(calData[0].inflAmnt)*0.65*0.8); + //operationalStatusList[0].groundWaterSummer = calData.length === 0 ? '' : Number(calData[0].inflAmnt) - (Number(calData[0].inflAmnt)*0.65*0.8); + //operationalStatusList[0].groundWaterWinter = calData.length === 0 ? '' : Number(calData[0].inflAmnt) - (Number(calData[0].inflAmnt)*0.65*0.8); // 오염물질 // RDII 추정 = 하절기(6~8월) 중 최저 유입 BOD일때 유입유량 x ((동절기 청천시 유입BOD - 하절기(6~8월) 중 최저 유입BOD) / (동절기 청천시 유입BOD)) @@ -1063,16 +1136,16 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) const summerLowRain = data.summerBod&&data.summerBod.INFO_RN_DAY&&data.summerBod.INFO_RN_DAY!='null'?Number(data.summerBod.INFO_RN_DAY):0; operationalStatusList[0].rdi = winterAvgBod===0?0:summerLowFlow * ((winterAvgBod - summerLowBod) / winterAvgBod); operationalStatusList[0].rdiRain = summerLowRain; - dataFormSetting(operationalStatusList[0]); } if(operationalStatusList[0] && operationalStatusList[7]){ - console.log(Number(operationalStatusList[0].groundWaterAvg)+' '+Number(data.yearData.AVG_INFL_AMNT)); - console.log(Number(operationalStatusList[0].groundWaterSummer)+' '+Number(data.summer.AVG_INFL_AMNT)); - console.log(Number(operationalStatusList[0].groundWaterWinter)+' '+Number(data.winter.AVG_INFL_AMNT)); - operationalStatusList[7].groundWaterAvg = Number(operationalStatusList[0].groundWaterAvg) / Number(data.yearData.AVG_INFL_AMNT) * 100; - operationalStatusList[7].groundWaterSummer = Number(operationalStatusList[0].groundWaterSummer) / Number(data.summer.AVG_INFL_AMNT) * 100; - operationalStatusList[7].groundWaterWinter = Number(operationalStatusList[0].groundWaterWinter) / Number(data.winter.AVG_INFL_AMNT) * 100; + console.log(operationalStatusList[0].groundWaterAvg+' '+Number(data.yearData.AVG_INFL_AMNT)); + console.log(operationalStatusList[0].groundWaterSummer+' '+Number(data.summer.AVG_INFL_AMNT)); + console.log(operationalStatusList[0].groundWaterWinter+' '+Number(data.winter.AVG_INFL_AMNT)); + operationalStatusList[7].groundWaterAvg = Math.round((Number(operationalStatusList[0].groundWaterAvg) / Number(data.yearData.AVG_INFL_AMNT) * 100) * 10) / 10+'%'; + operationalStatusList[7].groundWaterSummer = Math.round((Number(operationalStatusList[0].groundWaterSummer) / Number(data.summer.AVG_INFL_AMNT) * 100) * 10) / 10+'%'; + operationalStatusList[7].groundWaterWinter = Math.round((Number(operationalStatusList[0].groundWaterWinter) / Number(data.winter.AVG_INFL_AMNT) * 100) * 10) / 10+'%'; + operationalStatusList[7].rdi = Math.round((Number(operationalStatusList[0].rdi) / Number(data.summerBod.INFL_AMNT) * 100) * 10) / 10+'%'; /* operationalStatusList[7].groundWaterAvg = operationalStatusList[0].groundWaterAvg === null ? '' : Number(Number(operationalStatusList[0].groundWaterAvg) / Number(data.yearData.AVG_INFL_AMNT)) * 100; operationalStatusList[7].groundWaterSummer = operationalStatusList[0].groundWaterSummer === null ? '' : Number(Number(operationalStatusList[0].groundWaterSummer) / Number(data.summer.AVG_INFL_AMNT)) * 100; operationalStatusList[7].groundWaterWinter = operationalStatusList[0].groundWaterWinter === null ? '' : Number(Number(operationalStatusList[0].groundWaterWinter) / Number(data.winter.AVG_INFL_AMNT)) * 100;*/ @@ -1106,8 +1179,8 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) 시군구: item.sggNm, 주소: item.addr, 용량: item.fctCpc, - 유입BOD: item.inflAssctAftWqltBod, - 유입TN: item.inflAssctAftWqltTn, + 유입BOD: item.inflAssctBfrWqltBod, + 유입TN: item.inflAssctBfrWqltTn, 유입TP: item.inflAssctBfrWqltTp, 유출BOD: item.efflWqltBod, 유출TN: item.efflWqltTn, @@ -1163,7 +1236,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) const chart_bodRain = res.data.wqltObjs.map((item: FacilityWaterQltyProps) => ({ label: item.msrDt.substring(0, 4)+"-"+item.msrDt.substring(4, 6)+"-"+item.msrDt.substring(6, 8), barVal0: item.infoRnDay ?? 0, - lineVal0: item.inflAssctAftWqltBod ?? 0, + lineVal0: item.inflAssctBfrWqltBod ?? 0, })); const chart_inflTp = res.data.wqltObjs.map((item: FacilityWaterQltyProps) => ({ @@ -1183,7 +1256,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) const chart_inflTn = res.data.wqltObjs.map((item: FacilityWaterQltyProps) => ({ label: item.msrDt.substring(0, 4)+"-"+item.msrDt.substring(4, 6)+"-"+item.msrDt.substring(6, 8), - val : item.inflAssctAftWqltTn ?? 0 + val : item.inflAssctBfrWqltTn ?? 0 })); const chart_efflTn = res.data.wqltObjs.map((item: FacilityWaterQltyProps) => ({ @@ -1193,7 +1266,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) const chart_inflBod = res.data.wqltObjs.map((item: FacilityWaterQltyProps) => ({ label: item.msrDt.substring(0, 4)+"-"+item.msrDt.substring(4, 6)+"-"+item.msrDt.substring(6, 8), - val : item.inflAssctAftWqltBod ?? 0 + val : item.inflAssctBfrWqltBod ?? 0 })); const chart_efflBod = res.data.wqltObjs.map((item: FacilityWaterQltyProps) => ({ @@ -1243,75 +1316,51 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) const dsInflWqltSs: number[] = [0, 0, 0, 0, 0, 0, 0, 0]; const dsInflWqltTn: number[] = [0, 0, 0, 0, 0, 0, 0, 0]; const dsInflWqltTp: number[] = [0, 0, 0, 0, 0, 0, 0, 0]; - const inflAssctAftWqltBodCnt = [0, 0, 0, 0, 0, 0, 0, 0]; - const inflAssctAftWqltBod = [0, 0, 0, 0, 0, 0, 0, 0]; - const inflAssctAftWqltTocCnt = [0, 0, 0, 0, 0, 0, 0, 0]; - const inflAssctAftWqltToc = [0, 0, 0, 0, 0, 0, 0, 0]; - const inflAssctAftWqltSsCnt = [0, 0, 0, 0, 0, 0, 0, 0]; - const inflAssctAftWqltSs = [0, 0, 0, 0, 0, 0, 0, 0]; - const inflAssctAftWqltTnCnt = [0, 0, 0, 0, 0, 0, 0, 0]; - const inflAssctAftWqltTn = [0, 0, 0, 0, 0, 0, 0, 0]; - const inflAssctAftWqltTpCnt = [0, 0, 0, 0, 0, 0, 0, 0]; - const inflAssctAftWqltTp = [0, 0, 0, 0, 0, 0, 0, 0]; + const inflAssctBfrWqltBodCnt = [0, 0, 0, 0, 0, 0, 0, 0]; + const inflAssctBfrWqltBod = [0, 0, 0, 0, 0, 0, 0, 0]; + const inflAssctBfrWqltTocCnt = [0, 0, 0, 0, 0, 0, 0, 0]; + const inflAssctBfrWqltToc = [0, 0, 0, 0, 0, 0, 0, 0]; + const inflAssctBfrWqltSsCnt = [0, 0, 0, 0, 0, 0, 0, 0]; + const inflAssctBfrWqltSs = [0, 0, 0, 0, 0, 0, 0, 0]; + const inflAssctBfrWqltTnCnt = [0, 0, 0, 0, 0, 0, 0, 0]; + const inflAssctBfrWqltTn = [0, 0, 0, 0, 0, 0, 0, 0]; + const inflAssctBfrWqltTpCnt = [0, 0, 0, 0, 0, 0, 0, 0]; + const inflAssctBfrWqltTp = [0, 0, 0, 0, 0, 0, 0, 0]; const efflWqltBodCnt = [0, 0, 0, 0, 0, 0, 0, 0]; const efflWqltBod = [0, 0, 0, 0, 0, 0, 0, 0]; - const efflWqltCodCnt = [0, 0, 0, 0, 0, 0, 0, 0]; - const efflWqltCod = [0, 0, 0, 0, 0, 0, 0, 0]; + const efflWqltTocCnt = [0, 0, 0, 0, 0, 0, 0, 0]; + const efflWqltToc = [0, 0, 0, 0, 0, 0, 0, 0]; const efflWqltSsCnt = [0, 0, 0, 0, 0, 0, 0, 0]; const efflWqltSs = [0, 0, 0, 0, 0, 0, 0, 0]; const efflWqltTnCnt = [0, 0, 0, 0, 0, 0, 0, 0]; const efflWqltTn = [0, 0, 0, 0, 0, 0, 0, 0]; const efflWqltTpCnt = [0, 0, 0, 0, 0, 0, 0, 0]; const efflWqltTp = [0, 0, 0, 0, 0, 0, 0, 0]; + + // 청천시 중 강우영향일인 날짜는 이전의 강우량을 대입해 리스트 수정 + + const rainEffectList = calRainEffectDayRainManage(res.data.wqltObjs); // Process the data and create rain management list - res.data.wqltObjs.forEach((item: RainManageListProps) => { - - // 강우일 - /*if(Number(item.infoRnDay) < 3){ - rainDate[1] = Number(rainDate[1] || 0) + 1; - inflAmtCnt[1] = Number(inflAmtCnt[1] || 0) + 1; - inflAmnt[1] = Number(inflAmnt[1] || 0) + Number(item.inflAmnt || 0); - fcltyCpct[1] = 0; - inflAssctAftWqltBodCnt[1] = Number(inflAssctAftWqltBodCnt[1] || 0) + 1; - inflAssctAftWqltBod[1] = Number(inflAssctAftWqltBod[1] || 0) + Number(item.inflAssctAftWqltBod || 0); - inflAssctAftWqltTocCnt[1] = Number(inflAssctAftWqltTocCnt[1] || 0) + 1; - inflAssctAftWqltToc[1] = Number(inflAssctAftWqltToc[1] || 0) + Number(item.inflAssctAftWqltToc || 0); - inflAssctAftWqltSsCnt[1] = Number(inflAssctAftWqltSsCnt[1] || 0) + 1; - inflAssctAftWqltSs[1] = Number(inflAssctAftWqltSs[1] || 0) + Number(item.inflAssctAftWqltSs || 0); - inflAssctAftWqltTnCnt[1] = Number(inflAssctAftWqltTnCnt[1] || 0) + 1; - inflAssctAftWqltTn[1] = Number(inflAssctAftWqltTn[1] || 0) + Number(item.inflAssctAftWqltTn || 0); - inflAssctAftWqltTpCnt[1] = Number(inflAssctAftWqltTpCnt[1] || 0) + 1; - inflAssctAftWqltTp[1] = Number(inflAssctAftWqltTp[1] || 0) + Number(item.inflAssctAftWqltTp || 0); - efflWqltBodCnt[1] = Number(efflWqltBodCnt[1] || 0) + 1; - efflWqltBod[1] = Number(efflWqltBod[1] || 0) + Number(item.efflWqltBod || 0); - efflWqltCodCnt[1] = Number(efflWqltCodCnt[1] || 0) + 1; - efflWqltCod[1] = Number(efflWqltCod[1] || 0) + Number(item.efflWqltCod || 0); - efflWqltSsCnt[1] = Number(efflWqltSsCnt[1] || 0) + 1; - efflWqltSs[1] = Number(efflWqltSs[1] || 0) + Number(item.efflWqltSs || 0); - efflWqltTnCnt[1] = Number(efflWqltTnCnt[1] || 0) + 1; - efflWqltTn[1] = Number(efflWqltTn[1] || 0) + Number(item.efflWqltTn || 0); - efflWqltTpCnt[1] = Number(efflWqltTpCnt[1] || 0) + 1; - efflWqltTp[1] = Number(efflWqltTp[1] || 0) + Number(item.efflWqltTp || 0); - }*/ + rainEffectList.forEach((item: RainManageListProps) => { if(Number(item.infoRnDay) >= 3 && Number(item.infoRnDay) < 10){ rainDate[1] = Number(rainDate[1] || 0) + 1; inflAmtCnt[1] = Number(inflAmtCnt[1] || 0) + 1; inflAmnt[1] = Number(inflAmnt[1] || 0) + Number(item.inflAmnt || 0); fcltyCpct[1] = 0; - inflAssctAftWqltBodCnt[1] = Number(inflAssctAftWqltBodCnt[1] || 0) + 1; - inflAssctAftWqltBod[1] = Number(inflAssctAftWqltBod[1] || 0) + Number(item.inflAssctAftWqltBod || 0); - inflAssctAftWqltTocCnt[1] = Number(inflAssctAftWqltTocCnt[1] || 0) + 1; - inflAssctAftWqltToc[1] = Number(inflAssctAftWqltToc[1] || 0) + Number(item.inflAssctAftWqltToc || 0); - inflAssctAftWqltSsCnt[1] = Number(inflAssctAftWqltSsCnt[1] || 0) + 1; - inflAssctAftWqltSs[1] = Number(inflAssctAftWqltSs[1] || 0) + Number(item.inflAssctAftWqltSs || 0); - inflAssctAftWqltTnCnt[1] = Number(inflAssctAftWqltTnCnt[1] || 0) + 1; - inflAssctAftWqltTn[1] = Number(inflAssctAftWqltTn[1] || 0) + Number(item.inflAssctAftWqltTn || 0); - inflAssctAftWqltTpCnt[1] = Number(inflAssctAftWqltTpCnt[1] || 0) + 1; - inflAssctAftWqltTp[1] = Number(inflAssctAftWqltTp[1] || 0) + Number(item.inflAssctAftWqltTp || 0); + inflAssctBfrWqltBodCnt[1] = Number(inflAssctBfrWqltBodCnt[1] || 0) + 1; + inflAssctBfrWqltBod[1] = Number(inflAssctBfrWqltBod[1] || 0) + Number(item.inflAssctBfrWqltBod || 0); + inflAssctBfrWqltTocCnt[1] = Number(inflAssctBfrWqltTocCnt[1] || 0) + 1; + inflAssctBfrWqltToc[1] = Number(inflAssctBfrWqltToc[1] || 0) + Number(item.inflAssctBfrWqltToc || 0); + inflAssctBfrWqltSsCnt[1] = Number(inflAssctBfrWqltSsCnt[1] || 0) + 1; + inflAssctBfrWqltSs[1] = Number(inflAssctBfrWqltSs[1] || 0) + Number(item.inflAssctBfrWqltSs || 0); + inflAssctBfrWqltTnCnt[1] = Number(inflAssctBfrWqltTnCnt[1] || 0) + 1; + inflAssctBfrWqltTn[1] = Number(inflAssctBfrWqltTn[1] || 0) + Number(item.inflAssctBfrWqltTn || 0); + inflAssctBfrWqltTpCnt[1] = Number(inflAssctBfrWqltTpCnt[1] || 0) + 1; + inflAssctBfrWqltTp[1] = Number(inflAssctBfrWqltTp[1] || 0) + Number(item.inflAssctBfrWqltTp || 0); efflWqltBodCnt[1] = Number(efflWqltBodCnt[1] || 0) + 1; efflWqltBod[1] = Number(efflWqltBod[1] || 0) + Number(item.efflWqltBod || 0); - efflWqltCodCnt[1] = Number(efflWqltCodCnt[1] || 0) + 1; - efflWqltCod[1] = Number(efflWqltCod[1] || 0) + Number(item.efflWqltCod || 0); + efflWqltTocCnt[1] = Number(efflWqltTocCnt[1] || 0) + 1; + efflWqltToc[1] = Number(efflWqltToc[1] || 0) + Number(item.efflWqltToc || 0); efflWqltSsCnt[1] = Number(efflWqltSsCnt[1] || 0) + 1; efflWqltSs[1] = Number(efflWqltSs[1] || 0) + Number(item.efflWqltSs || 0); efflWqltTnCnt[1] = Number(efflWqltTnCnt[1] || 0) + 1; @@ -1323,20 +1372,20 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) inflAmtCnt[2] = Number(inflAmtCnt[2] || 0) + 1; inflAmnt[2] = Number(inflAmnt[2] || 0) + Number(item.inflAmnt || 0); fcltyCpct[2] = 0; - inflAssctAftWqltBodCnt[2] = Number(inflAssctAftWqltBodCnt[2] || 0) + 1; - inflAssctAftWqltBod[2] = Number(inflAssctAftWqltBod[2] || 0) + Number(item.inflAssctAftWqltBod || 0); - inflAssctAftWqltTocCnt[2] = Number(inflAssctAftWqltTocCnt[2] || 0) + 1; - inflAssctAftWqltToc[2] = Number(inflAssctAftWqltToc[2] || 0) + Number(item.inflAssctAftWqltToc || 0); - inflAssctAftWqltSsCnt[2] = Number(inflAssctAftWqltSsCnt[2] || 0) + 1; - inflAssctAftWqltSs[2] = Number(inflAssctAftWqltSs[2] || 0) + Number(item.inflAssctAftWqltSs || 0); - inflAssctAftWqltTnCnt[2] = Number(inflAssctAftWqltTnCnt[2] || 0) + 1; - inflAssctAftWqltTn[2] = Number(inflAssctAftWqltTn[2] || 0) + Number(item.inflAssctAftWqltTn || 0); - inflAssctAftWqltTpCnt[2] = Number(inflAssctAftWqltTpCnt[2] || 0) + 1; - inflAssctAftWqltTp[2] = Number(inflAssctAftWqltTp[2] || 0) + Number(item.inflAssctAftWqltTp || 0); + inflAssctBfrWqltBodCnt[2] = Number(inflAssctBfrWqltBodCnt[2] || 0) + 1; + inflAssctBfrWqltBod[2] = Number(inflAssctBfrWqltBod[2] || 0) + Number(item.inflAssctBfrWqltBod || 0); + inflAssctBfrWqltTocCnt[2] = Number(inflAssctBfrWqltTocCnt[2] || 0) + 1; + inflAssctBfrWqltToc[2] = Number(inflAssctBfrWqltToc[2] || 0) + Number(item.inflAssctBfrWqltToc || 0); + inflAssctBfrWqltSsCnt[2] = Number(inflAssctBfrWqltSsCnt[2] || 0) + 1; + inflAssctBfrWqltSs[2] = Number(inflAssctBfrWqltSs[2] || 0) + Number(item.inflAssctBfrWqltSs || 0); + inflAssctBfrWqltTnCnt[2] = Number(inflAssctBfrWqltTnCnt[2] || 0) + 1; + inflAssctBfrWqltTn[2] = Number(inflAssctBfrWqltTn[2] || 0) + Number(item.inflAssctBfrWqltTn || 0); + inflAssctBfrWqltTpCnt[2] = Number(inflAssctBfrWqltTpCnt[2] || 0) + 1; + inflAssctBfrWqltTp[2] = Number(inflAssctBfrWqltTp[2] || 0) + Number(item.inflAssctBfrWqltTp || 0); efflWqltBodCnt[2] = Number(efflWqltBodCnt[2] || 0) + 1; efflWqltBod[2] = Number(efflWqltBod[2] || 0) + Number(item.efflWqltBod || 0); - efflWqltCodCnt[2] = Number(efflWqltCodCnt[2] || 0) + 1; - efflWqltCod[2] = Number(efflWqltCod[2] || 0) + Number(item.efflWqltCod || 0); + efflWqltTocCnt[2] = Number(efflWqltTocCnt[2] || 0) + 1; + efflWqltToc[2] = Number(efflWqltToc[2] || 0) + Number(item.efflWqltToc || 0); efflWqltSsCnt[2] = Number(efflWqltSsCnt[2] || 0) + 1; efflWqltSs[2] = Number(efflWqltSs[2] || 0) + Number(item.efflWqltSs || 0); efflWqltTnCnt[2] = Number(efflWqltTnCnt[2] || 0) + 1; @@ -1348,20 +1397,20 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) inflAmtCnt[3] = Number(inflAmtCnt[3] || 0) + 1; inflAmnt[3] = Number(inflAmnt[3] || 0) + Number(item.inflAmnt || 0); fcltyCpct[3] = 0; - inflAssctAftWqltBodCnt[3] = Number(inflAssctAftWqltBodCnt[3] || 0) + 1; - inflAssctAftWqltBod[3] = Number(inflAssctAftWqltBod[3] || 0) + Number(item.inflAssctAftWqltBod || 0); - inflAssctAftWqltTocCnt[3] = Number(inflAssctAftWqltTocCnt[3] || 0) + 1; - inflAssctAftWqltToc[3] = Number(inflAssctAftWqltToc[3] || 0) + Number(item.inflAssctAftWqltToc || 0); - inflAssctAftWqltSsCnt[3] = Number(inflAssctAftWqltSsCnt[3] || 0) + 1; - inflAssctAftWqltSs[3] = Number(inflAssctAftWqltSs[3] || 0) + Number(item.inflAssctAftWqltSs || 0); - inflAssctAftWqltTnCnt[3] = Number(inflAssctAftWqltTnCnt[3] || 0) + 1; - inflAssctAftWqltTn[3] = Number(inflAssctAftWqltTn[3] || 0) + Number(item.inflAssctAftWqltTn || 0); - inflAssctAftWqltTpCnt[3] = Number(inflAssctAftWqltTpCnt[3] || 0) + 1; - inflAssctAftWqltTp[3] = Number(inflAssctAftWqltTp[3] || 0) + Number(item.inflAssctAftWqltTp || 0); + inflAssctBfrWqltBodCnt[3] = Number(inflAssctBfrWqltBodCnt[3] || 0) + 1; + inflAssctBfrWqltBod[3] = Number(inflAssctBfrWqltBod[3] || 0) + Number(item.inflAssctBfrWqltBod || 0); + inflAssctBfrWqltTocCnt[3] = Number(inflAssctBfrWqltTocCnt[3] || 0) + 1; + inflAssctBfrWqltToc[3] = Number(inflAssctBfrWqltToc[3] || 0) + Number(item.inflAssctBfrWqltToc || 0); + inflAssctBfrWqltSsCnt[3] = Number(inflAssctBfrWqltSsCnt[3] || 0) + 1; + inflAssctBfrWqltSs[3] = Number(inflAssctBfrWqltSs[3] || 0) + Number(item.inflAssctBfrWqltSs || 0); + inflAssctBfrWqltTnCnt[3] = Number(inflAssctBfrWqltTnCnt[3] || 0) + 1; + inflAssctBfrWqltTn[3] = Number(inflAssctBfrWqltTn[3] || 0) + Number(item.inflAssctBfrWqltTn || 0); + inflAssctBfrWqltTpCnt[3] = Number(inflAssctBfrWqltTpCnt[3] || 0) + 1; + inflAssctBfrWqltTp[3] = Number(inflAssctBfrWqltTp[3] || 0) + Number(item.inflAssctBfrWqltTp || 0); efflWqltBodCnt[3] = Number(efflWqltBodCnt[3] || 0) + 1; efflWqltBod[3] = Number(efflWqltBod[3] || 0) + Number(item.efflWqltBod || 0); - efflWqltCodCnt[3] = Number(efflWqltCodCnt[3] || 0) + 1; - efflWqltCod[3] = Number(efflWqltCod[3] || 0) + Number(item.efflWqltCod || 0); + efflWqltTocCnt[3] = Number(efflWqltTocCnt[3] || 0) + 1; + efflWqltToc[3] = Number(efflWqltToc[3] || 0) + Number(item.efflWqltToc || 0); efflWqltSsCnt[3] = Number(efflWqltSsCnt[3] || 0) + 1; efflWqltSs[3] = Number(efflWqltSs[3] || 0) + Number(item.efflWqltSs || 0); efflWqltTnCnt[3] = Number(efflWqltTnCnt[3] || 0) + 1; @@ -1373,20 +1422,20 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) inflAmtCnt[4] = Number(inflAmtCnt[4] || 0) + 1; inflAmnt[4] = Number(inflAmnt[4] || 0) + Number(item.inflAmnt || 0); fcltyCpct[4] = item.inflAmnt&&Number(item.inflAmnt) !== 0 ? Number(Math.round(Number(item.inflAmnt) / Number(item.fctCpc) * 10) / 10) : 0; - inflAssctAftWqltBodCnt[4] = Number(inflAssctAftWqltBodCnt[4] || 0) + 1; - inflAssctAftWqltBod[4] = Number(inflAssctAftWqltBod[4] || 0) + Number(item.inflAssctAftWqltBod || 0); - inflAssctAftWqltTocCnt[4] = Number(inflAssctAftWqltTocCnt[4] || 0) + 1; - inflAssctAftWqltToc[4] = Number(inflAssctAftWqltToc[4] || 0) + Number(item.inflAssctAftWqltToc || 0); - inflAssctAftWqltSsCnt[4] = Number(inflAssctAftWqltSsCnt[4] || 0) + 1; - inflAssctAftWqltSs[4] = Number(inflAssctAftWqltSs[4] || 0) + Number(item.inflAssctAftWqltSs || 0); - inflAssctAftWqltTnCnt[4] = Number(inflAssctAftWqltTnCnt[4] || 0) + 1; - inflAssctAftWqltTn[4] = Number(inflAssctAftWqltTn[5] || 0) + Number(item.inflAssctAftWqltTn || 0); - inflAssctAftWqltTpCnt[4] = Number(inflAssctAftWqltTpCnt[4] || 0) + 1; - inflAssctAftWqltTp[4] = Number(inflAssctAftWqltTp[4] || 0) + Number(item.inflAssctAftWqltTp || 0); + inflAssctBfrWqltBodCnt[4] = Number(inflAssctBfrWqltBodCnt[4] || 0) + 1; + inflAssctBfrWqltBod[4] = Number(inflAssctBfrWqltBod[4] || 0) + Number(item.inflAssctBfrWqltBod || 0); + inflAssctBfrWqltTocCnt[4] = Number(inflAssctBfrWqltTocCnt[4] || 0) + 1; + inflAssctBfrWqltToc[4] = Number(inflAssctBfrWqltToc[4] || 0) + Number(item.inflAssctBfrWqltToc || 0); + inflAssctBfrWqltSsCnt[4] = Number(inflAssctBfrWqltSsCnt[4] || 0) + 1; + inflAssctBfrWqltSs[4] = Number(inflAssctBfrWqltSs[4] || 0) + Number(item.inflAssctBfrWqltSs || 0); + inflAssctBfrWqltTnCnt[4] = Number(inflAssctBfrWqltTnCnt[4] || 0) + 1; + inflAssctBfrWqltTn[4] = Number(inflAssctBfrWqltTn[5] || 0) + Number(item.inflAssctBfrWqltTn || 0); + inflAssctBfrWqltTpCnt[4] = Number(inflAssctBfrWqltTpCnt[4] || 0) + 1; + inflAssctBfrWqltTp[4] = Number(inflAssctBfrWqltTp[4] || 0) + Number(item.inflAssctBfrWqltTp || 0); efflWqltBodCnt[4] = Number(efflWqltBodCnt[4] || 0) + 1; efflWqltBod[4] = Number(efflWqltBod[4] || 0) + Number(item.efflWqltBod || 0); - efflWqltCodCnt[4] = Number(efflWqltCodCnt[4] || 0) + 1; - efflWqltCod[4] = Number(efflWqltCod[4] || 0) + Number(item.efflWqltCod || 0); + efflWqltTocCnt[4] = Number(efflWqltTocCnt[4] || 0) + 1; + efflWqltToc[4] = Number(efflWqltToc[4] || 0) + Number(item.efflWqltToc || 0); efflWqltSsCnt[4] = Number(efflWqltSsCnt[4] || 0) + 1; efflWqltSs[4] = Number(efflWqltSs[4] || 0) + Number(item.efflWqltSs || 0); efflWqltTnCnt[4] = Number(efflWqltTnCnt[5] || 0) + 1; @@ -1398,20 +1447,20 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) inflAmtCnt[5] = Number(inflAmtCnt[5] || 0) + 1; inflAmnt[5] = Number(inflAmnt[5] || 0) + Number(item.inflAmnt || 0); fcltyCpct[5] = 0; - inflAssctAftWqltBodCnt[5] = Number(inflAssctAftWqltBodCnt[5] || 0) + 1; - inflAssctAftWqltBod[5] = Number(inflAssctAftWqltBod[5] || 0) + Number(item.inflAssctAftWqltBod || 0); - inflAssctAftWqltTocCnt[5] = Number(inflAssctAftWqltTocCnt[5] || 0) + 1; - inflAssctAftWqltToc[5] = Number(inflAssctAftWqltToc[5] || 0) + Number(item.inflAssctAftWqltToc || 0); - inflAssctAftWqltSsCnt[5] = Number(inflAssctAftWqltSsCnt[5] || 0) + 1; - inflAssctAftWqltSs[5] = Number(inflAssctAftWqltSs[5] || 0) + Number(item.inflAssctAftWqltSs || 0); - inflAssctAftWqltTnCnt[5] = Number(inflAssctAftWqltTnCnt[5] || 0) + 1; - inflAssctAftWqltTn[5] = Number(inflAssctAftWqltTn[5] || 0) + Number(item.inflAssctAftWqltTn || 0); - inflAssctAftWqltTpCnt[5] = Number(inflAssctAftWqltTpCnt[5] || 0) + 1; - inflAssctAftWqltTp[5] = Number(inflAssctAftWqltTp[5] || 0) + Number(item.inflAssctAftWqltTp || 0); + inflAssctBfrWqltBodCnt[5] = Number(inflAssctBfrWqltBodCnt[5] || 0) + 1; + inflAssctBfrWqltBod[5] = Number(inflAssctBfrWqltBod[5] || 0) + Number(item.inflAssctBfrWqltBod || 0); + inflAssctBfrWqltTocCnt[5] = Number(inflAssctBfrWqltTocCnt[5] || 0) + 1; + inflAssctBfrWqltToc[5] = Number(inflAssctBfrWqltToc[5] || 0) + Number(item.inflAssctBfrWqltToc || 0); + inflAssctBfrWqltSsCnt[5] = Number(inflAssctBfrWqltSsCnt[5] || 0) + 1; + inflAssctBfrWqltSs[5] = Number(inflAssctBfrWqltSs[5] || 0) + Number(item.inflAssctBfrWqltSs || 0); + inflAssctBfrWqltTnCnt[5] = Number(inflAssctBfrWqltTnCnt[5] || 0) + 1; + inflAssctBfrWqltTn[5] = Number(inflAssctBfrWqltTn[5] || 0) + Number(item.inflAssctBfrWqltTn || 0); + inflAssctBfrWqltTpCnt[5] = Number(inflAssctBfrWqltTpCnt[5] || 0) + 1; + inflAssctBfrWqltTp[5] = Number(inflAssctBfrWqltTp[5] || 0) + Number(item.inflAssctBfrWqltTp || 0); efflWqltBodCnt[5] = Number(efflWqltBodCnt[5] || 0) + 1; efflWqltBod[5] = Number(efflWqltBod[5] || 0) + Number(item.efflWqltBod || 0); - efflWqltCodCnt[5] = Number(efflWqltCodCnt[5] || 0) + 1; - efflWqltCod[5] = Number(efflWqltCod[5] || 0) + Number(item.efflWqltCod || 0); + efflWqltTocCnt[5] = Number(efflWqltTocCnt[5] || 0) + 1; + efflWqltToc[5] = Number(efflWqltToc[5] || 0) + Number(item.efflWqltToc || 0); efflWqltSsCnt[5] = Number(efflWqltSsCnt[5] || 0) + 1; efflWqltSs[5] = Number(efflWqltSs[5] || 0) + Number(item.efflWqltSs || 0); efflWqltTnCnt[5] = Number(efflWqltTnCnt[5] || 0) + 1; @@ -1423,20 +1472,20 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) inflAmtCnt[6] = Number(inflAmtCnt[6] || 0) + 1; inflAmnt[6] = Number(inflAmnt[6] || 0) + Number(item.inflAmnt || 0); fcltyCpct[6] = 0; - inflAssctAftWqltBodCnt[6] = Number(inflAssctAftWqltBodCnt[6] || 0) + 1; - inflAssctAftWqltBod[6] = Number(inflAssctAftWqltBod[6] || 0) + Number(item.inflAssctAftWqltBod || 0); - inflAssctAftWqltTocCnt[6] = Number(inflAssctAftWqltTocCnt[6] || 0) + 1; - inflAssctAftWqltToc[6] = Number(inflAssctAftWqltToc[6] || 0) + Number(item.inflAssctAftWqltToc || 0); - inflAssctAftWqltSsCnt[6] = Number(inflAssctAftWqltSsCnt[6] || 0) + 1; - inflAssctAftWqltSs[6] = Number(inflAssctAftWqltSs[6] || 0) + Number(item.inflAssctAftWqltSs || 0); - inflAssctAftWqltTnCnt[6] = Number(inflAssctAftWqltTnCnt[6] || 0) + 1; - inflAssctAftWqltTn[6] = Number(inflAssctAftWqltTn[6] || 0) + Number(item.inflAssctAftWqltTn || 0); - inflAssctAftWqltTpCnt[6] = Number(inflAssctAftWqltTpCnt[6] || 0) + 1; - inflAssctAftWqltTp[6] = Number(inflAssctAftWqltTp[6] || 0) + Number(item.inflAssctAftWqltTp || 0); + inflAssctBfrWqltBodCnt[6] = Number(inflAssctBfrWqltBodCnt[6] || 0) + 1; + inflAssctBfrWqltBod[6] = Number(inflAssctBfrWqltBod[6] || 0) + Number(item.inflAssctBfrWqltBod || 0); + inflAssctBfrWqltTocCnt[6] = Number(inflAssctBfrWqltTocCnt[6] || 0) + 1; + inflAssctBfrWqltToc[6] = Number(inflAssctBfrWqltToc[6] || 0) + Number(item.inflAssctBfrWqltToc || 0); + inflAssctBfrWqltSsCnt[6] = Number(inflAssctBfrWqltSsCnt[6] || 0) + 1; + inflAssctBfrWqltSs[6] = Number(inflAssctBfrWqltSs[6] || 0) + Number(item.inflAssctBfrWqltSs || 0); + inflAssctBfrWqltTnCnt[6] = Number(inflAssctBfrWqltTnCnt[6] || 0) + 1; + inflAssctBfrWqltTn[6] = Number(inflAssctBfrWqltTn[6] || 0) + Number(item.inflAssctBfrWqltTn || 0); + inflAssctBfrWqltTpCnt[6] = Number(inflAssctBfrWqltTpCnt[6] || 0) + 1; + inflAssctBfrWqltTp[6] = Number(inflAssctBfrWqltTp[6] || 0) + Number(item.inflAssctBfrWqltTp || 0); efflWqltBodCnt[6] = Number(efflWqltBodCnt[6] || 0) + 1; efflWqltBod[6] = Number(efflWqltBod[6] || 0) + Number(item.efflWqltBod || 0); - efflWqltCodCnt[6] = Number(efflWqltCodCnt[6] || 0) + 1; - efflWqltCod[6] = Number(efflWqltCod[6] || 0) + Number(item.efflWqltCod || 0); + efflWqltTocCnt[6] = Number(efflWqltTocCnt[6] || 0) + 1; + efflWqltToc[6] = Number(efflWqltToc[6] || 0) + Number(item.efflWqltToc || 0); efflWqltSsCnt[6] = Number(efflWqltSsCnt[6] || 0) + 1; efflWqltSs[6] = Number(efflWqltSs[6] || 0) + Number(item.efflWqltSs || 0); efflWqltTnCnt[6] = Number(efflWqltTnCnt[6] || 0) + 1; @@ -1448,20 +1497,20 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) inflAmtCnt[7] = Number(inflAmtCnt[7] || 0) + 1; inflAmnt[7] = Number(inflAmnt[7] || 0) + Number(item.inflAmnt || 0); fcltyCpct[7] = 0; - inflAssctAftWqltBodCnt[7] = Number(inflAssctAftWqltBodCnt[7] || 0) + 1; - inflAssctAftWqltBod[7] = Number(inflAssctAftWqltBod[7] || 0) + Number(item.inflAssctAftWqltBod || 0); - inflAssctAftWqltTocCnt[7] = Number(inflAssctAftWqltTocCnt[7] || 0) + 1; - inflAssctAftWqltToc[7] = Number(inflAssctAftWqltToc[7] || 0) + Number(item.inflAssctAftWqltToc || 0); - inflAssctAftWqltSsCnt[7] = Number(inflAssctAftWqltSsCnt[7] || 0) + 1; - inflAssctAftWqltSs[7] = Number(inflAssctAftWqltSs[7] || 0) + Number(item.inflAssctAftWqltSs || 0); - inflAssctAftWqltTnCnt[7] = Number(inflAssctAftWqltTnCnt[7] || 0) + 1; - inflAssctAftWqltTn[7] = Number(inflAssctAftWqltTn[7] || 0) + Number(item.inflAssctAftWqltTn || 0); - inflAssctAftWqltTpCnt[7] = Number(inflAssctAftWqltTpCnt[7] || 0) + 1; - inflAssctAftWqltTp[7] = Number(inflAssctAftWqltTp[7] || 0) + Number(item.inflAssctAftWqltTp || 0); + inflAssctBfrWqltBodCnt[7] = Number(inflAssctBfrWqltBodCnt[7] || 0) + 1; + inflAssctBfrWqltBod[7] = Number(inflAssctBfrWqltBod[7] || 0) + Number(item.inflAssctBfrWqltBod || 0); + inflAssctBfrWqltTocCnt[7] = Number(inflAssctBfrWqltTocCnt[7] || 0) + 1; + inflAssctBfrWqltToc[7] = Number(inflAssctBfrWqltToc[7] || 0) + Number(item.inflAssctBfrWqltToc || 0); + inflAssctBfrWqltSsCnt[7] = Number(inflAssctBfrWqltSsCnt[7] || 0) + 1; + inflAssctBfrWqltSs[7] = Number(inflAssctBfrWqltSs[7] || 0) + Number(item.inflAssctBfrWqltSs || 0); + inflAssctBfrWqltTnCnt[7] = Number(inflAssctBfrWqltTnCnt[7] || 0) + 1; + inflAssctBfrWqltTn[7] = Number(inflAssctBfrWqltTn[7] || 0) + Number(item.inflAssctBfrWqltTn || 0); + inflAssctBfrWqltTpCnt[7] = Number(inflAssctBfrWqltTpCnt[7] || 0) + 1; + inflAssctBfrWqltTp[7] = Number(inflAssctBfrWqltTp[7] || 0) + Number(item.inflAssctBfrWqltTp || 0); efflWqltBodCnt[7] = Number(efflWqltBodCnt[7] || 0) + 1; efflWqltBod[7] = Number(efflWqltBod[7] || 0) + Number(item.efflWqltBod || 0); - efflWqltCodCnt[7] = Number(efflWqltCodCnt[7] || 0) + 1; - efflWqltCod[7] = Number(efflWqltCod[7] || 0) + Number(item.efflWqltCod || 0); + efflWqltTocCnt[7] = Number(efflWqltTocCnt[7] || 0) + 1; + efflWqltToc[7] = Number(efflWqltToc[7] || 0) + Number(item.efflWqltToc || 0); efflWqltSsCnt[7] = Number(efflWqltSsCnt[7] || 0) + 1; efflWqltSs[7] = Number(efflWqltSs[7] || 0) + Number(item.efflWqltSs || 0); efflWqltTnCnt[7] = Number(efflWqltTnCnt[7] || 0) + 1; @@ -1539,13 +1588,13 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) for(let idx=0; idx DashBoardType) inflAmnt[0] = calculateAverage(calculateTotal(inflAmnt), dataIsCount); fcltyCpct[0] = calculateTotal(fcltyCpct); - inflAssctAftWqltBod[0] = Number((calculateTotal(inflAssctAftWqltBod)/7).toFixed(1)); - inflAssctAftWqltToc[0] = Number((calculateTotal(inflAssctAftWqltToc)/7).toFixed(1)); - inflAssctAftWqltSs[0] = Number((calculateTotal(inflAssctAftWqltSs)/7).toFixed(1)); - inflAssctAftWqltTn[0] = Number((calculateTotal(inflAssctAftWqltTn)/7).toFixed(3)); - inflAssctAftWqltTp[0] = Number((calculateTotal(inflAssctAftWqltTp)/7).toFixed(3)); + inflAssctBfrWqltBod[0] = Number((calculateTotal(inflAssctBfrWqltBod)/7).toFixed(1)); + inflAssctBfrWqltToc[0] = Number((calculateTotal(inflAssctBfrWqltToc)/7).toFixed(1)); + inflAssctBfrWqltSs[0] = Number((calculateTotal(inflAssctBfrWqltSs)/7).toFixed(1)); + inflAssctBfrWqltTn[0] = Number((calculateTotal(inflAssctBfrWqltTn)/7).toFixed(3)); + inflAssctBfrWqltTp[0] = Number((calculateTotal(inflAssctBfrWqltTp)/7).toFixed(3)); efflWqltBod[0] = Number((calculateTotal(efflWqltBod)/7).toFixed(1)); - efflWqltCod[0] = Number((calculateTotal(efflWqltCod)/7).toFixed(1)); + efflWqltToc[0] = Number((calculateTotal(efflWqltToc)/7).toFixed(1)); efflWqltSs[0] = Number((calculateTotal(efflWqltSs as number[])/7).toFixed(1)); efflWqltTn[0] = Number((calculateTotal(efflWqltTn as number[])/7).toFixed(3)); efflWqltTp[0] = Number((calculateTotal(efflWqltTp as number[])/7).toFixed(3)); @@ -1581,13 +1630,13 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) dsInflWqltSs: dsInflWqltSs[index] ? Number(dsInflWqltSs[index].toFixed(1)) : '', dsInflWqltTn: dsInflWqltTn[index] ? dsInflWqltTn[index].toFixed(3) : '', dsInflWqltTp: dsInflWqltTp[index] ? dsInflWqltTp[index].toFixed(3) : '', - inflAssctAftWqltBod: inflAssctAftWqltBod[index] ? Number(inflAssctAftWqltBod[index].toFixed(1)) : '', - inflAssctAftWqltToc: inflAssctAftWqltToc[index] ? Number(inflAssctAftWqltToc[index].toFixed(1)) : '', - inflAssctAftWqltSs: inflAssctAftWqltSs[index] ? Number(inflAssctAftWqltSs[index].toFixed(1)) : '', - inflAssctAftWqltTn: inflAssctAftWqltTn[index] ? inflAssctAftWqltTn[index].toFixed(3) : '', - inflAssctAftWqltTp: inflAssctAftWqltTp[index] ? inflAssctAftWqltTp[index].toFixed(3) : '', + inflAssctBfrWqltBod: inflAssctBfrWqltBod[index] ? Number(inflAssctBfrWqltBod[index].toFixed(1)) : '', + inflAssctBfrWqltToc: inflAssctBfrWqltToc[index] ? Number(inflAssctBfrWqltToc[index].toFixed(1)) : '', + inflAssctBfrWqltSs: inflAssctBfrWqltSs[index] ? Number(inflAssctBfrWqltSs[index].toFixed(1)) : '', + inflAssctBfrWqltTn: inflAssctBfrWqltTn[index] ? inflAssctBfrWqltTn[index].toFixed(3) : '', + inflAssctBfrWqltTp: inflAssctBfrWqltTp[index] ? inflAssctBfrWqltTp[index].toFixed(3) : '', efflWqltBod: efflWqltBod[index] ? Number(efflWqltBod[index].toFixed(1)) : '', - efflWqltCod: efflWqltCod[index] ? Number(efflWqltCod[index].toFixed(1)) : '', + efflWqltToc: efflWqltToc[index] ? Number(efflWqltToc[index].toFixed(1)) : '', efflWqltSs: efflWqltSs[index] ? Number(efflWqltSs[index].toFixed(1)) : '', efflWqltTn: efflWqltTn[index] ? efflWqltTn[index].toFixed(3) : '', efflWqltTp: efflWqltTp[index] ? efflWqltTp[index].toFixed(3) : '' @@ -1607,13 +1656,13 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) 설계유입수질SS: item.dsInflWqltSs ? Number(Number(item.dsInflWqltSs).toFixed(1)) : '', 설계유입수질TN: item.dsInflWqltTn ? Number(item.dsInflWqltTn).toFixed(3) : '', 설계유입수질TP: item.dsInflWqltTp ? Number(item.dsInflWqltTp).toFixed(3) : '', - 유입수질BOD: item.inflAssctAftWqltBod ? Number(Number(item.inflAssctAftWqltBod).toFixed(1)) : '', - 유입수질TOC: item.inflAssctAftWqltToc ? Number(Number(item.inflAssctAftWqltToc).toFixed(1)) : '', - 유입수질SS: item.inflAssctAftWqltSs ? Number(Number(item.inflAssctAftWqltSs).toFixed(1)) : '', - 유입수질TN: item.inflAssctAftWqltTn ? Number(item.inflAssctAftWqltTn).toFixed(3) : '', - 유입수질TP: item.inflAssctAftWqltTp ? Number(item.inflAssctAftWqltTp).toFixed(3) : '', + 유입수질BOD: item.inflAssctBfrWqltBod ? Number(Number(item.inflAssctBfrWqltBod).toFixed(1)) : '', + 유입수질TOC: item.inflAssctBfrWqltToc ? Number(Number(item.inflAssctBfrWqltToc).toFixed(1)) : '', + 유입수질SS: item.inflAssctBfrWqltSs ? Number(Number(item.inflAssctBfrWqltSs).toFixed(1)) : '', + 유입수질TN: item.inflAssctBfrWqltTn ? Number(item.inflAssctBfrWqltTn).toFixed(3) : '', + 유입수질TP: item.inflAssctBfrWqltTp ? Number(item.inflAssctBfrWqltTp).toFixed(3) : '', 방류수질BOD: item.efflWqltBod ? Number(Number(item.efflWqltBod).toFixed(1)) : '', - 방류수질TOC: item.efflWqltCod ? Number(Number(item.efflWqltCod).toFixed(1)) : '', + 방류수질TOC: item.efflWqltToc ? Number(Number(item.efflWqltToc).toFixed(1)) : '', 방류수질SS: item.efflWqltSs ? Number(Number(item.efflWqltSs).toFixed(1)) : '', 방류수질TN: item.efflWqltTn ? Number(item.efflWqltTn).toFixed(3) : '', 방류수질TP: item.efflWqltTp ? Number(item.efflWqltTp).toFixed(3) : '', @@ -1657,13 +1706,13 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) 설계유입수질SS: item.dsInflWqltSs || 0, 설계유입수질TN: item.dsInflWqltTn || 0, 설계유입수질TP: item.dsInflWqltTp || 0, - 유입수질BOD: item.inflAssctAftWqltBod || 0, - 유입수질COD: item.inflAssctAftWqltToc || 0, - 유입수질SS: item.inflAssctAftWqltSs || 0, - 유입수질TN: item.inflAssctAftWqltTn || 0, - 유입수질TP: item.inflAssctAftWqltTp || 0, + 유입수질BOD: item.inflAssctBfrWqltBod || 0, + 유입수질COD: item.inflAssctBfrWqltToc || 0, + 유입수질SS: item.inflAssctBfrWqltSs || 0, + 유입수질TN: item.inflAssctBfrWqltTn || 0, + 유입수질TP: item.inflAssctBfrWqltTp || 0, 방류수질BOD: item.efflWqltBod || 0, - 방류수질COD: item.efflWqltCod || 0, + 방류수질COD: item.efflWqltToc || 0, 방류수질SS: item.efflWqltSs || 0, 방류수질TN: item.efflWqltTn || 0, 방류수질TP: item.efflWqltTp || 0, diff --git a/apps/fo/app/store/facilityWaterQlty/index.tsx b/apps/fo/app/store/facilityWaterQlty/index.tsx index 565c251d2..7008d4bc0 100644 --- a/apps/fo/app/store/facilityWaterQlty/index.tsx +++ b/apps/fo/app/store/facilityWaterQlty/index.tsx @@ -21,12 +21,16 @@ export interface FacilityWaterQltyProps { sggNm: string, addr: string, fctCpc: number, + inflAssctBfrWqltBod: string | '', inflAssctAftWqltBod: string | '', + inflAssctBfrWqltToc: string | '', inflAssctAftWqltToc: string | '', + inflAssctBfrWqltSs: string | '', inflAssctAftWqltSs: string | '', + inflAssctBfrWqltTn: string | '', inflAssctAftWqltTn: string | '', - inflAssctAftWqltTp: string | '', inflAssctBfrWqltTp: string | '', + inflAssctAftWqltTp: string | '', efflWqltBod: string | '', efflWqltToc: string | '', efflWqltSs: string | '', @@ -127,10 +131,10 @@ const upHeadList1: TableUpperProps[] = [ { id: "fctCpc", title: "시설용량(m³/일)", align: "right", rowSpan: 2, row: 0 }, { id: "A", title: "유입", colSpan: 5, row: 0 }, { id: "B", title: "방류", colSpan: 5, row: 0 }, - { id: "inflAssctAftWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe3", upSequnce: 1, align: "right", row: 1 }, - { id: "inflAssctAftWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row: 1 }, - { id: "inflAssctAftWqltSs", title: "SS\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row: 1 }, - { id: "inflAssctAftWqltTn", title: "T-N\n(mg/L)", upName: "upChangeRe3", upSequnce: 4, align: "right", row: 1 }, + { id: "inflAssctBfrWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe3", upSequnce: 1, align: "right", row: 1 }, + { id: "inflAssctBfrWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row: 1 }, + { id: "inflAssctBfrWqltSs", title: "SS\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row: 1 }, + { id: "inflAssctBfrWqltTn", title: "T-N\n(mg/L)", upName: "upChangeRe3", upSequnce: 4, align: "right", row: 1 }, { id: "inflAssctAftWqltTp", title: "T-P\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row: 1 }, { id: "efflWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe4", upSequnce: 1, align: "right", row: 1 }, { id: "efflWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe4", upSequnce: 2, align: "right", row: 1 }, @@ -151,10 +155,10 @@ const upHeadList2: TableUpperProps[] = [ { id: "fctCpc", title: "시설용량(m³/L)", align: "right", row:0, rowSpan:2 }, { id: "A", title: "유입", colSpan: 5, row: 0 }, { id: "B", title: "방류", colSpan: 5, row: 0 }, - { id: "inflAssctAftWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe3", upSequnce: 1, align: "right", row:1 }, - { id: "inflAssctAftWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row:1 }, - { id: "inflAssctAftWqltSs", title: "SS\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row:1 }, - { id: "inflAssctAftWqltTn", title: "T-N\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row:1 }, + { id: "inflAssctBfrWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe3", upSequnce: 1, align: "right", row:1 }, + { id: "inflAssctBfrWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row:1 }, + { id: "inflAssctBfrWqltSs", title: "SS\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row:1 }, + { id: "inflAssctBfrWqltTn", title: "T-N\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row:1 }, { id: "inflAssctAftWqltTp", title: "T-P\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row:1 }, { id: "efflWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe4", upSequnce: 1, align: "right", row:1 }, { id: "efflWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe4", upSequnce: 2, align: "right", row:1 }, @@ -179,10 +183,10 @@ const upHeadList3: TableUpperProps[] = [ { id: "fctCpc", title: "시설용량(m³/L)", align: "right", row:0, rowSpan:2 }, { id: "A", title: "유입", colSpan: 5, row: 0 }, { id: "B", title: "방류", colSpan: 5, row: 0 }, - { id: "inflAssctAftWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe3", upSequnce: 1, align: "right", row:1 }, - { id: "inflAssctAftWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row:1 }, - { id: "inflAssctAftWqltSs", title: "SS\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row:1 }, - { id: "inflAssctAftWqltTn", title: "T-N\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row:1 }, + { id: "inflAssctBfrWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe3", upSequnce: 1, align: "right", row:1 }, + { id: "inflAssctBfrWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row:1 }, + { id: "inflAssctBfrWqltSs", title: "SS\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row:1 }, + { id: "inflAssctBfrWqltTn", title: "T-N\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row:1 }, { id: "inflAssctAftWqltTp", title: "T-P\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row:1 }, { id: "efflWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe4", upSequnce: 1, align: "right", row:1 }, { id: "efflWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe4", upSequnce: 2, align: "right", row:1 }, @@ -197,10 +201,10 @@ const upHeadList3: TableUpperProps[] = [ // 처리시설 수질현황 헤더(모달-연간) const upHeadListModalYear: TableUpperProps[] = [ { id: "msrDt", title: "날짜" }, - { id: "inflAssctAftWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe1", upSequnce: 1, align: "right" }, - { id: "inflAssctAftWqltToc", title: "TOC(COD)\n(mg/L)", upName: "upChangeRe1", upSequnce: 2, align: "right" }, - { id: "inflAssctAftWqltSs", title: "SS\n(mg/L)", upName: "upChangeRe1", upSequnce: 3, align: "right" }, - { id: "inflAssctAftWqltTn", title: "T-N\n(mg/L)", upName: "upChangeRe1", upSequnce: 2, align: "right" }, + { id: "inflAssctBfrWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe1", upSequnce: 1, align: "right" }, + { id: "inflAssctBfrWqltToc", title: "TOC(COD)\n(mg/L)", upName: "upChangeRe1", upSequnce: 2, align: "right" }, + { id: "inflAssctBfrWqltSs", title: "SS\n(mg/L)", upName: "upChangeRe1", upSequnce: 3, align: "right" }, + { id: "inflAssctBfrWqltTn", title: "T-N\n(mg/L)", upName: "upChangeRe1", upSequnce: 2, align: "right" }, { id: "inflAssctBfrWqltTp", title: "T-P\n(mg/L)", upName: "upChangeRe1", upSequnce: 3, align: "right" }, { id: "efflWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe2", upSequnce: 1, align: "right" }, { id: "efflWqltToc", title: "TOC(COD)\n(mg/L)", upName: "upChangeRe2", upSequnce: 2, align: "right" }, @@ -361,8 +365,8 @@ export type FacilityWaterQltyActions = { * @returns : 없음 * @description : 시설수질리스트 타입의 데이터를 표현 방식으로 바꿔주는 함수 * - msrDt : YYYY-MM-DD 형식으로 변환 - * - inflAssctAftWqltBod : 소수점 1자리까지 표현 - * - inflAssctAftWqltTn : 소수점 1자리까지 표현 + * - inflAssctBfrWqltBod : 소수점 1자리까지 표현 + * - inflAssctBfrWqltTn : 소수점 1자리까지 표현 * - inflAssctBfrWqltTp : 소수점 1자리까지 표현 * - efflWqltBod : 소수점 2자리까지 표현 * - efflWqltTn : 소수점 2자리까지 표현 @@ -394,8 +398,8 @@ export const facilityWaterQltyReducer = (set: (fn: (state: FacilityWaterQltyType const res = await fetchFacilityWaterQltyList(pageNo, pageSize, searchYear, part, nameCd, fcltCpct, operationValue, fcltyNm); const rtnData = res.data.map(item => { dataFormSetting(item) - if(item.inflAssctAftWqltTn) { - item.inflAssctAftWqltTn = Number(Math.round(Number(item.inflAssctAftWqltTn) * 1000)/1000).toFixed(3); + if(item.inflAssctBfrWqltTn) { + item.inflAssctBfrWqltTn = Number(Math.round(Number(item.inflAssctBfrWqltTn) * 1000)/1000).toFixed(3); } if(item.efflWqltTn){ item.efflWqltTn = Number(Math.round(Number(item.efflWqltTn) * 1000)/1000).toFixed(3); @@ -406,26 +410,26 @@ export const facilityWaterQltyReducer = (set: (fn: (state: FacilityWaterQltyType if(item.efflWqltTp){ item.efflWqltTp = Number(Math.round(Number(item.efflWqltTp) * 1000)/1000).toFixed(3); } - if(item.inflAssctAftWqltToc){ - item.inflAssctAftWqltToc = Number(Math.round(Number(item.inflAssctAftWqltToc) * 10)/10).toFixed(1); + if(item.inflAssctBfrWqltToc){ + item.inflAssctBfrWqltToc = Number(Math.round(Number(item.inflAssctBfrWqltToc) * 10)/10).toFixed(1); } if(item.efflWqltToc){ item.efflWqltToc = Number(Math.round(Number(item.efflWqltToc) * 10)/10).toFixed(1); } - if(item.inflAssctAftWqltBod){ - item.inflAssctAftWqltBod = Number(Math.round(Number(item.inflAssctAftWqltBod) * 10)/10).toFixed(1); + if(item.inflAssctBfrWqltBod){ + item.inflAssctBfrWqltBod = Number(Math.round(Number(item.inflAssctBfrWqltBod) * 10)/10).toFixed(1); } if(item.efflWqltBod){ item.efflWqltBod = Number(Math.round(Number(item.efflWqltBod) * 10)/10).toFixed(1); } - if(item.inflAssctAftWqltSs){ - item.inflAssctAftWqltSs = Number(Math.round(Number(item.inflAssctAftWqltSs) * 10)/10).toFixed(1); + if(item.inflAssctBfrWqltSs){ + item.inflAssctBfrWqltSs = Number(Math.round(Number(item.inflAssctBfrWqltSs) * 10)/10).toFixed(1); } if(item.efflWqltSs){ item.efflWqltSs = Number(Math.round(Number(item.efflWqltSs) * 10)/10).toFixed(1); } - if(item.inflAssctAftWqltToc){ - item.inflAssctAftWqltToc = Number(Math.round(Number(item.inflAssctAftWqltToc) * 10)/10).toFixed(1); + if(item.inflAssctBfrWqltToc){ + item.inflAssctBfrWqltToc = Number(Math.round(Number(item.inflAssctBfrWqltToc) * 10)/10).toFixed(1); } if(item.efflWqltToc){ item.efflWqltToc = Number(Math.round(Number(item.efflWqltToc) * 10)/10).toFixed(1); @@ -450,10 +454,10 @@ export const facilityWaterQltyReducer = (set: (fn: (state: FacilityWaterQltyType 시설이름: item.bscFctNm, 주소: item.addr, 용량: item.fctCpc, - 유입BOD: item.inflAssctAftWqltBod, - 유입TOC: item.inflAssctAftWqltToc, - 유입SS: item.inflAssctAftWqltSs, - 유입TN: item.inflAssctAftWqltTn, + 유입BOD: item.inflAssctBfrWqltBod, + 유입TOC: item.inflAssctBfrWqltToc, + 유입SS: item.inflAssctBfrWqltSs, + 유입TN: item.inflAssctBfrWqltTn, 유입TP: item.inflAssctAftWqltTp, 유출BOD: item.efflWqltBod, 유출TOC: item.efflWqltToc, @@ -595,8 +599,8 @@ export const facilityWaterQltyReducer = (set: (fn: (state: FacilityWaterQltyType const rtnData = tmpData.map((item: FacilityWaterQltyProps) => { dataFormSetting(item) - if(item.inflAssctAftWqltTn) { - item.inflAssctAftWqltTn = Number(Math.round(Number(item.inflAssctAftWqltTn) * 1000)/1000).toFixed(3); + if(item.inflAssctBfrWqltTn) { + item.inflAssctBfrWqltTn = Number(Math.round(Number(item.inflAssctBfrWqltTn) * 1000)/1000).toFixed(3); } if(item.efflWqltTn){ item.efflWqltTn = Number(Math.round(Number(item.efflWqltTn) * 1000)/1000).toFixed(3); @@ -607,26 +611,26 @@ export const facilityWaterQltyReducer = (set: (fn: (state: FacilityWaterQltyType if(item.efflWqltTp){ item.efflWqltTp = Number(Math.round(Number(item.efflWqltTp) * 1000)/1000).toFixed(3); } - if(item.inflAssctAftWqltToc){ - item.inflAssctAftWqltToc = Number(Math.round(Number(item.inflAssctAftWqltToc) * 10)/10).toFixed(1); + if(item.inflAssctBfrWqltToc){ + item.inflAssctBfrWqltToc = Number(Math.round(Number(item.inflAssctBfrWqltToc) * 10)/10).toFixed(1); } if(item.efflWqltToc){ item.efflWqltToc = Number(Math.round(Number(item.efflWqltToc) * 10)/10).toFixed(1); } - if(item.inflAssctAftWqltBod){ - item.inflAssctAftWqltBod = Number(Math.round(Number(item.inflAssctAftWqltBod) * 10)/10).toFixed(1); + if(item.inflAssctBfrWqltBod){ + item.inflAssctBfrWqltBod = Number(Math.round(Number(item.inflAssctBfrWqltBod) * 10)/10).toFixed(1); } if(item.efflWqltBod){ item.efflWqltBod = Number(Math.round(Number(item.efflWqltBod) * 10)/10).toFixed(1); } - if(item.inflAssctAftWqltSs){ - item.inflAssctAftWqltSs = Number(Math.round(Number(item.inflAssctAftWqltSs) * 10)/10).toFixed(1); + if(item.inflAssctBfrWqltSs){ + item.inflAssctBfrWqltSs = Number(Math.round(Number(item.inflAssctBfrWqltSs) * 10)/10).toFixed(1); } if(item.efflWqltSs){ item.efflWqltSs = Number(Math.round(Number(item.efflWqltSs) * 10)/10).toFixed(1); } - if(item.inflAssctAftWqltToc){ - item.inflAssctAftWqltToc = Number(Math.round(Number(item.inflAssctAftWqltToc) * 10)/10).toFixed(1); + if(item.inflAssctBfrWqltToc){ + item.inflAssctBfrWqltToc = Number(Math.round(Number(item.inflAssctBfrWqltToc) * 10)/10).toFixed(1); } if(item.efflWqltToc){ item.efflWqltToc = Number(Math.round(Number(item.efflWqltToc) * 10)/10).toFixed(1); diff --git a/apps/fo/app/store/sewageOccur/index.tsx b/apps/fo/app/store/sewageOccur/index.tsx index f5d300aa1..9a6a97fd6 100644 --- a/apps/fo/app/store/sewageOccur/index.tsx +++ b/apps/fo/app/store/sewageOccur/index.tsx @@ -145,7 +145,7 @@ const fetchSewageOccurList = async (pageNo: number, pageSize: number, searchYear ====================================*/ export type SewageOccurActions = { searchSewageOccurList: (pageNo: number, pageSize: number, searchYear: string, part?: string, nameCd?: string, fcltCpct?: string, operationValue?: string, fcltyNm?: string) => void; - searchSewageOccurDetailList: (bscFctCd: string, searchYear: string) => void; + searchSewageOccurDetailList: (bscFctCd: string, searchYear: string, startYearMonth?: string, endYearMonth?: string) => void; } export type SewageOccurType = { @@ -257,10 +257,25 @@ export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => { })) }, - searchSewageOccurDetailList: async (bscFctCd: string, searchYear: string) => { + searchSewageOccurDetailList: async (bscFctCd: string, searchYear: string, startYearMonth?: string, endYearMonth?: string) => { const res = await getFetch('fo', '/fclt/flow/' + bscFctCd + '/' + searchYear); const monthData: SewageOccurDetailProps[] = []; - let tot = 0, cnt= 0 + let tot = 0, cnt= 0; + + console.log('startYearMonth : ', startYearMonth, 'endYearMonth : ', endYearMonth); + if(startYearMonth) { + res.data = res.data.filter((item: FlowDataItem) => { + const month = item.msrDt?.substring(0, 6); + return month >= startYearMonth; + }); + } + if(endYearMonth) { + res.data = res.data.filter((item: FlowDataItem) => { + const month = item.msrDt?.substring(0, 6); + return month <= endYearMonth; + }); + } + res.data.forEach((item: FlowDataItem) => { const month = item.msrDt?.substring(4, 6); const monthIdx = month ? Number(month) - 1 : -1; @@ -284,7 +299,7 @@ export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => { monthData.forEach((item, index) => { item.usege = item.sum/item.cnt *0.65 tableData.push({ - msrDt: item.yr+'-'+(index+1>10?String(index+1):'0'+(index+1)), + msrDt: item.yr+'-'+(index+1>=10?String(index+1):'0'+(index+1)), waterUsage: Math.round(item.usege*100) /100, swageChangePercent: (Math.round((item.usege/item.usege*0.8) * 100) / 100) * 100, estimationSewage: Math.round(item.usege*0.8 * 100) / 100 diff --git a/apps/fo/app/store/underWaterInput/index.tsx b/apps/fo/app/store/underWaterInput/index.tsx index 912d8673e..dab73c138 100644 --- a/apps/fo/app/store/underWaterInput/index.tsx +++ b/apps/fo/app/store/underWaterInput/index.tsx @@ -2,8 +2,15 @@ import DataForm from "@/app/components/common/DataForm"; import type { TableUpperProps } from "../dashboard"; import { getFetch } from "@/app/components/api"; import type { ExcelType, UnderWaterInputModalProps, UnderWaterProps } from "./types"; -import type { SewageOccurDetailProps } from "../sewageOccur"; export type { TableUpperProps }; + +// SewageOccurDetailProps 타입을 여기에 정의 +export type SewageOccurDetailProps = { + cnt : number, + sum : number, + yr:string, + usege:number +} /**==================================== * Store - 타입 ====================================*/ @@ -162,13 +169,14 @@ const underWaterDetailList:UnderWaterInputModalProps[] = [ ====================================*/ // API response types -interface FlowDataItem { - inflAmnt: number; +export interface FlowDataItem { + inflAmnt: number | string; infoRnDay: number; msrDt: string; + rainEffectDay? : number; } -interface ApiResponse { +export interface ApiResponse { data: FlowDataItem[]; count: number; } @@ -250,6 +258,38 @@ const dataFormSetting=(item : UnderWaterProps)=> { export type UnderWaterStore = UnderWaterType & UnderWaterActions; +export const calRainEffectDay = (data: FlowDataItem[], weather: string) => { + for(let idx = 0; idx < data.length; idx++) { + const item = data[idx]; + const rainDay = Number(item?.infoRnDay) >= 3 ? 1 : 0; + let rainEffectDay = 0; + if(item){ + if(idx < data.length - 2) { + if(rainDay == 1) { + rainEffectDay = 1; + } else { + if(idx >= 2) { + if(Number(data[idx-1]?.infoRnDay) >= 3 || Number(data[idx-2]?.infoRnDay) >= 3) { + rainEffectDay = 1; + } + } + } + } else if(idx < data.length - 1) { + if(rainDay == 1 || Number(data[idx+1]?.infoRnDay) >= 3) { + rainEffectDay = 1; + } + } else { + rainEffectDay = rainDay; + } + item.rainEffectDay = rainEffectDay; + } + } + + let rtnData : FlowDataItem[] = []; + weather === 'ALL' ? rtnData = data : weather === 'SUNNY' ? rtnData = data.filter((item: FlowDataItem) => item.rainEffectDay === 0) : rtnData = data.filter((item: FlowDataItem) => item.rainEffectDay === 1); + return rtnData; +} + export const underWaterReducer:(set:(fn: (state: UnderWaterType) => UnderWaterType) => void)=>UnderWaterActions=(set: (fn: (state: UnderWaterType) => UnderWaterType) => void) => { return { searchUnderWaterList: async (pageNo: number, pageSize: number, searchYear: string, part?: string, nameCd?: string, fcltCpct?: string, operationValue?: string, fcltyNm?: string) => { @@ -262,8 +302,7 @@ export const underWaterReducer:(set:(fn: (state: UnderWaterType) => UnderWaterTy const bscFctCd = item.bscFctCd; const res2 = await getFetch('fo', '/fclt/flow/' + bscFctCd + '/' + searchYear) as ApiResponse; - - let sumChungcunDay = 0; + const calData = calRainEffectDay(res2.data, 'SUNNY'); let chungcunSumFlow = 0; let sumSummerChungcunDay = 0; @@ -272,24 +311,25 @@ export const underWaterReducer:(set:(fn: (state: UnderWaterType) => UnderWaterTy let sumWinterChungcunDay = 0; let sumWinterChungcunFlow = 0; - res2.data.forEach((flowItem: FlowDataItem) => { - // 청천시 - if(Number(flowItem.infoRnDay) ===0){ - sumChungcunDay += 1; - chungcunSumFlow += Number(flowItem.inflAmnt); - - if(flowItem.msrDt.substring(4,6) ==='06' || flowItem.msrDt.substring(4,6) ==='07' || flowItem.msrDt.substring(4,6) ==='08'){ - sumSummerChungcunDay += 1; - sumSummerChungcunFlow += Number(flowItem.inflAmnt); - }else if(flowItem.msrDt.includes('01') || flowItem.msrDt.includes('02')){ - sumWinterChungcunDay += 1; - sumWinterChungcunFlow += Number(flowItem.inflAmnt); - } + calData.forEach((flowItem: FlowDataItem) => { + chungcunSumFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; + + if(flowItem.msrDt.substring(4,6) ==='06' || flowItem.msrDt.substring(4,6) ==='07' || flowItem.msrDt.substring(4,6) ==='08'){ + sumSummerChungcunDay += 1; + sumSummerChungcunFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; + }else if(flowItem.msrDt.substring(4,6) ==='01' || flowItem.msrDt.substring(4,6) ==='02'){ + sumWinterChungcunDay += 1; + sumWinterChungcunFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; } }); - item.underWaterInputYear = Number(chungcunSumFlow==0?0:Math.round((chungcunSumFlow / sumChungcunDay) * 10) / 10) - Number(item.fctCpc * 0.6 * 0.8); - item.underWaterInputSummer = Number(sumSummerChungcunFlow==0?0:Math.round((sumSummerChungcunFlow / sumSummerChungcunDay) * 10) / 10) - Number(item.fctCpc * 0.6 * 0.8); - item.underWaterInputWinter = Number(sumWinterChungcunFlow==0?0:Math.round((sumWinterChungcunFlow / sumWinterChungcunDay) * 10) / 10) - Number(item.fctCpc * 0.6 * 0.8); + + const usage = chungcunSumFlow / calData.length; + const summerUsage = sumSummerChungcunFlow / sumSummerChungcunDay; + const winterUsage = sumWinterChungcunFlow / sumWinterChungcunDay; + + item.underWaterInputYear = Math.round((usage-(usage*0.65*0.8)) * 100) / 100, + item.underWaterInputSummer = Math.round((summerUsage-(summerUsage*0.65*0.8)) * 100) / 100; + item.underWaterInputWinter = Math.round((winterUsage-(winterUsage*0.65*0.8)) * 100) / 100; return item; })); @@ -339,10 +379,15 @@ export const underWaterReducer:(set:(fn: (state: UnderWaterType) => UnderWaterTy })) }, unserWaterModal:async (bscFctCd, searchYear)=>{ + console.log('searchYear : ', searchYear); const res = await getFetch('fo', '/fclt/flow/' + bscFctCd + '/' + searchYear); const monthData: SewageOccurDetailProps[] = []; - let tot = 0, cnt= 0 - res.data.forEach((item: FlowDataItem) => { + + const calData = calRainEffectDay(res.data, 'SUNNY'); + let tot = 0, cnt= 0; + + console.log('calData : ', calData); + calData.forEach((item: FlowDataItem) => { const month = item.msrDt?.substring(4, 6); const monthIdx = month ? Number(month) - 1 : -1; if (monthIdx >= 0) { @@ -364,7 +409,7 @@ export const underWaterReducer:(set:(fn: (state: UnderWaterType) => UnderWaterTy monthData.forEach((item, index) => { item.usege = item.sum/item.cnt tableData.push({ - msrDt: item.yr+'-'+(index+1>10?String(index+1):'0'+(index+1)), + msrDt: item.yr+'-'+(index+1>=10?String(index+1):'0'+(index+1)), realSewageInput:Math.round(item.usege*100) /100, sewageOccur:Math.round(item.usege*0.65*0.8 * 100) / 100, underWaterInput:Math.round((item.usege-(item.usege*0.65*0.8)) * 100) / 100, @@ -379,7 +424,7 @@ export const underWaterReducer:(set:(fn: (state: UnderWaterType) => UnderWaterTy }); avgWaterUsage = tot/cnt - + console.log('avgWaterUsage : ', avgWaterUsage); const newData= [ { msrDt: '평균',