Files
frontend/apps/wr/app/store/matDmd/ruseCaseMng/excel.tsx
T
2025-07-07 10:15:09 +09:00

109 lines
4.0 KiB
TypeScript

import { z } from "zod";
export const reUseCaseExcel = z.object({
file: z.any()
});
type nameMap = {
[key: string]: string;
}
export const reUseCaseNames: nameMap = {
"사업명": "ruseBizNm",
"사업시작일": "bizBgngDate",
"사업종료일": "bizEndDate",
"공급처_시설종류": "splyFcltKnd",
"공급처명": "splyFcltNm",
"공급처_시설용량(㎥/일)": "splyFcltCpct",
"수요처명": "dmdFcltNm",
"수요처_주소": "dmdFcltAddr",
"재이용시설_시설용량(㎥/일)": "ruseFcltCpct",
"재이용시설_관로(km)": "ruseFcltPplLen",
"재이용시설_용도": "ruseFcltUsg",
"재이용시설_공급량(㎥/일)": "ruseFcltSplyCpct",
"재이용시설_처리공법": "ruseFcltPrcsMsrc",
"보증수질_용도별": "grnteWqUsg",
"보증수질_총대장균군수": "grnteWqGrssClfg",
"보증수질_결합잔류염소": "grnteWqCombResdch",
"보증수질_탁도": "grnteWqTrbt",
"보증수질_생물학적산소요구량(BOD)(mg/L)": "grnteWqBod",
"보증수질_냄새": "grnteWqSmll",
"보증수질_색도(도)": "grnteWqCrmty",
"보증수질_총질소(T-N)(mg/L)": "grnteWqTn",
"보증수질_총인(T-P)(mg/L)": "grnteWqTp",
"보증수질_수소이온농도(pH)": "grnteWqPh",
"보증수질_염화물": "grnteWqClIonQnt",
"보증수질_전기전도도": "grnteWqCndctStat",
"보증수질_비고": "grnteWqRmrk",
"소요사업비_총(백만원)": "reqBizGrssCst",
"소요사업비_토목_재이용시설(백만원)": "reqBizReuseFcltCst",
"소요사업비_토목_관로(백만원)": "reqBizPplCst",
"소요사업비_건축(백만원)": "reqBizArchCst",
"소요사업비_기계(백만원)": "reqBizMchnCst",
"소요사업비_전기.계측(백만원)": "reqBizMtrngCst",
"소요사업비_GIS DB(백만원)": "reqBizGisCst",
"소요사업비_CCTV(백만원)": "reqBizCctvCst",
"소요사업비_시공 및 준공(백만원)": "reqBizCmcnCst",
"소요사업비_폐기물(백만원)": "reqBizWstCst",
"소요사업비_설계비(백만원)": "reqBizDesignCst",
"소요사업비_감리비(백만원)": "reqBizSpvsCst",
"소요사업비_시설부대비(백만원)": "reqBizSbsdCst",
"소요사업비_기타(백만원)": "reqBizEtc",
"재원조달계획_총(백만원)": "prcmPlanGrssCst",
"재원조달계획_국비(백만원)": "prcmPlanNlep",
"재원조달계획_지방비(백만원)": "prcmPlanLcep",
"재원조달계획_원인자부담(백만원)": "prcmPlanBrdnCst",
"재원조달계획_국고비율(백만원)": "prcmPlanEcqrRt",
"사업비 정산_총(백만원)": "clclnGrssCst",
"사업비 정산_국비(백만원)": "clclnNlep",
"사업비 정산_지방비(백만원)": "clclnLcep",
"사업비 정산_원인자부담(백만원)": "clclnBrdnCst",
"사업비 정산_국고비율(백만원)": "clclnEcqrRt"
}
interface PbnstSttnItem {
rvbsn: string;
lgbsn: number;
mdmbsn?: string;
rgnNm?: string;
sido?: number;
gugun?: number;
bscFctNm?: string;
efflWqltStndrdNm?: string;
fctCpc?: number;
tel?: string;
ruseUtztnFcltNm?: string;
fcltCpct?: number;
splyExtraCpct?: number;
ruseCpct?: number;
usageTotal?: number;
inUsage?: number;
outUsage?: number;
}
export const excelPbnstSttnParsing = (data: PbnstSttnItem[]): string[][] => {
const excelExportData: string[][] = [];
data.forEach((item) => {
excelExportData.push([
item.rvbsn,
String(item.lgbsn),
item.mdmbsn ?? "",
item.rgnNm ?? "",
String(item.sido ?? ""),
String(item.gugun ?? ""),
String(item.bscFctNm ?? ""),
String(item.efflWqltStndrdNm ?? ""),
String(item.fctCpc ?? ""),
String(item.tel ?? ""),
String(item.ruseUtztnFcltNm ?? ""),
String(item.fcltCpct ?? ""),
String(item.splyExtraCpct ?? ""),
String(item.ruseCpct ?? ""),
String(item.usageTotal ?? ""),
String(item.inUsage ?? ""),
String(item.outUsage ?? ""),
])
})
return excelExportData;
};