Merge remote-tracking branch 'origin/eunsun' into iipbs/st/dev

This commit is contained in:
2025-12-29 16:11:02 +09:00
10 changed files with 815 additions and 0 deletions
@@ -1,9 +1,143 @@
import SearchForm from "@/components/module/SearchForm";
import DataGrid from "@/components/module/DataGrid";
import SubmitButton from "@/components/button/SumitButton";
import SaveButton from "@/components/button/SaveButton";
import LastYearDataButton from "@/components/button/LastYearDataButton";
import SubmitExceptionButton from "@/components/button/SubmitExceptionButton";
// 하수도 통계 관리 > 07. 분뇨처리시설
const ExcretaTreatmentFacilityMng = () => {
const columns = [
// 행정구역
{ name: 'sido', fieldName: '시도', header: { text: '시도' } },
{ name: 'gugun', fieldName: '시군구', header: { text: '시군구' } },
// 기본 정보
{ name: 'ecscs_nm', fieldName: '시설명', header: { text: '시설명' } },
{ name: 'locplcs', fieldName: '소재지', header: { text: '소재지' } },
{ name: 'telno', fieldName: '전화번호', header: { text: '전화번호' } },
// 날짜 정보
{ name: 'comp_dt', fieldName: '준공일 yyyy-mm-dd', header: { text: '준공일 yyyy-mm-dd' } },
{ name: 'rn_dt', fieldName: '가동개시일 yyyy-mm-dd', header: { text: '가동개시일 yyyy-mm-dd' } },
// 사업비/용량 정보
{ name: 'wct', fieldName: '사업비', header: { text: '사업비(백만원)' } },
{ name: 'ecscs_cpcty', fieldName: '시설용량', header: { text: '시설용량(m³/일)' } },
{ name: 'process_cpcty', fieldName: '처리량', header: { text: '처리량(m³/일)' } },
{ name: 'opr_daycnt', fieldName: '가동일수', header: { text: '가동일수(일/년)' } },
// 처리 공법 및 연계
{ name: 'trt_msrc', fieldName: '처리공법', header: { text: '처리공법' } },
{ name: 'cntc_prcplt', fieldName: '연계처리장명', header: { text: '연계처리장명' } },
{ name: 'assct_trt_cpc', fieldName: '연계처리량', header: { text: '연계처리량(m³/일)' } },
// 유입수질 (TOC만 포함)
{ name: 'infl_wqlt_bod', fieldName: '유입BOD', header: { text: 'BOD' } },
{ name: 'infl_wqlt_toc', fieldName: '유입TOC', header: { text: 'TOC' } },
{ name: 'infl_wqlt_ss', fieldName: '유입SS', header: { text: 'SS' } },
{ name: 'infl_wqlt_tn', fieldName: '유입T-N', header: { text: 'T-N' } },
{ name: 'infl_wqlt_tp', fieldName: '유입T-P', header: { text: 'T-P' } },
{ name: 'infl_wqlt_clfgrpcnt', fieldName: '유입대장균군수', header: { text: '대장균군수' } },
// 방류수질 (TOC만 포함)
{ name: 'effl_wqlt_bod', fieldName: '방류BOD', header: { text: 'BOD' } },
{ name: 'effl_wqlt_toc', fieldName: '방류TOC', header: { text: 'TOC' } },
{ name: 'effl_wqlt_ss', fieldName: '방류SS', header: { text: 'SS' } },
{ name: 'effl_wqlt_tn', fieldName: '방류T-N', header: { text: 'T-N' } },
{ name: 'effl_wqlt_tp', fieldName: '방류T-P', header: { text: 'T-P' } },
{ name: 'effl_wqlt_clfgrpcnt', fieldName: '방류대장균군수', header: { text: '대장균군수' } },
// 방류수역
{ name: 'rvbsn', fieldName: '수계', header: { text: '수계' } },
{ name: 'bstrm', fieldName: '지류', header: { text: '지류' } },
{ name: 'lgbsn', fieldName: '중권역', header: { text: '중권역' } },
{ name: 'mdmbsn', fieldName: '소권역', header: { text: '소권역' } },
// 운영 정보
{ name: 'oper_mth', fieldName: '운영주체(자체/공기업/민간위탁)', header: { text: '운영주체(자체/공기업/민간위탁)' } },
{ name: 'cntc_prcplt_cpc', fieldName: '직원총수', header: { text: '직원총수(명)' } },
{ name: 'safe_acdnt_co', fieldName: '안전사고건수', header: { text: '안전사고건수(건/인/년)' } },
// 기타
{ name: 'rmk', fieldName: '비고', header: { text: '비고' } },
];
const columnLayout = [
{
name: 'adminGroup',
hideChildHeaders: false,
header: { text: '행정구역' },
items: ['sido', 'gugun'],
},
'ecscs_nm',
'locplcs',
'telno',
'comp_dt',
'rn_dt',
'wct',
'ecscs_cpcty',
'process_cpcty',
'opr_daycnt',
'trt_msrc',
'cntc_prcplt',
'assct_trt_cpc',
{
name: 'influenceGroup',
hideChildHeaders: false,
header: { text: '유입수질(mg/L, 개/mL)' },
items: ['infl_wqlt_bod', 'infl_wqlt_toc', 'infl_wqlt_ss', 'infl_wqlt_tn', 'infl_wqlt_tp', 'infl_wqlt_clfgrpcnt'],
},
{
name: 'effluentGroup',
hideChildHeaders: false,
header: { text: '방류수질(mg/L, 개/mL)' },
items: ['effl_wqlt_bod', 'effl_wqlt_toc', 'effl_wqlt_ss', 'effl_wqlt_tn', 'effl_wqlt_tp', 'effl_wqlt_clfgrpcnt'],
},
{
name: 'dischargeGroup',
hideChildHeaders: false,
header: { text: '방류수역' },
items: ['rvbsn', 'bstrm', 'lgbsn', 'mdmbsn'],
},
'oper_mth',
'cntc_prcplt_cpc',
'safe_acdnt_co',
'rmk',
];
const submitExceptionFunc = () => {
console.log('submit exception');
// 예외제출 로직
};
const getLastYearDataFunc = () => {
console.log('get last year data');
// 지난년도 데이터 가져오기 로직
};
const saveFunc = () => {
console.log('save');
// 저장 로직
};
const submitFunc = () => {
console.log('submit');
// 제출 로직
};
return (
<>
<SearchForm userMenual={true} />
<div className="flex justify-end items-center gap-[0.6rem] m-[0.6rem]">
<SubmitExceptionButton SubmitExceptionFunc={submitExceptionFunc} />
<LastYearDataButton getLastYearDataFunc={getLastYearDataFunc} />
</div>
<div className="flex justify-end items-center gap-[0.6rem] m-[0.6rem]">
<SaveButton saveFunc={saveFunc} />
<SubmitButton submitFunc={submitFunc} />
</div>
<DataGrid columnInfo={{ columns, columnLayout }} rowStartNum={2} fixedColumns={2} isExcelImport={true} />
</>
);
};
@@ -1,9 +1,49 @@
import SearchForm from "@/components/module/SearchForm";
import TabDataGrid from "@/components/module/TabDataGrid";
import SubmitButton from "@/components/button/SumitButton";
import SaveButton from "@/components/button/SaveButton";
import SubmitExceptionButton from "@/components/button/SubmitExceptionButton";
import LastYearDataButton from "@/components/button/LastYearDataButton";
import { PrivateSewageFacilityMngColumnInfoList } from "@/components/util/column/PrivateSewageFacilityMngColumn";
// 하수도 통계 관리 > 08. 개인하수처리시설
const PrivateSewageFacilityMng = () => {
const submitFunc = () => {
// TODO: 제출 로직 구현
console.log('제출 로직 실행');
};
const saveFunc = () => {
// TODO: 저장 로직 구현
console.log('저장 로직 실행');
};
const lastYearDataFunc = () => {
// TODO: 지난년도 데이터 가져오기 로직 구현
console.log('지난년도 데이터 가져오기 로직 실행');
};
const submitExceptionFunc = () => {
// TODO: 예외 제출 로직 구현
console.log('예외 제출 로직 실행');
};
return (
<>
<SearchForm userMenual={true} />
<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} />
</div>
<TabDataGrid columnInfo={PrivateSewageFacilityMngColumnInfoList} />
</>
);
};
@@ -1,5 +1,6 @@
import SearchForm from "@/components/module/SearchForm";
// 하수도 통계 관리 > 12. 하수 및 분뇨관련산업
const SewageExcretaRelatedMng = () => {
return (
<>
@@ -1,5 +1,6 @@
import SearchForm from "@/components/module/SearchForm";
// 하수도 통계 관리 > 11. 하수 및 분뇨찌꺼기(슬러지)처리
const SewageExcretaSlurgeMng = () => {
return (
<>
@@ -1,9 +1,47 @@
import SearchForm from "@/components/module/SearchForm";
import TabDataGrid from "@/components/module/TabDataGrid";
import SubmitButton from "@/components/button/SumitButton";
import SaveButton from "@/components/button/SaveButton";
import SubmitExceptionButton from "@/components/button/SubmitExceptionButton";
import LastYearDataButton from "@/components/button/LastYearDataButton";
import { SewerageFinanceMngInfoList } from "@/components/util/column/SewerageFinanceMngColumn";
// 하수도 통계 관리 > 09. 하수도재정
const SewerageFinanceMng = () => {
const submitFunc = () => {
// TODO: 제출 로직 구현
console.log('제출 로직 실행');
};
const saveFunc = () => {
// TODO: 저장 로직 구현
console.log('저장 로직 실행');
};
const lastYearDataFunc = () => {
// TODO: 지난년도 데이터 가져오기 로직 구현
console.log('지난년도 데이터 가져오기 로직 실행');
};
const submitExceptionFunc = () => {
// TODO: 예외 제출 로직 구현
console.log('예외 제출 로직 실행');
};
return (
<>
<SearchForm userMenual={true} />
<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} />
</div>
<TabDataGrid columnInfo={SewerageFinanceMngInfoList} />
</>
);
};
@@ -1,5 +1,6 @@
import SearchForm from "../../module/SearchForm";
// 하수도 통계 관리 > 13. 하수도 서비스 수준
const SewerageServiceLevelMng = () => {
return (
<>
@@ -1,5 +1,8 @@
import SearchForm from "../../module/SearchForm";
import { WaterReuseMngColumnInfoList } from "@/components/util/column/WaterReuseMngColumn";
// 하수도 통계 관리 > 10. 물 재이용
const WaterReuseMng = () => {
return (
<>