diff --git a/apps/wr/app/page.tsx b/apps/wr/app/page.tsx
index d40e79eaf..eac339156 100644
--- a/apps/wr/app/page.tsx
+++ b/apps/wr/app/page.tsx
@@ -148,6 +148,27 @@ export default function Home() {
+ {/* 통계*/}
+
+
통계 매칭
+
+
+
+
+
+
+
+
+
+
+
+
>
);
diff --git a/apps/wr/app/stats/matStat/page.tsx b/apps/wr/app/stats/matStat/page.tsx
new file mode 100644
index 000000000..a147ff597
--- /dev/null
+++ b/apps/wr/app/stats/matStat/page.tsx
@@ -0,0 +1,74 @@
+'use client'
+import { useWrStore } from "@/app/store";
+import { yearOptions } from "@/components/lib/func/commom";
+import { ContentsDiv, Title, SearchDiv, SearchFormLeft, SelectBox, UiTable } from "@common/business_components/ui";
+import ListDiv from "@common/business_components/ui/list_div";
+import { Button } from "@common/components/ui";
+import { useState } from "react";
+
+export default function MatStat(){
+const { code, matStat } = useWrStore((state) => {
+ return state;
+ });
+ const [pageNation, setPageNation] = useState(1);
+ const [searchYear, setSearchYear] = useState(
+ String(new Date().getFullYear())
+ );
+
+ return(
+ <>
+
+
+
+
+
+
+
+ setSearchYear(String(val))
+ }
+ />
+
+
+
+
+
+
+ {/*
+
+ */}
+
+
+
+
+
+
+ {/* */}
+ {}}
+ onPageChange={setPageNation}
+ >
+ {/* */}
+
+
+
+
+ >
+ )
+}
\ No newline at end of file
diff --git a/apps/wr/app/stats/rainStat/page.tsx b/apps/wr/app/stats/rainStat/page.tsx
new file mode 100644
index 000000000..f4d42e033
--- /dev/null
+++ b/apps/wr/app/stats/rainStat/page.tsx
@@ -0,0 +1,81 @@
+"use client";
+import { useWrStore } from "@/app/store";
+import { yearOptions } from "@/components/lib/func/commom";
+import {
+ ContentsDiv,
+ SearchDiv,
+ SearchFormLeft,
+ SelectBox,
+ Title,
+ UiTable,
+} from "@common/business_components/ui";
+import ListDiv from "@common/business_components/ui/list_div";
+import { Button } from "@common/components/ui";
+import { useState } from "react";
+
+export default function rainStat() {
+ const { code, rainStat } = useWrStore((state) => {
+ return state;
+ });
+ const [pageNation, setPageNation] = useState(1);
+ const [searchYear, setSearchYear] = useState(
+ String(new Date().getFullYear())
+ );
+
+ return (
+ <>
+
+
+
+
+
+
+
+ setSearchYear(String(val))
+ }
+ />
+
+
+
+
+
+
+ {/*
+
+ */}
+
+
+
+
+
+
+ {/* */}
+ {}}
+ onPageChange={setPageNation}
+ >
+ {/* */}
+
+
+
+
+ >
+ );
+}
diff --git a/apps/wr/app/stats/rswtStat/page.tsx b/apps/wr/app/stats/rswtStat/page.tsx
new file mode 100644
index 000000000..7514f98b1
--- /dev/null
+++ b/apps/wr/app/stats/rswtStat/page.tsx
@@ -0,0 +1,75 @@
+'use client'
+import { useWrStore } from "@/app/store";
+import { yearOptions } from "@/components/lib/func/commom";
+import { ContentsDiv, SearchDiv, SearchFormLeft, SelectBox, Title, UiTable } from "@common/business_components/ui";
+import ListDiv from "@common/business_components/ui/list_div";
+import { Button } from "@common/components/ui";
+import { useState } from "react";
+
+export default function RswtStat() {
+ const { code, rswtStat } = useWrStore((state) => {
+ return state;
+ });
+ const [pageNation, setPageNation] = useState(1);
+ const [searchYear, setSearchYear] = useState(
+ String(new Date().getFullYear())
+ );
+
+ return(
+ <>
+
+
+
+
+
+
+
+ setSearchYear(String(val))
+ }
+ />
+
+
+
+
+
+
+ {/*
+
+ */}
+
+
+
+
+
+
+ {/* */}
+ {}}
+ onPageChange={setPageNation}
+ >
+ {/* */}
+
+
+
+
+ >
+ )
+
+}
\ No newline at end of file
diff --git a/apps/wr/app/store/matDmd/ruseCaseMng/headList.tsx b/apps/wr/app/store/matDmd/ruseCaseMng/headList.tsx
index f9ad1bcef..125866601 100644
--- a/apps/wr/app/store/matDmd/ruseCaseMng/headList.tsx
+++ b/apps/wr/app/store/matDmd/ruseCaseMng/headList.tsx
@@ -210,7 +210,7 @@ export const ruseCaseHeadListExport: TableUpperProps[] = [
},
{
id: "h4",
- title: "건축",
+ title: "건축",
visible: true,
row: 1,
},
diff --git a/apps/wr/app/store/stats/matStat/headList.tsx b/apps/wr/app/store/stats/matStat/headList.tsx
new file mode 100644
index 000000000..881662774
--- /dev/null
+++ b/apps/wr/app/store/stats/matStat/headList.tsx
@@ -0,0 +1,68 @@
+import type { TableUpperProps } from "../../common/type/header";
+
+export const matStatHeadListExport :TableUpperProps[]=[
+ {
+ id: "시도",
+ title: "시도",
+ row:0,
+ rowSpan:2
+ },
+ {
+ id: "개소",
+ title: "개소",
+ row:0,
+ rowSpan:2
+ },
+ {
+ id: "요구수량",
+ title: "요구수량",
+ row:0,
+ rowSpan:2
+ },
+
+
+ {
+ id: "용도",
+ title: "용도",
+ row:0,
+ colSpan:6
+ },
+ {
+ id: "조경용수",
+ title: "조경용수",
+ row:1,
+ },
+ {
+ id: "청소화장실용수",
+ title: "청소화장실용수",
+ row:1,
+ },
+ {
+ id: "농업용수",
+ title: "농업용수",
+ row:1,
+ },
+ {
+ id: "공업용수",
+ title: "공업용수",
+ row:1,
+ },
+ {
+ id: "친수용수",
+ title: "친수용수",
+ row:1,
+ },
+ {
+ id: "기타",
+ title: "기타",
+ row:1,
+ },
+ {
+ id: "사업비",
+ title: "사업비(천원)",
+ row:0,
+ rowSpan:2
+ },
+
+
+]
\ No newline at end of file
diff --git a/apps/wr/app/store/stats/matStat/index.tsx b/apps/wr/app/store/stats/matStat/index.tsx
new file mode 100644
index 000000000..3f2e5813f
--- /dev/null
+++ b/apps/wr/app/store/stats/matStat/index.tsx
@@ -0,0 +1,28 @@
+import type { TableUpperProps } from "../../common/type/header";
+import { matStatHeadListExport } from "./headList";
+
+type matStatActions = {
+}
+
+
+export type matStatState = {
+ matStat: {
+ matStatHeadList:TableUpperProps[]
+ }
+}
+
+export type matStatType = matStatState & matStatActions;
+
+export const matStatExport: matStatState = {
+ matStat: {
+ matStatHeadList:matStatHeadListExport
+ }
+}
+
+export const matStatActionsExport: (set: any) => matStatActions = (
+ set: any
+) => {
+ return {
+
+ }
+}
\ No newline at end of file
diff --git a/apps/wr/app/store/stats/rainStat/headList.tsx b/apps/wr/app/store/stats/rainStat/headList.tsx
new file mode 100644
index 000000000..cc5386589
--- /dev/null
+++ b/apps/wr/app/store/stats/rainStat/headList.tsx
@@ -0,0 +1,70 @@
+import type { TableUpperProps } from "../../common/type/header";
+
+export const rainStatHeadListExport: TableUpperProps[] = [
+ {
+ id: "시도",
+ title: "시도",
+ row:0,
+ rowSpan:2
+ },
+ {
+ id: "개소",
+ title: "개소",
+ row:0,
+ rowSpan:2
+ },
+ {
+ id: "설치비",
+ title: "설치비(백만원)",
+ row:0,
+ rowSpan:2
+ },
+ {
+ id: "저류조용량",
+ title: "저류조용량(m³/년)",
+ row:0,
+ rowSpan:2
+ },
+ {
+ id: "이용용도",
+ title: "이용용도",
+ row:0,
+ colSpan:6
+ },
+ {
+ id: "조경용수",
+ title: "조경용수",
+ row:1,
+ },
+ {
+ id: "청소화장실용수",
+ title: "청소화장실용수",
+ row:1,
+ },
+ {
+ id: "농업용수",
+ title: "농업용수",
+ row:1,
+ },
+ {
+ id: "공업용수",
+ title: "공업용수",
+ row:1,
+ },
+ {
+ id: "친수용수",
+ title: "친수용수",
+ row:1,
+ },
+ {
+ id: "기타",
+ title: "기타",
+ row:1,
+ },
+ {
+ id: "연간운영비",
+ title: "연간운영비(백만원/년)",
+ row:0,
+ rowSpan:2
+ },
+];
diff --git a/apps/wr/app/store/stats/rainStat/index.tsx b/apps/wr/app/store/stats/rainStat/index.tsx
new file mode 100644
index 000000000..a50d54d58
--- /dev/null
+++ b/apps/wr/app/store/stats/rainStat/index.tsx
@@ -0,0 +1,28 @@
+import type { TableUpperProps } from "../../common/type/header";
+import { rainStatHeadListExport } from "./headList";
+
+type rainStatActions = {
+}
+
+
+export type rainStatState = {
+ rainStat: {
+ rainStatHeadList:TableUpperProps[]
+ }
+}
+
+export type rainStatType = rainStatState & rainStatActions;
+
+export const rainStatExport: rainStatState = {
+ rainStat: {
+ rainStatHeadList:rainStatHeadListExport
+ }
+}
+
+export const rainStatActionsExport: (set: any) => rainStatActions = (
+ set: any
+) => {
+ return {
+
+ }
+}
\ No newline at end of file
diff --git a/apps/wr/app/store/stats/rswtStat/headList.tsx b/apps/wr/app/store/stats/rswtStat/headList.tsx
new file mode 100644
index 000000000..2c8aebec9
--- /dev/null
+++ b/apps/wr/app/store/stats/rswtStat/headList.tsx
@@ -0,0 +1,101 @@
+import type { TableUpperProps } from "../../common/type/header";
+
+export const rswtStatHeadListExport :TableUpperProps[]=[
+ {
+ id: "시도",
+ title: "시도",
+ row:0,
+ rowSpan:2
+ },
+ {
+ id: "개소",
+ title: "개소",
+ row:0,
+ rowSpan:2
+ },
+ {
+ id: "시설현황",
+ title: "시설현황",
+ row:0,
+ colSpan:2
+ },
+ {
+ id: "건축연면적(m³)",
+ title: "건축연면적(m³)",
+ row:1,
+ },
+ {
+ id: "처리용량",
+ title: "처리용량(m³)",
+ row:1,
+ },
+ {
+ id: "물사용량",
+ title: "물사용량(m³/년)",
+ row:0,
+ rowSpan:2
+ },
+ {
+ id: "청소화장실용수",
+ title: "중수도+대체수이용량(m³/년)",
+ row:0,
+ rowSpan:2
+ },
+ {
+ id: "중수도이용량",
+ title: "중수도이용량(m³/년)",
+ row:0,
+ rowSpan:2
+ },
+ {
+ id: "대체수이용량",
+ title: "대체수이용량(m³/년)",
+ row:0,
+ rowSpan:2
+ },
+
+ {
+ id: "용도",
+ title: "용도",
+ row:0,
+ colSpan:6
+ },
+ {
+ id: "조경용수",
+ title: "조경용수",
+ row:1,
+ },
+ {
+ id: "청소화장실용수",
+ title: "청소화장실용수",
+ row:1,
+ },
+ {
+ id: "농업용수",
+ title: "농업용수",
+ row:1,
+ },
+ {
+ id: "공업용수",
+ title: "공업용수",
+ row:1,
+ },
+ {
+ id: "친수용수",
+ title: "친수용수",
+ row:1,
+ },
+ {
+ id: "기타",
+ title: "기타",
+ row:1,
+ },
+ {
+ id: "연간운영비",
+ title: "연간운영비(백만원/년)",
+ row:0,
+ rowSpan:2
+ },
+
+
+]
\ No newline at end of file
diff --git a/apps/wr/app/store/stats/rswtStat/index.tsx b/apps/wr/app/store/stats/rswtStat/index.tsx
new file mode 100644
index 000000000..652917bc3
--- /dev/null
+++ b/apps/wr/app/store/stats/rswtStat/index.tsx
@@ -0,0 +1,28 @@
+import type { TableUpperProps } from "../../common/type/header";
+import { rswtStatHeadListExport } from "./headList";
+
+type rswtStatActions = {
+}
+
+
+export type rswtStatState = {
+ rswtStat: {
+ rswtStatHeadList:TableUpperProps[]
+ }
+}
+
+export type rswtStatType = rswtStatState & rswtStatActions;
+
+export const rswtStatExport: rswtStatState = {
+ rswtStat: {
+ rswtStatHeadList:rswtStatHeadListExport
+ }
+}
+
+export const rswtStatActionsExport: (set: any) => rswtStatActions = (
+ set: any
+) => {
+ return {
+
+ }
+}
\ No newline at end of file
diff --git a/apps/wr/app/store/store.tsx b/apps/wr/app/store/store.tsx
index 64b05ab34..36b905915 100644
--- a/apps/wr/app/store/store.tsx
+++ b/apps/wr/app/store/store.tsx
@@ -93,6 +93,9 @@ import { coRvwActionsExport, coRvwStateExport, type coRvwState, type coRvwType }
import { ruseHstryActionsExport, ruseHstryStateExport, type ruseHstryState, type ruseHstryType } from "./matDmd/ruseRvwHstry";
import { pbnstPrfmncSttnActionsExport, pbnstPrfmncSttnExport, type pbnstPrfmncSttnState, type pbnstPrfmncSttnType } from "./prfmncSttn/pbnstPrfmncSttn";
import { ruseCaseActionsExport, ruseCaseStateExport, type ruseCaseType, type ruseCaseState } from "./matDmd/ruseCaseMng";
+import { rainStatActionsExport, rainStatExport, type rainStatState, type rainStatType } from "./stats/rainStat";
+import { type rswtStatType, type rswtStatState, rswtStatExport, rswtStatActionsExport } from "./stats/rswtStat";
+import { matStatActionsExport, matStatExport, type matStatState, type matStatType } from "./stats/matStat";
export type WrStore = comCodeType &
pubFacType &
@@ -116,7 +119,10 @@ export type WrStore = comCodeType &
coRvwType&
ruseHstryType&
pbnstPrfmncSttnType&
- ruseCaseType
+ ruseCaseType&
+ rainStatType&
+ rswtStatType&
+ matStatType
;
export const StoreZus = (
@@ -141,7 +147,10 @@ export const StoreZus = (
coRvwState&
ruseHstryState&
pbnstPrfmncSttnState&
- ruseCaseState
+ ruseCaseState&
+ rainStatState&
+ rswtStatState&
+ matStatState
= {
...comCodeStateExport,
...pubFacStateExport,
@@ -164,7 +173,10 @@ export const StoreZus = (
...coRvwStateExport,
...ruseHstryStateExport,
...pbnstPrfmncSttnExport,
- ...ruseCaseStateExport
+ ...ruseCaseStateExport,
+ ...rainStatExport,
+ ...rswtStatExport,
+ ...matStatExport
}
) => {
return createStore()((set) => {
@@ -198,7 +210,10 @@ export const StoreZus = (
...coRvwActionsExport(set),
...ruseHstryActionsExport(set),
...pbnstPrfmncSttnActionsExport(set),
- ...ruseCaseActionsExport(set)
+ ...ruseCaseActionsExport(set),
+ ...rainStatActionsExport(set),
+ ...rswtStatActionsExport(set),
+ ...matStatActionsExport(set)
};
});
};