From 1850ab2aa8fb2f438a03f1d60544ee42b7fba68a Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 27 Jul 2025 14:34:32 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8C=80=EC=8B=9C=EB=B3=B4=EB=93=9C=20?= =?UTF-8?q?=EB=AC=BC=EC=82=AC=EC=9A=A9=EB=9F=89=ED=8F=89=EA=B7=A0=20?= =?UTF-8?q?=EC=88=98=EC=A0=95,=20=EC=B4=88=EA=B8=B0=ED=99=94=EC=98=A4?= =?UTF-8?q?=EB=A5=98=20=EC=88=98=EC=A0=95,=20=EC=88=98=EC=A7=88=20?= =?UTF-8?q?=EB=B3=80=EC=88=98=20=EB=8B=A4=EC=8B=9C=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/pages/dashboard/facilityInfo/page.tsx | 4 ++-- apps/fo/app/pages/processArea/page.tsx | 3 ++- apps/fo/app/store/dashboard/index.tsx | 20 +++++++++++++++++-- apps/fo/app/store/facilityWaterQlty/index.tsx | 6 +++--- apps/fo/app/store/underWaterInput/index.tsx | 3 ++- 5 files changed, 27 insertions(+), 9 deletions(-) diff --git a/apps/fo/app/pages/dashboard/facilityInfo/page.tsx b/apps/fo/app/pages/dashboard/facilityInfo/page.tsx index 804fb9807..3cc4229a2 100644 --- a/apps/fo/app/pages/dashboard/facilityInfo/page.tsx +++ b/apps/fo/app/pages/dashboard/facilityInfo/page.tsx @@ -167,7 +167,7 @@ export default function ProcessFacilitySearch({searchYear = '', fcltyList = []}: el['item'] = (Number(searchYear)-0).toString(); el['provisionalApproval'] = waterUsage1; } else if(index === 4){ - el['provisionalApproval'] = (Number(waterUsage1)+Number(waterUsage2)+Number(waterUsage3))/3; + el['provisionalApproval'] = Math.round((Number(waterUsage1)+Number(waterUsage2)+Number(waterUsage3))/3 * 100)/100; } }); } @@ -222,7 +222,7 @@ export default function ProcessFacilitySearch({searchYear = '', fcltyList = []}: :(index < 5 || index > 5)&& (index!= 4) && (head.id ==='provisionalApproval'||head.id ==='now'||head.id ==='stepOne'||head.id ==='stepTwo'||head.id ==='stepThree'||head.id ==='stepFour') ?{el[head.id]} :(head.id === "provisionalApproval" && index === 4) - ?{(Number(fcltyList[0]?.fcltyCpc)* 0.6).toLocaleString('en-US', { minimumFractionDigits: 1, maximumFractionDigits: 1 })} + ?{el[head.id]} :((head.id ==='now'||head.id ==='stepOne'||head.id ==='stepTwo'||head.id ==='stepThree'||head.id ==='stepFour') && index === 4) ?null :(head.id === 'item' && index != 5)? diff --git a/apps/fo/app/pages/processArea/page.tsx b/apps/fo/app/pages/processArea/page.tsx index 68f055aba..1ec7927c0 100644 --- a/apps/fo/app/pages/processArea/page.tsx +++ b/apps/fo/app/pages/processArea/page.tsx @@ -52,7 +52,8 @@ export default function ProcessArea() { const [fcltyCd, setFcltyCd] = useState(""); const [resetPage, setResetPage] = useState(false); - const [searchYearValue, setSearchYearValue] = useState(selectSearchYear[0]?.val || "0"); + //const [searchYearValue, setSearchYearValue] = useState(selectSearchYear[0]?.val || "0"); + const [searchYearValue, setSearchYearValue] = useState("2023"); const ref = useRef({ partValue: '', diff --git a/apps/fo/app/store/dashboard/index.tsx b/apps/fo/app/store/dashboard/index.tsx index 30994609f..55c545801 100644 --- a/apps/fo/app/store/dashboard/index.tsx +++ b/apps/fo/app/store/dashboard/index.tsx @@ -1125,6 +1125,7 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) searchOperationStatus: async (isExcel: boolean, searchYear: string, fcltyCd: string) => { const res = await fetchOperationStatus(searchYear, fcltyCd); const data = res.data; + if(data && operationalStatusList){ // 유량 - 유입 if (operationalStatusList?.[0]) { @@ -1156,9 +1157,11 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) 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_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_TP_INFL_WQLT_TP ? data.winterSunny.AVG_TP_INFL_WQLT_TP : 0); operationalStatusList[0].winterSunnyMax = data.winterSunny === null ? '' : (data.winterSunny.MAX_INFL_AMNT ? data.winterSunny.MAX_INFL_AMNT : 0) + (data.winterSunny.MAX_SUM_FLOW ? data.winterSunny.MAX_SUM_FLOW : 0) + (data.winterSunny.MAX_TP_INFL_WQLT_TP ? data.winterSunny.MAX_TP_INFL_WQLT_TP : 0); - // 지하수 + + // 연계처리수,지하수유입량 const bscFctCd = fcltyCd; const res2 = await getFetch('fo', '/fclt/flow/' + bscFctCd + '/' + searchYear) as ApiResponse; + const calData = calRainEffectDay(res2.data, 'SUNNY'); let chungcunSumFlow = 0; @@ -1167,19 +1170,32 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) let sumWinterChungcunDay = 0; let sumWinterChungcunFlow = 0; + + let yearSumFlow = 0; + let summerSumFlow = 0; + let winterSumFlow = 0; calData.forEach((flowItem: FlowDataItem) => { chungcunSumFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; - + yearSumFlow += flowItem.sumFlow && flowItem.sumFlow !== 'x' ? Number(flowItem.sumFlow.toString().trim()) : 0; + if(flowItem.msrDt.substring(4,6) ==='06' || flowItem.msrDt.substring(4,6) ==='07' || flowItem.msrDt.substring(4,6) ==='08'){ sumSummerChungcunDay += 1; sumSummerChungcunFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; + summerSumFlow += flowItem.sumFlow && flowItem.sumFlow !== 'x' ? Number(flowItem.sumFlow.toString().trim()) : 0; }else if(flowItem.msrDt.substring(4,6) ==='01' || flowItem.msrDt.substring(4,6) ==='02'){ sumWinterChungcunDay += 1; sumWinterChungcunFlow += flowItem.inflAmnt && flowItem.inflAmnt !== 'x' ? Number(flowItem.inflAmnt.toString().trim()) : 0; + winterSumFlow += flowItem.sumFlow && flowItem.sumFlow !== 'x' ? Number(flowItem.sumFlow.toString().trim()) : 0; } }); + // 연계처리수 + const avgYearSumFlow = yearSumFlow / calData.length; + const avgSummerSumFlow = summerSumFlow / calData.length; + const avgWinterSumFlow = winterSumFlow / calData.length; + + // 지하수유입량 const usage = chungcunSumFlow / calData.length; const summerUsage = sumSummerChungcunFlow / sumSummerChungcunDay; const winterUsage = sumWinterChungcunFlow / sumWinterChungcunDay; diff --git a/apps/fo/app/store/facilityWaterQlty/index.tsx b/apps/fo/app/store/facilityWaterQlty/index.tsx index 0d0825717..b4c60d475 100644 --- a/apps/fo/app/store/facilityWaterQlty/index.tsx +++ b/apps/fo/app/store/facilityWaterQlty/index.tsx @@ -135,7 +135,7 @@ const upHeadList1: TableUpperProps[] = [ { id: "inflAssctBfrWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row: 1 }, { id: "inflAssctBfrWqltSs", title: "SS\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row: 1 }, { id: "inflAssctBfrWqltTn", title: "T-N\n(mg/L)", upName: "upChangeRe3", upSequnce: 4, align: "right", row: 1 }, - { id: "inflAssctAftWqltTp", title: "T-P\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row: 1 }, + { id: "inflAssctBfrWqltTp", title: "T-P\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row: 1 }, { id: "efflWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe4", upSequnce: 1, align: "right", row: 1 }, { id: "efflWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe4", upSequnce: 2, align: "right", row: 1 }, { id: "efflWqltSs", title: "SS\n(mg/L)", upName: "upChangeRe4", upSequnce: 3, align: "right", row: 1 }, @@ -159,7 +159,7 @@ const upHeadList2: TableUpperProps[] = [ { id: "inflAssctBfrWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row:1 }, { id: "inflAssctBfrWqltSs", title: "SS\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row:1 }, { id: "inflAssctBfrWqltTn", title: "T-N\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row:1 }, - { id: "inflAssctAftWqltTp", title: "T-P\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row:1 }, + { id: "inflAssctBfrWqltTp", title: "T-P\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row:1 }, { id: "efflWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe4", upSequnce: 1, align: "right", row:1 }, { id: "efflWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe4", upSequnce: 2, align: "right", row:1 }, { id: "efflWqltSs", title: "SS\n(mg/L)", upName: "upChangeRe4", upSequnce: 3, align: "right", row:1 }, @@ -187,7 +187,7 @@ const upHeadList3: TableUpperProps[] = [ { id: "inflAssctBfrWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row:1 }, { id: "inflAssctBfrWqltSs", title: "SS\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row:1 }, { id: "inflAssctBfrWqltTn", title: "T-N\n(mg/L)", upName: "upChangeRe3", upSequnce: 2, align: "right", row:1 }, - { id: "inflAssctAftWqltTp", title: "T-P\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row:1 }, + { id: "inflAssctBfrWqltTp", title: "T-P\n(mg/L)", upName: "upChangeRe3", upSequnce: 3, align: "right", row:1 }, { id: "efflWqltBod", title: "BOD\n(mg/L)", upName: "upChangeRe4", upSequnce: 1, align: "right", row:1 }, { id: "efflWqltToc", title: "TOC\n(COD)\n(mg/L)", upName: "upChangeRe4", upSequnce: 2, align: "right", row:1 }, { id: "efflWqltSs", title: "SS\n(mg/L)", upName: "upChangeRe4", upSequnce: 3, align: "right", row:1 }, diff --git a/apps/fo/app/store/underWaterInput/index.tsx b/apps/fo/app/store/underWaterInput/index.tsx index 6256c2f92..060c641dc 100644 --- a/apps/fo/app/store/underWaterInput/index.tsx +++ b/apps/fo/app/store/underWaterInput/index.tsx @@ -82,7 +82,7 @@ const upHeadList3:TableUpperProps[] = [ // 모달 const upHeadListUnderWaterDetail:TableUpperProps[] = [ { id: "msrDt", title: "날짜" }, - { id: "realSewageInput", title: "실제 하수유입량\n(m³/일)" }, + { id: "realSewageInput", title: "청천시 실제 하수유입량\n(m³/일)" }, { id: "sewageOccur", title: "오수발생량\n(m³/일)" }, { id: "underWaterInput", title: "지하수 유입량\n(m³/일)" }, ]; @@ -174,6 +174,7 @@ export interface FlowDataItem { infoRnDay: number; msrDt: string; rainEffectDay? : number; + sumFlow? : number | string | ''; } export interface ApiResponse {