diff --git a/apps/st/src/components/statistics/review/SewageExcretaRelatedRvw.tsx b/apps/st/src/components/statistics/review/SewageExcretaRelatedRvw.tsx
new file mode 100644
index 000000000..6adef8bbc
--- /dev/null
+++ b/apps/st/src/components/statistics/review/SewageExcretaRelatedRvw.tsx
@@ -0,0 +1,51 @@
+
+import SearchForm from "@/components/module/SearchForm";
+import TabDataGrid from "@/components/module/TabDataGrid";
+import SaveButton from "@/components/button/SaveButton";
+import ApproveButton from "@/components/button/ApproveButton";
+import ReviewOpinionButton from "@/components/button/ReviewOpinionButton";
+import ReturnButton from "@/components/button/ReturnButton";
+
+import { SewageExcretaRelatedInfoListRvw } from "@/components/util/column/SewageExcretaRelatedColumnRvw";
+
+
+const SewageExcretaRelatedRvw = () => {
+
+ const approveFunc = () => {
+ console.log('approveFunc');
+ // 승인 로직
+ };
+
+ const saveFunc = () => {
+ console.log('submit');
+ // 저장 로직
+ };
+
+ const reviewOpinionFunc = () => {
+ console.log('reviewOpinionFunc');
+ // 검토의견 작성
+ };
+
+ const returnFunc = () => {
+ console.log('returnFunc');
+ // 반려
+ };
+
+
+ return (
+ <>
+
+
+
+
+ >
+ );
+};
+
+
+export default SewageExcretaRelatedRvw;
diff --git a/apps/st/src/components/util/column/SewageExcretaRelatedColumnRvw.ts b/apps/st/src/components/util/column/SewageExcretaRelatedColumnRvw.ts
new file mode 100644
index 000000000..631d0204d
--- /dev/null
+++ b/apps/st/src/components/util/column/SewageExcretaRelatedColumnRvw.ts
@@ -0,0 +1,201 @@
+
+export const SewageExcretaRelatedInfoListRvw=[
+ {
+ tabKey: 'a',
+ tabLabel: '공공기관 하수분야',
+ rowStartNum: 2, // 2단 헤더 구조 (순번 rowspan="2")
+ fixedColumns: 2, // 순번, 시도, 시군구, 직제, 구분까지 고정
+ columns: [
+ /* 1. 행정 및 조직 정보 (Band: Left) */
+ { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } },
+ { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } },
+ { name: 'OCGNZ', fieldName: 'OCGNZ', header: { text: '직제' } },
+ { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } },
+
+ /* 2. 인력 총계 및 행정직 */
+ { name: 'TOT_WTR_QRM', fieldName: 'TOT_WTR_QRM', header: { text: '직원총수' } },
+ { name: 'ADMINIST_JSSFC', fieldName: 'ADMINIST_JSSFC', header: { text: '행정직' } },
+
+ /* 3. 기술직 상세 (단위: 명) */
+ { name: 'TCHNLGY_JSSFC_SM', fieldName: 'TCHNLGY_JSSFC_SM', header: { text: '계' } },
+ { name: 'ENGRK_JSSFC', fieldName: 'ENGRK_JSSFC', header: { text: '토목' } },
+ { name: 'MCHN_JSSFC', fieldName: 'MCHN_JSSFC', header: { text: '기계' } },
+ { name: 'ELCTY_JSSFC', fieldName: 'ELCTY_JSSFC', header: { text: '전기' } },
+ { name: 'CHMSTRY_JSSFC', fieldName: 'CHMSTRY_JSSFC', header: { text: '화공' } },
+ { name: 'ENVRN_JSSFC', fieldName: 'ENVRN_JSSFC', header: { text: '환경' } },
+ { name: 'TCHNLGY_ETC', fieldName: 'TCHNLGY_ETC', header: { text: '기타' } },
+
+ /* 4. 기타 및 비고 */
+
+ { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } },
+
+ ],
+ columnLayout: [
+ { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] },
+ 'OCGNZ',
+ 'YR_GBN',
+ 'TOT_WTR_QRM',
+ 'ADMINIST_JSSFC',
+ {
+ name: 'techJobGroup',
+ header: { text: '기술직' },
+ items: [
+ 'TCHNLGY_JSSFC_SM',
+ 'ENGRK_JSSFC',
+ 'MCHN_JSSFC',
+ 'ELCTY_JSSFC',
+ 'CHMSTRY_JSSFC',
+ 'ENVRN_JSSFC',
+ 'TCHNLGY_ETC'
+ ]
+ },
+ 'RMK',
+
+ ]
+ },{
+ tabKey: 'b',
+ tabLabel: '공공기관 분뇨분야',
+ rowStartNum: 2, // 2단 헤더 구조
+ fixedColumns: 1, // 순번, 시도, 시군구, 직제, 구분까지 고정
+ columns: [
+ /* 1. 행정 및 조직 정보 (Band: Left) */
+ { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } },
+ { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } },
+ { name: 'OCGNZ', fieldName: 'OCGNZ', header: { text: '직제' } },
+ { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } },
+
+ /* 2. 인력 총계 및 행정직 */
+ { name: 'TOT_WTR_QRM', fieldName: 'TOT_WTR_QRM', header: { text: '직원총수' } },
+ { name: 'ADMINIST_JSSFC', fieldName: 'ADMINIST_JSSFC', header: { text: '행정직' } },
+
+ /* 3. 기술직 상세 (단위: 명) */
+ { name: 'TCHNLGY_JSSFC_SM', fieldName: 'TCHNLGY_JSSFC_SM', header: { text: '계' } },
+ { name: 'ENGRK_JSSFC', fieldName: 'ENGRK_JSSFC', header: { text: '토목' } },
+ { name: 'MCHN_JSSFC', fieldName: 'MCHN_JSSFC', header: { text: '기계' } },
+ { name: 'ELCTY_JSSFC', fieldName: 'ELCTY_JSSFC', header: { text: '전기' } },
+ { name: 'CHMSTRY_JSSFC', fieldName: 'CHMSTRY_JSSFC', header: { text: '화공' } },
+ { name: 'ENVRN_JSSFC', fieldName: 'ENVRN_JSSFC', header: { text: '환경' } },
+ { name: 'TCHNLGY_ETC', fieldName: 'TCHNLGY_ETC', header: { text: '기타' } },
+
+ /* 4. 기타 및 비고 */
+ { name: 'ETC', fieldName: 'ETC', header: { text: '기타' } },
+ { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } },
+
+ ],
+ columnLayout: [
+ { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] },
+ 'OCGNZ',
+ 'YR_GBN',
+ 'TOT_WTR_QRM',
+ 'ADMINIST_JSSFC',
+ {
+ name: 'techJobGroup',
+ header: { text: '기술직' },
+ items: [
+ 'TCHNLGY_JSSFC_SM',
+ 'ENGRK_JSSFC',
+ 'MCHN_JSSFC',
+ 'ELCTY_JSSFC',
+ 'CHMSTRY_JSSFC',
+ 'ENVRN_JSSFC',
+ 'TCHNLGY_ETC'
+ ]
+ },
+ 'ETC',
+ 'RMK',
+ ]
+},
+{
+ tabKey: 'c',
+ tabLabel: '분뇨수집·운반업',
+ rowStartNum: 2, // 2단 헤더 구조 (순번 rowspan="2")
+ fixedColumns: 2, // 순번, 시도, 시군구, 구분까지 고정
+ columns: [
+ /* 1. 행정 및 기본 정보 (Band: Left) */
+ { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } },
+ { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } },
+ { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } },
+
+ /* 2. 업체 및 인력 현황 */
+ { name: 'ECSCS_SM', fieldName: 'ECSCS_SM', header: { text: '업체수(개소)' } },
+ { name: 'ECSCS_BSMN', fieldName: 'ECSCS_BSMN', header: { text: '종사인원(명)' } },
+
+ /* 3. 시설(차량) 확보현황 (단위: 대수) */
+ { name: 'VHCLE_SM', fieldName: 'VHCLE_SM', header: { text: '계' } },
+ { name: 'THREE_BELOW', fieldName: 'THREE_BELOW', header: { text: '3톤이하' } },
+ { name: 'FOUR_BELOW', fieldName: 'FOUR_BELOW', header: { text: '4.5톤이하' } },
+ { name: 'EIGHT_BELOW', fieldName: 'EIGHT_BELOW', header: { text: '8톤이하' } },
+ { name: 'ETC', fieldName: 'ETC', header: { text: '기타' } },
+
+ /* 4. 실적 및 비고 */
+ { name: 'COLCT_TRSP_ACMSLT', fieldName: 'COLCT_TRSP_ACMSLT', header: { text: '수집·운반실적\n(㎥/년)' } },
+ { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } },
+ ],
+ columnLayout: [
+ { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] },
+ 'YR_GBN',
+ 'ECSCS_SM',
+ 'ECSCS_BSMN',
+ {
+ name: 'vehicleGroup',
+ header: { text: '시설(차량) 확보현황(대수)' },
+ items: [
+ 'VHCLE_SM',
+ 'THREE_BELOW',
+ 'FOUR_BELOW',
+ 'EIGHT_BELOW',
+ 'ETC'
+ ]
+ },
+ 'COLCT_TRSP_ACMSLT',
+ 'RMK'
+ ]
+},
+{
+ tabKey: 'd',
+ tabLabel: '개인하수처리관련업',
+ rowStartNum: 2, // 2단 헤더 구조 (순번 rowspan="2")
+ fixedColumns: 2, // 순번, 시도, 시군구, 구분까지 고정
+ columns: [
+ /* 1. 행정 및 기본 정보 (Band: Left) */
+ { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } },
+ { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } },
+ { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } },
+
+ /* 2. 개인하수처리시설 설계ㆍ시공업 */
+ { name: 'CNSTRCT_ENTRPS', fieldName: 'CNSTRCT_ENTRPS', header: { text: '업소수' } },
+ { name: 'CNSTRCT_BSMN', fieldName: 'CNSTRCT_BSMN', header: { text: '종사인원(명)' } },
+
+ /* 3. 개인하수처리시설 제조업 */
+ { name: 'MNFCTUR_ENTRPS', fieldName: 'MNFCTUR_ENTRPS', header: { text: '업소수' } },
+ { name: 'MNFCTUR_BSMN', fieldName: 'MNFCTUR_BSMN', header: { text: '종사인원(명)' } },
+
+ /* 4. 개인하수처리시설 관리업 */
+ { name: 'MGMT_ENTRPS', fieldName: 'MGMT_ENTRPS', header: { text: '업소수' } },
+ { name: 'MGMT_BSMN', fieldName: 'MGMT_BSMN', header: { text: '종사인원(명)' } },
+
+ /* 5. 기타 및 의견 */
+ { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }
+ ],
+ columnLayout: [
+ { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] },
+ 'YR_GBN',
+ {
+ name: 'constructGroup',
+ header: { text: '개인하수처리시설 설계ㆍ시공업' },
+ items: ['CNSTRCT_ENTRPS', 'CNSTRCT_BSMN']
+ },
+ {
+ name: 'manufactureGroup',
+ header: { text: '개인하수처리시설 제조업' },
+ items: ['MNFCTUR_ENTRPS', 'MNFCTUR_BSMN']
+ },
+ {
+ name: 'managementGroup',
+ header: { text: '개인하수처리시설 관리업' },
+ items: ['MGMT_ENTRPS', 'MGMT_BSMN']
+ },
+ 'RMK'
+ ]
+}
+];
\ No newline at end of file