diff --git a/apps/st/src/components/util/column/review/PumpingStationRvwColumn.ts b/apps/st/src/components/util/column/review/PumpingStationRvwColumn.ts
index 3c22c517c..54dbfcedd 100644
--- a/apps/st/src/components/util/column/review/PumpingStationRvwColumn.ts
+++ b/apps/st/src/components/util/column/review/PumpingStationRvwColumn.ts
@@ -88,10 +88,10 @@ export const rawPumpingStationInfoList = {
]
},
{ name: 'pumpstNm', fieldName: 'pumpstNm', header: { text: '펌프장명' }, mergeCells: true },
- { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '처리장명' } }, // bscFctNm -> swtrmtFcltNm
- { name: 'pumpSeNm', fieldName: 'pumpSeNm', header: { text: '구분\n(합류/분류)' } }, // pumpCls -> pumpSeNm
- { name: 'impdFcltPstnCn', fieldName: 'impdFcltPstnCn', header: { text: '위치' } }, // addr -> impdFcltPstnCn
- { name: 'oprtngStrtYmd', fieldName: 'oprtngStrtYmd', header: { text: '가동년월일' } }, // rnDt -> oprtngStrtYmd
+ { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '처리장명' } },
+ { name: 'pumpSeNm', fieldName: 'pumpSeNm', header: { text: '구분\n(합류/분류)' } },
+ { name: 'impdFcltPstnCn', fieldName: 'impdFcltPstnCn', header: { text: '위치' } },
+ { name: 'oprtngStrtYmd', fieldName: 'oprtngStrtYmd', header: { text: '가동년월일' } },
{
name: 'planMltvArea', fieldName: 'planMltvArea', header: { text: '계획배수면적\n(km2)' },
footer: footerDecimal3ArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.000'
diff --git a/apps/st/src/components/util/column/review/SewagePipeRvwColumn.ts b/apps/st/src/components/util/column/review/SewagePipeRvwColumn.ts
index ae445b22d..1adb4eadf 100644
--- a/apps/st/src/components/util/column/review/SewagePipeRvwColumn.ts
+++ b/apps/st/src/components/util/column/review/SewagePipeRvwColumn.ts
@@ -1,8 +1,13 @@
import { ValueType } from "realgrid";
-const baseYear = new Date().getFullYear();
+import dayjs from 'dayjs';
import { footerIntArrayByDivision, footerDecimal3ArrayByDivision, footerAvgDecimalArrayByDivision } from "@/components/util/grid/footerSummary";
import type { GridView } from "@/components/type/DataGrid.type";
+
+const currentYear = dayjs().year() - 1;
+const startYear = 1996;
+const totalCount = currentYear - startYear + 1 + 1;
+
// 하수도 통계 관리 02. 하수관로
const rawList = [
{
@@ -248,7 +253,7 @@ const rawList = [
}
]
},
- { name: 'prcsFcltCpct', fieldName: 'prcsFcltCpct', header: { text: '하수처리\n시설용량\n(㎥/일)' }, footer: footerIntArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
+ { name: 'prcsFcltCpct', fieldName: 'prcsFcltCpct', header: { text: '하수처리\n시설용량\n(㎥/일)' },valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'prcsZoneArea', fieldName: 'prcsZoneArea', header: { text: '합계' }, footer: footerDecimal3ArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.000' },
{ name: 'cbsysPrcsZoneArea', fieldName: 'cbsysPrcsZoneArea', header: { text: '합류식' }, footer: footerDecimal3ArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.000' },
{ name: 'sprsysPrcsZoneArea', fieldName: 'sprsysPrcsZoneArea', header: { text: '분류식' }, footer: footerDecimal3ArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.000' },
@@ -273,19 +278,19 @@ const rawList = [
{
name: 'addrGroup', header: { text: '행정구역' },
items: [
- { column: 'ctpvNm', footerUserSpans: [{ colspan: 4 }, { colspan: 4 }] },
+ { column: 'ctpvNm', footerUserSpans: [{ colspan: 6 }, { colspan: 6 }] },
'sggNm', 'admdstNm'
]
},
'swtrmtFcltNm','prcsFcltCpct', 'displayYear',
- { name: 'areaGroup', header: { text: '처리구역면적(㎢)' }, items: ['prcsZoneArea', 'cbsysPrcsZoneArea', 'sprsysPrcsZoneArea'] }, // name 변경됨
+ { name: 'areaGroup', header: { text: '처리구역면적(㎢)' }, items: ['prcsZoneArea', 'cbsysPrcsZoneArea', 'sprsysPrcsZoneArea'] },
'sprsysVartnRt',
- { name: 'drainGroup', header: { text: '배수설비(개소)' }, items: ['mltvEqpmCnt', 'cbsysMltvEqpmCnt', 'sprsysMltvEqpmCnt'] }, // name 변경됨
+ { name: 'drainGroup', header: { text: '배수설비(개소)' }, items: ['mltvEqpmCnt', 'cbsysMltvEqpmCnt', 'sprsysMltvEqpmCnt'] },
{
name: 'pipeGroup', header: { text: '하수관로' },
items: [
'wholFcltPrlg',
- { name: 'trunkGroup', header: { text: '차집/오수간선(m)' }, items: ['wholIcptgAtlfcPrlg', 'icptgPrlg', 'atlfcsPrlg'] }, // name 변경됨
+ { name: 'trunkGroup', header: { text: '차집/오수간선(m)' }, items: ['wholIcptgAtlfcPrlg', 'icptgPrlg', 'atlfcsPrlg'] },
{
name: 'siteGroup', header: { text: '토실/토구(개소)' },
items: [
@@ -383,18 +388,18 @@ const rawList = [
{ name: 'lyngPrlgSum', fieldName: 'lyngPrlg', header: { text: '매설연장(m)' }, footer: footerAvgDecimalArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
{ name: 'dmltnPrlgSum', fieldName: 'dmltnPrlg', header: { text: '철거연장(m)' }, footer: footerAvgDecimalArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
- /* 동적 연도 컬럼 (1996년이전[yy30] ~ 2025년[yy1]) */
- ...Array.from({ length: 30 }, (_, i) => {
- const dtoNum = 30 - i; // 30, 29, ..., 1
+
+ ...Array.from({ length: totalCount }, (_, i) => {
+ const dtoNum = totalCount - i;
- const wholField = `yy${dtoNum}PrlgWhol`;
+ const wholField = `yy${dtoNum}PrlgWhol`;
const lyngField = `yy${dtoNum}LyngPrlg`;
const dmltnField = `yy${dtoNum}DmltnPrlg`;
-
+
return [
- { name: `${wholField}_col`, fieldName: wholField, header: { text: '계' }, footer: footerAvgDecimalArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
- { name: `${lyngField}_col`, fieldName: lyngField, header: { text: '매설연장(m)' }, footer: footerAvgDecimalArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
- { name: `${dmltnField}_col`, fieldName: dmltnField, header: { text: '철거연장(m)' }, footer: footerAvgDecimalArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' }
+ { name: wholField, fieldName: wholField, header: { text: '계' }, footer: footerAvgDecimalArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
+ { name: lyngField, fieldName: lyngField, header: { text: '매설연장(m)' }, footer: footerAvgDecimalArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' },
+ { name: dmltnField, fieldName: dmltnField, header: { text: '철거연장(m)' }, footer: footerAvgDecimalArrayByDivision, valueType: ValueType.NUMBER, numberFormat: '#,##0.0' }
];
}).flat(),
@@ -404,15 +409,17 @@ const rawList = [
'displayYear',
{ name: 'summaryGroup', header: { text: '총계' }, items: ['pipeByPrstWholSum','lyngPrlgSum', 'dmltnPrlgSum'] },
- ...Array.from({ length: 30 }, (_, i) => {
- const dtoNum = 30 - i;
- const yearLabel = i === 0 ? '1996년이전' : `${1995 + i}년`;
- const wholField = `yy${dtoNum}PrlgWhol`;
+ ...Array.from({ length: totalCount }, (_, i) => {
+
+ const dtoNum = totalCount - i;
+ const yearLabel = i === 0
+ ? '1996년이전'
+ : `${startYear + (i - 1)}년`;
return {
name: `group_${yearLabel}`,
header: { text: yearLabel },
- items: [`${wholField}_col`, `yy${dtoNum}LyngPrlg_col`, `yy${dtoNum}DmltnPrlg_col`]
+ items: [`yy${dtoNum}PrlgWhol`, `yy${dtoNum}LyngPrlg`, `yy${dtoNum}DmltnPrlg`]
};
}),
'rmrk'
@@ -512,7 +519,7 @@ const rawList = [
name: 'addrGroup',
header: { text: '행정구역' },
items: [
- { column: 'ctpvNm', footerUserSpans: [{ colspan: 4 }, { colspan: 4 }] },
+ { column: 'ctpvNm', footerUserSpans: [{ colspan: 6 }, { colspan: 6 }] },
'sggNm',
'admdstNm',
]