wr: 지도점검결과 중수도 수정

This commit is contained in:
2026-04-09 18:12:09 +09:00
parent c6838839e6
commit c5df40a9ef
6 changed files with 196 additions and 206 deletions
@@ -65,7 +65,8 @@ export default function Page() {
rswtChkDelete, // 중수도시설 지도점검 선택 건 삭제
rswtrChkExcelDownload, // 중수도시설 지도점검 엑셀 양식/데이터 조회
rswtChkHeadChange, // 중수도시설 테이블 헤더 선택 상태 변경
getLaeSeCdCheck // 사용자 관할 기관 코드 조회
getLaeSeCdCheck, // 사용자 관할 기관 코드 조회
getCommonCodesByKeys, // 지도점검 화면에서 필요한 공통코드 보강 조회
} = useWrStore((state) => {
return state;
});
@@ -93,8 +94,15 @@ export default function Page() {
useEffect(() => {
getLaeSeCdCheck();
const hasRequiredCodes =
code.rainRswtMng.length > 0 &&
code.rainFcltFlowRate.length > 0 &&
code.dmdUszCd.length > 0;
if (!hasRequiredCodes) {
void getCommonCodesByKeys(["WR014", "WR015", "WR016"]);
}
useInitRef.current = true; // getLaeSeCdCheck()를 호출한 뒤 true로 바뀜
}, []);
}, [getLaeSeCdCheck, getCommonCodesByKeys, code.rainRswtMng, code.rainFcltFlowRate, code.dmdUszCd]);
@@ -102,75 +110,46 @@ export default function Page() {
if (searchYear)
if (selFcltDiv === "RNB") { // 빗물
if (fcltNm) {
rainChkNmSearch(
rainPageNation,
rainPageSize,
searchYear,
laeSeCd,
fcltNm
);
rainChkNmSearch( rainPageNation, rainPageSize, searchYear, laeSeCd, fcltNm );
setRainPageNation(1);
} else {
rainChkInit(rainPageNation, rainPageSize, searchYear, laeSeCd);
}
} else { // 중수도
if (fcltNm) {
rswtChkNmSearch(
rswtPageNation,
rswtPageSize,
searchYear,
laeSeCd,
fcltNm
);
rswtChkNmSearch( rswtPageNation, rswtPageSize, searchYear, laeSeCd, fcltNm );
setRswtPageNation(1);
} else {
rswtChkgdnInit(rswtPageNation, rswtPageSize, searchYear, laeSeCd);
}
}
};
const rainPageChange = (pageNo: number) => {
if (pageNo > 0) {
setRainPageNation(pageNo);
if (fcltNm) {
rainChkNmSearch(
pageNo,
rainPageSize,
searchYear,
laeSeCd,
fcltNm
);
rainChkNmSearch( pageNo, rainPageSize, searchYear, laeSeCd, fcltNm );
} else {
rainChkInit(pageNo, rainPageSize, searchYear, laeSeCd);
}
}
};
const rswtPageChange = (pageNo: number) => {
if (pageNo > 0) {
setRswtPageNation(pageNo);
if (fcltNm) {
rswtChkNmSearch(
pageNo,
rswtPageSize,
searchYear,
laeSeCd,
fcltNm
);
rswtChkNmSearch( pageNo, rswtPageSize, searchYear, laeSeCd, fcltNm );
} else {
rswtChkgdnInit(pageNo, rswtPageSize, searchYear, laeSeCd);
}
}
};
useEffect(() => {
if (useInitRef.current == true && laeSeCd !== undefined&& !rainChkgdn.isInit) {
rainChkInit(
1,
rainPageSize,
new Date().getFullYear().toString(),
laeSeCd
);
rainChkInit( 1, rainPageSize, new Date().getFullYear().toString(), laeSeCd );
isRainSttn(false);
setIsModal({ data: {}, open: false });
setIsRegExcel(false);
@@ -179,12 +158,7 @@ export default function Page() {
useEffect(() => {
if (useInitRef.current == true && laeSeCd !== undefined&&!rswtChkgdn.isInit) {
rswtChkgdnInit(
1,
rswtPageSize,
new Date().getFullYear().toString(),
laeSeCd
);
rswtChkgdnInit( 1, rswtPageSize, new Date().getFullYear().toString(), laeSeCd );
setIsModal({ data: {}, open: false });
setIsRegExcel(false);
}
@@ -192,38 +166,24 @@ export default function Page() {
useEffect(() => {
if (rswtChkgdn.excelList[0] && rswtChkgdn.excelList[0]?.data.length > 1) {
excelArrayDownload(
"중수도시설 지도점검",
"sample_rs_chk.xlsx",
rswtChkgdn.excelList
);
excelArrayDownload( "중수도시설 지도점검", "sample_rs_chk.xlsx", rswtChkgdn.excelList );
}
}, [rswtChkgdn.excelList]);
useEffect(() => {
excelDownload(
rainChkgdn.excelList,
"빗물이용시설 지도점검",
"sample_rainy.xlsx",
"A1:AN1",
2
);
rainChkgdn.excelList, "빗물이용시설 지도점검", "sample_rainy.xlsx", "A1:AN1", 2 );
}, [rainChkgdn.excelList]);
const excelClick = useCallback(() => {
if (selFcltDiv === "RNB") {
rainChkExcelDownload(code.cityCd, code.sggCd,laeSeCd);
} else {
rswtrChkExcelDownload(code.cityCd, code.sggCd,laeSeCd);
}
}, [
rainChkExcelDownload,
rswtrChkExcelDownload,
code.cityCd,
code.sggCd,
selFcltDiv,
laeSeCd
]);
if (selFcltDiv === "RNB") {
rainChkExcelDownload(code.cityCd, code.sggCd,laeSeCd);
} else {
rswtrChkExcelDownload(code.cityCd, code.sggCd,laeSeCd);
}
},
[ rainChkExcelDownload, rswtrChkExcelDownload, code.cityCd, code.sggCd, selFcltDiv, laeSeCd ]
);
const handleClick = useCallback(
(data: any) => {
@@ -264,6 +224,7 @@ export default function Page() {
}
}
};
const chkUpdateTable = async (selFcltDiv: string) => {
if (selFcltDiv === "RNB") {
if (updateRainDetail && updateRainDetail.length > 0) {
+106 -52
View File
@@ -40,7 +40,6 @@ const codeMApping = {
};
export const getCommonUpCd = async (set: any) => {
try {
let lwCdCode: Record<string, SelectDataType[]> = {};
const upCd = await getFetchWithCount(
fetchType.CS,
"/cms-service/api/v1/up-codes?keyword=&upCd=&cdSe=&useYn=Y&siteId=WR&page=0&size=100&sort=string"
@@ -50,24 +49,9 @@ export const getCommonUpCd = async (set: any) => {
.filter((item: any) => item.upCd.slice(0, 2) === "WR")
.map((cd: any) => cd.upCd);
await Promise.all(
upWrCode.map(async (cd) => {
const mapping = codeMApping[cd as keyof typeof codeMApping];
if (!mapping) return;
await fetchCommonCodesByKeys(upWrCode);
const lwCd = await getFetchWithCount(
fetchType.CS,
`/cms-service/api/v1/lwpo-cds/up-cd/${cd}`
);
const list = Array.isArray(lwCd) ? lwCd : (lwCd.content ?? []);
lwCds[mapping] = list.map((it: any) => ({
text: it.lwpoCdNm,
val: it.lwpoCd,
}));
})
);
lwCdCode = lwCds;
const lwCdCode = lwCds;
set((state: comCodeState) => ({
code: {
...state.code,
@@ -78,6 +62,8 @@ export const getCommonUpCd = async (set: any) => {
pplLenght: lwCdCode["pplLenght"] ?? [],
dmdUszCd: lwCdCode["dmdUszCd"] ?? [],
sewageOutFclttUse: lwCdCode["sewageOutFclttUse"] ?? [],
rainRswtMng: lwCdCode["rainRswtMng"] ?? [],
rainFcltFlowRate: lwCdCode["rainFcltFlowRate"] ?? [],
ruseMngMtd: lwCdCode["ruseMngMtd"] ?? [],
rusePrcsMthdCd: lwCdCode["rusePrcsMthdCd"] ?? [],
erctUswtrPrcsMeth: lwCdCode["erctUswtrPrcsMeth"] ?? [],
@@ -93,6 +79,30 @@ export const getCommonUpCd = async (set: any) => {
console.log("com code error ", e);
}
};
const fetchCommonCodesByKeys = async (keys: string[]) => {
const targets = [...new Set(keys)].filter(
(cd) => Boolean(codeMApping[cd as keyof typeof codeMApping])
);
await Promise.all(
targets.map(async (cd) => {
const mapping = codeMApping[cd as keyof typeof codeMApping];
if (!mapping) return;
const lwCd = await getFetchWithCount(
fetchType.CS,
`/cms-service/api/v1/lwpo-cds/up-cd/${cd}`
);
const list = Array.isArray(lwCd) ? lwCd : (lwCd.content ?? []);
lwCds[mapping] = list.map((it: any) => ({
text: it.lwpoCdNm,
val: it.lwpoCd,
}));
})
);
};
//물재이용 주소 코드: devU01TX0FVVEgyMDI1MDgyNTEwMzkwNDExNjEwNTM=
export const buildingType = {
RST: "RST",
@@ -219,41 +229,42 @@ export const getEnvPartCd = async (set: any) => {
export type comCodeState = {
code: {
isInit: boolean;
chBuCd: SelectDataType[];
rainFcltCd: SelectDataType[];
bdstUsgCd: SelectDataType[];
cityCd: SelectDataType[];
sggCd: SelectDataType[];
rvbsnCd: SelectDataType[];
mdmbsnCd: SelectDataType[];
lgbsnCd: SelectDataType[];
lclgvrnmntCd: EnvPartSelectDataType[];
orgwtKndCd: SelectDataType[];
yn: SelectDataType[];
pplQulity: SelectDataType[];
pplLenght: SelectDataType[];
dmdUszCd: SelectDataType[];
sewageOutFclttUse: SelectDataType[];
isInit: boolean; // 초기화 여부
chBuCd: SelectDataType[]; // 변경사업코드
rainFcltCd: SelectDataType[]; // 빗물시설코드
bdstUsgCd: SelectDataType[]; // 건물용도코드
cityCd: SelectDataType[]; // 시도코드
sggCd: SelectDataType[]; // 시군구코드
rvbsnCd: SelectDataType[]; // 대권역코드
mdmbsnCd: SelectDataType[]; // 중권역코드
lgbsnCd: SelectDataType[]; // 단위유역(대영역)코드
lclgvrnmntCd: EnvPartSelectDataType[]; // 지방환경청코드
orgwtKndCd: SelectDataType[]; // 원수종류코드
yn: SelectDataType[]; // 여부코드
pplQulity: SelectDataType[]; // 관저질
pplLenght: SelectDataType[]; // 관연장
dmdUszCd: SelectDataType[]; // 용도별코드
sewageOutFclttUse: SelectDataType[]; // 하수재이용 장외코드
rainRswtMng: SelectDataType[]; // 운영관리형태코드
rainFcltFlowRate: SelectDataType[]; // 유량측정방법코드
buildingType: {
RST: string;
RNB: string;
HTB: string;
};
ruseMngMtd: SelectDataType[];
ruseSeCd: SelectDataType[];
ruseBizMthdCd: SelectDataType[];
rusePrcsMthdCd: SelectDataType[];
erctUswtrPrcsMeth: SelectDataType[];
bdstFilterYn: SelectDataType[];
bdstIncenYn: SelectDataType[];
bdstGrntchClass: SelectDataType[];
// rswtPrscCdMthdCd: SelectDataType[];
htdPowerMthdCd: SelectDataType[];
htdUtztnUsgCd: SelectDataType[];
rswtBdstType: SelectDataType[];
bdstTotalUsgType: SelectDataType[];
userSiSggCd: string;
RST: string; // 중수도시설 구분
RNB: string; // 빗물이용시설 구분
HTB: string; // 온배수시설 구분
}; // 시설구분
ruseMngMtd: SelectDataType[]; // 재이용관리방식코드
ruseSeCd: SelectDataType[]; // 재이용구분코드
ruseBizMthdCd: SelectDataType[]; // 재이용사업방식코드
rusePrcsMthdCd: SelectDataType[]; // 재이용처리공법코드
erctUswtrPrcsMeth: SelectDataType[]; // 하수처리공법코드
bdstFilterYn: SelectDataType[]; // 여과시설여부코드
bdstIncenYn: SelectDataType[]; // 인센티브여부코드
bdstGrntchClass: SelectDataType[]; // 보조금지원대상분류코드
htdPowerMthdCd: SelectDataType[]; // 온배수발전방식코드
htdUtztnUsgCd: SelectDataType[]; // 온배수이용용도코드
rswtBdstType: SelectDataType[]; // 중수도건물유형코드
bdstTotalUsgType: SelectDataType[]; // 전체건물용도유형코드
userSiSggCd: string; // 사용자 시군구코드
};
};
@@ -277,6 +288,8 @@ export const comCodeStateExport: comCodeState = {
yn: yn,
dmdUszCd: lwCds["dmdUszCd"] ?? [],
sewageOutFclttUse: lwCds["sewageOutFclttUse"] ?? [],
rainRswtMng: lwCds["rainRswtMng"] ?? [],
rainFcltFlowRate: lwCds["rainFcltFlowRate"] ?? [],
buildingType: buildingType,
ruseMngMtd: lwCds["ruseMngMtd"] ?? [],
ruseSeCd: ruseSeCd,
@@ -298,10 +311,51 @@ export const comCodeStateExport: comCodeState = {
export type comCodeActions = {
returnCodeText: (val: string, codeName: string) => string;
returnTextCode: (text: string, codeName: string) => string;
getCommonCodesByKeys: (keys: string[]) => Promise<void>;
};
export const codeActionExport: (set: any, get:any) => comCodeActions = (set: any, get:any) => {
return {
getCommonCodesByKeys: async (keys: string[]) => {
try {
await fetchCommonCodesByKeys(keys);
const lwCdCode = lwCds;
set((state: comCodeState) => ({
code: {
...state.code,
rainFcltCd: lwCdCode["rainFcltCd"] ?? state.code.rainFcltCd,
bdstUsgCd: lwCdCode["bdstUsgCd"] ?? state.code.bdstUsgCd,
orgwtKndCd: lwCdCode["orgwtKndCd"] ?? state.code.orgwtKndCd,
pplQulity: lwCdCode["pplQulity"] ?? state.code.pplQulity,
pplLenght: lwCdCode["pplLenght"] ?? state.code.pplLenght,
dmdUszCd: lwCdCode["dmdUszCd"] ?? state.code.dmdUszCd,
sewageOutFclttUse:
lwCdCode["sewageOutFclttUse"] ?? state.code.sewageOutFclttUse,
rainRswtMng: lwCdCode["rainRswtMng"] ?? state.code.rainRswtMng,
rainFcltFlowRate:
lwCdCode["rainFcltFlowRate"] ?? state.code.rainFcltFlowRate,
ruseMngMtd: lwCdCode["ruseMngMtd"] ?? state.code.ruseMngMtd,
rusePrcsMthdCd:
lwCdCode["rusePrcsMthdCd"] ?? state.code.rusePrcsMthdCd,
erctUswtrPrcsMeth:
lwCdCode["erctUswtrPrcsMeth"] ?? state.code.erctUswtrPrcsMeth,
bdstGrntchClass:
lwCdCode["bdstGrntchClass"] ?? state.code.bdstGrntchClass,
htdPowerMthdCd:
lwCdCode["htdPowerMthdCd"] ?? state.code.htdPowerMthdCd,
htdUtztnUsgCd:
lwCdCode["htdUtztnUsgCd"] ?? state.code.htdUtztnUsgCd,
rswtBdstType: lwCdCode["rswtBdstType"] ?? state.code.rswtBdstType,
bdstTotalUsgType:
lwCdCode["bdstUsgCd"]?.concat(lwCdCode["rswtBdstType"] || []) ??
state.code.bdstTotalUsgType,
},
}));
} catch (e) {
console.log("selected common code error ", e);
}
},
returnCodeText: (val: string, codeName: string) => {
const codeList = get().code[codeName] || [];
@@ -270,35 +270,25 @@ export const rswtExcelDataCheck = (
issues: string[]
) => {
// const chkMngType = { "01": "위탁", "02": "자체" };
//rainRswtMng: SelectDataType[]; // 운영관리형태코드
// console.log(rswtChkgdData);
rswtChkgdData.forEach((rswt: any) => {
const defaultMessage = `*중수도 수질 [NO: ${rswt.bdstRuseFcltSn}, 점검일: ${rswt.chckYmd}, 이용용도: ${codeToText(rswt.utztnUsgCd ,"dmdUszCd")??rswt.utztnUsgCd}] 항목에서 `;
if (rswt.chckYmd && isInvalidDate(rswt.chckYmd)) {
issues.push(defaultMessage + `점검일: 날짜 형식 아님 (${rswt.chckYmd})`);
}
// if (rswt.operMngCd?.length > 1 && !chkMngType[rswt.operMngCd]) {
// issues.push(
// defaultMessage +
// `운영관리형태: 위탁 혹은 자체만 허용 (${rswt.operMngCd})`
// );
// }
// if (rswt.utztnUsgCd?.length > 2 && !codeToText(rswt.utztnUsgCd, "dmdUszCd")) {
// issues.push(
// defaultMessage + `이용용도: 허용되지 않은 값 (${rswt.utztnUsgCd})`
// );
// }
if (rswt.operMngCd?.length > 1 && !codeToText(rswt.operMngCd, "rainRswtMng")) {
issues.push( defaultMessage + `운영관리형태: 위탁 혹은 자체만 허용 (${rswt.operMngCd})` );
}
if (rswt.utztnUsgCd?.length > 2 && !codeToText(rswt.utztnUsgCd, "dmdUszCd")) {
issues.push( defaultMessage + `이용용도: 허용되지 않은 값 (${rswt.utztnUsgCd})` );
}
if (rswt.anlOperCst.length > 2 && isInvalidNumber(rswt.anlOperCst)) {
issues.push(
defaultMessage +
` 연간운영비(원/년): 숫자 형식 아님 (${rswt.anlOperCst})`
);
issues.push( defaultMessage + ` 연간운영비(원/년): 숫자 형식 아님 (${rswt.anlOperCst})` );
}
if (rswt.prcsCpct.length > 2 && isInvalidNumber(rswt.prcsCpct)) {
issues.push(
defaultMessage + ` 처리용량(m³): 숫자 형식 아님 (${rswt.prcsCpct})`
);
issues.push( defaultMessage + ` 처리용량(m³): 숫자 형식 아님 (${rswt.prcsCpct})` );
}
// if (
// rswt.spwtPositn.length > 1 &&
@@ -313,55 +303,31 @@ export const rswtExcelDataCheck = (
if (rswt?.rswtrPollutions && rswt?.rswtrPollutions.length > 0) {
rswt.rswtrPollutions.forEach((pol) => {
if (isInvalidNumber(pol.grssClfgUswtr)) {
issues.push(
defaultMessage +
`${pol.node}분기_총대장균군수: 숫자 형식 아님 (${pol.grssClfgUswtr})`
);
issues.push( defaultMessage + `${pol.node}분기_총대장균군수: 숫자 형식 아님 (${pol.grssClfgUswtr})` );
}
if (isInvalidNumber(pol.combResdch)) {
issues.push(
defaultMessage +
`${pol.node}분기_결합잔류염소: 숫자 형식 아님 (${pol.combResdch})`
);
issues.push( defaultMessage + `${pol.node}분기_결합잔류염소: 숫자 형식 아님 (${pol.combResdch})` );
}
if (isInvalidNumber(pol.trbt)) {
issues.push(
defaultMessage +
`${pol.node}분기_탁도: 숫자 형식 아님 (${pol.trbt})`
);
issues.push( defaultMessage + `${pol.node}분기_탁도: 숫자 형식 아님 (${pol.trbt})` );
}
if (isInvalidNumber(pol.bod)) {
issues.push(
defaultMessage + `${pol.node}분기_BOD: 숫자 형식 아님 (${pol.bod})`
);
issues.push( defaultMessage + `${pol.node}분기_BOD: 숫자 형식 아님 (${pol.bod})` );
}
if (isInvalidNumber(pol.crmty)) {
issues.push(
defaultMessage +
`${pol.node}분기_색도: 숫자 형식 아님 (${pol.crmty})`
);
issues.push( defaultMessage + `${pol.node}분기_색도: 숫자 형식 아님 (${pol.crmty})` );
}
if (isInvalidNumber(pol.tph)) {
issues.push(
defaultMessage + `${pol.node}분기_T-P: 숫자 형식 아님 (${pol.tph})`
);
issues.push( defaultMessage + `${pol.node}분기_T-P: 숫자 형식 아님 (${pol.tph})` );
}
if (isInvalidNumber(pol.tn)) {
issues.push(
defaultMessage + `${pol.node}분기_T-N: 숫자 형식 아님 (${pol.tn})`
);
issues.push( defaultMessage + `${pol.node}분기_T-N: 숫자 형식 아님 (${pol.tn})` );
}
if (pol.ph?.length > 1 && isInvalidNumber(pol.ph)) {
issues.push(
defaultMessage + `${pol.node}분기_PH: 숫자 형식 아님 (${pol.ph})`
);
if (isInvalidNumber(pol.ph)) {
issues.push( defaultMessage + `${pol.node}분기_PH: 숫자 형식 아님 (${pol.ph})` );
}
if (isInvalidNumber(pol.clIonQnt)) {
issues.push(
defaultMessage +
`${pol.node}분기_염소이온량: 숫자 형식 아님 (${pol.clIonQnt})`
);
if (isInvalidNumber(pol.clIonQnt)) {
issues.push( defaultMessage + `${pol.node}분기_염소이온량: 숫자 형식 아님 (${pol.clIonQnt})` );
}
});
}
@@ -369,19 +335,43 @@ export const rswtExcelDataCheck = (
if (rswt?.rswtrDetails && rswt?.rswtrDetails.length > 0) {
rswt?.rswtrDetails.forEach((key) => {
if (key.levyAmt?.length > 1 && isInvalidNumber(key.levyAmt)) {
issues.push(
defaultMessage +
`과태료부과금액(천원): 숫자 형식 아님 (${key.levyAmt})`
);
issues.push( defaultMessage + `과태료부과금액(천원): 숫자 형식 아님 (${key.levyAmt})` );
}
if (key.vltnDt?.length > 2 && isInvalidDate(key.vltnDt)) {
issues.push(
defaultMessage +
`과태료 부과일(위반일): 날짜 형식 아님 (${key.vltnDt})`
);
issues.push( defaultMessage + `과태료 부과일(위반일): 날짜 형식 아님 (${key.vltnDt})` );
}
});
}
const polutionUseCodes = new Set<string>(
(rswt?.rswtrPollutions ?? [])
.map((pol) => pol.utztnUsgCd)
.filter((code): code is string => Boolean(code))
);
const guideDetailCodes = new Set<string>(
(rswt?.guideDetails ?? [])
.map((detail) => detail.utztnUsgCd)
.filter((code): code is string => Boolean(code))
);
polutionUseCodes.forEach((code) => {
if (!guideDetailCodes.has(code)) {
issues.push(
defaultMessage +
`중수도_점검결과_수질 sheet의 이용용도에 대응하는 중수도_점검결과_이용량현황sheet의 이용용도가 없습니다.`
);
}
});
guideDetailCodes.forEach((code) => {
if (!polutionUseCodes.has(code)) {
issues.push(
defaultMessage +
`중수도_점검결과_이용량현황sheet의 이용용도에 대응하는 중수도_점검결과_수질sheet의 이용용도가 없습니다.`
);
}
});
});
};
@@ -53,29 +53,14 @@ export type rswtChkgdnState = {
isInit: boolean; // 초기 목록 조회 완료 여부
isSttn: boolean; // 테이블 선택/상세 상태 제어 플래그
isLoading:boolean; // 등록/업로드 등 비동기 처리 진행 여부
rswtChkCount: number; // 메인 목록 전체 건수
rswtChkCount: number; // 메인 목록 전체 건수 : 시설의 건수임
};
};
type rswtChkgdnActions = {
rswtChkgdnInit: (
pageNo: number,
cnt: number,
year: string,
sggCd: string
) => void;
rswtChkNmSearch: (
pageNo: number,
cnt: number,
year: string,
sggCd: string,
txt: string
) => void;
rswtrChkExcelDownload(
sidoCode: SelectDataType[],
sggCode: SelectDataType[],
sggCd: string,
): Promise<void>;
rswtChkgdnInit: ( pageNo: number, cnt: number, year: string, sggCd: string ) => void;
rswtChkNmSearch: ( pageNo: number, cnt: number, year: string, sggCd: string, txt: string ) => void;
rswtrChkExcelDownload( sidoCode: SelectDataType[], sggCode: SelectDataType[], sggCd: string, ): Promise<void>;
rswtChkExceDataUpload: (excelData: rswtChkZodType[],laeSeCd:string) => Promise<string>;
rswtChkDelete: (chkgdnSns: number[] ,year:string) => Promise<string>;
rswtChkDetilsUpdate: (rswtChkDetails: rswtrChkDetailsZodType[] ,year:string) => Promise<string>;
@@ -189,8 +174,7 @@ export const rswtChkgdnActionsExport: (set: any) => rswtChkgdnActions = (
// set((state: rswtChkgdnType) => ({ rswtChkgdn: { ...state.rswtChkgdn, isLoading: true } }));
try {
const rswtChkRes = await initFetch(pageNo, cnt, year, sggCd);
// console.log(rswtChkRes);
set((state: rswtChkgdnState) => ({
...state,
rswtChkgdn: {
@@ -246,7 +230,7 @@ export const rswtChkgdnActionsExport: (set: any) => rswtChkgdnActions = (
rswtChkExceDataUpload: async (excelData: rswtChkZodType[],laeSeCd:string) => {
const successMessage = "지도점검 등록이 완료되었습니다.";
const failMessage = "지도점검 등록이 실패되었습니다.";
console.log(excelData);
// console.log(excelData);
try {
set((state: rswtChkgdnType) => (
{ rswtChkgdn: { ...state.rswtChkgdn, isLoading: true } }));
@@ -112,6 +112,7 @@ export const chRowspanTable = (
// rowspan된 셀 렌더링 여부 추적용
const renderedMap = new Map<string, Set<number>>();
// console.log(makeTableData);
return (
<>
{/* {makeTableData.map((row, rowIndex) => ( */}
@@ -246,7 +246,7 @@ export const filePickedArray=(oFile: File, headerNum:number=0):Promise<JSON[] |
wb.SheetNames.forEach(function (sheetName) {
const sheet = wb.Sheets[sheetName];
if (sheet) {
console.log(sheet)
// console.log(sheet)
jsonXls = XLSX.utils.sheet_to_json(sheet, { range: headerNum, raw:false }) as unknown as JSON;
arrayXls.push(jsonXls)
} else {