Merge branch 'iipbs/wr/dev' of https://www.onasys.co.kr:3000/ONAANDALL/frontend into iipbs/wr/dev

This commit is contained in:
yschoi
2025-07-29 15:17:51 +09:00
4 changed files with 99 additions and 73 deletions
@@ -33,6 +33,9 @@ export default function PbnstSttn() {
} = useWrStore((state) => state);
const { pbnstSttnRes, fclts, pbnstSttnResCount } = pbnstSttn;
const [isReset, setIsReset] = useState(false);
//const [tableIndex, setTableIndex] = useState<number>(1)
const ref = useRef<ReturnType>({} as ReturnType);
const [searchYear, setSearchYear] = useState<string>(
String(new Date().getFullYear())
@@ -84,7 +87,7 @@ export default function PbnstSttn() {
if (!pbnstSttn.isInit) {
getFlcts();
}
}, [pbnstSttn.isInit, pbnSttnInit, ref.current]);
}, [pbnstSttn.isInit]);
useEffect(() => {
if (pbnstSttnRes && pbnstSttnRes.length > 0) {
setBdstTable(pbnstSttnRes);
@@ -94,7 +97,8 @@ export default function PbnstSttn() {
}, [pbnstSttnRes]);
useEffect(() => {
pbnSttnInit("1", "15", ref.current, searchYear, fclts);
pbnSttnInit("1", "15", ref.current, searchYear, fclts);
}, [fclts]);
useEffect(() => {
@@ -157,16 +161,11 @@ export default function PbnstSttn() {
/>
</div>
}
queryClick={function (returnType: ReturnType): void {
pbnstSttnSearch(
false,
"1",
"15",
returnType,
pbnRuseNm,
searchYear,
fclts
);
queryClick={ ()=> {
// pbnSearch(returnType);
//setTableIndex(0)
setIsReset(true);
}}
excelClick={excelClick}
initClick={function (): void {
@@ -200,7 +199,10 @@ export default function PbnstSttn() {
searchYear,
fclts
);
setIsReset(false);
}}
resetPageNo={isReset}
>
<HeadMakeColSpan upHeadList={pbnstSttn.pbnstSttNodeList} />
</UiTable>
@@ -150,9 +150,9 @@ export default function PbnstPrfmncSttn() {
}
const tableData = [...inUsageData, ...outUsageData, usageTotalObj];
setPrfData(tableData);
setExcelData(excelPrfmncSttnParsing(prfData ?? []))
// });
setExcelData(excelPrfmncSttnParsing(tableData ?? []))
} else {
setExcelData(excelPrfmncSttnParsing([]))
setPrfData([]);
}
}
@@ -605,7 +605,11 @@ export default function PbnstPrfmncSttn() {
isResetPage(true)
}}
excelClick={excelClick}
initClick={function (): void { }}
initClick={function (): void {
setPbnRuseNm("");
setFromDate(String(new Date().getFullYear()));
setToDate(String(new Date().getFullYear()))
}}
btnClass={btnClass}
ref={ref} isAdmin={false} />
</div>
@@ -50,42 +50,56 @@ const hasuListFetch = async (
page: number,
returnType: ReturnType,
searchNm: string | undefined,
year: string,
fromDate: string,
toDate: string,
flcts: string[]
) => {
let url = `/prcsFclt/ruseInfo/`;
let url = '';
let filteredFclt = flcts;
const filterData = returnType.sigunValue !== '0' ? returnType.sigunValue : returnType.sidoValue
if (filterData !== '0')
filteredFclt = flcts.filter((fclt: string) => {
return filterData.length == 2 ? fclt.slice(0, 2) === filterData : fclt.slice(0, 5) === filterData
})
if (returnType.partValue === "A") {
url += `${page}/5/${returnType.partValue}/${
url += `${returnType.partValue}/${
// returnType.sidoValue ? returnType.sidoValue : returnType.sigunValue
returnType.sigunValue !== '0' ? returnType.sigunValue : returnType.sidoValue
}/0/1/SW`
if (filterData !== '0')
filteredFclt = flcts.filter((fclt: string) => {
return filterData.length == 2 ? fclt.slice(0, 2) === filterData : fclt.slice(0, 5) === filterData
})
} else if (returnType.partValue === "R") {
url += `${page}/5/${returnType.partValue}/${returnType.regionValue
url += `${returnType.partValue}/${returnType.regionValue
? returnType.regionValue
: returnType.unitWaterShedValue
? returnType.unitWaterShedValue
: returnType.middleRegionValue
}/0/1/SW`
} else if (returnType.partValue === 'G') {
url += `${page}/5/${returnType.envPartValue}/${returnType.sigunValue !== '0' ? returnType.sigunValue : returnType.sidoValue}/0/1/SW`
url += `${returnType.envPartValue}/${returnType.sigunValue !== '0' ? returnType.sigunValue : returnType.sidoValue}/0/1/SW`
if (filterData !== '0')
filteredFclt = flcts.filter((fclt: string) => {
return filterData.length == 2 ? fclt.slice(0, 2) === filterData : fclt.slice(0, 5) === filterData
})
} else {
url += `1/2/A/0/0/1/SW`
url += `A/0/0/1/SW`
}
if (searchNm && searchNm?.length > 0) {
url += "/" + searchNm
}
const pbnList = await postFectch(url, flcts, fetchType.COMMON);
const pbnList = await postFectch(`/prcsFclt/ruseInfo/1/${filteredFclt.length}/` + url, filteredFclt, fetchType.COMMON);
const checkRuseFcltList = searchNm && searchNm?.length > 0 ? pbnList.data.map((item) => item.bscFctCd) : filteredFclt
const getRuseList = await postFectch(
`/reuseFc/pubDetailList/${year}`,
flcts,
`/reuseFc/pubDetailPrfList/${fromDate}/${toDate}/${filterData}/${page}/5`,
checkRuseFcltList,
fetchType.WR
);
let count = 0;
const checkWrRegListRes = getRuseList.data;
const data: WaterReuseFacility[] = checkWrRegListRes.map(
(item: FcPrfType) => {
if (!item.prfList || item.prfList.length === 0) {
@@ -96,7 +110,6 @@ const hasuListFetch = async (
fclt.bscFctCd === item.pbnstRuseFcltId.substring(0, 11)
);
if (findData) {
count++;
return {
sido: findData?.sido || '-',
gugun: findData?.gugun || '-',
@@ -104,12 +117,12 @@ const hasuListFetch = async (
ruseUtztnFcltNm: item?.ruseUtztnFcltNm || '-',
pbnstRuseFcltId: item?.pbnstRuseFcltId || '-',
bscFctCd: findData?.bscFctCd || '-',
count
prfList: item.prfList,
}
}
}
).filter(Boolean);
return data;
return {data: data, count: getRuseList.count};
}
export const pbnstPrfmncSttnActionsExport: (set: any) => pbnstPrfmncSttnActions = (
@@ -175,29 +188,17 @@ export const pbnstPrfmncSttnActionsExport: (set: any) => pbnstPrfmncSttnActions
page,
returnType,
fcltNm,
fromDate,
toDate,
fclts);
// const bscFctCdList = prfmncRes.map((item: any) => {
// return item.bscFctCd;
// })
const bscFctCdList = prfmncRes
.map((item: any) => item.bscFctCd)
.filter((value, index, self) => self.indexOf(value) === index);
// const bscFctCdList = [...new Set(prfmncRes.map((item: any) => item.bscFctCd))];
const res = await postFectch(
`/reuseFc/pubDetailList/${fromDate}/${toDate}`,
bscFctCdList,
`wr`,
)
let inUsageSum = 0;
let outUsageSum = 0;
let year = "";
const yearsData = [] as any
res.data.forEach((item: any) => {
if (item.prfList.length === 0) {
prfmncRes.data.forEach((item: any) => {
if (!item.prfList || item.prfList.length === 0) {
const year: string = ""; // 연도 정보가 없으면 빈 문자열, 필요시 item에서 추출.
const yearVal: { [key: string]: any } = { year: year, pbnstRuseFcltId: item.pbnstRuseFcltId ?? "", ruseUtztnFcltNm: item.ruseUtztnFcltNm ?? "" };
yearVal[`${year}inUsage`] = 0;
@@ -205,7 +206,7 @@ export const pbnstPrfmncSttnActionsExport: (set: any) => pbnstPrfmncSttnActions
yearVal[`${year}total`] = 0;
yearsData.push(yearVal);
}
item.prfList.forEach((acc) => {
item.prfList?.forEach((acc: any) => {
year = acc.ym?.substring(0, 4) ?? "";
inUsageSum =
(acc.wshwtr ?? 0) + //조경용수
@@ -273,7 +274,7 @@ export const pbnstPrfmncSttnActionsExport: (set: any) => pbnstPrfmncSttnActions
// prfmncRes 정보 merge
const resData = Object.values(mergedMap).map((item: any) => {
const match = prfmncRes.find((res) => res.pbnstRuseFcltId === item.pbnstRuseFcltId);
const match = prfmncRes.data.find((res) => res.pbnstRuseFcltId === item.pbnstRuseFcltId);
return match ? { ...item, ...match } : item;
});
@@ -282,10 +283,10 @@ export const pbnstPrfmncSttnActionsExport: (set: any) => pbnstPrfmncSttnActions
pbnstPrfmncSttn: {
...state.pbnstPrfmncSttn,
// prfmncRes: prfmncRes,
prfmncResCount: fclts.length - 5,
prfmncResCount: prfmncRes.count,
isInit: false,
prfmncRes: resData,
rawData: res.data
rawData: prfmncRes.data
},
}));
} catch (errorHasu) {
@@ -95,43 +95,59 @@ const hasuListFetch = async (
year: string,
flcts: string[]
) => {
let url = `/prcsFclt/ruseInfo/`;
let url = ``;
let filteredFclt = flcts;
const filterData = reurnValue.sigunValue !== '0' ? reurnValue.sigunValue : reurnValue.sidoValue
if(filterData !== '0')
filteredFclt= flcts.filter((fclt: string) => {
return filterData.length==2 ?fclt.slice(0, 2) === filterData:fclt.slice(0, 5) === filterData
})
if (reurnValue.partValue === "A") {
url += `${page}/${total}/${reurnValue.partValue}/${
url += `${reurnValue.partValue}/${
// reurnValue.sidoValue ? reurnValue.sidoValue : reurnValue.sigunValue
reurnValue.sigunValue !== '0' ? reurnValue.sigunValue : reurnValue.sidoValue
}/0/1/SW`
if(filterData !== '0')
filteredFclt= flcts.filter((fclt: string) => {
return filterData.length==2 ?fclt.slice(0, 2) === filterData:fclt.slice(0, 5) === filterData
})
} else if (reurnValue.partValue === "R") {
url += `${page}/${total}/${reurnValue.partValue}/${reurnValue.regionValue
url += `${reurnValue.partValue}/${reurnValue.regionValue
? reurnValue.regionValue
: reurnValue.unitWaterShedValue
? reurnValue.unitWaterShedValue
: reurnValue.middleRegionValue
}/0/1/SW`
} else if (reurnValue.partValue === 'G') {
url += `${page}/${total}/${reurnValue.envPartValue}/${reurnValue.sigunValue !== '0' ? reurnValue.sigunValue : reurnValue.sidoValue}/0/1/SW`
url += `${reurnValue.envPartValue}/${reurnValue.sigunValue !== '0' ? reurnValue.sigunValue : reurnValue.sidoValue}/0/1/SW`
if(filterData !== '0')
filteredFclt= flcts.filter((fclt: string) => {
return filterData.length==2 ?fclt.slice(0, 2) === filterData:fclt.slice(0, 5) === filterData
})
} else {
url += `1/2/A/0/0/1/SW`
url += `A/0/0/1/SW`
}
if (searchNm && searchNm?.length > 0) {
url += "/" + searchNm
}
const pbnList = await postFectch(url, flcts, fetchType.COMMON);
const pbnList = await postFectch( `/prcsFclt/ruseInfo/1/${filteredFclt.length}/`+url, filteredFclt, fetchType.COMMON);
const checkRuseFcltList = searchNm && searchNm?.length > 0?pbnList.data.map((item)=> item.bscFctCd ):filteredFclt
const getRuseList = await postFectch(
`/reuseFc/pubDetailList/${year}`,
flcts,
`/reuseFc/pubDetailList/${year}/${filterData}/${page}/${total}`,
checkRuseFcltList,
fetchType.WR
);
const checkWrRegListRes = getRuseList.data;
const data: WaterReuseFacility[] = checkWrRegListRes.map(
(item: FcPrfType) => {
const findData = pbnList.data.find(
@@ -140,7 +156,6 @@ const hasuListFetch = async (
);
if (findData) {
const usage = item.prfList.reduce(
(acc, cur) => {
acc.inUsage +=
@@ -197,7 +212,11 @@ const hasuListFetch = async (
}
).filter(Boolean);
return data;
return {data:data, count:getRuseList.count};
};
export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
@@ -237,8 +256,7 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
fclts: string[]
) => {
try {
const pbnstSttnRes = await hasuListFetch(
page,
total,
@@ -250,7 +268,7 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
// if (Number(total) > 9000) {
if (isExcel) {
const pbnstExcel = excelPbnstSttnParsing(pbnstSttnRes);
const pbnstExcel = excelPbnstSttnParsing(pbnstSttnRes.data);
set((state: pbnstSttnState) => {
return {
...state,
@@ -267,8 +285,8 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
...state,
pbnstSttn: {
...state.pbnstSttn,
pbnstSttnRes: pbnstSttnRes,
pbnstSttnResCount: pbnstSttnRes.length
pbnstSttnRes: pbnstSttnRes.data,
pbnstSttnResCount: pbnstSttnRes.count
// isInit: false,
},
};
@@ -295,13 +313,14 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
fclts
);
set((state: pbnstSttnState) => {
return {
...state,
pbnstSttn: {
...state.pbnstSttn,
pbnstSttnRes: pbnstSttnRes,
pbnstSttnResCount: pbnstSttnRes.length,
pbnstSttnRes: pbnstSttnRes.data,
pbnstSttnResCount: pbnstSttnRes.count,
isInit: false,
pbnstDetail: {} as customPbnst
},
@@ -365,8 +384,8 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
...state,
pbnstSttn: {
...state.pbnstSttn,
pbnstSearchData: pbnstSttnRes,
pbnstSttnResCount: pbnstSttnRes.length,
pbnstSearchData: pbnstSttnRes.data,
pbnstSttnResCount: pbnstSttnRes.count,
},
};
});