빗물시설통계 시도 groupby
This commit is contained in:
@@ -3,40 +3,40 @@ import type { TableUpperProps } from "../../common/type/header";
|
||||
import { rainStatHeadListExport } from "./headList";
|
||||
|
||||
export type RainStatProps = {
|
||||
ctpvCd : string //시도
|
||||
sggCd : string //시군구
|
||||
areaNm : string //행정구역명
|
||||
instlCst : number //설치비용
|
||||
archArea : number //건축연면적
|
||||
dtfcltCpct : number //처리용량(저류조용량)
|
||||
wtrUsqty : number //연간사용량
|
||||
anlOperCst : number //연간운영비
|
||||
annRnwtQty : number //물사용량
|
||||
jungsudo : number //중수도이용량
|
||||
dachae : number //대체수이용량
|
||||
way1 : number //방법1
|
||||
way2 : number //방법2
|
||||
way3 : number //방법3
|
||||
way4 : number //방법4
|
||||
way5 : number //방법5
|
||||
way6 : number //방법6
|
||||
way7 : number //방법7
|
||||
ctpvCd: string //시도
|
||||
sggCd: string //시군구
|
||||
areaNm: string //행정구역명
|
||||
instlCst: number //설치비용
|
||||
archArea: number //건축연면적
|
||||
dtfcltCpct: number //처리용량(저류조용량)
|
||||
wtrUsqty: number //연간사용량
|
||||
anlOperCst: number //연간운영비
|
||||
annRnwtQty: number //물사용량
|
||||
jungsudo: number //중수도이용량
|
||||
dachae: number //대체수이용량
|
||||
way1: number //방법1
|
||||
way2: number //방법2
|
||||
way3: number //방법3
|
||||
way4: number //방법4
|
||||
way5: number //방법5
|
||||
way6: number //방법6
|
||||
way7: number //방법7
|
||||
}
|
||||
|
||||
const fetchRainStatList = async (year:string) => {
|
||||
const res = await getFetch(fetchType.WR,`/reuseChk/rainy/stat/${year}`)
|
||||
console.log(res);
|
||||
return [];
|
||||
const fetchRainStatList = async (year: string) => {
|
||||
const res = await getFetch(fetchType.WR, `/reuseChk/rainy/stat/${year}`)
|
||||
// console.log(res);
|
||||
return res;
|
||||
}
|
||||
|
||||
type rainStatActions = {
|
||||
searchRainStatList : (year:string) => void
|
||||
searchRainStatList: (year: string) => void
|
||||
}
|
||||
|
||||
export type rainStatState = {
|
||||
rainStat: {
|
||||
rainStatHeadList:TableUpperProps[],
|
||||
rainStatList : RainStatProps[]
|
||||
rainStatHeadList: TableUpperProps[],
|
||||
rainStatList: RainStatProps[]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,17 +44,56 @@ export type rainStatType = rainStatState & rainStatActions;
|
||||
|
||||
export const rainStatExport: rainStatState = {
|
||||
rainStat: {
|
||||
rainStatHeadList:rainStatHeadListExport,
|
||||
rainStatList : []
|
||||
rainStatHeadList: rainStatHeadListExport,
|
||||
rainStatList: []
|
||||
}
|
||||
}
|
||||
export const rainStatActionsExport = (
|
||||
set: (fn: (state: rainStatState) => rainStatState) => void
|
||||
) => {
|
||||
return {
|
||||
searchRainStatList : async (year:string) => {
|
||||
searchRainStatList: async (year: string) => {
|
||||
const res = await fetchRainStatList(year);
|
||||
const rainStatList: never[] = [];
|
||||
|
||||
const grouped = Object.groupBy(res, (item: RainStatProps) => item.ctpvCd);
|
||||
console.log("grouped", grouped);
|
||||
|
||||
Object.values(grouped).forEach((item) => {
|
||||
if (!item) return;
|
||||
let instlCst = 0;
|
||||
let dtfcltCpct = 0;
|
||||
let wtrUsqty = 0;
|
||||
let anlOperCst = 0;
|
||||
let way1 = 0;
|
||||
let way2 = 0;
|
||||
let way3 = 0;
|
||||
let way4 = 0;
|
||||
let way5 = 0;
|
||||
let way6 = 0;
|
||||
let way7 = 0;
|
||||
|
||||
item.forEach((element) => {
|
||||
instlCst += element.instlCst;
|
||||
dtfcltCpct += element.dtfcltCpct;
|
||||
wtrUsqty += element.wtrUsqty;
|
||||
anlOperCst += element.anlOperCst;
|
||||
way1 += element.way1;
|
||||
way2 += element.way2;
|
||||
way3 += element.way3;
|
||||
way4 += element.way4;
|
||||
way5 += element.way5;
|
||||
way6 += element.way6;
|
||||
way7 += element.way7;
|
||||
})
|
||||
|
||||
console.log("instlCst", instlCst)
|
||||
console.log("dtfcltCpct", dtfcltCpct)
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
||||
/* const rainStatHeadList = data.map((item:RainStatProps) => ({
|
||||
...item,
|
||||
ctpvCd:item.ctpvCd,
|
||||
|
||||
Reference in New Issue
Block a user