wr: 중수도시설 지도점검결과 등록
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
"use client";
|
||||
/**
|
||||
* 재이용실적등록 > 지도점검결과등록
|
||||
*/
|
||||
|
||||
"use client";
|
||||
|
||||
import { useWrStore } from "@/app/store";
|
||||
import { btnClass } from "@/app/store/common/code";
|
||||
@@ -43,25 +47,25 @@ import { useTranslation } from "react-i18next";
|
||||
|
||||
export default function Page() {
|
||||
const {
|
||||
auth,
|
||||
code,
|
||||
rainChkgdn,
|
||||
rswtChkgdn,
|
||||
rainChkInit,
|
||||
rainChkDetilUpdate,
|
||||
rainChkDelete,
|
||||
rainChkExcelDownload,
|
||||
rainChkHeadChange,
|
||||
rainChkNmSearch,
|
||||
isRainSttn,
|
||||
rswtChkgdnInit,
|
||||
rswtChkNmSearch,
|
||||
rswtChkPolInit,
|
||||
rswtChkDetilsUpdate,
|
||||
rswtChkDelete,
|
||||
rswtrChkExcelDownload,
|
||||
rswtChkHeadChange,
|
||||
getLaeSeCdCheck
|
||||
auth, // 사용자 권한 및 로그인 사용자 기준 정보
|
||||
code, // 공통 코드 및 지역 코드 정보
|
||||
rainChkgdn, // 빗물이용시설 지도점검 화면 상태
|
||||
rswtChkgdn, // 중수도시설 지도점검 화면 상태
|
||||
rainChkInit, // 빗물이용시설 지도점검 목록 초기 조회
|
||||
rainChkDetilUpdate, // 빗물이용시설 지도점검 상세 수정 저장
|
||||
rainChkDelete, // 빗물이용시설 지도점검 선택 건 삭제
|
||||
rainChkExcelDownload, // 빗물이용시설 지도점검 엑셀 양식/데이터 조회
|
||||
rainChkHeadChange, // 빗물이용시설 테이블 헤더 선택 상태 변경
|
||||
rainChkNmSearch, // 빗물이용시설명으로 목록 조회
|
||||
isRainSttn, // 빗물이용시설 상세/선택 상태 초기화
|
||||
rswtChkgdnInit, // 중수도시설 지도점검 목록 초기 조회
|
||||
rswtChkNmSearch, // 중수도시설명으로 목록 조회
|
||||
rswtChkPolInit, // 중수도 시설구분 변경 시 조회조건 초기화
|
||||
rswtChkDetilsUpdate, // 중수도시설 지도점검 상세 수정 저장
|
||||
rswtChkDelete, // 중수도시설 지도점검 선택 건 삭제
|
||||
rswtrChkExcelDownload, // 중수도시설 지도점검 엑셀 양식/데이터 조회
|
||||
rswtChkHeadChange, // 중수도시설 테이블 헤더 선택 상태 변경
|
||||
getLaeSeCdCheck // 사용자 관할 기관 코드 조회
|
||||
} = useWrStore((state) => {
|
||||
return state;
|
||||
});
|
||||
|
||||
@@ -13,6 +13,11 @@ import {
|
||||
} from "../rainChkgdn/excel";
|
||||
import { codeToText, textToCode } from "@/components/lib/func/common";
|
||||
|
||||
const normalizeExcelDateInput = (value: unknown) => {
|
||||
if (value === undefined || value === null) return "";
|
||||
return String(value).replace(/[.\-\/\s]/g, "");
|
||||
};
|
||||
|
||||
export const rswtMakeExcelSample = (
|
||||
buildings: Buildingtype[],
|
||||
sidoCode: SelectDataType[],
|
||||
@@ -142,7 +147,7 @@ export const excelToRswtGuideData = (
|
||||
const rswtChkgdData: rswtChkZodType[] = excelData
|
||||
.map((item: any) => {
|
||||
if (item["점검일"] !== undefined) {
|
||||
const checkYmd = item["점검일"].replace(/\./g, "");
|
||||
const checkYmd = normalizeExcelDateInput(item["점검일"]);
|
||||
|
||||
const makeGuidDetail = Array.from({ length: 12 }, (_, i) => {
|
||||
let month = `${i + 1}`;
|
||||
@@ -156,20 +161,18 @@ export const excelToRswtGuideData = (
|
||||
ruseFcltUtztnQnt: rswtData !== "" ? rswtData : 0,
|
||||
};
|
||||
});
|
||||
if (checkYmd.length > 7) {
|
||||
return {
|
||||
bdstRuseFcltSn: Number(item["NO"]),
|
||||
operMngCd: textToCode(item["운영관리형태"], "rainRswtMng") ??item["운영관리형태"],
|
||||
anlOperCst: parseCommaRawValue(item["연간운영비(원/년)"]),
|
||||
prcsCpct: parseRawValue(item[`처리용량(m³)`]),
|
||||
spwtPositn: item["채수지점"],
|
||||
chckYmd: checkYmd,
|
||||
utztnUsgCd: textToCode(item["이용용도"], "dmdUszCd")??item["이용용도"],
|
||||
guideDetails: makeGuidDetail,
|
||||
rgtr: TEST_UUID,
|
||||
mdfr: TEST_UUID,
|
||||
};
|
||||
}
|
||||
return {
|
||||
bdstRuseFcltSn: Number(item["NO"]),
|
||||
operMngCd: textToCode(item["운영관리형태"], "rainRswtMng") ??item["운영관리형태"],
|
||||
anlOperCst: parseCommaRawValue(item["연간운영비(원/년)"]),
|
||||
prcsCpct: parseRawValue(item[`처리용량(m³)`]),
|
||||
spwtPositn: item["채수지점"],
|
||||
chckYmd: checkYmd,
|
||||
utztnUsgCd: textToCode(item["이용용도"], "dmdUszCd")??item["이용용도"],
|
||||
guideDetails: makeGuidDetail,
|
||||
rgtr: TEST_UUID,
|
||||
mdfr: TEST_UUID,
|
||||
};
|
||||
}
|
||||
})
|
||||
.filter((el: any) => el !== undefined);
|
||||
@@ -186,11 +189,8 @@ export const excelToRswtPolution = (excelData: any) => {
|
||||
const rswtChkgdData: rswtChkZodType[] = excelData
|
||||
.map((item: any) => {
|
||||
if (item["점검일"] !== undefined) {
|
||||
const checkYmd = item["점검일"].replace(/\./g, "");
|
||||
let vltnDt = item["과태료 부과일(위반일)"];
|
||||
if (vltnDt !== undefined) {
|
||||
vltnDt = vltnDt.replace(/\./g, "");
|
||||
}
|
||||
const checkYmd = normalizeExcelDateInput(item["점검일"]);
|
||||
const vltnDt = normalizeExcelDateInput(item["과태료 부과일(위반일)"]);
|
||||
|
||||
const makePoluttion = Array.from({ length: 4 }, (_, i) => {
|
||||
const quarter = `${i + 1}`;
|
||||
|
||||
@@ -41,19 +41,19 @@ export type rswtChkZodType = z.infer<typeof rswtChkgdZod>;
|
||||
export type rswtrChkDetailsZodType = z.infer<typeof rswtrDetailsZod>;
|
||||
export type rswtChkgdnState = {
|
||||
rswtChkgdn: {
|
||||
rswtChkHeadList: TableUpperProps[];
|
||||
rswtDetailHeadList: TableUpperProps[];
|
||||
|
||||
rswtHeadNm: chHeadType[];
|
||||
excelList: SheetParameter[];
|
||||
rswtChkRes: rswtChkZodType[];
|
||||
rswtChkPolGuide: rswtChkZodType[];
|
||||
rswtSplHeadNm:chHeadType[]
|
||||
rswtRuseHeadNm:chHeadType[]
|
||||
isInit: boolean;
|
||||
isSttn: boolean;
|
||||
isLoading:boolean;
|
||||
rswtChkCount: number;
|
||||
rswtChkHeadList: TableUpperProps[]; // 중수도 지도점검 메인 목록 헤더
|
||||
rswtDetailHeadList: TableUpperProps[]; // 중수도 지도점검 상세 목록 헤더
|
||||
|
||||
rswtHeadNm: chHeadType[]; // 메인 목록 다단 헤더명
|
||||
excelList: SheetParameter[]; // 엑셀 다운로드용 시트 데이터
|
||||
rswtChkRes: rswtChkZodType[]; // 중수도 지도점검 메인 목록 데이터
|
||||
rswtChkPolGuide: rswtChkZodType[]; // 선택한 지도점검 1건의 수질/대체수 상세 데이터
|
||||
rswtSplHeadNm:chHeadType[] // 공급량 관련 다단 헤더명
|
||||
rswtRuseHeadNm:chHeadType[] // 재이용량 관련 다단 헤더명
|
||||
isInit: boolean; // 초기 목록 조회 완료 여부
|
||||
isSttn: boolean; // 테이블 선택/상세 상태 제어 플래그
|
||||
isLoading:boolean; // 등록/업로드 등 비동기 처리 진행 여부
|
||||
rswtChkCount: number; // 메인 목록 전체 건수
|
||||
};
|
||||
};
|
||||
|
||||
@@ -242,12 +242,14 @@ export const rswtChkgdnActionsExport: (set: any) => rswtChkgdnActions = (
|
||||
console.log(error);
|
||||
}
|
||||
},
|
||||
// 중수도 지도점검결과 upload
|
||||
rswtChkExceDataUpload: async (excelData: rswtChkZodType[],laeSeCd:string) => {
|
||||
const successMessage = "지도점검 등록이 완료되었습니다.";
|
||||
const failMessage = "지도점검 등록이 실패되었습니다.";
|
||||
console.log(excelData);
|
||||
try {
|
||||
set((state: rswtChkgdnType) => (
|
||||
{ rswtChkgdn: { ...state.rswtChkgdn, isLoading: true } }));
|
||||
set((state: rswtChkgdnType) => (
|
||||
{ rswtChkgdn: { ...state.rswtChkgdn, isLoading: true } }));
|
||||
const res = await postFectch("/reuseChk/reuseWater", excelData);
|
||||
if (!res.ok) {
|
||||
return failMessage;
|
||||
|
||||
Reference in New Issue
Block a user