refactor: 09. 하수도 재정 tab 구조 분리 & footer 적용

- tab별 컬럼 정의 파일 분리 (SewerageFinanceSettlementMngColumn, SewerageChargeMngColumn, SewerageUsageFeeMngColumn, CauserBurdenMngColumn)
- 각각의 컬럼 정의 파일에 footer 설정 적용 (정수, 소수점 1자리)
- editable 속성 추가
- tab 3: 하수도 사용료 컬럼 구조 수정
This commit is contained in:
2026-01-06 15:25:13 +09:00
parent c6d66c54b5
commit 81306a7b82
8 changed files with 536 additions and 449 deletions
@@ -7,10 +7,10 @@ import SubmitExceptionButton from "@/components/button/SubmitExceptionButton";
import { useState } from "react";
import { ExcretaTreatmentFacilityMngColumn } from "@/components/util/column/management/ExcretaTreatmentFacilityMngColumn"
// 하수도 통계 관리 > 07. 분뇨처리시설
const ExcretaTreatmentFacilityMng = () => {
const submitExceptionFunc = () => {
console.log('submit exception');
// 예외제출 로직
@@ -47,8 +47,8 @@ const PrivateSewageFacilityMng = () => {
<div className="flex justify-end items-center gap-[0.6rem] m-[0.6rem]">
<SubmitExceptionButton SubmitExceptionFunc={submitExceptionFunc} />
<LastYearDataButton getLastYearDataFunc={lastYearDataFunc} />
<SaveButton saveFunc={saveFunc} />
<SubmitButton submitFunc={submitFunc} />
<SaveButton saveFunc={saveFunc} />
</div>
<TabDataGrid columnInfo={ PrivateSewageFacilityMngColumnList } rowDataMap={rowDataMap} setRowDataMap={setRowDataMap} />
@@ -6,12 +6,33 @@ import SaveButton from "@/components/button/SaveButton";
import SubmitExceptionButton from "@/components/button/SubmitExceptionButton";
import LastYearDataButton from "@/components/button/LastYearDataButton";
import { SewerageFinanceMngInfoList } from "@/components/util/column/management/SewerageFinanceMngColumn";
import { SewerageFinanceSettlementMngColumn } from "@/components/util/column/management/sewerageFinance/SewerageFinanceSettlementMngColumn"
import { SewerageChargeMngColumn } from "@/components/util/column/management/sewerageFinance/SewerageChargeMngColumn"
import { SewerageUsageFeeMngColumn } from "@/components/util/column/management/sewerageFinance/SewerageUsageFeeMngColumn"
import { CauserBurdenMngColumn } from "@/components/util/column/management/sewerageFinance/CauserBurdenMngColumn"
// 하수도 통계 관리 > 09. 하수도재정
const SewerageFinanceMng = () => {
const [rowDataMap, setRowDataMap] = useState<Map<string, Record<string, string | number>[]>>(new Map());
// tab list
const SewerageFinanceMngList = [
SewerageFinanceSettlementMngColumn,
SewerageChargeMngColumn,
SewerageUsageFeeMngColumn,
CauserBurdenMngColumn
];
const submitExceptionFunc = () => {
// TODO: 예외 제출 로직 구현
console.log('예외 제출 로직 실행');
};
const lastYearDataFunc = () => {
// TODO: 지난연도 데이터 가져오기 로직 구현
console.log('지난연도 데이터 가져오기 로직 실행');
};
const submitFunc = () => {
// TODO: 제출 로직 구현
console.log('제출 로직 실행');
@@ -22,16 +43,6 @@ const SewerageFinanceMng = () => {
console.log('저장 로직 실행');
};
const lastYearDataFunc = () => {
// TODO: 지난년도 데이터 가져오기 로직 구현
console.log('지난년도 데이터 가져오기 로직 실행');
};
const submitExceptionFunc = () => {
// TODO: 예외 제출 로직 구현
console.log('예외 제출 로직 실행');
};
return (
<>
<SearchForm userMenual={true} />
@@ -39,11 +50,11 @@ const SewerageFinanceMng = () => {
<div className="flex justify-end items-center gap-[0.6rem] m-[0.6rem]">
<SubmitExceptionButton SubmitExceptionFunc={submitExceptionFunc} />
<LastYearDataButton getLastYearDataFunc={lastYearDataFunc} />
<SaveButton saveFunc={saveFunc} />
<SubmitButton submitFunc={submitFunc} />
<SaveButton saveFunc={saveFunc} />
</div>
<TabDataGrid columnInfo={SewerageFinanceMngInfoList} rowDataMap={rowDataMap} setRowDataMap={setRowDataMap} />
<TabDataGrid columnInfo={SewerageFinanceMngList} rowDataMap={rowDataMap} setRowDataMap={setRowDataMap} />
</>
);
};
@@ -1,434 +0,0 @@
/**
* 하수도 통계 관리 > 09. 하수도 재정
* 4개 Tab: 컬럼 통합 관리
*/
export const SewerageFinanceMngInfoList = [
// ========================================
// Tab 1: 하수도재정 결산
// ========================================
{
columns: [
// 행정구역
{ name: 'SIDO', fieldName: '시도', header: { text: '시도' } },
{ name: 'GUGUN', fieldName: '시군구', header: { text: '시군구' } },
// 재정별 사업비
{ name: 'FNANC_WCT_SM', fieldName: '계', header: { text: '계' } },
{ name: 'NTNXPN', fieldName: '중앙정부지원액', header: { text: '중앙정부지원액' } },
{ name: 'LCLEXPNS', fieldName: '특·광역시, 도', header: { text: '특·광역시, 도' } },
{ name: 'LCLTY_CT', fieldName: '시,군,구 지자체', header: { text: '시,군,구 지자체' } },
{ name: 'SEWER_RNTFEE', fieldName: '하수도사용료', header: { text: '하수도사용료' } },
{ name: 'AMNTBRNCSR', fieldName: '원인자부담금', header: { text: '원인자부담금' } },
{ name: 'ETC_INCME', fieldName: '기타잡수입', header: { text: '기타잡수입' } },
{ name: 'CYFD_AMOUNT', fieldName: '이월액', header: { text: '이월액' } },
// 부채액
{ name: 'DEBT_AMOUNT', fieldName: '부채액(백만원)', header: { text: '부채액(백만원)' } },
// 용도별사업비
{ name: 'PRPOS_WCT_SM', fieldName: '계', header: { text: '계' } },
// 처리장
{ name: 'PRCPLT_SM', fieldName: '소계', header: { text: '소계' } },
{ name: 'PRCPLT_FCLTY', fieldName: '시설비', header: { text: '시설비' } },
{ name: 'PRCPLT_RPAIR', fieldName: '개보수비', header: { text: '개보수비' } },
{ name: 'PRCPLT_ORPNS', fieldName: '운영유지비', header: { text: '운영유지비' } },
{ name: 'PRCPLT_ETC', fieldName: '기타', header: { text: '기타' } },
// 하수관로
{ name: 'SEWAGE_SM', fieldName: '소계', header: { text: '소계' } },
{ name: 'SEWAGE_FCLTY', fieldName: '시설비', header: { text: '시설비' } },
{ name: 'SEWAGE_RPAIR', fieldName: '개보수비', header: { text: '개보수비' } },
{ name: 'SEWAGE_ORPNS', fieldName: '운영유지비', header: { text: '운영유지비' } },
{ name: 'SEWAGE_ETC', fieldName: '기타', header: { text: '기타' } },
// 하수저류시설
{ name: 'SWGE_STRGE_SM', fieldName: '소계', header: { text: '소계' } },
{ name: 'SWGE_STRGE_FCLTY', fieldName: '시설비', header: { text: '시설비' } },
{ name: 'SWGE_STRGE_RPAIR', fieldName: '개보수비', header: { text: '개보수비' } },
{ name: 'SWGE_STRGE_ORPNS', fieldName: '운영유지비', header: { text: '운영유지비' } },
{ name: 'SWGE_STRGE_ETC', fieldName: '기타', header: { text: '기타' } },
// 기타
{ name: 'ETC_SM', fieldName: '소계', header: { text: '소계' } },
{ name: 'ACDNT_CYFD_AMOUNT', fieldName: '사고이월액', header: { text: '사고이월액' } },
{ name: 'UNRCIV_AMOUNT', fieldName: '미수납액', header: { text: '미수납액' } },
{ name: 'ETC_AMOUNT', fieldName: '기타', header: { text: '기타' } },
// 비고 및 의견
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
{ name: 'CHCKER_OPINION', fieldName: '검토자의견', header: { text: '검토자의견' } },
{ name: 'WRTER_OPINION', fieldName: '사용자의견', header: { text: '사용자의견' } },
// 참조 필드
{ name: 'B_LEVY_AMOUNT', fieldName: 'B_LEVY_AMOUNT', header: { text: 'B_LEVY_AMOUNT' } },
{ name: 'C_LEVY_AMOUNT', fieldName: 'C_LEVY_AMOUNT', header: { text: 'C_LEVY_AMOUNT' } },
{ name: 'D_LEVY_AMOUNT', fieldName: 'D_LEVY_AMOUNT', header: { text: 'D_LEVY_AMOUNT' } },
],
columnLayout: [
{
name: 'group_admin',
header: { text: '행정구역' },
items: ['SIDO', 'GUGUN']
},
{
name: 'group_finance',
header: { text: '재정별 사업비(백만원)' },
items: [
'FNANC_WCT_SM',
'NTNXPN',
{
name: 'group_local_finance',
header: { text: '지방비' },
items: ['LCLEXPNS', 'LCLTY_CT']
},
'SEWER_RNTFEE',
'AMNTBRNCSR',
'ETC_INCME',
'CYFD_AMOUNT'
]
},
'DEBT_AMOUNT',
{
name: 'group_purpose',
header: { text: '용도별사업비(백만원)' },
items: [
'PRPOS_WCT_SM',
{
name: 'group_treatment',
header: { text: '처리장' },
items: [
'PRCPLT_SM',
'PRCPLT_FCLTY',
'PRCPLT_RPAIR',
'PRCPLT_ORPNS',
'PRCPLT_ETC'
]
},
{
name: 'group_pipe',
header: { text: '하수관로' },
items: [
'SEWAGE_SM',
'SEWAGE_FCLTY',
'SEWAGE_RPAIR',
'SEWAGE_ORPNS',
'SEWAGE_ETC'
]
},
{
name: 'group_storage',
header: { text: '하수저류시설' },
items: [
'SWGE_STRGE_SM',
'SWGE_STRGE_FCLTY',
'SWGE_STRGE_RPAIR',
'SWGE_STRGE_ORPNS',
'SWGE_STRGE_ETC'
]
},
{
name: 'group_etc_purpose',
header: { text: '기타' },
items: [
'ETC_SM',
'ACDNT_CYFD_AMOUNT',
'UNRCIV_AMOUNT',
'ETC_AMOUNT'
]
}
]
},
'RMK'
],
rowStartNum: 3,
fixedColumns: 1,
tabKey: 'SewerageFinanceMng_tab1',
tabLabel: '하수도재정 결산'
},
// ========================================
// Tab 2: 하수도 요금
// ========================================
{
columns: [
// 행정구역
{ name: 'SIDO', fieldName: '시도', header: { text: '시도' } },
{ name: 'GUGUN', fieldName: '시군구', header: { text: '시군구' } },
// 요금 현황
{ name: 'FYER_LEVY_QY', fieldName: '연간조정량(m³)(A)', header: { text: '연간조정량(m³)(A)' } },
{ name: 'LEVY_AMOUNT', fieldName: '하수도사용료수익(원)(B)', header: { text: '하수도사용료수익(원)(B)' } },
{ name: 'AVRG_UNTPC', fieldName: 'm³당요금(원/m³) C=(B/A)', header: { text: 'm³당요금(원/m³) C=(B/A)' } },
{ name: 'SMRIZE_PRMPC', fieldName: '총괄원가(원)(D)', header: { text: '총괄원가(원)(D)' } },
{ name: 'SMRIZE_UNIT_PRMPC', fieldName: 'm³당원가(원/m³) E=(D/A)', header: { text: 'm³당원가(원/m³) E=(D/A)' } },
{ name: 'RLTY_RT', fieldName: '요금현실화율(%) F=(C/E*100)', header: { text: '요금현실화율(%) F=(C/E*100)' } },
// 비고 및 의견
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
{ name: 'CHCKER_OPINION', fieldName: '검토자의견', header: { text: '검토자의견' } },
{ name: 'WRTER_OPINION', fieldName: '사용자의견', header: { text: '사용자의견' } },
// 참조 필드
{ name: 'SEWER_RNTFEE', fieldName: 'SEWER_RNTFEE', header: { text: 'SEWER_RNTFEE' } },
{ name: 'C_LEVY_AMOUNT', fieldName: 'C_LEVY_AMOUNT', header: { text: 'C_LEVY_AMOUNT' } },
],
columnLayout: [
{
name: 'group_admin',
header: { text: '행정구역' },
items: ['SIDO', 'GUGUN']
},
'FYER_LEVY_QY',
'LEVY_AMOUNT',
'AVRG_UNTPC',
'SMRIZE_PRMPC',
'SMRIZE_UNIT_PRMPC',
'RLTY_RT',
'RMK'
],
rowStartNum: 2,
fixedColumns: 1,
tabKey: 'SewerageFinanceMng_tab2',
tabLabel: '하수도 요금'
},
// ========================================
// Tab 3: 하수도 사용료
// ========================================
{
columns: [
// 행정구역
{ name: 'SIDO', fieldName: '시도', header: { text: '시도' } },
{ name: 'GUGUN', fieldName: '시군구', header: { text: '시군구' } },
// 총계
{ name: 'LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' } },
{ name: 'LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' } },
// 가정용
{ name: 'HOME_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' } },
{ name: 'HOME_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' } },
{ name: 'HOME_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' } },
// 업무용
{ name: 'JOB_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' } },
{ name: 'JOB_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' } },
{ name: 'JOB_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' } },
// 영업용(일반용)
{ name: 'BSN_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' } },
{ name: 'BSN_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' } },
{ name: 'BSN_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' } },
// 욕탕1종(대중탕용)
{ name: 'BATHS1_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' } },
{ name: 'BATHS1_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' } },
{ name: 'BATHS1_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' } },
// 대중탕용 (별도 분류)
{ name: 'PBBATH_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' } },
{ name: 'PBBATH_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' } },
{ name: 'PBBATH_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' } },
// 욕탕2종
{ name: 'BATHS2_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' } },
{ name: 'BATHS2_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' } },
{ name: 'BATHS2_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' } },
// 산업용
{ name: 'INDUST_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' } },
{ name: 'INDUST_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' } },
{ name: 'INDUST_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' } },
// 공업용
{ name: 'INDPRP_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' } },
{ name: 'INDPRP_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' } },
{ name: 'INDPRP_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' } },
// 공공용
{ name: 'PUBLIC_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' } },
{ name: 'PUBLIC_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' } },
{ name: 'PUBLIC_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' } },
// 일반용
{ name: 'GNRL_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' } },
{ name: 'GNRL_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' } },
{ name: 'GNRL_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' } },
// 기타
{ name: 'ETC_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' } },
{ name: 'ETC_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' } },
{ name: 'ETC_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' } },
// 비고 및 의견
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
{ name: 'CHCKER_OPINION', fieldName: '검토자의견', header: { text: '검토자의견' } },
{ name: 'WRTER_OPINION', fieldName: '사용자의견', header: { text: '사용자의견' } },
// 참조 필드
{ name: 'SEWER_RNTFEE', fieldName: 'SEWER_RNTFEE', header: { text: 'SEWER_RNTFEE' } },
{ name: 'B_LEVY_AMOUNT', fieldName: 'B_LEVY_AMOUNT', header: { text: 'B_LEVY_AMOUNT' } },
],
columnLayout: [
{
name: 'group_admin',
header: { text: '행정구역' },
items: ['SIDO', 'GUGUN']
},
{
name: 'group_total',
header: { text: '총계' },
items: [
{ name: 'total_amount', header: { text: '부과액' }, items: ['LEVY_AMOUNT'] },
{ name: 'total_qty', header: { text: '부과량' }, items: ['LEVY_QY'] }
]
},
{
name: 'group_home',
header: { text: '가 정 용' },
items: [
{ name: 'home_amount', header: { text: '부과액' }, items: ['HOME_LEVY_AMOUNT'] },
{ name: 'home_qty', header: { text: '부과량' }, items: ['HOME_LEVY_QY'] },
{ name: 'home_price', header: { text: '단가' }, items: ['HOME_UNTPC'] }
]
},
{
name: 'group_job',
header: { text: '업 무 용' },
items: [
{ name: 'job_amount', header: { text: '부과액' }, items: ['JOB_LEVY_AMOUNT'] },
{ name: 'job_qty', header: { text: '부과량' }, items: ['JOB_LEVY_QY'] },
{ name: 'job_price', header: { text: '단가' }, items: ['JOB_UNTPC'] }
]
},
{
name: 'group_business',
header: { text: '영 업 용(일 반 용)' },
items: [
{ name: 'bsn_amount', header: { text: '부과액' }, items: ['BSN_LEVY_AMOUNT'] },
{ name: 'bsn_qty', header: { text: '부과량' }, items: ['BSN_LEVY_QY'] },
{ name: 'bsn_price', header: { text: '단가' }, items: ['BSN_UNTPC'] }
]
},
{
name: 'group_baths1',
header: { text: '욕 탕 1종(대중탕용)' },
items: [
{ name: 'baths1_amount', header: { text: '부과액' }, items: ['BATHS1_LEVY_AMOUNT'] },
{ name: 'baths1_qty', header: { text: '부과량' }, items: ['BATHS1_LEVY_QY'] },
{ name: 'baths1_price', header: { text: '단가' }, items: ['BATHS1_UNTPC'] }
]
},
{
name: 'group_pbbath',
header: { text: '욕 탕 2종' },
items: [
{ name: 'pbbath_amount', header: { text: '부과액' }, items: ['PBBATH_LEVY_AMOUNT'] },
{ name: 'pbbath_qty', header: { text: '부과량' }, items: ['PBBATH_LEVY_QY'] },
{ name: 'pbbath_price', header: { text: '단가' }, items: ['PBBATH_UNTPC'] }
]
},
{
name: 'group_industry',
header: { text: '산업 및 공업용' },
items: [
{ name: 'indust_amount', header: { text: '부과액' }, items: ['INDUST_LEVY_AMOUNT'] },
{ name: 'indust_qty', header: { text: '부과량' }, items: ['INDUST_LEVY_QY'] },
{ name: 'indust_price', header: { text: '단가' }, items: ['INDUST_UNTPC'] }
]
},
{
name: 'group_etc',
header: { text: '기타' },
items: [
{ name: 'etc_amount', header: { text: '부과액' }, items: ['ETC_LEVY_AMOUNT'] },
{ name: 'etc_qty', header: { text: '부과량' }, items: ['ETC_LEVY_QY'] },
{ name: 'etc_price', header: { text: '단가' }, items: ['ETC_UNTPC'] }
]
},
'RMK'
],
rowStartNum: 3,
fixedColumns: 1,
tabKey: 'SewerageFinanceMng_tab3',
tabLabel: '하수도 사용료'
},
// ========================================
// Tab 4: 원인자 부담금
// ========================================
{
columns: [
// 행정구역
{ name: 'SIDO', fieldName: '시도', header: { text: '시도' } },
{ name: 'GUGUN', fieldName: '시군구', header: { text: '시군구' } },
// 부과액
{ name: 'LEVY_CO', fieldName: '건수', header: { text: '건수' } },
{ name: 'LEVY_AMOUNT', fieldName: '금액(백만원)', header: { text: '금액(백만원)' } },
// 대상별 징수현황 - 계
{ name: 'TRGET_LEV_STTUS_CO', fieldName: '건수', header: { text: '건수' } },
{ name: 'TRGET_LEV_STTUS_AMOUNT', fieldName: '금액(백만원)', header: { text: '금액(백만원)' } },
// 대상별 징수현황 - 배수설비설치자
{ name: 'DRNG_EQP_CO', fieldName: '건수', header: { text: '건수' } },
{ name: 'DRNG_EQP_AMOUNT', fieldName: '금액(백만원)', header: { text: '금액(백만원)' } },
// 대상별 징수현황 - 타공사·타행위자
{ name: 'CNTRWK_CO', fieldName: '건수', header: { text: '건수' } },
{ name: 'CNTRWK_AMOUNT', fieldName: '금액(백만원)', header: { text: '금액(백만원)' } },
// 비고 및 의견
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
{ name: 'CHCKER_OPINION', fieldName: '검토자의견', header: { text: '검토자의견' } },
{ name: 'WRTER_OPINION', fieldName: '사용자의견', header: { text: '사용자의견' } },
// 참조 필드
{ name: 'AMNTBRNCSR', fieldName: 'AMNTBRNCSR', header: { text: 'AMNTBRNCSR' } },
],
columnLayout: [
{
name: 'group_admin',
header: { text: '행정구역' },
items: ['SIDO', 'GUGUN']
},
{
name: 'group_assess',
header: { text: '부과액' },
items: ['LEVY_CO', 'LEVY_AMOUNT']
},
{
name: 'group_collection',
header: { text: '대상별 징수현황' },
items: [
{
name: 'coll_group_total',
header: { text: '계' },
items: ['TRGET_LEV_STTUS_CO', 'TRGET_LEV_STTUS_AMOUNT']
},
{
name: 'coll_group_inst',
header: { text: '배수설비설치자(하수도법 제61조 제1항)' },
items: ['DRNG_EQP_CO', 'DRNG_EQP_AMOUNT']
},
{
name: 'coll_group_otr',
header: { text: '타공사·타행위자(하수도법 제61조 제2항)' },
items: ['CNTRWK_CO', 'CNTRWK_AMOUNT']
}
]
},
'RMK'
],
rowStartNum: 3,
fixedColumns: 1,
tabKey: 'SewerageFinanceMng_tab4',
tabLabel: '원인자 부담금'
},
];
@@ -0,0 +1,76 @@
import { footerInt, footerDecimal1 } from "@/components/util/grid/footerSummary";
// 하수도 통계 관리 > 09.하수도 재정 > tab 4: 원인자 부담금
export const CauserBurdenMngColumn = {
columns: [
// 행정구역
{ name: 'SIDO', fieldName: '시도', header: { text: '시도' }, editable: false },
{ name: 'GUGUN', fieldName: '시군구', header: { text: '시군구' }, editable: false, footer: { text: '합계' } },
// 부과액
{ name: 'LEVY_CO', fieldName: '건수', header: { text: '건수' }, footer: footerInt },
{ name: 'LEVY_AMOUNT', fieldName: '금액(백만원)', header: { text: '금액(백만원)' }, footer: footerDecimal1 },
// 대상별 징수현황 > 계
{ name: 'TRGET_LEV_STTUS_CO', fieldName: '건수', header: { text: '건수' }, editable: false, footer: footerInt },
{ name: 'TRGET_LEV_STTUS_AMOUNT', fieldName: '금액(백만원)', header: { text: '금액(백만원)' }, editable: false, footer: footerDecimal1 },
// 대상별 징수현황 > 배수설비설치자
{ name: 'DRNG_EQP_CO', fieldName: '건수', header: { text: '건수' }, footer: footerInt },
{ name: 'DRNG_EQP_AMOUNT', fieldName: '금액(백만원)', header: { text: '금액(백만원)' }, footer: footerDecimal1 },
// 대상별 징수현황 > 타공사·타행위자
{ name: 'CNTRWK_CO', fieldName: '건수', header: { text: '건수' }, footer: footerInt },
{ name: 'CNTRWK_AMOUNT', fieldName: '금액(백만원)', header: { text: '금액(백만원)' }, footer: footerDecimal1 },
// 비고
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
// hidden
{ name: 'CHCKER_OPINION', fieldName: '검토자의견', header: { text: '검토자의견' } },
{ name: 'WRTER_OPINION', fieldName: '사용자의견', header: { text: '사용자의견' } },
// 참조 필드
{ name: 'AMNTBRNCSR', fieldName: 'AMNTBRNCSR', header: { text: 'AMNTBRNCSR' } },
],
columnLayout: [
{
name: 'group_admin',
header: { text: '행정구역' },
items: ['SIDO', 'GUGUN']
},
{
name: 'group_assess',
header: { text: '부과액' },
items: ['LEVY_CO', 'LEVY_AMOUNT']
},
{
name: 'group_collection',
header: { text: '대상별 징수현황' },
items: [
{
name: 'coll_group_total',
header: { text: '계' },
items: ['TRGET_LEV_STTUS_CO', 'TRGET_LEV_STTUS_AMOUNT']
},
{
name: 'coll_group_inst',
header: { text: '배수설비설치자(하수도법 제61조 제1항)' },
items: ['DRNG_EQP_CO', 'DRNG_EQP_AMOUNT']
},
{
name: 'coll_group_otr',
header: { text: '타공사·타행위자(하수도법 제61조 제2항)' },
items: ['CNTRWK_CO', 'CNTRWK_AMOUNT']
}
]
},
'RMK'
],
rowStartNum: 3,
fixedColumns: 1,
tabKey: 'CauserBurdenMng',
tabLabel: '원인자 부담금'
};
@@ -0,0 +1,48 @@
import { footerDecimal1 } from "@/components/util/grid/footerSummary";
// 하수도 통계 관리 > 09.하수도 재정 > tab 2: 하수도 요금
export const SewerageChargeMngColumn = {
columns: [
// 행정구역
{ name: 'SIDO', fieldName: '시도', header: { text: '시도' }, editable: false },
{ name: 'GUGUN', fieldName: '시군구', header: { text: '시군구' }, editable: false, footer: { text: '합계' } },
// 요금
{ name: 'FYER_LEVY_QY', fieldName: '연간조정량(m³)(A)', header: { text: '연간조정량(m³)(A)' }, footer: footerDecimal1 },
{ name: 'LEVY_AMOUNT', fieldName: '하수도사용료수익(원)(B)', header: { text: '하수도사용료수익(원)(B)' }, footer: footerDecimal1 },
{ name: 'AVRG_UNTPC', fieldName: 'm³당요금(원/m³) C=(B/A)', header: { text: 'm³당요금(원/m³) C=(B/A)' }, editable: false, footer: footerDecimal1 },
{ name: 'SMRIZE_PRMPC', fieldName: '총괄원가(원)(D)', header: { text: '총괄원가(원)(D)' }, footer: footerDecimal1 },
{ name: 'SMRIZE_UNIT_PRMPC', fieldName: 'm³당원가(원/m³) E=(D/A)', header: { text: 'm³당원가(원/m³) E=(D/A)' }, editable: false, footer: footerDecimal1 },
{ name: 'RLTY_RT', fieldName: '요금현실화율(%) F=(C/E*100)', header: { text: '요금현실화율(%) F=(C/E*100)' }, editable: false, footer: footerDecimal1 },
// 비고
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
// hidden
{ name: 'CHCKER_OPINION', fieldName: '검토자의견', header: { text: '검토자의견' }, footer: footerDecimal1 },
{ name: 'WRTER_OPINION', fieldName: '사용자의견', header: { text: '사용자의견' }, footer: footerDecimal1 },
// 참조 필드
{ name: 'SEWER_RNTFEE', fieldName: 'SEWER_RNTFEE', header: { text: 'SEWER_RNTFEE' }, footer: footerDecimal1 },
{ name: 'C_LEVY_AMOUNT', fieldName: 'C_LEVY_AMOUNT', header: { text: 'C_LEVY_AMOUNT' }, footer: footerDecimal1 },
],
columnLayout: [
{
name: 'group_admin',
header: { text: '행정구역' },
items: ['SIDO', 'GUGUN']
},
'FYER_LEVY_QY',
'LEVY_AMOUNT',
'AVRG_UNTPC',
'SMRIZE_PRMPC',
'SMRIZE_UNIT_PRMPC',
'RLTY_RT',
'RMK'
],
rowStartNum: 2,
fixedColumns: 1,
tabKey: 'SewerageChargeMng',
tabLabel: '하수도 요금'
};
@@ -0,0 +1,149 @@
import { footerDecimal1 } from "@/components/util/grid/footerSummary";
// 하수도 통계 관리 > 09.하수도 재정 > tab 1: 하수도 재정 결산
export const SewerageFinanceSettlementMngColumn = {
columns: [
// 행정구역
{ name: 'SIDO', fieldName: '시도', header: { text: '시도' }, editable: false },
{ name: 'GUGUN', fieldName: '시군구', header: { text: '시군구' }, editable: false, footer: { text: '합계' } },
// 재정별 사업비
{ name: 'FNANC_WCT_SM', fieldName: '계', header: { text: '계' }, editable: false, footer: footerDecimal1 },
{ name: 'NTNXPN', fieldName: '중앙정부지원액', header: { text: '중앙정부지원액' }, footer: footerDecimal1 },
// 재정별 사업비 > 지방비
{ name: 'LCLEXPNS', fieldName: '특·광역시, 도', header: { text: '특·광역시, 도' }, footer: footerDecimal1 },
{ name: 'LCLTY_CT', fieldName: '시,군,구 지자체', header: { text: '시,군,구 지자체' }, footer: footerDecimal1 },
// 재정별 사업비
{ name: 'SEWER_RNTFEE', fieldName: '하수도사용료', header: { text: '하수도사용료' }, footer: footerDecimal1 },
{ name: 'AMNTBRNCSR', fieldName: '원인자부담금', header: { text: '원인자부담금' }, footer: footerDecimal1 },
{ name: 'ETC_INCME', fieldName: '기타잡수입', header: { text: '기타잡수입' }, footer: footerDecimal1 },
{ name: 'CYFD_AMOUNT', fieldName: '이월액', header: { text: '이월액' }, footer: footerDecimal1 },
// 부채액
{ name: 'DEBT_AMOUNT', fieldName: '부채액(백만원)', header: { text: '부채액(백만원)' }, footer: footerDecimal1 },
// 용도별사업비 > 계
{ name: 'PRPOS_WCT_SM', fieldName: '계', header: { text: '계' }, editable: false, footer: footerDecimal1 },
// 용도별사업비 > 처리장
{ name: 'PRCPLT_SM', fieldName: '소계', header: { text: '소계' }, editable: false, footer: footerDecimal1 },
{ name: 'PRCPLT_FCLTY', fieldName: '시설비', header: { text: '시설비' }, footer: footerDecimal1 },
{ name: 'PRCPLT_RPAIR', fieldName: '개보수비', header: { text: '개보수비' }, footer: footerDecimal1 },
{ name: 'PRCPLT_ORPNS', fieldName: '운영유지비', header: { text: '운영유지비' }, footer: footerDecimal1 },
{ name: 'PRCPLT_ETC', fieldName: '기타', header: { text: '기타' }, footer: footerDecimal1 },
// 용도별사업비 > 하수관로
{ name: 'SEWAGE_SM', fieldName: '소계', header: { text: '소계' }, editable: false, footer: footerDecimal1 },
{ name: 'SEWAGE_FCLTY', fieldName: '시설비', header: { text: '시설비' }, footer: footerDecimal1 },
{ name: 'SEWAGE_RPAIR', fieldName: '개보수비', header: { text: '개보수비' }, footer: footerDecimal1 },
{ name: 'SEWAGE_ORPNS', fieldName: '운영유지비', header: { text: '운영유지비' }, footer: footerDecimal1 },
{ name: 'SEWAGE_ETC', fieldName: '기타', header: { text: '기타' }, footer: footerDecimal1 },
// 용도별사업비 > 하수저류시설
{ name: 'SWGE_STRGE_SM', fieldName: '소계', header: { text: '소계' }, editable: false, footer: footerDecimal1 },
{ name: 'SWGE_STRGE_FCLTY', fieldName: '시설비', header: { text: '시설비' }, footer: footerDecimal1 },
{ name: 'SWGE_STRGE_RPAIR', fieldName: '개보수비', header: { text: '개보수비' }, footer: footerDecimal1 },
{ name: 'SWGE_STRGE_ORPNS', fieldName: '운영유지비', header: { text: '운영유지비' }, footer: footerDecimal1 },
{ name: 'SWGE_STRGE_ETC', fieldName: '기타', header: { text: '기타' }, footer: footerDecimal1 },
// 용도별사업비 > 기타
{ name: 'ETC_SM', fieldName: '소계', header: { text: '소계' }, editable: false, footer: footerDecimal1 },
{ name: 'ACDNT_CYFD_AMOUNT', fieldName: '사고이월액', header: { text: '사고이월액' }, footer: footerDecimal1 },
{ name: 'UNRCIV_AMOUNT', fieldName: '미수납액', header: { text: '미수납액' }, footer: footerDecimal1 },
{ name: 'ETC_AMOUNT', fieldName: '기타', header: { text: '기타' }, footer: footerDecimal1 },
// 비고
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
// hidden
{ name: 'CHCKER_OPINION', fieldName: '검토자의견', header: { text: '검토자의견' }, footer: footerDecimal1 },
{ name: 'WRTER_OPINION', fieldName: '사용자의견', header: { text: '사용자의견' }, footer: footerDecimal1 },
// 참조 필드
{ name: 'B_LEVY_AMOUNT', fieldName: 'B_LEVY_AMOUNT', header: { text: 'B_LEVY_AMOUNT' }, footer: footerDecimal1 },
{ name: 'C_LEVY_AMOUNT', fieldName: 'C_LEVY_AMOUNT', header: { text: 'C_LEVY_AMOUNT' }, footer: footerDecimal1 },
{ name: 'D_LEVY_AMOUNT', fieldName: 'D_LEVY_AMOUNT', header: { text: 'D_LEVY_AMOUNT' }, footer: footerDecimal1 },
],
columnLayout: [
{
name: 'group_admin',
header: { text: '행정구역' },
items: ['SIDO', 'GUGUN']
},
{
name: 'group_finance',
header: { text: '재정별 사업비(백만원)' },
items: [
'FNANC_WCT_SM',
'NTNXPN',
{
name: 'group_local_finance',
header: { text: '지방비' },
items: ['LCLEXPNS', 'LCLTY_CT']
},
'SEWER_RNTFEE',
'AMNTBRNCSR',
'ETC_INCME',
'CYFD_AMOUNT'
]
},
'DEBT_AMOUNT',
{
name: 'group_purpose',
header: { text: '용도별사업비(백만원)' },
items: [
'PRPOS_WCT_SM',
{
name: 'group_treatment',
header: { text: '처리장' },
items: [
'PRCPLT_SM',
'PRCPLT_FCLTY',
'PRCPLT_RPAIR',
'PRCPLT_ORPNS',
'PRCPLT_ETC'
]
},
{
name: 'group_pipe',
header: { text: '하수관로' },
items: [
'SEWAGE_SM',
'SEWAGE_FCLTY',
'SEWAGE_RPAIR',
'SEWAGE_ORPNS',
'SEWAGE_ETC'
]
},
{
name: 'group_storage',
header: { text: '하수저류시설' },
items: [
'SWGE_STRGE_SM',
'SWGE_STRGE_FCLTY',
'SWGE_STRGE_RPAIR',
'SWGE_STRGE_ORPNS',
'SWGE_STRGE_ETC'
]
},
{
name: 'group_etc_purpose',
header: { text: '기타' },
items: [
'ETC_SM',
'ACDNT_CYFD_AMOUNT',
'UNRCIV_AMOUNT',
'ETC_AMOUNT'
]
}
]
},
'RMK'
],
rowStartNum: 3,
fixedColumns: 1,
tabKey: 'SewerageFinanceSettlementMng',
tabLabel: '하수도재정 결산'
};
@@ -0,0 +1,237 @@
import { footerDecimal1 } from "@/components/util/grid/footerSummary";
// 하수도 통계 관리 > 09.하수도 재정 > tab 3: 하수도 사용료
export const SewerageUsageFeeMngColumn = {
columns: [
// 행정구역
{ name: 'SIDO', fieldName: '시도', header: { text: '시도' }, editable: false },
{ name: 'GUGUN', fieldName: '시군구', header: { text: '시군구' }, editable: false, footer: { text: '합계' } },
// 총계
{ name: 'LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' }, editable: false, footer: footerDecimal1 },
{ name: 'LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' }, editable: false, footer: footerDecimal1 },
// 가정용
{ name: 'HOME_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' }, footer: footerDecimal1 },
{ name: 'HOME_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' }, footer: footerDecimal1 },
{ name: 'HOME_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' }, editable: false, footer: footerDecimal1 },
// 업무용
{ name: 'JOB_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' }, footer: footerDecimal1 },
{ name: 'JOB_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' }, footer: footerDecimal1 },
{ name: 'JOB_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' }, editable: false, footer: footerDecimal1 },
// 영업용(일반용)
{ name: 'BSN_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' }, footer: footerDecimal1 },
{ name: 'BSN_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' }, footer: footerDecimal1 },
{ name: 'BSN_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' }, editable: false, footer: footerDecimal1 },
// 욕탕1종(대중탕용)
{ name: 'BATHS1_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' }, footer: footerDecimal1 },
{ name: 'BATHS1_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' }, footer: footerDecimal1 },
{ name: 'BATHS1_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' }, editable: false, footer: footerDecimal1 },
// 욕탕2종
{ name: 'PBBATH_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' }, footer: footerDecimal1 },
{ name: 'PBBATH_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' }, footer: footerDecimal1 },
{ name: 'PBBATH_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' }, editable: false, footer: footerDecimal1 },
// 산업 및 공업용
{ name: 'INDUST_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' }, footer: footerDecimal1 },
{ name: 'INDUST_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' }, footer: footerDecimal1 },
{ name: 'INDUST_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' }, editable: false, footer: footerDecimal1 },
// 기타
{ name: 'ETC_LEVY_AMOUNT', fieldName: '(백만원)', header: { text: '(백만원)' }, footer: footerDecimal1 },
{ name: 'ETC_LEVY_QY', fieldName: '(천톤)', header: { text: '(천톤)' }, footer: footerDecimal1 },
{ name: 'ETC_UNTPC', fieldName: '(원/톤)', header: { text: '(원/톤)' }, editable: false, footer: footerDecimal1 },
// 비고
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
// hidden
{ name: 'CHCKER_OPINION', fieldName: '검토자의견', header: { text: '검토자의견' } },
{ name: 'WRTER_OPINION', fieldName: '사용자의견', header: { text: '사용자의견' } },
// 참조 필드
{ name: 'SEWER_RNTFEE', fieldName: 'SEWER_RNTFEE', header: { text: 'SEWER_RNTFEE' } },
{ name: 'B_LEVY_AMOUNT', fieldName: 'B_LEVY_AMOUNT', header: { text: 'B_LEVY_AMOUNT' } },
],
columnLayout: [
{
name: 'group_admin',
header: { text: '행정구역' },
items: ['SIDO', 'GUGUN']
},
{
name: 'group_total',
header: { text: '총계' },
items: [
{
name: 'total_amount',
header: { text: '부과액' },
items: ['LEVY_AMOUNT']
},
{
name: 'total_qty',
header: { text: '부과량' },
items: ['LEVY_QY']
}
]
},
{
name: 'group_home',
header: { text: '가 정 용' },
items: [
{
name: 'home_amount',
header: { text: '부과액' },
items: ['HOME_LEVY_AMOUNT']
},
{
name: 'home_qty',
header: { text: '부과량' },
items: ['HOME_LEVY_QY']
},
{
name: 'home_price',
header: { text: '단가' },
items: ['HOME_UNTPC']
}
]
},
{
name: 'group_job',
header: { text: '업 무 용' },
items: [
{
name: 'job_amount',
header: { text: '부과액' },
items: ['JOB_LEVY_AMOUNT']
},
{
name: 'job_qty',
header: { text: '부과량' },
items: ['JOB_LEVY_QY']
},
{
name: 'job_price',
header: { text: '단가' },
items: ['JOB_UNTPC']
}
]
},
{
name: 'group_business',
header: { text: '영 업 용(일 반 용)' },
items: [
{
name: 'bsn_amount',
header: { text: '부과액' },
items: ['BSN_LEVY_AMOUNT']
},
{
name: 'bsn_qty',
header: { text: '부과량' },
items: ['BSN_LEVY_QY']
},
{
name: 'bsn_price',
header: { text: '단가' },
items: ['BSN_UNTPC']
}
]
},
{
name: 'group_baths1',
header: { text: '욕 탕 1종(대중탕용)' },
items: [
{
name: 'baths1_amount',
header: { text: '부과액' },
items: ['BATHS1_LEVY_AMOUNT']
},
{
name: 'baths1_qty',
header: { text: '부과량' },
items: ['BATHS1_LEVY_QY']
},
{
name: 'baths1_price',
header: { text: '단가' },
items: ['BATHS1_UNTPC']
}
]
},
{
name: 'group_pbbath',
header: { text: '욕 탕 2종' },
items: [
{
name: 'pbbath_amount',
header: { text: '부과액' },
items: ['PBBATH_LEVY_AMOUNT']
},
{
name: 'pbbath_qty',
header: { text: '부과량' },
items: ['PBBATH_LEVY_QY']
},
{
name: 'pbbath_price',
header: { text: '단가' },
items: ['PBBATH_UNTPC']
}
]
},
{
name: 'group_industry_all',
header: { text: '산업 및 공업용' },
items: [
{
name: 'indust_amount',
header: { text: '부과액' },
items: ['INDUST_LEVY_AMOUNT']
},
{
name: 'indust_qty',
header: { text: '부과량' },
items: ['INDUST_LEVY_QY']
},
{
name: 'indust_price',
header: { text: '단가' },
items: ['INDUST_UNTPC']
}
]
},
{
name: 'group_etc',
header: { text: '기타' },
items: [
{
name: 'etc_amount',
header: { text: '부과액' },
items: ['ETC_LEVY_AMOUNT']
},
{
name: 'etc_qty',
header: { text: '부과량' },
items: ['ETC_LEVY_QY']
},
{
name: 'etc_price',
header: { text: '단가' },
items: ['ETC_UNTPC']
}
]
},
'RMK'
],
rowStartNum: 3,
fixedColumns: 1,
tabKey: 'SewerageUsageFeeMng',
tabLabel: '하수도 사용료'
};