feat : 05.펌프장valueType,numberFormat 추가,컬럼명 변경

This commit is contained in:
2026-01-16 11:43:51 +09:00
parent c036ce41c9
commit e875700105
3 changed files with 115 additions and 109 deletions
@@ -7,8 +7,9 @@ import ApproveButton from "@/components/button/ApproveButton";
import ReviewOpinionButton from "@/components/button/ReviewOpinionButton";
import ReturnButton from "@/components/button/ReturnButton";
import { PumpingStationInfoList } from "@/components/util/column/review/PumpingStationColumnRvw";
import { PumpingStationInfoList } from "@/components/util/column/review/PumpingStationRvwColumn";
// 하수도 통계 관리 05.펌프장
const PumpingStationRvw = () => {
const [rowData, setRowData] = useState<Record<string, string | number>[]>([]);
@@ -20,11 +21,13 @@ const PumpingStationRvw = () => {
return (
<>
<SearchForm userMenual={true} fctName={true} />
<div className="flex justify-end items-center gap-[0.6rem] m-[0.6rem]">
<ReviewOpinionButton reviewOpinionFunc={reviewOpinionFunc} />
<ApproveButton approveFunc={approveFunc} />
<ReturnButton returnFunc={returnFunc} />
<SaveButton saveFunc={saveFunc} />
<div className="card !py-0">
<div className="flex justify-end items-center gap-[0.6rem] m-[0.6rem]">
<ReviewOpinionButton reviewOpinionFunc={reviewOpinionFunc} />
<ApproveButton approveFunc={approveFunc} />
<ReturnButton returnFunc={returnFunc} />
<SaveButton saveFunc={saveFunc} />
</div>
</div>
<DataGrid columnInfo={PumpingStationInfoList} isExcelImport={false} rowStartNum={3} fixedColumns={3} rowData={rowData} setRowData={setRowData} />
</>
@@ -1,103 +0,0 @@
export const rawPumpingStationInfoList = {
columns: [
/* 1. 행정구역 및 기본정보 */
{ name: 'sido', fieldName: 'SIDO', header: { text: '시도' } },
{ name: 'sgg', fieldName: 'GUGUN', header: { text: '구군' } },
{ name: 'PUMP_NM', fieldName: 'PUMP_NM', header: { text: '펌프장명' } },
{ name: 'GBN', fieldName: 'GBN', header: { text: '구분' } },
{ name: 'TRT_FCT_NM', fieldName: 'TRT_FCT_NM', header: { text: '처리장명' } },
{ name: 'TYPE_GBN', fieldName: 'TYPE_GBN', header: { text: '구분(합류식분류식)' } },
{ name: 'ADDR', fieldName: 'ADDR', header: { text: '위치' } },
{ name: 'RN_DT', fieldName: 'RN_DT', header: { text: '가동년월일\nyyyy-mm-dd' } },
{ name: 'DSN_AR', fieldName: 'DSN_AR', header: { text: '계획배수면적\n(km2)' } },
/* 2. 계획배수량 (m3/hr) */
{ name: 'DSN_QTY_A', fieldName: 'DSN_QTY_A', header: { text: '청천시(A)' } },
{ name: 'DSN_QTY_B', fieldName: 'DSN_QTY_B', header: { text: '우천시(B)' } },
{ name: 'DSN_QTY_DIFF', fieldName: 'DSN_QTY_DIFF', header: { text: '우수량(B-A)' } },
/* 3. 총 양수량 (m3/min) */
{ name: 'TOT_PUMP_QTY_O', fieldName: 'TOT_PUMP_QTY_O', header: { text: '오수펌프\n총양수량' } },
{ name: 'TOT_PUMP_QTY_W', fieldName: 'TOT_PUMP_QTY_W', header: { text: '우수펌프\n총양수량' } },
/* 4. 오수펌프 상세 (1, 2, 3) */
{ name: 'PUMP_O1_D', fieldName: 'PUMP_O1_D', header: { text: '구경(mm)' } },
{ name: 'PUMP_O1_Q', fieldName: 'PUMP_O1_Q', header: { text: '양수량\n(m3/min)' } },
{ name: 'PUMP_O1_C', fieldName: 'PUMP_O1_C', header: { text: '펌프대수' } },
{ name: 'PUMP_O1_S', fieldName: 'PUMP_O1_S', header: { text: '예비대수' } },
{ name: 'PUMP_O2_D', fieldName: 'PUMP_O2_D', header: { text: '구경(mm)' } },
{ name: 'PUMP_O2_Q', fieldName: 'PUMP_O2_Q', header: { text: '양수량\n(m3/min)' } },
{ name: 'PUMP_O2_C', fieldName: 'PUMP_O2_C', header: { text: '펌프대수' } },
{ name: 'PUMP_O2_S', fieldName: 'PUMP_O2_S', header: { text: '예비대수' } },
{ name: 'PUMP_O3_D', fieldName: 'PUMP_O3_D', header: { text: '구경(mm)' } },
{ name: 'PUMP_O3_Q', fieldName: 'PUMP_O3_Q', header: { text: '양수량\n(m3/min)' } },
{ name: 'PUMP_O3_C', fieldName: 'PUMP_O3_C', header: { text: '펌프대수' } },
{ name: 'PUMP_O3_S', fieldName: 'PUMP_O3_S', header: { text: '예비대수' } },
/* 5. 우수펌프 상세 (1, 2, 3) */
{ name: 'PUMP_W1_D', fieldName: 'PUMP_W1_D', header: { text: '구경(mm)' } },
{ name: 'PUMP_W1_Q', fieldName: 'PUMP_W1_Q', header: { text: '양수량\n(m3/min)' } },
{ name: 'PUMP_W1_C', fieldName: 'PUMP_W1_C', header: { text: '펌프대수' } },
{ name: 'PUMP_W1_S', fieldName: 'PUMP_W1_S', header: { text: '예비대수' } },
{ name: 'PUMP_W2_D', fieldName: 'PUMP_W2_D', header: { text: '구경(mm)' } },
{ name: 'PUMP_W2_Q', fieldName: 'PUMP_W2_Q', header: { text: '양수량\n(m3/min)' } },
{ name: 'PUMP_W2_C', fieldName: 'PUMP_W2_C', header: { text: '펌프대수' } },
{ name: 'PUMP_W2_S', fieldName: 'PUMP_W2_S', header: { text: '예비대수' } },
{ name: 'PUMP_W3_D', fieldName: 'PUMP_W3_D', header: { text: '구경(mm)' } },
{ name: 'PUMP_W3_Q', fieldName: 'PUMP_W3_Q', header: { text: '양수량\n(m3/min)' } },
{ name: 'PUMP_W3_C', fieldName: 'PUMP_W3_C', header: { text: '펌프대수' } },
{ name: 'PUMP_W3_S', fieldName: 'PUMP_W3_S', header: { text: '예비대수' } },
/* 6. 운영 정보 */
{ name: 'PWR_USAGE', fieldName: 'PWR_USAGE', header: { text: '연간전력사용량\n(kWh/년)' } },
{ name: 'RMK', fieldName: 'RMK', header: { text: '비고' } },
],
columnLayout: [
{ name: 'groupA', header: { text: '행정구역' }, items: ['sido', 'sgg'] },
'PUMP_NM', 'GBN', 'TRT_FCT_NM', 'TYPE_GBN', 'ADDR', 'RN_DT', 'DSN_AR',
{
name: 'groupB',
header: { text: '계획시간대최대배수량(m3/hr)' },
items: ['DSN_QTY_A', 'DSN_QTY_B', 'DSN_QTY_DIFF'],
},
{
name: 'groupC',
header: { text: '배수능력' },
items: [
'TOT_PUMP_QTY_O',
{
name: 'pumpO_Detail',
header: { text: '오수펌프 상세' },
items: [
{ name: 'O1', header: { text: '오수펌프(1)' }, items: ['PUMP_O1_D', 'PUMP_O1_Q', 'PUMP_O1_C', 'PUMP_O1_S'] },
{ name: 'O2', header: { text: '오수펌프(2)' }, items: ['PUMP_O2_D', 'PUMP_O2_Q', 'PUMP_O2_C', 'PUMP_O2_S'] },
{ name: 'O3', header: { text: '오수펌프(3)' }, items: ['PUMP_O3_D', 'PUMP_O3_Q', 'PUMP_O3_C', 'PUMP_O3_S'] }
]
},
'TOT_PUMP_QTY_W',
{
name: 'pumpW_Detail',
header: { text: '우수펌프 상세' },
items: [
{ name: 'W1', header: { text: '우수펌프(1)' }, items: ['PUMP_W1_D', 'PUMP_W1_Q', 'PUMP_W1_C', 'PUMP_W1_S'] },
{ name: 'W2', header: { text: '우수펌프(2)' }, items: ['PUMP_W2_D', 'PUMP_W2_Q', 'PUMP_W2_C', 'PUMP_W2_S'] },
{ name: 'W3', header: { text: '우수펌프(3)' }, items: ['PUMP_W3_D', 'PUMP_W3_Q', 'PUMP_W3_C', 'PUMP_W3_S'] }
]
}
],
},
'PWR_USAGE', 'RMK',
]
};
export const PumpingStationInfoList = {
...rawPumpingStationInfoList,
columns: rawPumpingStationInfoList.columns.map(col => ({
...col,
editable: false
}))
};
@@ -0,0 +1,106 @@
import { ValueType } from "realgrid";
// 하수도 통계 관리 05.펌프장
export const rawPumpingStationInfoList = {
columns: [
/* 1. 행정구역 및 기본정보 */
{ name: 'sido', fieldName: '시도', header: { text: '시도' } },
{ name: 'sgg', fieldName: '구군', header: { text: '구군' } },
{ name: 'PUMP_NM', fieldName: '펌프장명', header: { text: '펌프장명' } },
{ name: 'GBN', fieldName: '구분', header: { text: '구분' } },
{ name: 'TRT_FCT_NM', fieldName: '처리장명', header: { text: '처리장명' } },
{ name: 'TYPE_GBN', fieldName: '구분(합류식분류식)', header: { text: '구분(합류식분류식)' } },
{ name: 'ADDR', fieldName: '위치', header: { text: '위치' } },
{ name: 'RN_DT', fieldName: '가동년월일 yyyy-mm-dd', header: { text: '가동년월일\nyyyy-mm-dd' } },
{ name: 'DSN_AR', fieldName: '계획배수면적(km2)', header: { text: '계획배수면적\n(km2)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.000' },
/* 2. 계획배수량 (m3/hr) */
{ name: 'DSN_QTY_A', fieldName: '청천시(A)', header: { text: '청천시(A)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'DSN_QTY_B', fieldName: '우천시(B)', header: { text: '우천시(B)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'DSN_QTY_DIFF', fieldName: '우수량(B-A)', header: { text: '우수량(B-A)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
/* 3. 총 양수량 (m3/min) */
{ name: 'TOT_PUMP_QTY_O', fieldName: '오수펌프 총양수량', header: { text: '오수펌프\n총양수량' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'TOT_PUMP_QTY_W', fieldName: '우수펌프 총양수량', header: { text: '우수펌프\n총양수량' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
/* 4. 오수펌프 상세 (1, 2, 3) */
{ name: 'PUMP_O1_D', fieldName: '구경(mm)_오수1', header: { text: '구경(mm)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'PUMP_O1_Q', fieldName: '양수량(m3/min)_오수1', header: { text: '양수량\n(m3/min)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'PUMP_O1_C', fieldName: '펌프대수_오수1', header: { text: '펌프대수' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' },
{ name: 'PUMP_O1_S', fieldName: '예비대수_오수1', header: { text: '예비대수' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' },
{ name: 'PUMP_O2_D', fieldName: '구경(mm)_오수2', header: { text: '구경(mm)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'PUMP_O2_Q', fieldName: '양수량(m3/min)_오수2', header: { text: '양수량\n(m3/min)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'PUMP_O2_C', fieldName: '펌프대수_오수2', header: { text: '펌프대수' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' },
{ name: 'PUMP_O2_S', fieldName: '예비대수_오수2', header: { text: '예비대수' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' },
{ name: 'PUMP_O3_D', fieldName: '구경(mm)_오수3', header: { text: '구경(mm)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'PUMP_O3_Q', fieldName: '양수량(m3/min)_오수3', header: { text: '양수량\n(m3/min)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'PUMP_O3_C', fieldName: '펌프대수_오수3', header: { text: '펌프대수' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' },
{ name: 'PUMP_O3_S', fieldName: '예비대수_오수3', header: { text: '예비대수' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' },
/* 5. 우수펌프 상세 (1, 2, 3) */
{ name: 'PUMP_W1_D', fieldName: '구경(mm)_우수1', header: { text: '구경(mm)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'PUMP_W1_Q', fieldName: '양수량(m3/min)_우수1', header: { text: '양수량\n(m3/min)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'PUMP_W1_C', fieldName: '펌프대수_우수1', header: { text: '펌프대수' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' },
{ name: 'PUMP_W1_S', fieldName: '예비대수_우수1', header: { text: '예비대수' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' },
{ name: 'PUMP_W2_D', fieldName: '구경(mm)_우수2', header: { text: '구경(mm)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'PUMP_W2_Q', fieldName: '양수량(m3/min)_우수2', header: { text: '양수량\n(m3/min)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'PUMP_W2_C', fieldName: '펌프대수_우수2', header: { text: '펌프대수' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' },
{ name: 'PUMP_W2_S', fieldName: '예비대수_우수2', header: { text: '예비대수' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' },
{ name: 'PUMP_W3_D', fieldName: '구경(mm)_우수3', header: { text: '구경(mm)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'PUMP_W3_Q', fieldName: '양수량(m3/min)_우수3', header: { text: '양수량\n(m3/min)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'PUMP_W3_C', fieldName: '펌프대수_우수3', header: { text: '펌프대수' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' },
{ name: 'PUMP_W3_S', fieldName: '예비대수_우수3', header: { text: '예비대수' }, valueType: ValueType.NUMBER, numberFormat: '#,##0' },
/* 6. 운영 정보 */
{ name: 'PWR_USAGE', fieldName: '연간전력사용량(kWh/년)', header: { text: '연간전력사용량\n(kWh/년)' }, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
],
columnLayout: [
{ name: 'groupA', header: { text: '행정구역' }, items: ['sido', 'sgg'] },
'PUMP_NM', 'GBN', 'TRT_FCT_NM', 'TYPE_GBN', 'ADDR', 'RN_DT', 'DSN_AR',
{
name: 'groupB',
header: { text: '계획시간대최대배수량(m3/hr)' },
items: ['DSN_QTY_A', 'DSN_QTY_B', 'DSN_QTY_DIFF'],
},
{
name: 'groupC',
header: { text: '배수능력' },
items: [
'TOT_PUMP_QTY_O',
{
name: 'pumpO_Detail',
header: { text: '오수펌프 상세' },
items: [
{ name: 'O1', header: { text: '오수펌프(1)' }, items: ['PUMP_O1_D', 'PUMP_O1_Q', 'PUMP_O1_C', 'PUMP_O1_S'] },
{ name: 'O2', header: { text: '오수펌프(2)' }, items: ['PUMP_O2_D', 'PUMP_O2_Q', 'PUMP_O2_C', 'PUMP_O2_S'] },
{ name: 'O3', header: { text: '오수펌프(3)' }, items: ['PUMP_O3_D', 'PUMP_O3_Q', 'PUMP_O3_C', 'PUMP_O3_S'] }
]
},
'TOT_PUMP_QTY_W',
{
name: 'pumpW_Detail',
header: { text: '우수펌프 상세' },
items: [
{ name: 'W1', header: { text: '우수펌프(1)' }, items: ['PUMP_W1_D', 'PUMP_W1_Q', 'PUMP_W1_C', 'PUMP_W1_S'] },
{ name: 'W2', header: { text: '우수펌프(2)' }, items: ['PUMP_W2_D', 'PUMP_W2_Q', 'PUMP_W2_C', 'PUMP_W2_S'] },
{ name: 'W3', header: { text: '우수펌프(3)' }, items: ['PUMP_W3_D', 'PUMP_W3_Q', 'PUMP_W3_C', 'PUMP_W3_S'] }
]
}
],
},
'PWR_USAGE', 'RMK',
]
};
export const PumpingStationInfoList = {
...rawPumpingStationInfoList,
columns: rawPumpingStationInfoList.columns.map(col => ({
...col,
editable: false
}))
};