diff --git a/apps/fo/app/store/dashboard/index.tsx b/apps/fo/app/store/dashboard/index.tsx index b5f678a22..d1fbdcfe1 100644 --- a/apps/fo/app/store/dashboard/index.tsx +++ b/apps/fo/app/store/dashboard/index.tsx @@ -22,93 +22,93 @@ export type TableUpperProps = { title: string; upName?: string; upSequnce?: number; - align? : string; - row? : number; + align?: string; + row?: number; rowSpan?: number; colSpan?: number; - widthPercent? : number; + widthPercent?: number; } // ===TAB1 // main fclty export type mainFcltyProps = { - fcltyNm : string, - facilityCapacity : string, - publicMethod : string, - location : string + fcltyNm: string, + facilityCapacity: string, + publicMethod: string, + location: string } // 시설계획 export type planFcltyListProps = { - item : string, - provisionalApproval : string | number | '', - now : string | number | '', - stepOne : string | number | '', - stepTwo : string | number | '', - stepThree : string | number | '', - stepFour : string | number | '', + item: string, + provisionalApproval: string | number | '', + now: string | number | '', + stepOne: string | number | '', + stepTwo: string | number | '', + stepThree: string | number | '', + stepFour: string | number | '', } // 운영실태 export type OperationalStatusListProps = { - flowRate : string, - waterQlty : string, - yearAvg : number | '', - yearMax : number | '', - yearMin : number | '', - summerAll : number | string | '', - summerThree : number | string | '', - summerRain : number | string | '', - winterAll : number | string | '', - winterSunnyAvg : number | string | '', - winterSunnyMax : number | string | '', - winterSunnyMin : number | string | '', - groundWaterAvg : number | string | '', - groundWaterSummer : number | string | '', - groundWaterWinter : number | string | '', - rdi : number | string | '', - rdiRain : number | string | '', + flowRate: string, + waterQlty: string, + yearAvg: number | '', + yearMax: number | '', + yearMin: number | '', + summerAll: number | string | '', + summerThree: number | string | '', + summerRain: number | string | '', + winterAll: number | string | '', + winterSunnyAvg: number | string | '', + winterSunnyMax: number | string | '', + winterSunnyMin: number | string | '', + groundWaterAvg: number | string | '', + groundWaterSummer: number | string | '', + groundWaterWinter: number | string | '', + rdi: number | string | '', + rdiRain: number | string | '', } export interface operationalStatusListProps { - flowRate : string, - waterQlty : string, - yearAvg : number | '', - yearMax : number | '', - yearMin : number | '', - summerAll : number | '', - summerThree : number | '', - summerRain : number | '', - winterAll : number | '', - winterSunnyAvg : number | '', - winterSunnyMax : number | '', - winterSunnyMin : number | '', - groundWaterAvg : number | string | '', - groundWaterSummer : number | string | '', - groundWaterWinter : number | string | '', - rdi : number | '', + flowRate: string, + waterQlty: string, + yearAvg: number | '', + yearMax: number | '', + yearMin: number | '', + summerAll: number | '', + summerThree: number | '', + summerRain: number | '', + winterAll: number | '', + winterSunnyAvg: number | '', + winterSunnyMax: number | '', + winterSunnyMin: number | '', + groundWaterAvg: number | string | '', + groundWaterSummer: number | string | '', + groundWaterWinter: number | string | '', + rdi: number | '', } // 차트 export type lineBarChartDataProps = { - label : string, - lineVal : number - barVal : number - barVal0 : number - barVal1 : number - lineVal0 : number - lineVal1 : number + label: string, + lineVal: number + barVal: number + barVal0: number + barVal1: number + lineVal0: number + lineVal1: number } export type lineChartDataProps = { - label : string, - val : number, + label: string, + val: number, } export interface RainManageListProps { - rainItem : string, - rainRate : string, - rainDay : number, + rainItem: string, + rainRate: string, + rainDay: number, bscFctCd?: string, bscFctNm?: string, msrDt?: string @@ -126,10 +126,10 @@ export interface RainManageListProps { efflWqltSs: number | '', efflWqltTn: number | '', efflWqltTp: number | '', - rgnNm?:string|'', - rvbsn?:string|'', - lgbsn?:string|'', - mdmbsn?:string|'', + rgnNm?: string | '', + rvbsn?: string | '', + lgbsn?: string | '', + mdmbsn?: string | '', inflAmnt: number | '', lclgvrnmntNm?: string, infoRnDay?: number | '', @@ -149,7 +149,7 @@ export interface RainManageListProps { dsInflWqltTp: number | '', extnsSeqno?: number | '', rainEffectDay?: number | '', - toBeInfoRnDay? : number | '', + toBeInfoRnDay?: number | '', } export interface RainManageExcelType { @@ -157,7 +157,7 @@ export interface RainManageExcelType { 강우조건비율: number | '', 일수: number | '', 유입유량: string | number | '', - 시설용량대비: string |number | '', + 시설용량대비: string | number | '', 설계유입수질BOD: string | number | '', 설계유입수질TOC: string | number | '', 설계유입수질SS: string | number | '', @@ -169,533 +169,533 @@ export interface RainManageExcelType { 유입수질TN: string | number | '', 유입수질TP: string | number | '', 방류수질BOD: string | number | '', - 방류수질TOC: string |number | '', + 방류수질TOC: string | number | '', 방류수질SS: string | number | '', 방류수질TN: string | number | '', 방류수질TP: string | number | '', } export interface DrainageEquipmentListProps { - part1 : string | '', - part2 : string | '', - nowSum : number | '', - nowJoin : number | '', - nowSep : number | '', - stepOneSum : number | '', - stepOneJoin : number | '', - stepOneSep : number | '', - stepTwoSum : number | '', - stepTwoJoin : number | '', - stepTwoSep : number | '', - stepThreeSum : number | '', - stepThreeJoin : number | '', - stepThreeSep : number | '', - stepFourSum : number | '', - stepFourJoin : number | '', - stepFourSep : number | '', - etc : string | '', + part1: string | '', + part2: string | '', + nowSum: number | '', + nowJoin: number | '', + nowSep: number | '', + stepOneSum: number | '', + stepOneJoin: number | '', + stepOneSep: number | '', + stepTwoSum: number | '', + stepTwoJoin: number | '', + stepTwoSep: number | '', + stepThreeSum: number | '', + stepThreeJoin: number | '', + stepThreeSep: number | '', + stepFourSum: number | '', + stepFourJoin: number | '', + stepFourSep: number | '', + etc: string | '', } export interface DrainageEquipmentExcelType { - partOne : string | '', - partTwo : string | '', - nowSum : number | '', - nowJoin : number | '', - nowSep : number | '', - stepOneSum : number | '', - stepOneJoin : number | '', - stepOneSep : number | '', - stepTwoSum : number | '', - stepTwoJoin : number | '', - stepTwoSep : number | '', - stepThreeSum : number | '', - stepThreeJoin : number | '', - stepThreeSep : number | '', - stepFourSum : number | '', - stepFourJoin : number | '', - stepFourSep : number | '', + partOne: string | '', + partTwo: string | '', + nowSum: number | '', + nowJoin: number | '', + nowSep: number | '', + stepOneSum: number | '', + stepOneJoin: number | '', + stepOneSep: number | '', + stepTwoSum: number | '', + stepTwoJoin: number | '', + stepTwoSep: number | '', + stepThreeSum: number | '', + stepThreeJoin: number | '', + stepThreeSep: number | '', + stepFourSum: number | '', + stepFourJoin: number | '', + stepFourSep: number | '', } /** * Store - data */ // Main -const DashBoardTopLabelArray:string[] = ['구분', '시도', '시군구', '년도', '시설명']; +const DashBoardTopLabelArray: string[] = ['구분', '시도', '시군구', '년도', '시설명']; // === Tab1 // grid header -const upHeadListFclty:TableUpperProps[] = [ - { id : "fcltyNm", title : "시설명"}, - { id : "facilityCapacity", title : "시설용량(m³/일)"}, - { id : "publicMethod", title : "공법"}, - { id : "location", title : "지역구"}, +const upHeadListFclty: TableUpperProps[] = [ + { id: "fcltyNm", title: "시설명" }, + { id: "facilityCapacity", title: "시설용량(m³/일)" }, + { id: "publicMethod", title: "공법" }, + { id: "location", title: "지역구" }, ] -const fcltyList : mainFcltyProps[] = [ +const fcltyList: mainFcltyProps[] = [ ] function getPlanYearList(): string[] { - const currentYear = new Date().getFullYear(); // 올해 - const startYear = currentYear - 4; // 5년 전 - const endYear = currentYear + 1; // 내년 + const currentYear = new Date().getFullYear(); // 올해 + const startYear = currentYear - 4; // 5년 전 + const endYear = currentYear + 1; // 내년 - const years: string[] = []; + const years: string[] = []; - for (let y = startYear; y <= endYear; y++) { - years.push(String(y)); // 혹은 y.toString() - } + for (let y = startYear; y <= endYear; y++) { + years.push(String(y)); // 혹은 y.toString() + } - return years; + return years; } -let planYearList : string[] = getPlanYearList(); +let planYearList: string[] = getPlanYearList(); -const upHeadListPlanFclty : TableUpperProps[] = [ - { id: "item", title: "", upName:"upChangeRe", upSequnce:1 }, - { id: "provisionalApproval", title: "기승인\n4단계", upName:"upChangeRe", upSequnce:2 }, - { id: "now", title: "현재", upName:"upChangeRe", upSequnce:3 }, - { id: "stepOne", title: "1단계", upName:"upChangeRe", upSequnce:4 }, - { id: "stepTwo", title: "2단계", upName:"upChangeRe", upSequnce:5 }, - { id: "stepThree", title: "3단계", upName:"upChangeRe", upSequnce:6 }, - { id: "stepFour", title: "4단계", upName:"upChangeRe", upSequnce:7 }, +const upHeadListPlanFclty: TableUpperProps[] = [ + { id: "item", title: "", upName: "upChangeRe", upSequnce: 1 }, + { id: "provisionalApproval", title: "기승인\n4단계", upName: "upChangeRe", upSequnce: 2 }, + { id: "now", title: "현재", upName: "upChangeRe", upSequnce: 3 }, + { id: "stepOne", title: "1단계", upName: "upChangeRe", upSequnce: 4 }, + { id: "stepTwo", title: "2단계", upName: "upChangeRe", upSequnce: 5 }, + { id: "stepThree", title: "3단계", upName: "upChangeRe", upSequnce: 6 }, + { id: "stepFour", title: "4단계", upName: "upChangeRe", upSequnce: 7 }, ] // 시설계획 좌측 상단 -const planFcltyList:planFcltyListProps[] = [ +const planFcltyList: planFcltyListProps[] = [ { - item : "1.증설계획\n(㎥/일)", + item: "1.증설계획\n(㎥/일)", provisionalApproval: "", now: "", stepOne: "", stepTwo: "", stepThree: "", - stepFour : "", + stepFour: "", }, { - item : "2.처리인구(인)", + item: "2.처리인구(인)", provisionalApproval: "", now: "", stepOne: "", stepTwo: "", stepThree: "", - stepFour : "", + stepFour: "", }, { - item : "3.처리구역\n(km²)", + item: "3.처리구역\n(km²)", provisionalApproval: "", now: "", stepOne: "", stepTwo: "", stepThree: "", - stepFour : "", + stepFour: "", }, { - item : "4.분류식화율\n(%)", + item: "4.분류식화율\n(%)", provisionalApproval: "", now: "", stepOne: "", stepTwo: "", stepThree: "", - stepFour : "", + stepFour: "", }, { - item : "5.물사용량", + item: "5.물사용량", provisionalApproval: "", now: "", stepOne: "", stepTwo: "", stepThree: "", - stepFour : "", + stepFour: "", }, { - item : "년도\n(최근 3개년)", + item: "년도\n(최근 3개년)", provisionalApproval: "물사용량\n(㎥/일)", now: "", stepOne: "", stepTwo: "비고", stepThree: "", - stepFour : "", + stepFour: "", }, { - item : "2021", + item: "2021", provisionalApproval: "", now: "", stepOne: "", stepTwo: "", stepThree: "", - stepFour : "", + stepFour: "", }, { - item : "2022", + item: "2022", provisionalApproval: "", now: "", stepOne: "", stepTwo: "", stepThree: "", - stepFour : "", + stepFour: "", }, { - item : "2023", + item: "2023", provisionalApproval: "", now: "", stepOne: "", stepTwo: "", stepThree: "", - stepFour : "", + stepFour: "", }, ] -const upHeadListOperationStatus : TableUpperProps[] = [ - { id: "flowRate", title: "유량 및 수질", upName:"upChangeRe1", upSequnce:1 }, - { id: "waterQlty", title: "유량 및 수질", upName:"upChangeRe1", upSequnce:2 }, - { id: "yearAvg", title: "평균", upName:"upChangeRe2", upSequnce:1 }, - { id: "yearMax", title: "최대", upName:"upChangeRe2", upSequnce:2 }, - { id: "yearMin", title: "최소", upName:"upChangeRe2", upSequnce:3 }, - { id: "summerAll", title: "전기간", upName:"upChangeRe3", upSequnce:1 }, - { id: "summerThree", title: "강우시\n(3mm이상)", upName:"upChangeRe3", upSequnce:2 }, - { id: "summerRain", title: "청천시", upName:"upChangeRe3", upSequnce:3 }, - { id: "winterAll", title: "전기간", upName:"upChangeRe4", upSequnce:1 }, - { id: "winterSunnyAvg", title: "청천시\n평균", upName:"upChangeRe4", upSequnce:2 }, - { id: "winterSunnyMax", title: "청천시\n최대", upName:"upChangeRe4", upSequnce:3 }, - { id: "winterSunnyMin", title: "청천시\n최소", upName:"upChangeRe4", upSequnce:4 }, - { id: "groundWaterAvg", title: "연평균", upName:"upChangeRe5", upSequnce:1 }, - { id: "groundWaterSummer", title: "하절기\n평균", upName:"upChangeRe5", upSequnce:2 }, - { id: "groundWaterWinter", title: "동절기\n평균", upName:"upChangeRe5", upSequnce:3 }, +const upHeadListOperationStatus: TableUpperProps[] = [ + { id: "flowRate", title: "유량 및 수질", upName: "upChangeRe1", upSequnce: 1 }, + { id: "waterQlty", title: "유량 및 수질", upName: "upChangeRe1", upSequnce: 2 }, + { id: "yearAvg", title: "평균", upName: "upChangeRe2", upSequnce: 1 }, + { id: "yearMax", title: "최대", upName: "upChangeRe2", upSequnce: 2 }, + { id: "yearMin", title: "최소", upName: "upChangeRe2", upSequnce: 3 }, + { id: "summerAll", title: "전기간", upName: "upChangeRe3", upSequnce: 1 }, + { id: "summerThree", title: "강우시\n(3mm이상)", upName: "upChangeRe3", upSequnce: 2 }, + { id: "summerRain", title: "청천시", upName: "upChangeRe3", upSequnce: 3 }, + { id: "winterAll", title: "전기간", upName: "upChangeRe4", upSequnce: 1 }, + { id: "winterSunnyAvg", title: "청천시\n평균", upName: "upChangeRe4", upSequnce: 2 }, + { id: "winterSunnyMax", title: "청천시\n최대", upName: "upChangeRe4", upSequnce: 3 }, + { id: "winterSunnyMin", title: "청천시\n최소", upName: "upChangeRe4", upSequnce: 4 }, + { id: "groundWaterAvg", title: "연평균", upName: "upChangeRe5", upSequnce: 1 }, + { id: "groundWaterSummer", title: "하절기\n평균", upName: "upChangeRe5", upSequnce: 2 }, + { id: "groundWaterWinter", title: "동절기\n평균", upName: "upChangeRe5", upSequnce: 3 }, { id: "rdi", title: "RDII 추정" }, { id: "rdiRain", title: "RDII 추정시\n일강수량(mm)" }, ] -const upHeadListRainManage : TableUpperProps[] = [ - { id: "rainItem", title: "강우량", row:0, rowSpan:2, widthPercent: 8 }, - { id: "rainRate", title: "강우조건\n비율(%)", row:0, rowSpan:2, align: "right", widthPercent: 5 }, - { id: "rainDay", title: "일수", row:0, rowSpan:2, align: "right", widthPercent: 5 }, - { id: "A", title: "유입(㎥/일)", row:0, colSpan:2 }, - { id: "inflAmnt", title: "유입유량", row:1, align: "right", widthPercent: 6 }, - { id: "fctCpc", title: "시설용량대비", row:1, align: "right", widthPercent: 6 }, - { id: "B", title: "설계유입수질(㎎/L)", row:0, colSpan:5 }, - { id: "dsInflWqltBod", title: "BOD", row:1, align: "right" }, - { id: "dsInflWqltCod", title: "TOC\n(COD)", row:1, align: "right" }, - { id: "dsInflWqltSs", title: "SS", row:1, align: "right" }, - { id: "dsInflWqltTn", title: "T-N", row:1, align: "right" }, - { id: "dsInflWqltTp", title: "T-P", row:1, align: "right" }, - { id: "C", title: "유입수질(㎎/L)", row:0, colSpan:5 }, - { id: "inflAssctBfrWqltBod", title: "BOD", row:1, align: "right" }, - { id: "inflAssctBfrWqltToc", title: "TOC\n(COD)", row:1, align: "right" }, - { id: "inflAssctBfrWqltSs", title: "SS", row:1, align: "right" }, - { id: "inflAssctBfrWqltTn", title: "T-N", row:1, align: "right" }, - { id: "inflAssctBfrWqltTp", title: "T-P", row:1, align: "right" }, - { id: "D", title: "방류수질(㎎/L)", row:0, colSpan:5 }, - { id: "efflWqltBod", title: "BOD", row:1, align: "right" }, - { id: "efflWqltToc", title: "TOC\n(COD)", row:1, align: "right" }, - { id: "efflWqltSs", title: "SS", row:1, align: "right" }, - { id: "efflWqltTn", title: "T-N", row:1, align: "right" }, - { id: "efflWqltTp", title: "T-P", row:1, align: "right" }, +const upHeadListRainManage: TableUpperProps[] = [ + { id: "rainItem", title: "강우량", row: 0, rowSpan: 2, widthPercent: 8 }, + { id: "rainRate", title: "강우조건\n비율(%)", row: 0, rowSpan: 2, align: "right", widthPercent: 5 }, + { id: "rainDay", title: "일수", row: 0, rowSpan: 2, align: "right", widthPercent: 5 }, + { id: "A", title: "유입(㎥/일)", row: 0, colSpan: 2 }, + { id: "inflAmnt", title: "유입유량", row: 1, align: "right", widthPercent: 6 }, + { id: "fctCpc", title: "시설용량대비", row: 1, align: "right", widthPercent: 6 }, + { id: "B", title: "설계유입수질(㎎/L)", row: 0, colSpan: 5 }, + { id: "dsInflWqltBod", title: "BOD", row: 1, align: "right" }, + { id: "dsInflWqltCod", title: "TOC\n(COD)", row: 1, align: "right" }, + { id: "dsInflWqltSs", title: "SS", row: 1, align: "right" }, + { id: "dsInflWqltTn", title: "T-N", row: 1, align: "right" }, + { id: "dsInflWqltTp", title: "T-P", row: 1, align: "right" }, + { id: "C", title: "유입수질(㎎/L)", row: 0, colSpan: 5 }, + { id: "inflAssctBfrWqltBod", title: "BOD", row: 1, align: "right" }, + { id: "inflAssctBfrWqltToc", title: "TOC\n(COD)", row: 1, align: "right" }, + { id: "inflAssctBfrWqltSs", title: "SS", row: 1, align: "right" }, + { id: "inflAssctBfrWqltTn", title: "T-N", row: 1, align: "right" }, + { id: "inflAssctBfrWqltTp", title: "T-P", row: 1, align: "right" }, + { id: "D", title: "방류수질(㎎/L)", row: 0, colSpan: 5 }, + { id: "efflWqltBod", title: "BOD", row: 1, align: "right" }, + { id: "efflWqltToc", title: "TOC\n(COD)", row: 1, align: "right" }, + { id: "efflWqltSs", title: "SS", row: 1, align: "right" }, + { id: "efflWqltTn", title: "T-N", row: 1, align: "right" }, + { id: "efflWqltTp", title: "T-P", row: 1, align: "right" }, ] -const upHeadListDrainageEquipment : TableUpperProps[] = [ - { id: "part1", title: "구분", row:0, upName:"upChangeRe1", upSequnce:1 }, - { id: "part2", title: "구분", row:0, upName:"upChangeRe1", upSequnce:2 }, - { id: "nowSum", title: "계", row:2, upName:"upChangeRe2", upSequnce:1 }, - { id: "nowJoin", title: "합류식\n가구수", row:2, upName:"upChangeRe2", upSequnce:2 }, - { id: "nowSep", title: "분리식\n가구수", row:2, upName:"upChangeRe2", upSequnce:3 }, - { id: "stepOneSum", title: "계", row:2, upName:"upChangeRe3", upSequnce:1 }, - { id: "stepOneJoin", title: "합류식\n가구수", row:2, upName:"upChangeRe3", upSequnce:2 }, - { id: "stepOneSep", title: "분리식\n가구수", row:2, upName:"upChangeRe3", upSequnce:3 }, - { id: "stepTwoSum", title: "계", row:2, upName:"upChangeRe4", upSequnce:1 }, - { id: "stepTwoJoin", title: "합류식\n가구수", row:2, upName:"upChangeRe4", upSequnce:2 }, - { id: "stepTwoSep", title: "분리식\n가구수", row:2, upName:"upChangeRe4", upSequnce:3 }, - { id: "stepThreeSum", title: "계", row:2, upName:"upChangeRe5", upSequnce:1 }, - { id: "stepThreeJoin", title: "합류식\n가구수", row:2, upName:"upChangeRe5", upSequnce:2 }, - { id: "stepThreeSep", title: "분리식\n가구수", row:2, upName:"upChangeRe5", upSequnce:3 }, - { id: "stepFourSum", title: "계", row:2, upName:"upChangeRe6", upSequnce:1 }, - { id: "stepFourJoin", title: "합류식\n가구수", row:2, upName:"upChangeRe6", upSequnce:2 }, - { id: "stepFourSep", title: "분리식\n가구수", row:2, upName:"upChangeRe6", upSequnce:3 }, - { id: "etc", title: "비고", row:0, upName:"upChangeRe7", upSequnce:1 }, +const upHeadListDrainageEquipment: TableUpperProps[] = [ + { id: "part1", title: "구분", row: 0, upName: "upChangeRe1", upSequnce: 1 }, + { id: "part2", title: "구분", row: 0, upName: "upChangeRe1", upSequnce: 2 }, + { id: "nowSum", title: "계", row: 2, upName: "upChangeRe2", upSequnce: 1 }, + { id: "nowJoin", title: "합류식\n가구수", row: 2, upName: "upChangeRe2", upSequnce: 2 }, + { id: "nowSep", title: "분리식\n가구수", row: 2, upName: "upChangeRe2", upSequnce: 3 }, + { id: "stepOneSum", title: "계", row: 2, upName: "upChangeRe3", upSequnce: 1 }, + { id: "stepOneJoin", title: "합류식\n가구수", row: 2, upName: "upChangeRe3", upSequnce: 2 }, + { id: "stepOneSep", title: "분리식\n가구수", row: 2, upName: "upChangeRe3", upSequnce: 3 }, + { id: "stepTwoSum", title: "계", row: 2, upName: "upChangeRe4", upSequnce: 1 }, + { id: "stepTwoJoin", title: "합류식\n가구수", row: 2, upName: "upChangeRe4", upSequnce: 2 }, + { id: "stepTwoSep", title: "분리식\n가구수", row: 2, upName: "upChangeRe4", upSequnce: 3 }, + { id: "stepThreeSum", title: "계", row: 2, upName: "upChangeRe5", upSequnce: 1 }, + { id: "stepThreeJoin", title: "합류식\n가구수", row: 2, upName: "upChangeRe5", upSequnce: 2 }, + { id: "stepThreeSep", title: "분리식\n가구수", row: 2, upName: "upChangeRe5", upSequnce: 3 }, + { id: "stepFourSum", title: "계", row: 2, upName: "upChangeRe6", upSequnce: 1 }, + { id: "stepFourJoin", title: "합류식\n가구수", row: 2, upName: "upChangeRe6", upSequnce: 2 }, + { id: "stepFourSep", title: "분리식\n가구수", row: 2, upName: "upChangeRe6", upSequnce: 3 }, + { id: "etc", title: "비고", row: 0, upName: "upChangeRe7", upSequnce: 1 }, ] -const operationalStatusListOrg : OperationalStatusListProps[] = [ +const operationalStatusListOrg: OperationalStatusListProps[] = [ { - flowRate : '유량\n(㎥/일)', - waterQlty : '유입', - yearAvg : '', - yearMax : '', - yearMin : '', - summerAll : '', - summerThree : '', - summerRain : '', - winterAll : '', - winterSunnyAvg : '', - winterSunnyMax : '', - winterSunnyMin : '', - groundWaterAvg : '', - groundWaterSummer : '', - groundWaterWinter : '', - rdi : '', - rdiRain : '', + flowRate: '유량\n(㎥/일)', + waterQlty: '유입', + yearAvg: '', + yearMax: '', + yearMin: '', + summerAll: '', + summerThree: '', + summerRain: '', + winterAll: '', + winterSunnyAvg: '', + winterSunnyMax: '', + winterSunnyMin: '', + groundWaterAvg: '', + groundWaterSummer: '', + groundWaterWinter: '', + rdi: '', + rdiRain: '', }, { - flowRate : '유량\n(㎥/일)', - waterQlty : '순수하수', - yearAvg : '', - yearMax : '', - yearMin : '', - summerAll : '', - summerThree : '', - summerRain : '', - winterAll : '', - winterSunnyAvg : '', - winterSunnyMax : '', - winterSunnyMin : '', - groundWaterAvg : '', - groundWaterSummer : '', - groundWaterWinter : '', - rdi : '', - rdiRain : '', + flowRate: '유량\n(㎥/일)', + waterQlty: '순수하수', + yearAvg: '', + yearMax: '', + yearMin: '', + summerAll: '', + summerThree: '', + summerRain: '', + winterAll: '', + winterSunnyAvg: '', + winterSunnyMax: '', + winterSunnyMin: '', + groundWaterAvg: '', + groundWaterSummer: '', + groundWaterWinter: '', + rdi: '', + rdiRain: '', }, { - flowRate : '유량\n(㎥/일)', - waterQlty : '연계처리수', - yearAvg : '', - yearMax : '', - yearMin : '', - summerAll : '', - summerThree : '', - summerRain : '', - winterAll : '', - winterSunnyAvg : '', - winterSunnyMax : '', - winterSunnyMin : '', - groundWaterAvg : '', - groundWaterSummer : '', - groundWaterWinter : '', - rdi : '', - rdiRain : '', + flowRate: '유량\n(㎥/일)', + waterQlty: '연계처리수', + yearAvg: '', + yearMax: '', + yearMin: '', + summerAll: '', + summerThree: '', + summerRain: '', + winterAll: '', + winterSunnyAvg: '', + winterSunnyMax: '', + winterSunnyMin: '', + groundWaterAvg: '', + groundWaterSummer: '', + groundWaterWinter: '', + rdi: '', + rdiRain: '', }, { - flowRate : '유량\n(㎥/일)', - waterQlty : '총인설비\n반류수', - yearAvg : '', - yearMax : '', - yearMin : '', - summerAll : '', - summerThree : '', - summerRain : '', - winterAll : '', - winterSunnyAvg : '', - winterSunnyMax : '', - winterSunnyMin : '', - groundWaterAvg : '', - groundWaterSummer : '', - groundWaterWinter : '', - rdi : '', - rdiRain : '', + flowRate: '유량\n(㎥/일)', + waterQlty: '총인설비\n반류수', + yearAvg: '', + yearMax: '', + yearMin: '', + summerAll: '', + summerThree: '', + summerRain: '', + winterAll: '', + winterSunnyAvg: '', + winterSunnyMax: '', + winterSunnyMin: '', + groundWaterAvg: '', + groundWaterSummer: '', + groundWaterWinter: '', + rdi: '', + rdiRain: '', }, { - flowRate : '유량\n(㎥/일)', - waterQlty : '방류', - yearAvg : '', - yearMax : '', - yearMin : '', - summerAll : '', - summerThree : '', - summerRain : '', - winterAll : '', - winterSunnyAvg : '', - winterSunnyMax : '', - winterSunnyMin : '', - groundWaterAvg : '', - groundWaterSummer : '', - groundWaterWinter : '', - rdi : '', - rdiRain : '', + flowRate: '유량\n(㎥/일)', + waterQlty: '방류', + yearAvg: '', + yearMax: '', + yearMin: '', + summerAll: '', + summerThree: '', + summerRain: '', + winterAll: '', + winterSunnyAvg: '', + winterSunnyMax: '', + winterSunnyMin: '', + groundWaterAvg: '', + groundWaterSummer: '', + groundWaterWinter: '', + rdi: '', + rdiRain: '', }, { - flowRate : '수질\n(mg/L)', - waterQlty : '유입\n(BOD)', - yearAvg : '', - yearMax : '', - yearMin : '', - summerAll : '', - summerThree : '', - summerRain : '', - winterAll : '', - winterSunnyAvg : '', - winterSunnyMax : '', - winterSunnyMin : '', - groundWaterAvg : '', - groundWaterSummer : '', - groundWaterWinter : '', - rdi : '', - rdiRain : '', + flowRate: '수질\n(mg/L)', + waterQlty: '유입\n(BOD)', + yearAvg: '', + yearMax: '', + yearMin: '', + summerAll: '', + summerThree: '', + summerRain: '', + winterAll: '', + winterSunnyAvg: '', + winterSunnyMax: '', + winterSunnyMin: '', + groundWaterAvg: '', + groundWaterSummer: '', + groundWaterWinter: '', + rdi: '', + rdiRain: '', }, { - flowRate : '수질\n(mg/L)', - waterQlty : '방류\n(BOD)', - yearAvg : '', - yearMax : '', - yearMin : '', - summerAll : '', - summerThree : '', - summerRain : '', - winterAll : '', - winterSunnyAvg : '', - winterSunnyMax : '', - winterSunnyMin : '', - groundWaterAvg : '', - groundWaterSummer : '', - groundWaterWinter : '', - rdi : '', - rdiRain : '', + flowRate: '수질\n(mg/L)', + waterQlty: '방류\n(BOD)', + yearAvg: '', + yearMax: '', + yearMin: '', + summerAll: '', + summerThree: '', + summerRain: '', + winterAll: '', + winterSunnyAvg: '', + winterSunnyMax: '', + winterSunnyMin: '', + groundWaterAvg: '', + groundWaterSummer: '', + groundWaterWinter: '', + rdi: '', + rdiRain: '', }, { - flowRate : '수질\n(mg/L)', - waterQlty : '유입\n(T-N)', - yearAvg : '', - yearMax : '', - yearMin : '', - summerAll : '', - summerThree : '', - summerRain : '', - winterAll : '', - winterSunnyAvg : '', - winterSunnyMax : '', - winterSunnyMin : '', - groundWaterAvg : '', - groundWaterSummer : '', - groundWaterWinter : '', - rdi : '', - rdiRain : '', + flowRate: '수질\n(mg/L)', + waterQlty: '유입\n(T-N)', + yearAvg: '', + yearMax: '', + yearMin: '', + summerAll: '', + summerThree: '', + summerRain: '', + winterAll: '', + winterSunnyAvg: '', + winterSunnyMax: '', + winterSunnyMin: '', + groundWaterAvg: '', + groundWaterSummer: '', + groundWaterWinter: '', + rdi: '', + rdiRain: '', }, { - flowRate : '수질\n(mg/L)', - waterQlty : '방류\n(T-N)', - yearAvg : '', - yearMax : '', - yearMin : '', - summerAll : '', - summerThree : '', - summerRain : '', - winterAll : '', - winterSunnyAvg : '', - winterSunnyMax : '', - winterSunnyMin : '', - groundWaterAvg : '', - groundWaterSummer : '', - groundWaterWinter : '', - rdi : '', - rdiRain : '', + flowRate: '수질\n(mg/L)', + waterQlty: '방류\n(T-N)', + yearAvg: '', + yearMax: '', + yearMin: '', + summerAll: '', + summerThree: '', + summerRain: '', + winterAll: '', + winterSunnyAvg: '', + winterSunnyMax: '', + winterSunnyMin: '', + groundWaterAvg: '', + groundWaterSummer: '', + groundWaterWinter: '', + rdi: '', + rdiRain: '', }, { - flowRate : '수질\n(mg/L)', - waterQlty : '유입\n(T-P)', - yearAvg : '', - yearMax : '', - yearMin : '', - summerAll : '', - summerThree : '', - summerRain : '', - winterAll : '', - winterSunnyAvg : '', - winterSunnyMax : '', - winterSunnyMin : '', - groundWaterAvg : '', - groundWaterSummer : '', - groundWaterWinter : '', - rdi : '', - rdiRain : '', + flowRate: '수질\n(mg/L)', + waterQlty: '유입\n(T-P)', + yearAvg: '', + yearMax: '', + yearMin: '', + summerAll: '', + summerThree: '', + summerRain: '', + winterAll: '', + winterSunnyAvg: '', + winterSunnyMax: '', + winterSunnyMin: '', + groundWaterAvg: '', + groundWaterSummer: '', + groundWaterWinter: '', + rdi: '', + rdiRain: '', }, { - flowRate : '수질\n(mg/L)', - waterQlty : '방류\n(T-P)', - yearAvg : '', - yearMax : '', - yearMin : '', - summerAll : '', - summerThree : '', - summerRain : '', - winterAll : '', - winterSunnyAvg : '', - winterSunnyMax : '', - winterSunnyMin : '', - groundWaterAvg : '', - groundWaterSummer : '', - groundWaterWinter : '', - rdi : '', - rdiRain : '', + flowRate: '수질\n(mg/L)', + waterQlty: '방류\n(T-P)', + yearAvg: '', + yearMax: '', + yearMin: '', + summerAll: '', + summerThree: '', + summerRain: '', + winterAll: '', + winterSunnyAvg: '', + winterSunnyMax: '', + winterSunnyMin: '', + groundWaterAvg: '', + groundWaterSummer: '', + groundWaterWinter: '', + rdi: '', + rdiRain: '', }, { - flowRate : '총인\n시설\n수질\n(mg/L)', - waterQlty : '총인설비\n유입(T-P)', - yearAvg : '', - yearMax : '', - yearMin : '', - summerAll : '', - summerThree : '', - summerRain : '', - winterAll : '', - winterSunnyAvg : '', - winterSunnyMax : '', - winterSunnyMin : '', - groundWaterAvg : '', - groundWaterSummer : '', - groundWaterWinter : '', - rdi : '', - rdiRain : '', + flowRate: '총인\n시설\n수질\n(mg/L)', + waterQlty: '총인설비\n유입(T-P)', + yearAvg: '', + yearMax: '', + yearMin: '', + summerAll: '', + summerThree: '', + summerRain: '', + winterAll: '', + winterSunnyAvg: '', + winterSunnyMax: '', + winterSunnyMin: '', + groundWaterAvg: '', + groundWaterSummer: '', + groundWaterWinter: '', + rdi: '', + rdiRain: '', }, { - flowRate : '총인\n시설\n수질\n(mg/L)', - waterQlty : '총인설비\n방류(T-P)', - yearAvg : '', - yearMax : '', - yearMin : '', - summerAll : '', - summerThree : '', - summerRain : '', - winterAll : '', - winterSunnyAvg : '', - winterSunnyMax : '', - winterSunnyMin : '', - groundWaterAvg : '', - groundWaterSummer : '', - groundWaterWinter : '', - rdi : '', - rdiRain : '', + flowRate: '총인\n시설\n수질\n(mg/L)', + waterQlty: '총인설비\n방류(T-P)', + yearAvg: '', + yearMax: '', + yearMin: '', + summerAll: '', + summerThree: '', + summerRain: '', + winterAll: '', + winterSunnyAvg: '', + winterSunnyMax: '', + winterSunnyMin: '', + groundWaterAvg: '', + groundWaterSummer: '', + groundWaterWinter: '', + rdi: '', + rdiRain: '', }, ] -const chart_inflowRain : lineBarChartDataProps[] = []; -const chart_bodRain : lineBarChartDataProps[] = []; -const chart_inflTp : lineChartDataProps[] = []; -const chart_chongInTp : lineChartDataProps[] = []; -const chart_efflTp : lineChartDataProps[] = []; -const chart_inflTn : lineChartDataProps[] = []; -const chart_efflTn : lineChartDataProps[] = []; -const chart_inflBod : lineChartDataProps[] = []; -const chart_efflBod : lineChartDataProps[] = []; -const waterQltyStandartd : any = []; +const chart_inflowRain: lineBarChartDataProps[] = []; +const chart_bodRain: lineBarChartDataProps[] = []; +const chart_inflTp: lineChartDataProps[] = []; +const chart_chongInTp: lineChartDataProps[] = []; +const chart_efflTp: lineChartDataProps[] = []; +const chart_inflTn: lineChartDataProps[] = []; +const chart_efflTn: lineChartDataProps[] = []; +const chart_inflBod: lineChartDataProps[] = []; +const chart_efflBod: lineChartDataProps[] = []; +const waterQltyStandartd: any = []; -const rainManageList : RainManageListProps[] = []; +const rainManageList: RainManageListProps[] = []; -const drainageEquipmentList : DrainageEquipmentListProps[] = [ +const drainageEquipmentList: DrainageEquipmentListProps[] = [ { - part1 : '청천시청', - part2 : '청천시청', - nowSum : 101, - nowJoin : 102, - nowSep : 103, - stepOneSum : 104, - stepOneJoin : 105, - stepOneSep : 106, - stepTwoSum : 107, - stepTwoJoin : 108, - stepTwoSep : 109, - stepThreeSum : 110, - stepThreeJoin : 111, - stepThreeSep : 112, - stepFourSum : 113, - stepFourJoin : 114, - stepFourSep : 115, - etc : '1050', + part1: '청천시청', + part2: '청천시청', + nowSum: 101, + nowJoin: 102, + nowSep: 103, + stepOneSum: 104, + stepOneJoin: 105, + stepOneSep: 106, + stepTwoSum: 107, + stepTwoJoin: 108, + stepTwoSep: 109, + stepThreeSum: 110, + stepThreeJoin: 111, + stepThreeSep: 112, + stepFourSum: 113, + stepFourJoin: 114, + stepFourSep: 115, + etc: '1050', } ]; @@ -703,50 +703,50 @@ const drainageEquipmentList : DrainageEquipmentListProps[] = [ * Store - api (데이터 호출) ====================================*/ /* 시설정보 및 운영현황 - 계획 */ -const fetchFacilityPlan = async (targetYear : string | undefined, fcltyCd : string | undefined, set : (fn: (state: DashBoardType) => DashBoardType) => void) => { - try { - const res = await fetchPlanInfo(undefined, undefined, undefined, fcltyCd); - return res; - } catch (error) { - console.error('시설계획정보를 가져오는데 실패했습니다:', error); - set((state) => ({ - ...state, - PlanFclty : { - ...state.PlanFclty, - isLoadingPlanFclty : false, - isLoadingOperationStatus : false - } - })); - return {data: [], count: 0}; - } +const fetchFacilityPlan = async (targetYear: string | undefined, fcltyCd: string | undefined, set: (fn: (state: DashBoardType) => DashBoardType) => void) => { + try { + const res = await fetchPlanInfo(undefined, undefined, undefined, fcltyCd); + return res; + } catch (error) { + console.error('시설계획정보를 가져오는데 실패했습니다:', error); + set((state) => ({ + ...state, + PlanFclty: { + ...state.PlanFclty, + isLoadingPlanFclty: false, + isLoadingOperationStatus: false + } + })); + return { data: [], count: 0 }; + } }; /* 시설정보 및 운영현황 - 운영실태 */ -const fetchOperationStatus = async (searchYear: string|undefined, fcltyCd: string|undefined) => { - try{ - const url = '/dashBoard/mngInfo/' + (searchYear?searchYear:'2023') + '/' + (fcltyCd?fcltyCd:''); +const fetchOperationStatus = async (searchYear: string | undefined, fcltyCd: string | undefined) => { + try { + const url = '/dashBoard/mngInfo/' + (searchYear ? searchYear : '2023') + '/' + (fcltyCd ? fcltyCd : ''); const res = await getFetch('fo', url); return { data: res.data, count: res.count } - } catch (error) { + } catch (error) { console.error('운영실태 데이터를 가져오는데 실패했습니다:', error); return { data: [], count: 0 }; } } // 주요그래프 데이터 -const fetchMainGraph = async (searchYear: string|undefined, fcltyCd: string|undefined) => { - try { - const url = '/fclt/qlty/hist/' + (searchYear?searchYear:'2023') + '/' + (fcltyCd?fcltyCd:'11680PB001R'); +const fetchMainGraph = async (searchYear: string | undefined, fcltyCd: string | undefined) => { + try { + const url = '/fclt/qlty/hist/' + (searchYear ? searchYear : '2023') + '/' + (fcltyCd ? fcltyCd : '11680PB001R'); const res = await getFetch('fo', url); return { data: res.data, count: res.count } - } catch (error) { + } catch (error) { console.error('주요그래프 데이터를 가져오는데 실패했습니다:', error); return { data: [], count: 0 }; } } // 수질 데이터 청천시, 강우시 재계산 -const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcltyCd : string|undefined) => { +const calcWaterQltyData = async (data: any[], searchYear: string | undefined, fcltyCd: string | undefined) => { const nullToZero = (value: any) => { return value === null || value === undefined || value === '' ? 0 : Number(value); @@ -754,180 +754,210 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl const orgData = data; const res = await fetchMainGraph(searchYear, fcltyCd); - if(res.data.wqltObjs.length> 0) { + if (res.data.wqltObjs.length > 0) { const clone = (arr: any[]) => arr?.map(v => ({ ...v })) ?? []; const qltyData = res.data.wqltObjs; - const qltyChungchunData = CalcRainEffect(clone(qltyData), 'SUNNY'); + // const qltyChungchunData = CalcRainEffect(clone(qltyData), 'SUNNY'); + + // 강우시 변수 + let rainSummerDay9 = 0, noNullRainSummerDay9 = 0; + let rainInflBodAvg9 = 0, rainInflTnAvg9 = 0, rainInflTpAvg9 = 0; + let rainEfflBodAvg9 = 0, rainEfflTnAvg9 = 0, rainEfflTpAvg9 = 0, rainTpInflAvg9 = 0; const qltyRainData = CalcRainEffect(clone(qltyData), 'RAIN'); + const rainEffectDayArray: string[] = []; + // 강우시 + qltyRainData.forEach((item: any) => { + const month = item.msrDt.substring(4, 6); // 월 추출 + if (month === '06' || month === '07' || month === '08') { + rainSummerDay9 += 1; + if (item.tpInflWqltTp != null && item.tpInflWqltTp != 0) { + noNullRainSummerDay9 += 1; + } + + rainInflBodAvg9 += nullToZero(item.inflAssctBfrWqltBod); + rainInflTnAvg9 += nullToZero(item.inflAssctBfrWqltTn); + rainInflTpAvg9 += nullToZero(item.inflAssctBfrWqltTp); + rainEfflBodAvg9 += nullToZero(item.efflWqltBod); + rainEfflTnAvg9 += nullToZero(item.efflWqltTn); + rainEfflTpAvg9 += nullToZero(item.efflWqltTp); + rainTpInflAvg9 += nullToZero(item.tpInflWqltTp); + } + }); + console.log("99999999999999999"); + console.log(rainSummerDay9, noNullRainSummerDay9, rainInflBodAvg9, rainInflTnAvg9, rainInflTpAvg9, rainEfflBodAvg9, rainEfflTnAvg9, rainEfflTpAvg9, rainTpInflAvg9); // (0) 전체변수 - let summerDay = 0; - let noNullSummerDay = 0; - let totalInflBodAvgSummer = 0; - let totalInflTnAvgSummer = 0; - let totalInflTpAvgSummer = 0; - let totalEfflBodAvgSummer = 0; - let totalEfflTnAvgSummer = 0; - let totalEfflTpAvgSummer = 0; - let totalTpInflAvgSummer = 0; + let summerDay = 0, noNullSummerDay = 0; + let totalInflBodAvgSummer = 0, totalInflTnAvgSummer = 0, totalInflTpAvgSummer = 0; + let totalEfflBodAvgSummer = 0, totalEfflTnAvgSummer = 0, totalEfflTpAvgSummer = 0, totalTpInflAvgSummer = 0; - let winterDay = 0; - let noNullWinterDay = 0; - let totalInflBodAvgWinter = 0; - let totalInflTnAvgWinter = 0; - let totalInflTpAvgWinter = 0; - let totalEfflBodAvgWinter = 0; - let totalEfflTnAvgWinter = 0; - let totalEfflTpAvgWinter = 0; - let totalTpInflAvgWinter = 0; + let winterDay = 0, noNullWinterDay = 0; + let totalInflBodAvgWinter = 0, totalInflTnAvgWinter = 0, totalInflTpAvgWinter = 0; + let totalEfflBodAvgWinter = 0, totalEfflTnAvgWinter = 0, totalEfflTpAvgWinter = 0, totalTpInflAvgWinter = 0; + // (1) 청천시 변수 + // (1-1) 날짜 count + let chungchunSummerDay = 0, noNullChungchunSummerDay = 0; + let chungchunWinterDay = 0, noNullChungchunWinterDay = 0; + + // (1-2) 하절기 + let chungchunInflBodAvgSummer = 0, chungchunInflTnAvgSummer = 0, chungchunInflTpAvgSummer = 0; + let chungchunEfflBodAvgSummer = 0, chungchunEfflTnAvgSummer = 0, chungchunEfflTpAvgSummer = 0; + let chungchunTpInflAvgSummer = 0; // 하절기 청천시 총인설비 유입TP + + // (1-3) 동절기 (최대, 최소, 평균 다 필요) + let chungchunInflBodAvg = 0, chungchunInflTnAvg = 0, chungchunInflTpAvg = 0, chungchunTpInflAvg = 0; + let chungchunInflBodMax = 0, chungchunInflTnMax = 0, chungchunInflTpMax = 0, chungchunTpInflMax = 0; + let chungchunInflBodMin = 99999999; + let chungchunInflTnMin = 99999999; + let chungchunInflTpMin = 99999999; + let chungchunTpInflMin = 99999999; + + let chungchunEfflBodAvg = 0, chungchunEfflTnAvg = 0, chungchunEfflTpAvg = 0; + let chungchunEfflBodMax = 0, chungchunEfflTnMax = 0, chungchunEfflTpMax = 0; + let chungchunEfflBodMin = 99999999; + let chungchunEfflTnMin = 99999999; + let chungchunEfflTpMin = 99999999; + + // 강우시 변수 + let rainSummerDay = 0, noNullRainSummerDay = 0; + let rainInflBodAvg = 0, rainInflTnAvg = 0, rainInflTpAvg = 0; + let rainEfflBodAvg = 0, rainEfflTnAvg = 0, rainEfflTpAvg = 0, rainTpInflAvg = 0; + + let rainEffectDay = 0; // 전체 대상 qltyData.forEach((item: any) => { + if (item.infoRnDay == null) item.infoRnDay = 0; const month = item.msrDt.substring(4, 6); // 월 추출 - if(month === '01' || month === '02'){ + + if (item.infoRnDay >= 3) { + rainEffectDay = 2; + } else { + rainEffectDay--; + } + + if (rainEffectDay >= 0) { + rainEffectDayArray.push(item.msrDt); + // 강우영향일 + if (month === '06' || month === '07' || month === '08') { + rainSummerDay += 1; + if (item.tpInflWqltTp != null && item.tpInflWqltTp != 0) { + noNullRainSummerDay += 1; + } + + rainInflBodAvg += nullToZero(item.inflAssctBfrWqltBod); + rainInflTnAvg += nullToZero(item.inflAssctBfrWqltTn); + rainInflTpAvg += nullToZero(item.inflAssctBfrWqltTp); + rainEfflBodAvg += nullToZero(item.efflWqltBod); + rainEfflTnAvg += nullToZero(item.efflWqltTn); + rainEfflTpAvg += nullToZero(item.efflWqltTp); + rainTpInflAvg += nullToZero(item.tpInflWqltTp); + } + } else if (rainEffectDay < 0) { //청천시 + + if (month === '01' || month === '02') { + chungchunWinterDay += 1; + if (item.tpInflWqltTp != null && item.tpInflWqltTp != 0) { + noNullChungchunWinterDay += 1; + } + + const inflbod = nullToZero(item.inflAssctBfrWqltBod); + const infltn = nullToZero(item.inflAssctBfrWqltTn); + const infltp = nullToZero(item.inflAssctBfrWqltTp); + const effbod = nullToZero(item.efflWqltBod); + const efftn = nullToZero(item.efflWqltTn); + const efftp = nullToZero(item.efflWqltTp); + const tpInfl = nullToZero(item.tpInflWqltTp); + + chungchunInflBodAvg += inflbod; + chungchunInflTnAvg += infltn; + chungchunInflTpAvg += infltp; + chungchunEfflBodAvg += effbod; + chungchunEfflTnAvg += efftn; + chungchunEfflTpAvg += efftp; + chungchunTpInflAvg += tpInfl; + + if (chungchunInflBodMax < inflbod) chungchunInflBodMax = inflbod; + if (chungchunInflTnMax < infltn) chungchunInflTnMax = infltn; + if (chungchunInflTpMax < infltp) chungchunInflTpMax = infltp; + if (chungchunEfflBodMax < effbod) chungchunEfflBodMax = effbod; + if (chungchunEfflTnMax < efftn) chungchunEfflTnMax = efftn; + if (chungchunEfflTpMax < efftp) chungchunEfflTpMax = efftp; + if (chungchunTpInflMax < tpInfl) chungchunTpInflMax = tpInfl; + + if (chungchunInflBodMin > inflbod) chungchunInflBodMin = inflbod; + if (chungchunInflTnMin > infltn) chungchunInflTnMin = infltn; + if (chungchunInflTpMin > infltp) chungchunInflTpMin = infltp; + if (chungchunEfflBodMin > effbod) chungchunEfflBodMin = effbod; + if (chungchunEfflTnMin > efftn) chungchunEfflTnMin = efftn; + if (chungchunEfflTpMin > efftp) chungchunEfflTpMin = efftp; + if (chungchunTpInflMin > tpInfl) chungchunTpInflMin = tpInfl; + } else if (month === '06' || month === '07' || month === '08') { + chungchunSummerDay += 1; + if (item.tpInflWqltTp != null && item.tpInflWqltTp != 0) { + noNullChungchunSummerDay += 1; + } + + chungchunInflBodAvgSummer += nullToZero(item.inflAssctBfrWqltBod); + chungchunInflTnAvgSummer += nullToZero(item.inflAssctBfrWqltTn); + chungchunInflTpAvgSummer += nullToZero(item.inflAssctBfrWqltTp); + chungchunEfflBodAvgSummer += nullToZero(item.efflWqltBod); + chungchunEfflTnAvgSummer += nullToZero(item.efflWqltTn); + chungchunEfflTpAvgSummer += nullToZero(item.efflWqltTp); + chungchunTpInflAvgSummer += nullToZero(item.tpInflWqltTp); + } + } + + + if (month === '01' || month === '02') { winterDay += 1; - if(item.tpInflWqltTp != null && item.tpInflWqltTp != 0){ - noNullWinterDay+=1; + if (item.tpInflWqltTp != null && item.tpInflWqltTp != 0) { + noNullWinterDay += 1; } totalInflBodAvgWinter += nullToZero(item.inflAssctBfrWqltBod); - totalInflTnAvgWinter += nullToZero(item.inflAssctBfrWqltTn); - totalInflTpAvgWinter += nullToZero(item.inflAssctBfrWqltTp); + totalInflTnAvgWinter += nullToZero(item.inflAssctBfrWqltTn); + totalInflTpAvgWinter += nullToZero(item.inflAssctBfrWqltTp); totalEfflBodAvgWinter += nullToZero(item.efflWqltBod); - totalEfflTnAvgWinter += nullToZero(item.efflWqltTn); - totalEfflTpAvgWinter += nullToZero(item.efflWqltTp); - totalTpInflAvgWinter += nullToZero(item.tpInflWqltTp); - }else if(month === '06' || month === '07' || month === '08'){ + totalEfflTnAvgWinter += nullToZero(item.efflWqltTn); + totalEfflTpAvgWinter += nullToZero(item.efflWqltTp); + totalTpInflAvgWinter += nullToZero(item.tpInflWqltTp); + } else if (month === '06' || month === '07' || month === '08') { summerDay += 1; - if(item.tpInflWqltTp != null && item.tpInflWqltTp != 0){ - noNullSummerDay+=1; + if (item.tpInflWqltTp != null && item.tpInflWqltTp != 0) { + noNullSummerDay += 1; } totalInflBodAvgSummer += nullToZero(item.inflAssctBfrWqltBod); - totalInflTnAvgSummer += nullToZero(item.inflAssctBfrWqltTn); - totalInflTpAvgSummer += nullToZero(item.inflAssctBfrWqltTp); + totalInflTnAvgSummer += nullToZero(item.inflAssctBfrWqltTn); + totalInflTpAvgSummer += nullToZero(item.inflAssctBfrWqltTp); totalEfflBodAvgSummer += nullToZero(item.efflWqltBod); - totalEfflTnAvgSummer += nullToZero(item.efflWqltTn); - totalEfflTpAvgSummer += nullToZero(item.efflWqltTp); - totalTpInflAvgSummer += nullToZero(item.tpInflWqltTp); + totalEfflTnAvgSummer += nullToZero(item.efflWqltTn); + totalEfflTpAvgSummer += nullToZero(item.efflWqltTp); + totalTpInflAvgSummer += nullToZero(item.tpInflWqltTp); } }); - orgData[5].winterAll = qltyDataSetting(totalInflBodAvgWinter, winterDay, 1); // 동절기 유입BOD - orgData[6].winterAll = qltyDataSetting(totalEfflBodAvgWinter, winterDay, 1); // 동절기 방류BOD - orgData[7].winterAll = qltyDataSetting(totalInflTnAvgWinter, winterDay, 3); // 동절기 유입TN - orgData[8].winterAll = qltyDataSetting(totalEfflTnAvgWinter, winterDay, 3); // 동절기 방류TN - orgData[9].winterAll = qltyDataSetting(totalInflTpAvgWinter, winterDay, 3); // 동절기 유입TP + orgData[5].winterAll = qltyDataSetting(totalInflBodAvgWinter, winterDay, 1); // 동절기 유입BOD + orgData[6].winterAll = qltyDataSetting(totalEfflBodAvgWinter, winterDay, 1); // 동절기 방류BOD + orgData[7].winterAll = qltyDataSetting(totalInflTnAvgWinter, winterDay, 3); // 동절기 유입TN + orgData[8].winterAll = qltyDataSetting(totalEfflTnAvgWinter, winterDay, 3); // 동절기 방류TN + orgData[9].winterAll = qltyDataSetting(totalInflTpAvgWinter, winterDay, 3); // 동절기 유입TP orgData[10].winterAll = qltyDataSetting(totalEfflTpAvgWinter, winterDay, 3); // 동절기 방류TP //총인설비 orgData[11].winterAll = qltyDataSetting(totalTpInflAvgWinter, noNullWinterDay, 3); orgData[12].winterAll = qltyDataSetting(totalEfflTpAvgWinter, winterDay, 3); - orgData[5].summerAll = qltyDataSetting(totalInflBodAvgSummer, summerDay, 1); // 하절기 유입BOD - orgData[6].summerAll = qltyDataSetting(totalEfflBodAvgSummer, summerDay, 1); // 하절기 방류BOD - orgData[7].summerAll = qltyDataSetting(totalInflTnAvgSummer, summerDay, 3); // 하절기 유입TN - orgData[8].summerAll = qltyDataSetting(totalEfflTnAvgSummer, summerDay, 3); // 하절기 방류TN - orgData[9].summerAll = qltyDataSetting(totalInflTpAvgSummer, summerDay, 3); // 하절기 유입TP + orgData[5].summerAll = qltyDataSetting(totalInflBodAvgSummer, summerDay, 1); // 하절기 유입BOD + orgData[6].summerAll = qltyDataSetting(totalEfflBodAvgSummer, summerDay, 1); // 하절기 방류BOD + orgData[7].summerAll = qltyDataSetting(totalInflTnAvgSummer, summerDay, 3); // 하절기 유입TN + orgData[8].summerAll = qltyDataSetting(totalEfflTnAvgSummer, summerDay, 3); // 하절기 방류TN + orgData[9].summerAll = qltyDataSetting(totalInflTpAvgSummer, summerDay, 3); // 하절기 유입TP orgData[10].summerAll = qltyDataSetting(totalEfflTpAvgSummer, summerDay, 3); // 하절기 방류TP //총인설비 orgData[11].summerAll = qltyDataSetting(totalTpInflAvgSummer, noNullSummerDay, 3); orgData[12].summerAll = qltyDataSetting(totalEfflTpAvgSummer, summerDay, 3); - // (1) 청천시 변수 - // (1-1) 날짜 count - let chungchunSummerDay = 0; - let chungchunWinterDay = 0; - let noNullChungchunSummerDay = 0; - let noNullChungchunWinterDay = 0; - - // (1-2) 하절기 - let chungchunInflBodAvgSummer = 0; // 하절기 청천시 유입BOD - let chungchunInflTnAvgSummer = 0; // 하절기 청천시 유입TN - let chungchunInflTpAvgSummer = 0; // 하절기 청천시 유입TP - let chungchunEfflBodAvgSummer = 0; // 하절기 청천시 방류BOD - let chungchunEfflTnAvgSummer = 0; // 하절기 청천시 방류TN - let chungchunEfflTpAvgSummer = 0; // 하절기 청천시 방류TP - let chungchunTpInflAvgSummer = 0; // 하절기 청천시 총인설비 유입TP - - // (1-3) 동절기 (최대, 최소, 평균 다 필요) - let chungchunInflBodAvg = 0; - let chungchunInflTnAvg = 0; - let chungchunInflTpAvg = 0; - let chungchunTpInflAvg = 0; - let chungchunInflBodMax = 0; - let chungchunInflTnMax = 0; - let chungchunInflTpMax = 0; - let chungchunTpInflMax = 0; - let chungchunInflBodMin = 99999999; - let chungchunInflTnMin = 99999999; - let chungchunInflTpMin = 99999999; - let chungchunTpInflMin = 99999999; - - let chungchunEfflBodAvg = 0; - let chungchunEfflTnAvg = 0; - let chungchunEfflTpAvg = 0; - let chungchunEfflBodMax = 0; - let chungchunEfflTnMax = 0; - let chungchunEfflTpMax = 0; - let chungchunEfflBodMin = 99999999; - let chungchunEfflTnMin = 99999999; - let chungchunEfflTpMin = 99999999; - - // 청천시 - qltyChungchunData.forEach((item: any) => { - const month = item.msrDt.substring(4, 6); // 월 추출 - if(month === '01' || month === '02'){ - chungchunWinterDay += 1; - if(item.tpInflWqltTp != null && item.tpInflWqltTp != 0){ - noNullChungchunWinterDay+=1; - } - - const inflbod = nullToZero(item.inflAssctBfrWqltBod); - const infltn = nullToZero(item.inflAssctBfrWqltTn); - const infltp = nullToZero(item.inflAssctBfrWqltTp); - const effbod = nullToZero(item.efflWqltBod); - const efftn = nullToZero(item.efflWqltTn); - const efftp = nullToZero(item.efflWqltTp); - const tpInfl = nullToZero(item.tpInflWqltTp); - - chungchunInflBodAvg += inflbod; - chungchunInflTnAvg += infltn; - chungchunInflTpAvg += infltp; - chungchunEfflBodAvg += effbod; - chungchunEfflTnAvg += efftn; - chungchunEfflTpAvg += efftp; - chungchunTpInflAvg += tpInfl; - - if(chungchunInflBodMax < inflbod) chungchunInflBodMax = inflbod; - if(chungchunInflTnMax < infltn) chungchunInflTnMax = infltn; - if(chungchunInflTpMax < infltp) chungchunInflTpMax = infltp; - if(chungchunEfflBodMax < effbod) chungchunEfflBodMax = effbod; - if(chungchunEfflTnMax < efftn) chungchunEfflTnMax = efftn; - if(chungchunEfflTpMax < efftp) chungchunEfflTpMax = efftp; - if(chungchunTpInflMax < tpInfl) chungchunTpInflMax = tpInfl; - - if(chungchunInflBodMin > inflbod) chungchunInflBodMin = inflbod; - if(chungchunInflTnMin > infltn) chungchunInflTnMin = infltn; - if(chungchunInflTpMin > infltp) chungchunInflTpMin = infltp; - if(chungchunEfflBodMin > effbod) chungchunEfflBodMin = effbod; - if(chungchunEfflTnMin > efftn) chungchunEfflTnMin = efftn; - if(chungchunEfflTpMin > efftp) chungchunEfflTpMin = efftp; - if(chungchunTpInflMin > tpInfl) chungchunTpInflMin = tpInfl; - }else if(month === '06' || month === '07' || month === '08'){ - chungchunSummerDay += 1; - if(item.tpInflWqltTp != null && item.tpInflWqltTp != 0){ - noNullChungchunSummerDay+=1; - } - - chungchunInflBodAvgSummer += nullToZero(item.inflAssctBfrWqltBod); - chungchunInflTnAvgSummer += nullToZero(item.inflAssctBfrWqltTn); - chungchunInflTpAvgSummer += nullToZero(item.inflAssctBfrWqltTp); - chungchunEfflBodAvgSummer += nullToZero(item.efflWqltBod); - chungchunEfflTnAvgSummer += nullToZero(item.efflWqltTn); - chungchunEfflTpAvgSummer += nullToZero(item.efflWqltTp); - chungchunTpInflAvgSummer += nullToZero(item.tpInflWqltTp); - } - }); // 청천시 수질 데이터 수정 // 하절기 @@ -972,37 +1002,6 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl orgData[11].winterSunnyMin = chungchunTpInflMin === 99999999 ? '0.000' : roundUp(chungchunTpInflMin, 3).toFixed(3); orgData[12].winterSunnyMin = chungchunInflTpMin === 99999999 ? '0.000' : roundUp(chungchunInflTpMin, 3).toFixed(3); - // 강우시 변수 - let rainSummerDay = 0; - let noNullRainSummerDay = 0; - - let rainInflBodAvg = 0; - let rainInflTnAvg = 0; - let rainInflTpAvg = 0; - let rainEfflBodAvg = 0; - let rainEfflTnAvg = 0; - let rainEfflTpAvg = 0; - let rainTpInflAvg = 0; - - // 강우시 - qltyRainData.forEach((item: any) => { - const month = item.msrDt.substring(4, 6); // 월 추출 - if(month === '06' || month === '07' || month === '08'){ - rainSummerDay += 1; - if(item.tpInflWqltTp != null && item.tpInflWqltTp != 0){ - noNullRainSummerDay+=1; - } - - rainInflBodAvg += nullToZero(item.inflAssctBfrWqltBod); - rainInflTnAvg += nullToZero(item.inflAssctBfrWqltTn); - rainInflTpAvg += nullToZero(item.inflAssctBfrWqltTp); - rainEfflBodAvg += nullToZero(item.efflWqltBod); - rainEfflTnAvg += nullToZero(item.efflWqltTn); - rainEfflTpAvg += nullToZero(item.efflWqltTp); - rainTpInflAvg += nullToZero(item.tpInflWqltTp); - } - }); - // 강우시 수질 데이터 수정 orgData[5].summerThree = qltyDataSetting(rainInflBodAvg, rainSummerDay, 1); orgData[6].summerThree = qltyDataSetting(rainEfflBodAvg, rainSummerDay, 1); @@ -1014,6 +1013,8 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl // 총인설비 orgData[11].summerThree = qltyDataSetting(rainTpInflAvg, noNullRainSummerDay, 3); orgData[12].summerThree = qltyDataSetting(rainInflTpAvg, rainSummerDay, 3); + console.log(rainEffectDayArray); + console.log("000000000", rainSummerDay, noNullRainSummerDay, rainInflBodAvg, rainInflTnAvg, rainInflTpAvg, rainEfflBodAvg, rainEfflTnAvg, rainEfflTpAvg, rainTpInflAvg); return orgData; } else { @@ -1039,190 +1040,190 @@ export type DashBoardActions = { export type DashBoardType = { DashboardMain: { isInit: boolean; - topLabelArray:string[]; + topLabelArray: string[]; }, - FcltyMain : { - isInit : boolean; - upHeadListFclty : TableUpperProps[]; - fcltyList : mainFcltyProps[]; + FcltyMain: { + isInit: boolean; + upHeadListFclty: TableUpperProps[]; + fcltyList: mainFcltyProps[]; }, - PlanFclty : { - isInit : boolean; - planYearList : string[]; - upHeadListPlanFclty : TableUpperProps[]; - planFcltyList : planFcltyListProps[]; - waterUsage1 : number | '', - waterUsage2 : number | '', - waterUsage3 : number | '', - isLoadingPlanFclty : boolean; + PlanFclty: { + isInit: boolean; + planYearList: string[]; + upHeadListPlanFclty: TableUpperProps[]; + planFcltyList: planFcltyListProps[]; + waterUsage1: number | '', + waterUsage2: number | '', + waterUsage3: number | '', + isLoadingPlanFclty: boolean; }, - OperationStatus : { - isInit : boolean; - upHeadListOperationStatus : TableUpperProps[]; - operationalStatusList : any; - isLoadingOperationStatus : boolean; + OperationStatus: { + isInit: boolean; + upHeadListOperationStatus: TableUpperProps[]; + operationalStatusList: any; + isLoadingOperationStatus: boolean; } - MainGraph : { - isInit : boolean; - chart_inflowRain : lineBarChartDataProps[]; - chart_bodRain : lineBarChartDataProps[]; - chart_inflTp : lineChartDataProps[]; - chart_chongInTp : lineChartDataProps[]; - chart_efflTp : lineChartDataProps[]; - chart_inflTn : lineChartDataProps[]; - chart_efflTn : lineChartDataProps[]; - chart_inflBod : lineChartDataProps[]; - chart_efflBod : lineChartDataProps[]; - waterQltyStandartd : any; - isLoadingMainGraph : boolean; + MainGraph: { + isInit: boolean; + chart_inflowRain: lineBarChartDataProps[]; + chart_bodRain: lineBarChartDataProps[]; + chart_inflTp: lineChartDataProps[]; + chart_chongInTp: lineChartDataProps[]; + chart_efflTp: lineChartDataProps[]; + chart_inflTn: lineChartDataProps[]; + chart_efflTn: lineChartDataProps[]; + chart_inflBod: lineChartDataProps[]; + chart_efflBod: lineChartDataProps[]; + waterQltyStandartd: any; + isLoadingMainGraph: boolean; }, - RainManage : { - isInit : boolean; - upHeadListRainManage : TableUpperProps[]; - rainManageList : RainManageListProps[]; - excelList : RainManageExcelType[]; - isLoadingRainManage : boolean; + RainManage: { + isInit: boolean; + upHeadListRainManage: TableUpperProps[]; + rainManageList: RainManageListProps[]; + excelList: RainManageExcelType[]; + isLoadingRainManage: boolean; }, - - DrainageEquipment : { - isInit : boolean; - upHeadListDrainageEquipment : TableUpperProps[]; - drainageEquipmentList : DrainageEquipmentListProps[]; - drainageEquipmentExcelList : DrainageEquipmentExcelType[]; + + DrainageEquipment: { + isInit: boolean; + upHeadListDrainageEquipment: TableUpperProps[]; + drainageEquipmentList: DrainageEquipmentListProps[]; + drainageEquipmentExcelList: DrainageEquipmentExcelType[]; } } export type DashBoardStore = DashBoardType & DashBoardActions; -export const dashBoardInitState:DashBoardType = { +export const dashBoardInitState: DashBoardType = { DashboardMain: { isInit: false, topLabelArray: DashBoardTopLabelArray, }, - - FcltyMain : { - isInit : false, - upHeadListFclty : upHeadListFclty, - fcltyList : fcltyList, + + FcltyMain: { + isInit: false, + upHeadListFclty: upHeadListFclty, + fcltyList: fcltyList, }, - PlanFclty : { - isInit : true, - planYearList : planYearList, - upHeadListPlanFclty : upHeadListPlanFclty, - planFcltyList : planFcltyList, - waterUsage1 : 0, - waterUsage2 : 0, - waterUsage3 : 0, - isLoadingPlanFclty : false, + PlanFclty: { + isInit: true, + planYearList: planYearList, + upHeadListPlanFclty: upHeadListPlanFclty, + planFcltyList: planFcltyList, + waterUsage1: 0, + waterUsage2: 0, + waterUsage3: 0, + isLoadingPlanFclty: false, }, - OperationStatus : { - isInit : false, - upHeadListOperationStatus : upHeadListOperationStatus, - operationalStatusList : operationalStatusListOrg, - isLoadingOperationStatus : false, + OperationStatus: { + isInit: false, + upHeadListOperationStatus: upHeadListOperationStatus, + operationalStatusList: operationalStatusListOrg, + isLoadingOperationStatus: false, }, - MainGraph : { - isInit : false, - chart_inflowRain : chart_inflowRain, - chart_bodRain : chart_bodRain, - chart_inflTp : chart_inflTp, - chart_chongInTp : chart_chongInTp, - chart_efflTp : chart_efflTp, - chart_inflTn : chart_inflTn, - chart_efflTn : chart_efflTn, - chart_inflBod : chart_inflBod, - chart_efflBod : chart_efflBod, - waterQltyStandartd : waterQltyStandartd, - isLoadingMainGraph : false, + MainGraph: { + isInit: false, + chart_inflowRain: chart_inflowRain, + chart_bodRain: chart_bodRain, + chart_inflTp: chart_inflTp, + chart_chongInTp: chart_chongInTp, + chart_efflTp: chart_efflTp, + chart_inflTn: chart_inflTn, + chart_efflTn: chart_efflTn, + chart_inflBod: chart_inflBod, + chart_efflBod: chart_efflBod, + waterQltyStandartd: waterQltyStandartd, + isLoadingMainGraph: false, }, - RainManage : { - isInit : false, - upHeadListRainManage : upHeadListRainManage, - rainManageList : rainManageList, - excelList : [], - isLoadingRainManage : false, + RainManage: { + isInit: false, + upHeadListRainManage: upHeadListRainManage, + rainManageList: rainManageList, + excelList: [], + isLoadingRainManage: false, }, - DrainageEquipment : { - isInit : false, - upHeadListDrainageEquipment : upHeadListDrainageEquipment, - drainageEquipmentList : drainageEquipmentList, - drainageEquipmentExcelList : [] + DrainageEquipment: { + isInit: false, + upHeadListDrainageEquipment: upHeadListDrainageEquipment, + drainageEquipmentList: drainageEquipmentList, + drainageEquipmentExcelList: [] } } /** * 데이터 폼 포맷설정 */ -export const dataFormSettingPlan=(item : planFcltyListProps, decmials : number) => { - DataForm({ type: 'float'+decmials, column: 'provisionalApproval', item: item as unknown as Record }); - DataForm({ type: 'float'+decmials, column: 'now', item: item as unknown as Record}); - DataForm({ type: 'float'+decmials, column: 'stepOne', item: item as unknown as Record}); - DataForm({ type: 'float'+decmials, column: 'stepTwo', item: item as unknown as Record}); - DataForm({ type: 'float'+decmials, column: 'stepThree', item: item as unknown as Record}); - DataForm({ type: 'float'+decmials, column: 'stepFour', item: item as unknown as Record}); +export const dataFormSettingPlan = (item: planFcltyListProps, decmials: number) => { + DataForm({ type: 'float' + decmials, column: 'provisionalApproval', item: item as unknown as Record }); + DataForm({ type: 'float' + decmials, column: 'now', item: item as unknown as Record }); + DataForm({ type: 'float' + decmials, column: 'stepOne', item: item as unknown as Record }); + DataForm({ type: 'float' + decmials, column: 'stepTwo', item: item as unknown as Record }); + DataForm({ type: 'float' + decmials, column: 'stepThree', item: item as unknown as Record }); + DataForm({ type: 'float' + decmials, column: 'stepFour', item: item as unknown as Record }); } -export const dataFormSetting=(item : OperationalStatusListProps)=> { +export const dataFormSetting = (item: OperationalStatusListProps) => { DataForm({ type: 'float0', column: 'yearAvg', item: item as unknown as Record }); - DataForm({ type: 'float0', column: 'yearMax', item: item as unknown as Record}); - DataForm({ type: 'float0', column: 'yearMin', item: item as unknown as Record}); - DataForm({ type: 'float0', column: 'summerAll', item: item as unknown as Record}); - DataForm({ type: 'float0', column: 'summerThree', item: item as unknown as Record}); - DataForm({ type: 'float0', column: 'summerRain', item: item as unknown as Record}); - DataForm({ type: 'float0', column: 'winterAll', item: item as unknown as Record}); - DataForm({ type: 'float0', column: 'winterSunnyAvg', item: item as unknown as Record}); - DataForm({ type: 'float0', column: 'winterSunnyMax', item: item as unknown as Record}); - DataForm({ type: 'float0', column: 'winterSunnyMin', item: item as unknown as Record}); - DataForm({ type: 'float0', column: 'groundWaterAvg', item: item as unknown as Record}); - DataForm({ type: 'float0', column: 'groundWaterSummer', item: item as unknown as Record}); - DataForm({ type: 'float0', column: 'groundWaterWinter', item: item as unknown as Record}); - DataForm({ type: 'float0', column: 'rainRate', item: item as unknown as Record}); - DataForm({ type: 'float0', column: 'rdi', item: item as unknown as Record}); + DataForm({ type: 'float0', column: 'yearMax', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'yearMin', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'summerAll', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'summerThree', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'summerRain', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'winterAll', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'winterSunnyAvg', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'winterSunnyMax', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'winterSunnyMin', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'groundWaterAvg', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'groundWaterSummer', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'groundWaterWinter', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'rainRate', item: item as unknown as Record }); + DataForm({ type: 'float0', column: 'rdi', item: item as unknown as Record }); }; -export const dataFormSettingWqlty=(item : OperationalStatusListProps)=> { +export const dataFormSettingWqlty = (item: OperationalStatusListProps) => { DataForm({ type: 'float1', column: 'yearAvg', item: item as unknown as Record }); - DataForm({ type: 'float1', column: 'yearMax', item: item as unknown as Record}); - DataForm({ type: 'float1', column: 'yearMin', item: item as unknown as Record}); - DataForm({ type: 'float1', column: 'summerAll', item: item as unknown as Record}); - DataForm({ type: 'float1', column: 'summerThree', item: item as unknown as Record}); - DataForm({ type: 'float1', column: 'summerRain', item: item as unknown as Record}); - DataForm({ type: 'float1', column: 'winterAll', item: item as unknown as Record}); - DataForm({ type: 'float1', column: 'winterSunnyAvg', item: item as unknown as Record}); - DataForm({ type: 'float1', column: 'winterSunnyMax', item: item as unknown as Record}); - DataForm({ type: 'float1', column: 'winterSunnyMin', item: item as unknown as Record}); - DataForm({ type: 'float1', column: 'groundWaterAvg', item: item as unknown as Record}); - DataForm({ type: 'float1', column: 'groundWaterSummer', item: item as unknown as Record}); - DataForm({ type: 'float1', column: 'groundWaterWinter', item: item as unknown as Record}); - DataForm({ type: 'float1', column: 'rainRate', item: item as unknown as Record}); - DataForm({ type: 'float1', column: 'rdi', item: item as unknown as Record}); + DataForm({ type: 'float1', column: 'yearMax', item: item as unknown as Record }); + DataForm({ type: 'float1', column: 'yearMin', item: item as unknown as Record }); + DataForm({ type: 'float1', column: 'summerAll', item: item as unknown as Record }); + DataForm({ type: 'float1', column: 'summerThree', item: item as unknown as Record }); + DataForm({ type: 'float1', column: 'summerRain', item: item as unknown as Record }); + DataForm({ type: 'float1', column: 'winterAll', item: item as unknown as Record }); + DataForm({ type: 'float1', column: 'winterSunnyAvg', item: item as unknown as Record }); + DataForm({ type: 'float1', column: 'winterSunnyMax', item: item as unknown as Record }); + DataForm({ type: 'float1', column: 'winterSunnyMin', item: item as unknown as Record }); + DataForm({ type: 'float1', column: 'groundWaterAvg', item: item as unknown as Record }); + DataForm({ type: 'float1', column: 'groundWaterSummer', item: item as unknown as Record }); + DataForm({ type: 'float1', column: 'groundWaterWinter', item: item as unknown as Record }); + DataForm({ type: 'float1', column: 'rainRate', item: item as unknown as Record }); + DataForm({ type: 'float1', column: 'rdi', item: item as unknown as Record }); }; -const changeValue=(operationalStatus, data, keyTxt = 'INFL_AMNT')=>{ - operationalStatus.yearAvg = data.yearData ? (keyTxt.includes('_TP') || keyTxt.includes("_TN"))? data.yearData?Number(Math.round(data.yearData['AVG_'+keyTxt] * 1000) / 1000).toFixed(3).toString():'': data.yearData['AVG_'+keyTxt] : ''; - operationalStatus.yearMax = data.yearData ? (keyTxt.includes('_TP') || keyTxt.includes("_TN"))? data.yearData?Number(Math.round(data.yearData['MAX_'+keyTxt] * 1000) / 1000).toFixed(3).toString():'': data.yearData['MAX_'+keyTxt] : ''; - operationalStatus.yearMin = data.yearData ? (keyTxt.includes('_TP') || keyTxt.includes("_TN"))? data.yearData?Number(Math.round(data.yearData['MIN_'+keyTxt] * 1000) / 1000).toFixed(3).toString():'': data.yearData['MIN_'+keyTxt] : ''; +const changeValue = (operationalStatus, data, keyTxt = 'INFL_AMNT') => { + operationalStatus.yearAvg = data.yearData ? (keyTxt.includes('_TP') || keyTxt.includes("_TN")) ? data.yearData ? Number(Math.round(data.yearData['AVG_' + keyTxt] * 1000) / 1000).toFixed(3).toString() : '' : data.yearData['AVG_' + keyTxt] : ''; + operationalStatus.yearMax = data.yearData ? (keyTxt.includes('_TP') || keyTxt.includes("_TN")) ? data.yearData ? Number(Math.round(data.yearData['MAX_' + keyTxt] * 1000) / 1000).toFixed(3).toString() : '' : data.yearData['MAX_' + keyTxt] : ''; + operationalStatus.yearMin = data.yearData ? (keyTxt.includes('_TP') || keyTxt.includes("_TN")) ? data.yearData ? Number(Math.round(data.yearData['MIN_' + keyTxt] * 1000) / 1000).toFixed(3).toString() : '' : data.yearData['MIN_' + keyTxt] : ''; // 여름 - operationalStatus.summerAll = data.summer ? (keyTxt.includes('_TP') || keyTxt.includes("_TN"))? data.summer?Number(Math.round(data.summer['AVG_'+keyTxt] * 1000) / 1000).toFixed(3).toString():'': data.summer['AVG_'+keyTxt] : ''; - operationalStatus.summerThree = data.summerRainy ? (keyTxt.includes('_TP') || keyTxt.includes("_TN"))? data.summerRainy?Number(Math.round(data.summerRainy["AVG_" + keyTxt] * 1000) / 1000).toFixed(3).toString():'': data.summerRainy["AVG_" + keyTxt] : ''; - operationalStatus.summerRain = data.summerSunny ? (keyTxt.includes('_TP') || keyTxt.includes("_TN"))? data.summerSunny?Number(Math.round(data.summerSunny["AVG_" + keyTxt] * 1000) / 1000).toFixed(3).toString():'': data.summerSunny["AVG_" + keyTxt] : ''; + operationalStatus.summerAll = data.summer ? (keyTxt.includes('_TP') || keyTxt.includes("_TN")) ? data.summer ? Number(Math.round(data.summer['AVG_' + keyTxt] * 1000) / 1000).toFixed(3).toString() : '' : data.summer['AVG_' + keyTxt] : ''; + operationalStatus.summerThree = data.summerRainy ? (keyTxt.includes('_TP') || keyTxt.includes("_TN")) ? data.summerRainy ? Number(Math.round(data.summerRainy["AVG_" + keyTxt] * 1000) / 1000).toFixed(3).toString() : '' : data.summerRainy["AVG_" + keyTxt] : ''; + operationalStatus.summerRain = data.summerSunny ? (keyTxt.includes('_TP') || keyTxt.includes("_TN")) ? data.summerSunny ? Number(Math.round(data.summerSunny["AVG_" + keyTxt] * 1000) / 1000).toFixed(3).toString() : '' : data.summerSunny["AVG_" + keyTxt] : ''; // 겨울 - operationalStatus.winterAll = data.winter ? (keyTxt.includes('_TP') || keyTxt.includes("_TN"))? data.winter?Number(Math.round(data.winter["AVG_" + keyTxt] * 1000) / 1000).toFixed(3).toString():'': data.winter["AVG_" + keyTxt] : ''; - operationalStatus.winterSunnyMin = data.winterSunny ? (keyTxt.includes('_TP') || keyTxt.includes("_TN"))? data.winterSunny?Number(Math.round(data.winterSunny["MIN_" + keyTxt] * 1000) / 1000).toFixed(3).toString():'': data.winterSunny["MIN_" + keyTxt] : ''; - operationalStatus.winterSunnyAvg = data.winterSunny ? (keyTxt.includes('_TP') || keyTxt.includes("_TN"))? data.winterSunny?Number(Math.round(data.winterSunny["AVG_" + keyTxt] * 1000) / 1000).toFixed(3).toString():'': data.winterSunny["AVG_" + keyTxt] : ''; - operationalStatus.winterSunnyMax = data.winterSunny ? (keyTxt.includes('_TP') || keyTxt.includes("_TN"))? data.winterSunny?Number(Math.round(data.winterSunny["MAX_" + keyTxt] * 1000) / 1000).toFixed(3).toString():'': data.winterSunny["MAX_" + keyTxt] : ''; + operationalStatus.winterAll = data.winter ? (keyTxt.includes('_TP') || keyTxt.includes("_TN")) ? data.winter ? Number(Math.round(data.winter["AVG_" + keyTxt] * 1000) / 1000).toFixed(3).toString() : '' : data.winter["AVG_" + keyTxt] : ''; + operationalStatus.winterSunnyMin = data.winterSunny ? (keyTxt.includes('_TP') || keyTxt.includes("_TN")) ? data.winterSunny ? Number(Math.round(data.winterSunny["MIN_" + keyTxt] * 1000) / 1000).toFixed(3).toString() : '' : data.winterSunny["MIN_" + keyTxt] : ''; + operationalStatus.winterSunnyAvg = data.winterSunny ? (keyTxt.includes('_TP') || keyTxt.includes("_TN")) ? data.winterSunny ? Number(Math.round(data.winterSunny["AVG_" + keyTxt] * 1000) / 1000).toFixed(3).toString() : '' : data.winterSunny["AVG_" + keyTxt] : ''; + operationalStatus.winterSunnyMax = data.winterSunny ? (keyTxt.includes('_TP') || keyTxt.includes("_TN")) ? data.winterSunny ? Number(Math.round(data.winterSunny["MAX_" + keyTxt] * 1000) / 1000).toFixed(3).toString() : '' : data.winterSunny["MAX_" + keyTxt] : ''; // 지하수 - + // 오염물질 // RDII 추정 = 하절기(6~8월) 중 최저 유입 BOD일때 유입유량 x ((동절기 청천시 유입BOD - 하절기(6~8월) 중 최저 유입BOD) / (동절기 청천시 유입BOD)) const summerLowFlow = data.summerBod && data.summerBod.INFL_AMNT && data.summerBod.INFL_AMNT != 'null' ? Number(data.summerBod.INFL_AMNT) : 0; @@ -1233,20 +1234,20 @@ const changeValue=(operationalStatus, data, keyTxt = 'INFL_AMNT')=>{ operationalStatus.rdiRain = summerLowRain; } -const calcValue = (operationalStatus, data, keyTxt='INFL_ASSCT_BFR_WQLT_TP') => { +const calcValue = (operationalStatus, data, keyTxt = 'INFL_ASSCT_BFR_WQLT_TP') => { // 연간 - operationalStatus.yearAvg = data.yearData && data.yearData['AVG_'+keyTxt] ? Number(Math.round(data.yearData['AVG_'+keyTxt] * 1000) / 1000).toFixed(3).toString() : ''; - operationalStatus.yearMax = data.yearData && data.yearData['MAX_'+keyTxt] ? Number(Math.round(data.yearData['MAX_'+keyTxt] * 1000) / 1000).toFixed(3).toString() : ''; - operationalStatus.yearMin = data.yearData && data.yearData['MIN_'+keyTxt] ? Number(Math.round(data.yearData['MIN_'+keyTxt] * 1000) / 1000).toFixed(3).toString() : ''; + operationalStatus.yearAvg = data.yearData && data.yearData['AVG_' + keyTxt] ? Number(Math.round(data.yearData['AVG_' + keyTxt] * 1000) / 1000).toFixed(3).toString() : ''; + operationalStatus.yearMax = data.yearData && data.yearData['MAX_' + keyTxt] ? Number(Math.round(data.yearData['MAX_' + keyTxt] * 1000) / 1000).toFixed(3).toString() : ''; + operationalStatus.yearMin = data.yearData && data.yearData['MIN_' + keyTxt] ? Number(Math.round(data.yearData['MIN_' + keyTxt] * 1000) / 1000).toFixed(3).toString() : ''; // 여름 - operationalStatus.summerAll = data.summer && data.summer['AVG_'+keyTxt] ? Number(Math.round(data.summer['AVG_'+keyTxt] * 0.8 * 1000) / 1000).toFixed(3).toString() : ''; - operationalStatus.summerThree = data.summerRainy && data.summerRainy['AVG_'+keyTxt] ? Number(Math.round(data.summerRainy['AVG_'+keyTxt] * 0.82 * 1000) / 1000).toFixed(3).toString() : ''; - operationalStatus.summerRain = data.summerSunny && data.summerSunny['AVG_'+keyTxt] ? Number(Math.round(data.summerSunny['AVG_'+keyTxt] * 0.74 * 1000) / 1000).toFixed(3).toString() : ''; + operationalStatus.summerAll = data.summer && data.summer['AVG_' + keyTxt] ? Number(Math.round(data.summer['AVG_' + keyTxt] * 0.8 * 1000) / 1000).toFixed(3).toString() : ''; + operationalStatus.summerThree = data.summerRainy && data.summerRainy['AVG_' + keyTxt] ? Number(Math.round(data.summerRainy['AVG_' + keyTxt] * 0.82 * 1000) / 1000).toFixed(3).toString() : ''; + operationalStatus.summerRain = data.summerSunny && data.summerSunny['AVG_' + keyTxt] ? Number(Math.round(data.summerSunny['AVG_' + keyTxt] * 0.74 * 1000) / 1000).toFixed(3).toString() : ''; // 겨울 - operationalStatus.winterAll = data.winter && data.winter['AVG_'+keyTxt] ? Number(Math.round(data.winter['AVG_'+keyTxt] * 1.16*1000) / 1000).toFixed(3).toString() : ''; - operationalStatus.winterSunnyMin = data.winterSunny && data.winterSunny['MIN_'+keyTxt] ? Number(Math.round(data.winterSunny['MIN_'+keyTxt] * 1.2 * 1000) / 1000).toFixed(3).toString() : ''; - operationalStatus.winterSunnyAvg = data.winterSunny && data.winterSunny['AVG_'+keyTxt] ? Number(Math.round(data.winterSunny['AVG_'+keyTxt] * 1.25 *1000) / 1000).toFixed(3).toString() : ''; - operationalStatus.winterSunnyMax = data.winterSunny && data.winterSunny['MAX_'+keyTxt] ? Number(Math.round(data.winterSunny['MAX_'+keyTxt] * 1.3 *1000) / 1000).toFixed(3).toString() : ''; + operationalStatus.winterAll = data.winter && data.winter['AVG_' + keyTxt] ? Number(Math.round(data.winter['AVG_' + keyTxt] * 1.16 * 1000) / 1000).toFixed(3).toString() : ''; + operationalStatus.winterSunnyMin = data.winterSunny && data.winterSunny['MIN_' + keyTxt] ? Number(Math.round(data.winterSunny['MIN_' + keyTxt] * 1.2 * 1000) / 1000).toFixed(3).toString() : ''; + operationalStatus.winterSunnyAvg = data.winterSunny && data.winterSunny['AVG_' + keyTxt] ? Number(Math.round(data.winterSunny['AVG_' + keyTxt] * 1.25 * 1000) / 1000).toFixed(3).toString() : ''; + operationalStatus.winterSunnyMax = data.winterSunny && data.winterSunny['MAX_' + keyTxt] ? Number(Math.round(data.winterSunny['MAX_' + keyTxt] * 1.3 * 1000) / 1000).toFixed(3).toString() : ''; } type RtnFlowType = { @@ -1263,32 +1264,32 @@ type RtnFlowResponse = { const searchWaterUsage = async (searchYear: string, fcltyCd: string) => { const waterUsage = [0, 0, 0]; - + for (let i = 0; i < 3; i++) { try { - const res = await getFetch('fo', '/fclt/flow/' + fcltyCd + '/' + (Number(searchYear)-i)) as RtnFlowResponse; + const res = await getFetch('fo', '/fclt/flow/' + fcltyCd + '/' + (Number(searchYear) - i)) as RtnFlowResponse; let totWaterUsage = 0; - + if (res && res.data && Array.isArray(res.data)) { res.data.forEach((item: RtnFlowType) => { totWaterUsage += Number(item.inflAmnt); }); - + if (res.count > 0) { const avg = totWaterUsage / res.count; waterUsage[i] = parseFloat((avg * 0.65).toFixed(2)); } } } catch (error) { - console.error(`Error fetching water usage for year ${Number(searchYear)-i}:`, error); + console.error(`Error fetching water usage for year ${Number(searchYear) - i}:`, error); waterUsage[i] = 0; } } - + return waterUsage; } -export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) => void)=>DashBoardActions=(set: (fn: (state: DashBoardType) => DashBoardType) => void) => { +export const dashBoardReducer: (set: (fn: (state: DashBoardType) => DashBoardType) => void) => DashBoardActions = (set: (fn: (state: DashBoardType) => DashBoardType) => void) => { return { initializeDashBoardData: async () => { set((state: DashBoardType) => ({ @@ -1301,7 +1302,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) }, /** 시설정보 및 운영현황 - 계획정보 */ - searchPlanInfo : async (targetYear: string, fcltyCd: string) => { + searchPlanInfo: async (targetYear: string, fcltyCd: string) => { set((state: DashBoardType) => ({ ...state, PlanFclty: { @@ -1311,70 +1312,70 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) })); let waterUsage = [0, 0, 0]; waterUsage = await searchWaterUsage(targetYear, fcltyCd); - + set((state: DashBoardType) => ({ ...state, - PlanFclty : { + PlanFclty: { ...state.PlanFclty, - waterUsage1 : waterUsage[0] || 0, - waterUsage2 : waterUsage[1] || 0, - waterUsage3 : waterUsage[2] || 0, + waterUsage1: waterUsage[0] || 0, + waterUsage2: waterUsage[1] || 0, + waterUsage3: waterUsage[2] || 0, }, })); const res = await fetchFacilityPlan(targetYear, fcltyCd, set); - - let minDiff=9999999; + + let minDiff = 9999999; let minIndex; - res.forEach((el:any, idx) => { - if(minDiff>Math.abs(Number(targetYear) - Number(el.planYr))){ - minDiff=Math.abs(Number(targetYear) - Number(el.planYr)); - minIndex=idx; + res.forEach((el: any, idx) => { + if (minDiff > Math.abs(Number(targetYear) - Number(el.planYr))) { + minDiff = Math.abs(Number(targetYear) - Number(el.planYr)); + minIndex = idx; } }); const rtnPlanData = res[minIndex]; planFcltyList.map((el, index) => { - planYearList = []; - planYearList.push(rtnPlanData?rtnPlanData.planYrDt4.toString():""); - planYearList.push(rtnPlanData?rtnPlanData.planYr.toString():""); - planYearList.push(rtnPlanData?rtnPlanData.planYrDc1.toString():""); - planYearList.push(rtnPlanData?rtnPlanData.planYrDc2.toString():""); - planYearList.push(rtnPlanData?rtnPlanData.planYrDc3.toString():""); - planYearList.push(rtnPlanData?rtnPlanData.planYrDc4.toString():""); + planYearList = []; + planYearList.push(rtnPlanData ? rtnPlanData.planYrDt4.toString() : ""); + planYearList.push(rtnPlanData ? rtnPlanData.planYr.toString() : ""); + planYearList.push(rtnPlanData ? rtnPlanData.planYrDc1.toString() : ""); + planYearList.push(rtnPlanData ? rtnPlanData.planYrDc2.toString() : ""); + planYearList.push(rtnPlanData ? rtnPlanData.planYrDc3.toString() : ""); + planYearList.push(rtnPlanData ? rtnPlanData.planYrDc4.toString() : ""); - if(index === 0){ // 증설계획(㎥/일) - el.provisionalApproval = rtnPlanData?rtnPlanData.planSwageQntSumDt4:''; // 기승인4단계 - el.now = rtnPlanData?rtnPlanData.planSwageQntSum:''; // 현재 - el.stepOne = rtnPlanData?rtnPlanData.planSwageQntSumDc1:''; // 1단계 - el.stepTwo = rtnPlanData?rtnPlanData.planSwageQntSumDc2:''; // 2단계 - el.stepThree = rtnPlanData?rtnPlanData.planSwageQntSumDc3:''; // 3단계 - el.stepFour = rtnPlanData?rtnPlanData.planSwageQntSumDc4:''; // 4단계 + if (index === 0) { // 증설계획(㎥/일) + el.provisionalApproval = rtnPlanData ? rtnPlanData.planSwageQntSumDt4 : ''; // 기승인4단계 + el.now = rtnPlanData ? rtnPlanData.planSwageQntSum : ''; // 현재 + el.stepOne = rtnPlanData ? rtnPlanData.planSwageQntSumDc1 : ''; // 1단계 + el.stepTwo = rtnPlanData ? rtnPlanData.planSwageQntSumDc2 : ''; // 2단계 + el.stepThree = rtnPlanData ? rtnPlanData.planSwageQntSumDc3 : ''; // 3단계 + el.stepFour = rtnPlanData ? rtnPlanData.planSwageQntSumDc4 : ''; // 4단계 } - if(index === 1){ // 처리인구(인) - el.provisionalApproval = rtnPlanData?rtnPlanData.swtrmtPpltnCntDt4:''; - el.now = rtnPlanData?rtnPlanData.swtrmtPpltnCnt:''; - el.stepOne = rtnPlanData?rtnPlanData.swtrmtPpltnCntDc1:''; - el.stepTwo = rtnPlanData?rtnPlanData.swtrmtPpltnCntDc2:''; - el.stepThree = rtnPlanData?rtnPlanData.swtrmtPpltnCntDc3:''; - el.stepFour = rtnPlanData?rtnPlanData.swtrmtPpltnCntDc4:''; + if (index === 1) { // 처리인구(인) + el.provisionalApproval = rtnPlanData ? rtnPlanData.swtrmtPpltnCntDt4 : ''; + el.now = rtnPlanData ? rtnPlanData.swtrmtPpltnCnt : ''; + el.stepOne = rtnPlanData ? rtnPlanData.swtrmtPpltnCntDc1 : ''; + el.stepTwo = rtnPlanData ? rtnPlanData.swtrmtPpltnCntDc2 : ''; + el.stepThree = rtnPlanData ? rtnPlanData.swtrmtPpltnCntDc3 : ''; + el.stepFour = rtnPlanData ? rtnPlanData.swtrmtPpltnCntDc4 : ''; } - if(index === 2){ // 처리구역(km²) - el.provisionalApproval = rtnPlanData?rtnPlanData.swtrmtZoneAreaDt4:''; - el.now = rtnPlanData?rtnPlanData.swtrmtZoneArea:''; - el.stepOne = rtnPlanData?rtnPlanData.swtrmtZoneAreaDc1:''; - el.stepTwo = rtnPlanData?rtnPlanData.swtrmtZoneAreaDc2:''; - el.stepThree = rtnPlanData?rtnPlanData.swtrmtZoneAreaDc3:''; - el.stepFour = rtnPlanData?rtnPlanData.swtrmtZoneAreaDc4:''; + if (index === 2) { // 처리구역(km²) + el.provisionalApproval = rtnPlanData ? rtnPlanData.swtrmtZoneAreaDt4 : ''; + el.now = rtnPlanData ? rtnPlanData.swtrmtZoneArea : ''; + el.stepOne = rtnPlanData ? rtnPlanData.swtrmtZoneAreaDc1 : ''; + el.stepTwo = rtnPlanData ? rtnPlanData.swtrmtZoneAreaDc2 : ''; + el.stepThree = rtnPlanData ? rtnPlanData.swtrmtZoneAreaDc3 : ''; + el.stepFour = rtnPlanData ? rtnPlanData.swtrmtZoneAreaDc4 : ''; } - if(index === 4){ // 물사용량 - el.provisionalApproval = rtnPlanData?rtnPlanData.ugwtUseSum:''; + if (index === 4) { // 물사용량 + el.provisionalApproval = rtnPlanData ? rtnPlanData.ugwtUseSum : ''; } - - if(index === 2){ // 처리구역(km²) - dataFormSettingPlan(el, 1); - }else if(index == 4){ // 물사용량 - }else{ + + if (index === 2) { // 처리구역(km²) + dataFormSettingPlan(el, 1); + } else if (index == 4) { // 물사용량 + } else { dataFormSettingPlan(el, 0); } @@ -1412,7 +1413,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) let winterSunnyMin = 1; // 동절기 청천 최소 let winterSunnyAvg = 1; // 동절기 청천 평균 let winterSunnyMax = 1; // 동절기 청천 최대 - + // 최대, 최소 총 유입량 (1년 하루 합계의 최대, 최소) // 하절기 청천시, 강우시 재계산 리턴값 @@ -1433,29 +1434,29 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) let winterChungchunEfflAvg = 1; // 동절기 청천 방류량 평균 let winterChungchunEfflMax = 1; // 동절기 청천 방류량 최대 let winterChungchunEfflMin = 1; // 동절기 청천 방류량 최소 - + const clone = (arr: any[]) => arr?.map(v => ({ ...v })) ?? []; - let rdiPercent = 0; + let rdiPercent = 0; let operationalStatusList = clone(operationalStatusListOrg); - if(data && operationalStatusList){ + if (data && operationalStatusList) { // 유량 - 유입 if (operationalStatusList?.[0]) { // 연간 - const yearAvg = data.yearData===null ? '' : ( - (data.yearData.AVG_INFL_AMNT?data.yearData.AVG_INFL_AMNT:0) + // 실제유입량(반류수제거)(m³/일) 평균 - (data.yearData.AVG_SUM_FLOW?data.yearData.AVG_SUM_FLOW:0) + // api 주석처리되어 있음. - (data.yearData.AVG_RETURN_AMNT?data.yearData.AVG_RETURN_AMNT:0) // 반류수유량(m³/일) 평균 + const yearAvg = data.yearData === null ? '' : ( + (data.yearData.AVG_INFL_AMNT ? data.yearData.AVG_INFL_AMNT : 0) + // 실제유입량(반류수제거)(m³/일) 평균 + (data.yearData.AVG_SUM_FLOW ? data.yearData.AVG_SUM_FLOW : 0) + // api 주석처리되어 있음. + (data.yearData.AVG_RETURN_AMNT ? data.yearData.AVG_RETURN_AMNT : 0) // 반류수유량(m³/일) 평균 ); - const yearMax = data.yearData===null ? '' : ( - (data.yearData.MAX_INFL_AMNT?data.yearData.MAX_INFL_AMNT:0) + // 실제유입량(반류수제거)(m³/일) 최대 - (data.yearData.MAX_SUM_FLOW?data.yearData.MAX_SUM_FLOW:0) + // api 주석처리되어 있음. - (data.yearData.MAX_RETURN_AMNT?data.yearData.MAX_RETURN_AMNT:0) // 반류수유량(m³/일) 최대 + const yearMax = data.yearData === null ? '' : ( + (data.yearData.MAX_INFL_AMNT ? data.yearData.MAX_INFL_AMNT : 0) + // 실제유입량(반류수제거)(m³/일) 최대 + (data.yearData.MAX_SUM_FLOW ? data.yearData.MAX_SUM_FLOW : 0) + // api 주석처리되어 있음. + (data.yearData.MAX_RETURN_AMNT ? data.yearData.MAX_RETURN_AMNT : 0) // 반류수유량(m³/일) 최대 ); - const yearMin = data.yearData===null ? '' : ( - (data.yearData.MIN_INFL_AMNT?data.yearData.MIN_INFL_AMNT:0) + // 실제유입량(반류수제거)(m³/일) 최소 - (data.yearData.MIN_SUM_FLOW?data.yearData.MIN_SUM_FLOW:0) + // api 주석처리되어 있음. - (data.yearData.MIN_RETURN_AMNT?data.yearData.MIN_RETURN_AMNT:0) // 반류수유량(m³/일) 최소 + const yearMin = data.yearData === null ? '' : ( + (data.yearData.MIN_INFL_AMNT ? data.yearData.MIN_INFL_AMNT : 0) + // 실제유입량(반류수제거)(m³/일) 최소 + (data.yearData.MIN_SUM_FLOW ? data.yearData.MIN_SUM_FLOW : 0) + // api 주석처리되어 있음. + (data.yearData.MIN_RETURN_AMNT ? data.yearData.MIN_RETURN_AMNT : 0) // 반류수유량(m³/일) 최소 ); operationalStatusList[0].yearAvg = yearAvg; @@ -1468,7 +1469,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) ); operationalStatusList[0].summerThree = data.summerRainy === null ? '' : ( // 하절기 강우시 (data.summerRainy.AVG_INFL_AMNT ? data.summerRainy.AVG_INFL_AMNT : 0) + - (data.summerRainy.AVG_SUM_FLOW ? data.summerRainy.AVG_SUM_FLOW : 0) + (data.summerRainy.AVG_SUM_FLOW ? data.summerRainy.AVG_SUM_FLOW : 0) ); operationalStatusList[0].summerRain = data.summerSunny === null ? '' : ( // 하절기 청천시 (data.summerSunny.AVG_INFL_AMNT ? data.summerSunny.AVG_INFL_AMNT : 0) + @@ -1476,23 +1477,23 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) ); // 겨울 operationalStatusList[0].winterAll = data.winter === null ? '' : ( // 동절기 전기간 - (data.winter.AVG_INFL_AMNT ? data.winter.AVG_INFL_AMNT : 0) + - (data.winter.AVG_SUM_FLOW ? data.winter.AVG_SUM_FLOW : 0) + + (data.winter.AVG_INFL_AMNT ? data.winter.AVG_INFL_AMNT : 0) + + (data.winter.AVG_SUM_FLOW ? data.winter.AVG_SUM_FLOW : 0) + (data.winter.AVG_TP_INFL_WQLT_TP ? data.winter.AVG_TP_INFL_WQLT_TP : 0) ); operationalStatusList[0].winterSunnyMin = data.winterSunny === null ? '' : (// 동절기 청천 최소 - (data.winterSunny.MIN_INFL_AMNT ? data.winterSunny.MIN_INFL_AMNT : 0) + - (data.winterSunny.MIN_SUM_FLOW ? data.winterSunny.MIN_SUM_FLOW : 0) + + (data.winterSunny.MIN_INFL_AMNT ? data.winterSunny.MIN_INFL_AMNT : 0) + + (data.winterSunny.MIN_SUM_FLOW ? data.winterSunny.MIN_SUM_FLOW : 0) + (data.winterSunny.MIN_TP_INFL_WQLT_TP ? data.winterSunny.MIN_TP_INFL_WQLT_TP : 0) ); 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_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_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) ); // 연계처리수 @@ -1515,39 +1516,39 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) let summerRainDayFlow = 0; let summerRainDayReturnFlow = 0; let summerRainDayEfflFlow = 0; - + let winterSumFlow = 0; let winterChungchunSumFlow = 0; let minWinterChungchunSumFlow = 9999999; let maxWinterChungchunSumFlow = 0; - + // 연계처리수,지하수유입량 const bscFctCd = fcltyCd; const res2 = await fetchFlowRateModalList(bscFctCd, searchYear); // /fclt/flow/ - yearDay = res2.data?res2.data.length:1; + yearDay = res2.data ? res2.data.length : 1; res2.data.forEach((item: any) => { yearSumFlow += item.sumFlow && item.sumFlow !== 'x' ? Number(item.sumFlow.toString().trim()) : 0; - if(maxYearSumFlow < (item.sumFlow && item.sumFlow !== 'x' ? Number(item.sumFlow.toString().trim()) : 0)) { + if (maxYearSumFlow < (item.sumFlow && item.sumFlow !== 'x' ? Number(item.sumFlow.toString().trim()) : 0)) { maxYearSumFlow = item.sumFlow && item.sumFlow !== 'x' ? Number(item.sumFlow.toString().trim()) : 0; } - if(minYearSumFlow > (item.sumFlow && item.sumFlow !== 'x' ? Number(item.sumFlow.toString().trim()) : 0)) { + if (minYearSumFlow > (item.sumFlow && item.sumFlow !== 'x' ? Number(item.sumFlow.toString().trim()) : 0)) { minYearSumFlow = item.sumFlow && item.sumFlow !== 'x' ? Number(item.sumFlow.toString().trim()) : 0; } // 1년 최대 총 하수유입량 let totYearFlow = 0; totYearFlow = (item.inflAmnt && item.inflAmnt !== 'x' ? Number(item.inflAmnt.toString().trim()) : 0) + (item.sumFlow && item.sumFlow !== 'x' ? Number(item.sumFlow.toString().trim()) : 0) + (item.returnAmnt && item.returnAmnt !== 'x' ? Number(item.returnAmnt.toString().trim()) : 0); - if(totFlowMax < totYearFlow) { + if (totFlowMax < totYearFlow) { totFlowMax = totYearFlow; } - if(totFlowMin > totYearFlow || totFlowMin === 0) { + if (totFlowMin > totYearFlow || totFlowMin === 0) { totFlowMin = totYearFlow; } - if(item.msrDt.substring(4,6) === '06' || item.msrDt.substring(4,6) === '07' || item.msrDt.substring(4,6) === '08') { + if (item.msrDt.substring(4, 6) === '06' || item.msrDt.substring(4, 6) === '07' || item.msrDt.substring(4, 6) === '08') { summerDay += 1; summerSumFlow += item.sumFlow && item.sumFlow !== 'x' ? Number(item.sumFlow.toString().trim()) : 0; - } else if(item.msrDt.substring(4,6) === '01' || item.msrDt.substring(4,6) === '02') { + } else if (item.msrDt.substring(4, 6) === '01' || item.msrDt.substring(4, 6) === '02') { winterDay += 1; winterSumFlow += item.sumFlow && item.sumFlow !== 'x' ? Number(item.sumFlow.toString().trim()) : 0; } @@ -1555,44 +1556,44 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) const calData = CalcRainEffect(clone(res2.data), 'SUNNY'); const calRainData = CalcRainEffect(clone(res2.data), 'RAIN'); - + // 지하수유입량 - 청천시 기준 let chungcunSumFlow = 0; let sumSummerChungcunFlow = 0; let sumWinterChungcunFlow = 0; - + // 하절기 청천시 총인설비 반류수 let summerChungchunDayReturnAmnt = 0; // 하절기 청천시 방류수 let summerChungchunDayEfflAmnt = 0; // 동절기 총 유입량 최대, 최소 - let winterChungchunTotalInflAmntMax = 0 ; - let winterChungchunTotalInflAmntMin = 9999999 ; + let winterChungchunTotalInflAmntMax = 0; + let winterChungchunTotalInflAmntMin = 9999999; // 동절기 청천시 하수유입량 최대, 최소 - let winterChungchunDayFlowMax = 0 ; - let winterChungchunDayFlowMin = 9999999 ; + let winterChungchunDayFlowMax = 0; + let winterChungchunDayFlowMin = 9999999; // 동절기 청천시 총인반류수 최대, 최소, 평균 - let winterChungchunDayReturnMax = 0 ; - let winterChungchunDayReturnMin = 9999999 ; - let winterChungchunDayReturnAvg = 0 ; + let winterChungchunDayReturnMax = 0; + let winterChungchunDayReturnMin = 9999999; + let winterChungchunDayReturnAvg = 0; // 동절기 청천시 방류량 최대, 최소, 평균 - let winterChungchunDayEfflMax = 0 ; - let winterChungchunDayEfflMin = 9999999 ; + let winterChungchunDayEfflMax = 0; + let winterChungchunDayEfflMin = 9999999; let winterChungchunDayEfflAvg = 0; // 하절기, 동절기 청천시 계산 calData.forEach((flowItem: any) => { 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'){ + if (flowItem.msrDt.substring(4, 6) === '06' || flowItem.msrDt.substring(4, 6) === '07' || flowItem.msrDt.substring(4, 6) === '08') { summerChungchunDay += 1; summerChungchunSumFlow += flowItem.sumFlow && flowItem.sumFlow !== 'x' ? Number(flowItem.sumFlow.toString().trim()) : 0; sumSummerChungcunFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; summerChungchunDayReturnAmnt += flowItem.returnAmnt && flowItem.returnAmnt !== 'x' ? Number(flowItem.returnAmnt.toString().trim()) : 0; summerChungchunDayEfflAmnt += flowItem.efflAmnt && flowItem.efflAmnt !== 'x' ? Number(flowItem.efflAmnt.toString().trim()) : 0; - }else if(flowItem.msrDt.substring(4,6) ==='01' || flowItem.msrDt.substring(4,6) ==='02'){ + } else if (flowItem.msrDt.substring(4, 6) === '01' || flowItem.msrDt.substring(4, 6) === '02') { winterChungchuDay += 1; winterChungchunSumFlow += flowItem.sumFlow && flowItem.sumFlow !== 'x' ? Number(flowItem.sumFlow.toString().trim()) : 0; sumWinterChungcunFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; @@ -1601,38 +1602,38 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) let totWinterTotalInflAmnt = 0; totWinterTotalInflAmnt = (flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0) + (flowItem.sumFlow && flowItem.sumFlow !== 'x' ? Number(flowItem.sumFlow.toString().trim()) : 0) + (flowItem.returnAmnt && flowItem.returnAmnt !== 'x' ? Number(flowItem.returnAmnt.toString().trim()) : 0); - if(winterChungchunTotalInflAmntMax < totWinterTotalInflAmnt) { + if (winterChungchunTotalInflAmntMax < totWinterTotalInflAmnt) { winterChungchunTotalInflAmntMax = totWinterTotalInflAmnt; } - if(winterChungchunTotalInflAmntMin > totWinterTotalInflAmnt || winterChungchunTotalInflAmntMin === 0) { + if (winterChungchunTotalInflAmntMin > totWinterTotalInflAmnt || winterChungchunTotalInflAmntMin === 0) { winterChungchunTotalInflAmntMin = totWinterTotalInflAmnt; } - if(winterChungchunDayFlowMin > (flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0)) { + if (winterChungchunDayFlowMin > (flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0)) { winterChungchunDayFlowMin = flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; } - if(winterChungchunDayFlowMax < (flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0)) { + if (winterChungchunDayFlowMax < (flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0)) { winterChungchunDayFlowMax = flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; } - if(minWinterChungchunSumFlow > (flowItem.sumFlow && flowItem.sumFlow !== 'x' ? Number(flowItem.sumFlow.toString().trim()) : 0) ) { + if (minWinterChungchunSumFlow > (flowItem.sumFlow && flowItem.sumFlow !== 'x' ? Number(flowItem.sumFlow.toString().trim()) : 0)) { minWinterChungchunSumFlow = flowItem.sumFlow && flowItem.sumFlow !== 'x' ? Number(flowItem.sumFlow.toString().trim()) : 0; } - if(maxWinterChungchunSumFlow < (flowItem.sumFlow && flowItem.sumFlow !== 'x' ? Number(flowItem.sumFlow.toString().trim()) : 0)) { + if (maxWinterChungchunSumFlow < (flowItem.sumFlow && flowItem.sumFlow !== 'x' ? Number(flowItem.sumFlow.toString().trim()) : 0)) { maxWinterChungchunSumFlow = flowItem.sumFlow && flowItem.sumFlow !== 'x' ? Number(flowItem.sumFlow.toString().trim()) : 0; } - if(winterChungchunDayReturnMin > (flowItem.returnAmnt && flowItem.returnAmnt !== 'x' ? Number(flowItem.returnAmnt.toString().trim()) : 0)) { + if (winterChungchunDayReturnMin > (flowItem.returnAmnt && flowItem.returnAmnt !== 'x' ? Number(flowItem.returnAmnt.toString().trim()) : 0)) { winterChungchunDayReturnMin = flowItem.returnAmnt && flowItem.returnAmnt !== 'x' ? Number(flowItem.returnAmnt.toString().trim()) : 0; } - if(winterChungchunDayReturnMax < (flowItem.returnAmnt && flowItem.returnAmnt !== 'x' ? Number(flowItem.returnAmnt.toString().trim()) : 0)) { + if (winterChungchunDayReturnMax < (flowItem.returnAmnt && flowItem.returnAmnt !== 'x' ? Number(flowItem.returnAmnt.toString().trim()) : 0)) { winterChungchunDayReturnMax = flowItem.returnAmnt && flowItem.returnAmnt !== 'x' ? Number(flowItem.returnAmnt.toString().trim()) : 0; } - if(winterChungchunDayEfflMin > (flowItem.efflAmnt && flowItem.efflAmnt !== 'x' ? Number(flowItem.efflAmnt.toString().trim()) : 0)) { + if (winterChungchunDayEfflMin > (flowItem.efflAmnt && flowItem.efflAmnt !== 'x' ? Number(flowItem.efflAmnt.toString().trim()) : 0)) { winterChungchunDayEfflMin = flowItem.efflAmnt && flowItem.efflAmnt !== 'x' ? Number(flowItem.efflAmnt.toString().trim()) : 0; } - if(winterChungchunDayEfflMax < (flowItem.efflAmnt && flowItem.efflAmnt !== 'x' ? Number(flowItem.efflAmnt.toString().trim()) : 0)) { + if (winterChungchunDayEfflMax < (flowItem.efflAmnt && flowItem.efflAmnt !== 'x' ? Number(flowItem.efflAmnt.toString().trim()) : 0)) { winterChungchunDayEfflMax = flowItem.efflAmnt && flowItem.efflAmnt !== 'x' ? Number(flowItem.efflAmnt.toString().trim()) : 0; } } @@ -1640,7 +1641,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) // 하절기 강우시 계산 calRainData.forEach((flowItem: any) => { - if(flowItem.msrDt.substring(4,6) === '06' || flowItem.msrDt.substring(4,6) === '07' || flowItem.msrDt.substring(4,6) === '08') { + if (flowItem.msrDt.substring(4, 6) === '06' || flowItem.msrDt.substring(4, 6) === '07' || flowItem.msrDt.substring(4, 6) === '08') { summerRainDay += 1; summerRainDaySumFlow += flowItem.sumFlow && flowItem.sumFlow !== 'x' ? Number(flowItem.sumFlow.toString().trim()) : 0; summerRainDayFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; @@ -1650,36 +1651,36 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) }); // 연계처리수 - yearAvgSumFlow = Number((yearSumFlow&&Number(yearSumFlow)!=0)?(yearSumFlow / yearDay):''); + yearAvgSumFlow = Number((yearSumFlow && Number(yearSumFlow) != 0) ? (yearSumFlow / yearDay) : ''); yearMaxSumFlow = maxYearSumFlow; yearMinSumFlow = minYearSumFlow; - summerAll = summerSumFlow&&Number(summerSumFlow)!=0?Number(summerSumFlow / summerDay):0 - summerThree= summerRainDaySumFlow&&Number(summerRainDaySumFlow)!=0?Number(summerRainDaySumFlow / summerRainDay):0; - summerRain = summerChungchunSumFlow&&Number(summerChungchunSumFlow)!=0?Number(summerChungchunSumFlow / summerChungchunDay):0; - winterAll = winterSumFlow&&Number(winterSumFlow)!=0?Number(winterSumFlow / winterDay):0; + summerAll = summerSumFlow && Number(summerSumFlow) != 0 ? Number(summerSumFlow / summerDay) : 0 + summerThree = summerRainDaySumFlow && Number(summerRainDaySumFlow) != 0 ? Number(summerRainDaySumFlow / summerRainDay) : 0; + summerRain = summerChungchunSumFlow && Number(summerChungchunSumFlow) != 0 ? Number(summerChungchunSumFlow / summerChungchunDay) : 0; + winterAll = winterSumFlow && Number(winterSumFlow) != 0 ? Number(winterSumFlow / winterDay) : 0; winterSunnyMin = minWinterChungchunSumFlow; - winterSunnyAvg = winterChungchunSumFlow&&Number(winterChungchunSumFlow)!=0?(winterChungchunSumFlow / winterChungchuDay):0; + winterSunnyAvg = winterChungchunSumFlow && Number(winterChungchunSumFlow) != 0 ? (winterChungchunSumFlow / winterChungchuDay) : 0; winterSunnyMax = maxWinterChungchunSumFlow; // 하절기 강우시 계산 // 하수유입량 (강우시) - summerRainInflAmnt = summerRainDayFlow&&Number(summerRainDayFlow)!=0?Number(summerRainDayFlow / summerRainDay):0; + summerRainInflAmnt = summerRainDayFlow && Number(summerRainDayFlow) != 0 ? Number(summerRainDayFlow / summerRainDay) : 0; // 총인설비방류수 (강우시) - summerRainReturnAmnt = summerRainDayReturnFlow&&Number(summerRainDayReturnFlow)!=0?Number(summerRainDayReturnFlow / summerRainDay):0; + summerRainReturnAmnt = summerRainDayReturnFlow && Number(summerRainDayReturnFlow) != 0 ? Number(summerRainDayReturnFlow / summerRainDay) : 0; // 방루량 (강우시) - summerRainEfflAmnt = summerRainDayEfflFlow&&summerRainDayEfflFlow!=0?summerRainDayEfflFlow / summerRainDay:0; + summerRainEfflAmnt = summerRainDayEfflFlow && summerRainDayEfflFlow != 0 ? summerRainDayEfflFlow / summerRainDay : 0; // 동절기 청천시 계산 // 하수유입량 (청천시) 평균 - winterChungchunFlowAvg = sumWinterChungcunFlow&&Number(sumWinterChungcunFlow)!=0?(sumWinterChungcunFlow / winterChungchuDay):0; + winterChungchunFlowAvg = sumWinterChungcunFlow && Number(sumWinterChungcunFlow) != 0 ? (sumWinterChungcunFlow / winterChungchuDay) : 0; // 총인반류수 (청천시) 평균 - winterChungchunReturnAvg = winterChungchunDayReturnAvg&&Number(winterChungchunDayReturnAvg)!=0?(winterChungchunDayReturnAvg / winterChungchuDay):0; + winterChungchunReturnAvg = winterChungchunDayReturnAvg && Number(winterChungchunDayReturnAvg) != 0 ? (winterChungchunDayReturnAvg / winterChungchuDay) : 0; // 방류량 (청천시) 평균 - winterChungchunEfflAvg = winterChungchunDayEfflAvg&&Number(winterChungchunDayEfflAvg)!=0?(winterChungchunDayEfflAvg / winterChungchuDay):0; + winterChungchunEfflAvg = winterChungchunDayEfflAvg && Number(winterChungchunDayEfflAvg) != 0 ? (winterChungchunDayEfflAvg / winterChungchuDay) : 0; // 하수유입량 (청천시) 최대 winterChungchunFlowMax = winterChungchunDayFlowMax; // 총인반류수 (청천시) 최대 - winterChungchunReturnMax = winterChungchunDayReturnMax; + winterChungchunReturnMax = winterChungchunDayReturnMax; // 방류량 (청천시) 최대 winterChungchunEfflMax = winterChungchunDayEfflMax; // 하수유입량 (청천시) 최소 @@ -1704,15 +1705,15 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) const usage = chungcunSumFlow / calData.length; const summerUsage = sumSummerChungcunFlow / summerChungchunDay; const winterUsage = sumWinterChungcunFlow / winterChungchuDay; - + // 임시 계산변수값들 메인에 대입 summerChungchunFlow = summerUsage; summerChungchunReturnAmnt = summerChungchunDayReturnAmnt / summerChungchunDay; summerChungchunEfflAmnt = summerChungchunDayEfflAmnt / summerChungchunDay; - operationalStatusList[0].groundWaterAvg = Math.round((usage-(usage*0.65*OSU_PERCENT)) * 100) / 100; - operationalStatusList[0].groundWaterSummer = Math.round((summerUsage-(summerUsage*0.65*OSU_PERCENT)) * 100) / 100; - operationalStatusList[0].groundWaterWinter = Math.round((winterUsage-(winterUsage*0.65*OSU_PERCENT)) * 100) / 100; + operationalStatusList[0].groundWaterAvg = Math.round((usage - (usage * 0.65 * OSU_PERCENT)) * 100) / 100; + operationalStatusList[0].groundWaterSummer = Math.round((summerUsage - (summerUsage * 0.65 * OSU_PERCENT)) * 100) / 100; + operationalStatusList[0].groundWaterWinter = Math.round((winterUsage - (winterUsage * 0.65 * OSU_PERCENT)) * 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); @@ -1734,12 +1735,12 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) const summerMonth = ['06', '07', '08']; const winterMonth = ['01', '02']; - wqltDataTot.filter(item=>summerMonth.includes(item.msrDt.toString().replaceAll('-','').substring(4,6))).forEach(item2 => { - if(Number(item2.infoRnDay)>=3){ + wqltDataTot.filter(item => summerMonth.includes(item.msrDt.toString().replaceAll('-', '').substring(4, 6))).forEach(item2 => { + if (Number(item2.infoRnDay) >= 3) { const inflBod = Number(item2.inflAssctBfrWqltBod); const infl = Number(item2.inflAmnt); const rain = Number(item2.infoRnDay); - if(inflBod < minSummerBod){ + if (inflBod < minSummerBod) { minSummerBodInfl = infl; minSummerBod = inflBod; rdiRain = rain; @@ -1747,24 +1748,24 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) } }); - wqltDataSunny.filter(item=>winterMonth.includes(item.msrDt.toString().replaceAll('-','').substring(4,6))).forEach(item2 => { + wqltDataSunny.filter(item => winterMonth.includes(item.msrDt.toString().replaceAll('-', '').substring(4, 6))).forEach(item2 => { winterBodSunny += Number(item2.inflAssctBfrWqltBod); winterCnt += 1; }); - const roundMinSummerBodInfl = Number(roundNumber(minSummerBodInfl, 0).toString().replaceAll(',','')); - const roundMinSummerBod = Number(roundNumber(minSummerBod, 1).toString().replaceAll(',','')); - const roundWinterBodSunny = Number(roundNumber(winterBodSunny, 1).toString().replaceAll(',','')); + const roundMinSummerBodInfl = Number(roundNumber(minSummerBodInfl, 0).toString().replaceAll(',', '')); + const roundMinSummerBod = Number(roundNumber(minSummerBod, 1).toString().replaceAll(',', '')); + const roundWinterBodSunny = Number(roundNumber(winterBodSunny, 1).toString().replaceAll(',', '')); - const winterBodAvg = Number(roundNumber((roundWinterBodSunny / winterCnt), 1).toString().replaceAll(',','')); + const winterBodAvg = Number(roundNumber((roundWinterBodSunny / winterCnt), 1).toString().replaceAll(',', '')); // 하절기(6~8월) 중 최저 유입 BOD일때 유입유량 x ((동절기 청천시 유입BOD - 하절기(6~8월) 중 최저 유입BOD) / (동절기 청천시 유입BOD)) const winMinusSum = winterBodAvg - roundMinSummerBod; - const rdiValue = winMinusSum===0 ? 0 : roundMinSummerBodInfl * (winMinusSum / winterBodAvg ); - + const rdiValue = winMinusSum === 0 ? 0 : roundMinSummerBodInfl * (winMinusSum / winterBodAvg); + rdiPercent = (rdiValue / minSummerBodInfl) * 100; - operationalStatusList[0].rdi = rdiValue; + operationalStatusList[0].rdi = rdiValue; operationalStatusList[0].rdiRain = rdiRain; /* const summerLowFlow = data.summerBod&&data.summerBod.INFL_AMNT&&data.summerBod.INFL_AMNT!='null'?Number(data.summerBod.INFL_AMNT):0; const winterAvgBod = data.winterSunny&&data.winterSunny.AVG_INFL_ASSCT_BFR_WQLT_BOD&&data.winterSunny.AVG_INFL_ASSCT_BFR_WQLT_BOD!='null'?Number(data.winterSunny.AVG_INFL_ASSCT_BFR_WQLT_BOD):0; @@ -1774,35 +1775,35 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) operationalStatusList[0].rdiRain = summerLowRain; */ } - if(operationalStatusList[0] && operationalStatusList[7]){ - operationalStatusList[7].groundWaterAvg = operationalStatusList[0].groundWaterAvg === null ? '' : data.yearData && data.yearData.AVG_INFL_AMNT === 0 ? '' : Math.round((Number(operationalStatusList[0].groundWaterAvg.toString().replaceAll(',', '')) / (data.yearData && data.yearData.AVG_INFL_AMNT ? Number(data.yearData.AVG_INFL_AMNT.toString().replaceAll(',','')) : 0) * 100) * 10) / 10+'%'; - operationalStatusList[7].groundWaterSummer = operationalStatusList[0].groundWaterSummer === null ? '' : data.summer && data.summer.AVG_INFL_AMNT === 0 ? '' : Math.round((Number(operationalStatusList[0].groundWaterSummer.toString().replaceAll(',','')) / (data.summer && data.summer.AVG_INFL_AMNT ? Number(data.summer.AVG_INFL_AMNT.toString().replaceAll(',','')) : 0) * 100) * 10) / 10+'%'; - operationalStatusList[7].groundWaterWinter = operationalStatusList[0].groundWaterWinter === null ? '' : data.winter && data.winter.AVG_INFL_AMNT === 0 ? '' : Math.round((Number(operationalStatusList[0].groundWaterWinter.toString().replaceAll(',','')) / (data.winter && data.winter.AVG_INFL_AMNT ? Number(data.winter.AVG_INFL_AMNT.toString().replaceAll(',','')) : 0) * 100) * 10) / 10+'%'; - operationalStatusList[7].rdi = roundNumber(rdiPercent, 1)+'%'; + if (operationalStatusList[0] && operationalStatusList[7]) { + operationalStatusList[7].groundWaterAvg = operationalStatusList[0].groundWaterAvg === null ? '' : data.yearData && data.yearData.AVG_INFL_AMNT === 0 ? '' : Math.round((Number(operationalStatusList[0].groundWaterAvg.toString().replaceAll(',', '')) / (data.yearData && data.yearData.AVG_INFL_AMNT ? Number(data.yearData.AVG_INFL_AMNT.toString().replaceAll(',', '')) : 0) * 100) * 10) / 10 + '%'; + operationalStatusList[7].groundWaterSummer = operationalStatusList[0].groundWaterSummer === null ? '' : data.summer && data.summer.AVG_INFL_AMNT === 0 ? '' : Math.round((Number(operationalStatusList[0].groundWaterSummer.toString().replaceAll(',', '')) / (data.summer && data.summer.AVG_INFL_AMNT ? Number(data.summer.AVG_INFL_AMNT.toString().replaceAll(',', '')) : 0) * 100) * 10) / 10 + '%'; + operationalStatusList[7].groundWaterWinter = operationalStatusList[0].groundWaterWinter === null ? '' : data.winter && data.winter.AVG_INFL_AMNT === 0 ? '' : Math.round((Number(operationalStatusList[0].groundWaterWinter.toString().replaceAll(',', '')) / (data.winter && data.winter.AVG_INFL_AMNT ? Number(data.winter.AVG_INFL_AMNT.toString().replaceAll(',', '')) : 0) * 100) * 10) / 10 + '%'; + operationalStatusList[7].rdi = roundNumber(rdiPercent, 1) + '%'; /* 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;*/ } - for(let i=1; i DashBoardType) } // 연계처리수 - if(operationalStatusList[2]){ + if (operationalStatusList[2]) { operationalStatusList[2].yearAvg = yearAvgSumFlow; operationalStatusList[2].yearMax = yearMaxSumFlow; operationalStatusList[2].yearMin = yearMinSumFlow; @@ -1827,7 +1828,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) } // 총인설비방류수 - if(operationalStatusList[3]){ + if (operationalStatusList[3]) { operationalStatusList[3].summerThree = summerRainReturnAmnt; operationalStatusList[3].summerRain = summerChungchunReturnAmnt; operationalStatusList[3].winterSunnyAvg = winterChungchunReturnAvg; @@ -1837,7 +1838,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) } // 방류수 - if(operationalStatusList[4]){ + if (operationalStatusList[4]) { operationalStatusList[4].summerThree = summerRainEfflAmnt; operationalStatusList[4].summerRain = summerChungchunEfflAmnt; operationalStatusList[4].winterSunnyAvg = winterChungchunEfflAvg; @@ -1882,15 +1883,15 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) } } - const rtnData = await calcWaterQltyData(operationalStatusList, searchYear, fcltyCd); + const rtnData = await calcWaterQltyData(operationalStatusList, searchYear, fcltyCd); // 수질 데이터 청천시, 강우시 재계산 // 총인설비가 없을 경우 제외 - console.log('총인시설 여부 : ', data.yearData?.TP_FCT_YN); + console.log('총인시설 여부 : ', data.yearData?.TP_FCT_YN); console.log('rtnData : ', rtnData); - if(data.yearData?.TP_FCT_YN !== 'Y') { + if (data.yearData?.TP_FCT_YN !== 'Y') { operationalStatusList = rtnData.slice(0, 11); - }else{ + } else { operationalStatusList = rtnData; } set((state: DashBoardType) => ({ @@ -1899,11 +1900,11 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) ...state.OperationStatus, operationalStatusList: operationalStatusList, operationalStatusCount: res.count, - isLoadingOperationStatus : false, + isLoadingOperationStatus: false, }, })) }, - + searchMainGraph: async (searchYear: string, fcltyCd: string) => { set((state: DashBoardType) => ({ ...state, @@ -1920,14 +1921,14 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) calData.forEach((flowItem: any) => { chungcunSumFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; }); - const usage = chungcunSumFlow&&chungcunSumFlow>0?chungcunSumFlow / calData.length:0; - + const usage = chungcunSumFlow && chungcunSumFlow > 0 ? chungcunSumFlow / calData.length : 0; + //bscFctCd === '11200PB001R') 중랑 - 테스트할 때 코드넣고 해야 보기편해요~ /* if(bscFctCd === '11200PB001R') { console.log('calData.length : ', calData.length); console.log('usage : ', usage, 'summerUsage : ', summerUsage, 'winterUsage : ', winterUsage); } */ - const underWaterInputYear = Math.round((usage-(usage*0.65*OSU_PERCENT)) * 1) / 1; + const underWaterInputYear = Math.round((usage - (usage * 0.65 * OSU_PERCENT)) * 1) / 1; // 법적방류수질 데이터 const sortedWaterQltyInfo = [...res2].sort((a, b) => { @@ -1935,17 +1936,17 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) const numA = Number(a.extnsSeqno); const numB = Number(b.extnsSeqno); if (!isNaN(numA) && !isNaN(numB)) { - return numA - numB; + return numA - numB; } // 숫자 변환이 실패하면 문자열로 비교 return String(a.extnsSeqno).localeCompare(String(b.extnsSeqno)); }); - const waterQltyStandartd : any = sortedWaterQltyInfo && sortedWaterQltyInfo.length > 0 + const waterQltyStandartd: any = sortedWaterQltyInfo && sortedWaterQltyInfo.length > 0 ? sortedWaterQltyInfo[sortedWaterQltyInfo.length - 1] : []; - if(res == null || res.data == null || res.data.length === 0) { + if (res == null || res.data == null || res.data.length === 0) { set((state: DashBoardType) => ({ ...state, MainGraph: { @@ -1959,61 +1960,61 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) chart_efflTn: [], chart_inflBod: [], chart_efflBod: [], - waterQltyStandartd : [], - isLoadingMainGraph : false, + waterQltyStandartd: [], + isLoadingMainGraph: false, } })); return; } - + const chart_inflowRain = res.data.wqltObjs.map((item: FacilityWaterQltyProps) => ({ - label: item.msrDt.substring(0, 4)+"-"+item.msrDt.substring(4, 6)+"-"+item.msrDt.substring(6, 8), + label: item.msrDt.substring(0, 4) + "-" + item.msrDt.substring(4, 6) + "-" + item.msrDt.substring(6, 8), barVal0: item.infoRnDay ?? 0, lineVal0: underWaterInputYear, lineVal1: item.inflAmnt ?? 0, })); - + 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), + label: item.msrDt.substring(0, 4) + "-" + item.msrDt.substring(4, 6) + "-" + item.msrDt.substring(6, 8), barVal0: item.infoRnDay ?? 0, lineVal0: item.inflAssctBfrWqltBod ?? 0, })); const chart_inflTp = res.data.wqltObjs.map((item: FacilityWaterQltyProps) => ({ - label: item.msrDt.substring(0, 4)+"-"+item.msrDt.substring(4, 6)+"-"+item.msrDt.substring(6, 8), - val : item.inflAssctBfrWqltTp ?? 0 + label: item.msrDt.substring(0, 4) + "-" + item.msrDt.substring(4, 6) + "-" + item.msrDt.substring(6, 8), + val: item.inflAssctBfrWqltTp ?? 0 })); - + const chart_chongInTp = res.data.wqltObjs.map((item: FacilityWaterQltyProps) => ({ - label: item.msrDt.substring(0, 4)+"-"+item.msrDt.substring(4, 6)+"-"+item.msrDt.substring(6, 8), - val : Number(item.tpInflWqltTp) == 0 ? null : item.tpInflWqltTp + label: item.msrDt.substring(0, 4) + "-" + item.msrDt.substring(4, 6) + "-" + item.msrDt.substring(6, 8), + val: Number(item.tpInflWqltTp) == 0 ? null : item.tpInflWqltTp })); - + const chart_efflTp = res.data.wqltObjs.map((item: FacilityWaterQltyProps) => ({ - label: item.msrDt.substring(0, 4)+"-"+item.msrDt.substring(4, 6)+"-"+item.msrDt.substring(6, 8), - val : item.efflWqltTp ?? 0 + label: item.msrDt.substring(0, 4) + "-" + item.msrDt.substring(4, 6) + "-" + item.msrDt.substring(6, 8), + val: item.efflWqltTp ?? 0 })); 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.inflAssctBfrWqltTn ?? 0 + label: item.msrDt.substring(0, 4) + "-" + item.msrDt.substring(4, 6) + "-" + item.msrDt.substring(6, 8), + val: item.inflAssctBfrWqltTn ?? 0 })); const chart_efflTn = res.data.wqltObjs.map((item: FacilityWaterQltyProps) => ({ - label: item.msrDt.substring(0, 4)+"-"+item.msrDt.substring(4, 6)+"-"+item.msrDt.substring(6, 8), - val : item.efflWqltTn ?? 0 + label: item.msrDt.substring(0, 4) + "-" + item.msrDt.substring(4, 6) + "-" + item.msrDt.substring(6, 8), + val: item.efflWqltTn ?? 0 })); 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.inflAssctBfrWqltBod ?? 0 + label: item.msrDt.substring(0, 4) + "-" + item.msrDt.substring(4, 6) + "-" + item.msrDt.substring(6, 8), + val: item.inflAssctBfrWqltBod ?? 0 })); - + const chart_efflBod = res.data.wqltObjs.map((item: FacilityWaterQltyProps) => ({ - label: item.msrDt.substring(0, 4)+"-"+item.msrDt.substring(4, 6)+"-"+item.msrDt.substring(6, 8), - val : item.efflWqltBod ?? 0 + label: item.msrDt.substring(0, 4) + "-" + item.msrDt.substring(4, 6) + "-" + item.msrDt.substring(6, 8), + val: item.efflWqltBod ?? 0 })); - + set((state: DashBoardType) => ({ ...state, MainGraph: { @@ -2021,19 +2022,19 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) chart_inflowRain: chart_inflowRain, chart_bodRain: chart_bodRain, chart_inflTp: chart_inflTp, - chart_chongInTp : chart_chongInTp, + chart_chongInTp: chart_chongInTp, chart_efflTp: chart_efflTp, chart_inflTn: chart_inflTn, chart_efflTn: chart_efflTn, chart_inflBod: chart_inflBod, chart_efflBod: chart_efflBod, - waterQltyStandartd : waterQltyStandartd, - isLoadingMainGraph : false, + waterQltyStandartd: waterQltyStandartd, + isLoadingMainGraph: false, }, })) }, - searchRainManage: async (searchYear: string, fcltyCd: string, isExcel : boolean) => { + searchRainManage: async (searchYear: string, fcltyCd: string, isExcel: boolean) => { set((state: DashBoardType) => ({ ...state, RainManage: { @@ -2042,13 +2043,13 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) }, })); const res = await fetchMainGraph(searchYear, fcltyCd); - if(res == null || res.data.wqltObjs == null || res.data.wqltObjs.length === 0) { + if (res == null || res.data.wqltObjs == null || res.data.wqltObjs.length === 0) { set((state: DashBoardType) => ({ ...state, RainManage: { ...state.RainManage, rainManageList: [], - isLoadingRainManage : false, + isLoadingRainManage: false, } })); return; @@ -2092,7 +2093,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) const rainEffectList = CalcRainEffect(res.data.wqltObjs, 'RAIN_DAY'); // Process the data and create rain management list - const totItemCnt = rainEffectList?rainEffectList.length : 1; + const totItemCnt = rainEffectList ? rainEffectList.length : 1; let totInflAssctBfrWqltBod = 0; let totInflAssctBfrWqltToc = 0; let totInflAssctBfrWqltSs = 0; @@ -2116,9 +2117,9 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) totEfflWqltTn += item.efflWqltTn ? Number(item.efflWqltTn.toString().trim()) : 0; totEfflWqltTp += item.efflWqltTp ? Number(item.efflWqltTp.toString().trim()) : 0; - const toBeRain = item.toBeInfoRnDay ? Number(item.toBeInfoRnDay) : 0; + const toBeRain = item.toBeInfoRnDay ? Number(item.toBeInfoRnDay) : 0; - if(toBeRain >= 3 && toBeRain < 10){ + if (toBeRain >= 3 && toBeRain < 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); @@ -2134,7 +2135,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) 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); + efflWqltBod[1] = Number(efflWqltBod[1] || 0) + Number(item.efflWqltBod || 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; @@ -2143,7 +2144,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) 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); - }else if(toBeRain >= 10 && toBeRain < 20){ + } else if (toBeRain >= 10 && toBeRain < 20) { rainDate[2] = Number(rainDate[2] || 0) + 1; inflAmtCnt[2] = Number(inflAmtCnt[2] || 0) + 1; inflAmnt[2] = Number(inflAmnt[2] || 0) + Number(item.inflAmnt || 0); @@ -2168,7 +2169,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) efflWqltTn[2] = Number(efflWqltTn[2] || 0) + Number(item.efflWqltTn || 0); efflWqltTpCnt[2] = Number(efflWqltTpCnt[2] || 0) + 1; efflWqltTp[2] = Number(efflWqltTp[2] || 0) + Number(item.efflWqltTp || 0); - }else if(toBeRain >= 20 && toBeRain < 30){ + } else if (toBeRain >= 20 && toBeRain < 30) { rainDate[3] = Number(rainDate[3] || 0) + 1; inflAmtCnt[3] = Number(inflAmtCnt[3] || 0) + 1; inflAmnt[3] = Number(inflAmnt[3] || 0) + Number(item.inflAmnt || 0); @@ -2193,11 +2194,11 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) efflWqltTn[3] = Number(efflWqltTn[3] || 0) + Number(item.efflWqltTn || 0); efflWqltTpCnt[3] = Number(efflWqltTpCnt[3] || 0) + 1; efflWqltTp[3] = Number(efflWqltTp[3] || 0) + Number(item.efflWqltTp || 0); - }else if(toBeRain >= 30 && toBeRain < 40){ + } else if (toBeRain >= 30 && toBeRain < 40) { rainDate[4] = Number(rainDate[4] || 0) + 1; 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; + fcltyCpct[4] = item.inflAmnt && Number(item.inflAmnt) !== 0 ? Number(Math.round(Number(item.inflAmnt) / Number(item.fctCpc) * 10) / 10) : 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; @@ -2218,7 +2219,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) efflWqltTn[4] = Number(efflWqltTn[4] || 0) + Number(item.efflWqltTn || 0); efflWqltTpCnt[4] = Number(efflWqltTpCnt[4] || 0) + 1; efflWqltTp[4] = Number(efflWqltTp[4] || 0) + Number(item.efflWqltTp || 0); - }else if(toBeRain >= 40 && toBeRain < 50){ + } else if (toBeRain >= 40 && toBeRain < 50) { rainDate[5] = Number(rainDate[5] || 0) + 1; inflAmtCnt[5] = Number(inflAmtCnt[5] || 0) + 1; inflAmnt[5] = Number(inflAmnt[5] || 0) + Number(item.inflAmnt || 0); @@ -2243,7 +2244,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) efflWqltTn[5] = Number(efflWqltTn[5] || 0) + Number(item.efflWqltTn || 0); efflWqltTpCnt[5] = Number(efflWqltTpCnt[5] || 0) + 1; efflWqltTp[5] = Number(efflWqltTp[5] || 0) + Number(item.efflWqltTp || 0); - }else if(toBeRain >= 50 && toBeRain < 60){ + } else if (toBeRain >= 50 && toBeRain < 60) { rainDate[6] = Number(rainDate[6] || 0) + 1; inflAmtCnt[6] = Number(inflAmtCnt[6] || 0) + 1; inflAmnt[6] = Number(inflAmnt[6] || 0) + Number(item.inflAmnt || 0); @@ -2268,7 +2269,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) efflWqltTn[6] = Number(efflWqltTn[6] || 0) + Number(item.efflWqltTn || 0); efflWqltTpCnt[6] = Number(efflWqltTpCnt[6] || 0) + 1; efflWqltTp[6] = Number(efflWqltTp[6] || 0) + Number(item.efflWqltTp || 0); - }else if(toBeRain >= 60){ + } else if (toBeRain >= 60) { rainDate[7] = Number(rainDate[7] || 0) + 1; inflAmtCnt[7] = Number(inflAmtCnt[7] || 0) + 1; inflAmnt[7] = Number(inflAmnt[7] || 0) + Number(item.inflAmnt || 0); @@ -2295,18 +2296,18 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) efflWqltTp[7] = Number(efflWqltTp[7] || 0) + Number(item.efflWqltTp || 0); } }); - + // Process the data and create rain management list - if(res.data&&res.data.dsWqltObjs&&res.data.dsWqltObjs.length > 0){ + if (res.data && res.data.dsWqltObjs && res.data.dsWqltObjs.length > 0) { // 설계 유입수질 데이터 가져오기 - 0값이 있으면 이전 차수에서 가져오기 const getDesignWaterQualityData = (stepIndex: number, maxPreviousSteps: number = 3) => { for (let i = 0; i <= maxPreviousSteps && stepIndex - i >= 0; i++) { const currentStep = res.data.dsWqltObjs[stepIndex - i]; - if (currentStep && - currentStep.dsInflWqltBod > 0 && - currentStep.dsInflWqltCod > 0 && - currentStep.dsInflWqltSs > 0 && - currentStep.dsInflWqltTn > 0 && + if (currentStep && + currentStep.dsInflWqltBod > 0 && + currentStep.dsInflWqltCod > 0 && + currentStep.dsInflWqltSs > 0 && + currentStep.dsInflWqltTn > 0 && currentStep.dsInflWqltTp > 0) { return { dsInflWqltBod: currentStep.dsInflWqltBod, @@ -2329,23 +2330,23 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) const lastStepIndex = res.data.dsWqltObjs.length - 1; const designData = getDesignWaterQualityData(lastStepIndex); - + dsInflWqltBod[0] = designData.dsInflWqltBod; dsInflWqltCod[0] = designData.dsInflWqltCod; dsInflWqltSs[0] = designData.dsInflWqltSs; dsInflWqltTn[0] = designData.dsInflWqltTn; dsInflWqltTp[0] = designData.dsInflWqltTp; } - - rainDate[0] = (Number(rainDate[1]) || 0) + (Number(rainDate[2]) || 0) + (Number(rainDate[3]) || 0) + - (Number(rainDate[4]) || 0) + (Number(rainDate[5]) || 0) + (Number(rainDate[6]) || 0) + + + rainDate[0] = (Number(rainDate[1]) || 0) + (Number(rainDate[2]) || 0) + (Number(rainDate[3]) || 0) + + (Number(rainDate[4]) || 0) + (Number(rainDate[5]) || 0) + (Number(rainDate[6]) || 0) + (Number(rainDate[7]) || 0); - + // 강수비율 - for(let idx=0; idx 0){ + for (let idx = 0; idx < rainDate.length; idx++) { + if (Number(rainDate[idx]) > 0) { rainRate[0] = '100'; - rainRate[idx] = (Math.round(Number(rainDate[idx])/Number(rainDate[0])*100*100)/100).toString(); + rainRate[idx] = (Math.round(Number(rainDate[idx]) / Number(rainDate[0]) * 100 * 100) / 100).toString(); } } @@ -2356,13 +2357,13 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) // 데이터 있는 항목만 계산 let dataIsCount = 0; - for(let idx=0; idx 0){ + for (let idx = 0; idx < inflAmnt.length; idx++) { + if (Number(inflAmnt[idx]) > 0) { dataIsCount++; } } - for(let idx=0; idx DashBoardType) efflWqltSs[0] = Number((Math.round((totEfflWqltSs / totItemCnt) * 10) / 10).toFixed(1)); efflWqltTn[0] = Number((Math.round((totEfflWqltTn / totItemCnt) * 1000) / 1000).toFixed(3)); efflWqltTp[0] = Number((Math.round((totEfflWqltTp / totItemCnt) * 1000) / 1000).toFixed(3)); - + // 최종 리스트 const filteredData = itemList.map((item, index) => ({ rainItem: item, @@ -2411,15 +2412,15 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) inflAssctBfrWqltSs: inflAssctBfrWqltSs[index] ? (Math.round(inflAssctBfrWqltSs[index] * 10) / 10).toFixed(1) : '', inflAssctBfrWqltTn: inflAssctBfrWqltTn[index] ? (Math.round(inflAssctBfrWqltTn[index] * 1000) / 1000).toFixed(3) : '', inflAssctBfrWqltTp: inflAssctBfrWqltTp[index] ? (Math.round(inflAssctBfrWqltTp[index] * 1000) / 1000).toFixed(3) : '', - efflWqltBod: efflWqltBod[index] ? (Math.round(efflWqltBod[index] * 10) / 10).toFixed(1): '', + efflWqltBod: efflWqltBod[index] ? (Math.round(efflWqltBod[index] * 10) / 10).toFixed(1) : '', efflWqltToc: efflWqltToc[index] ? (Math.round(efflWqltToc[index] * 10) / 10).toFixed(1) : '', efflWqltSs: efflWqltSs[index] ? (Math.round(efflWqltSs[index] * 10) / 10).toFixed(1) : '', efflWqltTn: efflWqltTn[index] ? (Math.round(efflWqltTn[index] * 1000) / 1000).toFixed(3) : '', efflWqltTp: efflWqltTp[index] ? (Math.round(efflWqltTp[index] * 1000) / 1000).toFixed(3) : '' })); - - const excelList : RainManageExcelType[] = []; - if(isExcel){ + + const excelList: RainManageExcelType[] = []; + if (isExcel) { filteredData.forEach((item) => { excelList.push({ 강우량: item.rainItem, @@ -2430,7 +2431,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) 설계유입수질BOD: item.dsInflWqltBod ? (Math.round(Number(item.dsInflWqltBod) * 10) / 10).toFixed(1) : '', 설계유입수질TOC: item.dsInflWqltCod ? (Math.round(Number(item.dsInflWqltCod) * 10) / 10).toFixed(1) : '', 설계유입수질SS: item.dsInflWqltSs ? (Math.round(Number(item.dsInflWqltSs) * 10) / 10).toFixed(1) : '', - 설계유입수질TN: item.dsInflWqltTn ?(Math.round(Number(item.dsInflWqltTn) * 1000) / 1000).toFixed(3) : '', + 설계유입수질TN: item.dsInflWqltTn ? (Math.round(Number(item.dsInflWqltTn) * 1000) / 1000).toFixed(3) : '', 설계유입수질TP: item.dsInflWqltTp ? (Math.round(Number(item.dsInflWqltTp) * 1000) / 1000).toFixed(3) : '', 유입수질BOD: item.inflAssctBfrWqltBod ? (Math.round(Number(item.inflAssctBfrWqltBod) * 10) / 10).toFixed(1) : '', 유입수질TOC: item.inflAssctBfrWqltToc ? (Math.round(Number(item.inflAssctBfrWqltToc) * 10) / 10).toFixed(1) : '', @@ -2445,18 +2446,18 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) }); }); } - + set((state: DashBoardType) => ({ ...state, RainManage: isExcel ? { ...state.RainManage, rainManageList: filteredData as any[], excelList: excelList, - isLoadingRainManage : false, + isLoadingRainManage: false, } : { ...state.RainManage, rainManageList: filteredData as any[], - isLoadingRainManage : false, + isLoadingRainManage: false, } })); },