diff --git a/apps/wr/app/store/matDmd/coMatRvw/headList.tsx b/apps/wr/app/store/matDmd/coMatRvw/headList.tsx
index 7b43e4b00..6b783ea68 100644
--- a/apps/wr/app/store/matDmd/coMatRvw/headList.tsx
+++ b/apps/wr/app/store/matDmd/coMatRvw/headList.tsx
@@ -29,12 +29,12 @@ export const coRvwHeadListExport: CommonTableProps[]= [
visible: true,
},
{
- id: "regDt", //바꾸기
+ id: "dmndTmng", //바꾸기
title: "신청일자",
visible: true,
},
{
- id: "state", //바꾸기
+ id: "splyFcltFlg", //바꾸기
title: "진행상태",
visible: true,
},
diff --git a/apps/wr/app/store/matDmd/coMatRvw/index.tsx b/apps/wr/app/store/matDmd/coMatRvw/index.tsx
index 89836957b..21d4e0252 100644
--- a/apps/wr/app/store/matDmd/coMatRvw/index.tsx
+++ b/apps/wr/app/store/matDmd/coMatRvw/index.tsx
@@ -103,12 +103,18 @@ export const coRvwActionsExport: (set: any) => coRvwActions = (set: any) => {
data
);
+ if(isUpdate){
+ toast.error("수요 매칭 검토 검토로 저장되었습니다.");
+ }
+
const coMatRvwRes = coMatInit(
1,
10,
new Date().getFullYear().toString(),
new Date().getFullYear().toString(),
);
+
+
return set((state: coRvwState) => ({
...state,
coRvw: {
diff --git a/apps/wr/app/store/matDmd/coMatRvw/type.tsx b/apps/wr/app/store/matDmd/coMatRvw/type.tsx
index 9f146c0fb..fb80ec415 100644
--- a/apps/wr/app/store/matDmd/coMatRvw/type.tsx
+++ b/apps/wr/app/store/matDmd/coMatRvw/type.tsx
@@ -53,7 +53,7 @@ import { z } from "zod";
rgtr: z.string().nullish(),
mdfcnDt: z.coerce.date().nullish(),
mdfr: z.string().nullish(),
- dmdAplyPswd: z.string(),
+ dmdAplyPswd: z.string().nullish(),
demandInfo: z.array(DemandInfoSchema.nullish()).nullish(), // 안쓰는 거임
demandMatchings: z.array(DemandMatchingSchema.nullish()).nullish()// 안쓰는 거임
});
diff --git a/apps/wr/app/store/matDmd/coSttn/headList.tsx b/apps/wr/app/store/matDmd/coSttn/headList.tsx
index 80fed0d76..62c3002ac 100644
--- a/apps/wr/app/store/matDmd/coSttn/headList.tsx
+++ b/apps/wr/app/store/matDmd/coSttn/headList.tsx
@@ -44,6 +44,11 @@ export const coSttHeadListExport: z.infer = [
title: "전화번호",
visible: true,
},
+ {
+ id: "regDt",
+ title: "등록일자",
+ visible: true,
+ },
];
export const coSttNodeListExport: CommonTableProps[] = [
diff --git a/apps/wr/app/store/matDmd/coSttn/index.tsx b/apps/wr/app/store/matDmd/coSttn/index.tsx
index 0de37bbfc..5e8baf859 100644
--- a/apps/wr/app/store/matDmd/coSttn/index.tsx
+++ b/apps/wr/app/store/matDmd/coSttn/index.tsx
@@ -2,7 +2,7 @@ import type { CommonTableProps } from "@/app/store/common/type/header";
import { fetchType, getFetch, getFetchWithCount } from "@/components/lib/api";
import { coSttHeadListExport, coSttNodeListExport } from "./headList";
import { excelCoSttnParsing } from "./excel";
-import type { DemandCompType } from "@common/business_components/ui";
+import type { DemandCompType } from "@common/business_components/ui/sdmInsertForm/form";
// 테이블 헤드 리스트
const coSttNodeList = coSttNodeListExport;
diff --git a/apps/wr/app/store/matDmd/ldrmntCoSttn/index.tsx b/apps/wr/app/store/matDmd/ldrmntCoSttn/index.tsx
index 6a5f18247..289ced6e1 100644
--- a/apps/wr/app/store/matDmd/ldrmntCoSttn/index.tsx
+++ b/apps/wr/app/store/matDmd/ldrmntCoSttn/index.tsx
@@ -20,6 +20,7 @@ export type ldrmntState = {
excelList: ExcelType[];
isInit: boolean;
ldrmntRes: customLdrmnt[];
+ isLoading: boolean;
};
};
@@ -35,6 +36,7 @@ type ldrmntActions = {
ldrmntSearch: (page: number, sggCd: string, total: string, coNm: string) => void;
ldrmntUpdate: (ldrmntRes: customLdrmnt) => void;
ldrmntDelete: () => void;
+ loadingOpen: (isOpen: boolean) => void
};
export type ldrmntType = ldrmntState & ldrmntActions;
@@ -46,6 +48,7 @@ export const ldrmntStateExport: ldrmntState = {
excelList: [],
isInit: false,
ldrmntRes: ldrmntRes,
+ isLoading: false,
},
};
@@ -75,31 +78,30 @@ export const ldrmntActionsExport: (set: any) => ldrmntActions = (
console.log(e)
}
},
+ loadingOpen: (isOpen) => {
+ return set((state: ldrmntState) => {
+ return {
+ ...state,
+ ldrmnt: {
+ ...state.ldrmnt,
+ isLoading: isOpen,
+ },
+ };
+ });
+ },
ldrmntRegData: async (data) => {
- try {
- const response = await postFectch(
- "/reuseFc/request/temp",
- data,
- fetchType.WR
- );
+ await deleteFectch(
+ `/reuseFc/request/temp`,
+ );
- console.log('response ', response)
+ const response = await postFectch(
+ "/reuseFc/request/temp",
+ data,
+ fetchType.WR
+ );
- if (response.status === 200) {
- ToastFormUi({
- body: "잠재수요처 등록이 완료되었습니다. ",
- title: "잠재수요처 등록",
- });
+ console.log('response ', response)
- }
- } catch (e) {
- console.log(e)
- ToastFormUi({
- body: "잠재수요처 등록이 실패하였습니다. ",
- title: "잠재수요처 등록",
- });
-
- }
},
ldrmntSearch: async (page: number, total: string, sggCd: string, coNm: string) => {
let searchUrl = "";
@@ -111,6 +113,7 @@ export const ldrmntActionsExport: (set: any) => ldrmntActions = (
searchUrl = `/reuseFc/request/temp/${page}/${total}/${sggCd}`;
}
}
+
try {
const ldrmntRes = await getFetch(
fetchType.WR,
@@ -178,11 +181,30 @@ export const ldrmntActionsExport: (set: any) => ldrmntActions = (
},
ldrmntDelete: async () => {
try {
+ set((state: ldrmntState) => {
+ return {
+ ...state,
+ ldrmnt: {
+ ...state.ldrmnt,
+ isLoading: true,
+ },
+ };
+ });
const response = await deleteFectch(
`/reuseFc/request/temp`,
);
} catch (error) {
+ console.log("error", error)
+ set((state: ldrmntState) => {
+ return {
+ ...state,
+ ldrmnt: {
+ ...state.ldrmnt,
+ isLoading: false,
+ },
+ };
+ });
console.error("Error ldrmntDelete:", error);
}
},
diff --git a/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/excel.tsx b/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/excel.tsx
index 58e8d6bf0..77045f165 100644
--- a/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/excel.tsx
+++ b/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/excel.tsx
@@ -124,9 +124,9 @@ export const excelToRainChkData = (excelData: any, year: string) => {
trbt: Number(item["탁도"] || 0),
grssClfg: Number(item["총대장균군수"] || 0),
etc: item["기타"] || "", // 필드 누락 방지
- vltnDt: vltnDt || "-",
- vltnMttr: item["위반사항"] || "-",
- levyAmt: Number(item["과태료부과금액(천원)"] || 0),
+ vltnDt: vltnDt || null,
+ vltnMttr: item["위반사항"] || "",
+ levyAmt: Number(item["과태료부과금액(천원)"] || null),
rgtr: TEST_UUID,
},
],
diff --git a/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList.tsx b/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList.tsx
index d7335e129..3cf1b5b11 100644
--- a/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList.tsx
+++ b/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList.tsx
@@ -114,10 +114,22 @@ export type splRuseWaterType = {
ruse12: number;
};
-export const rainHeadNmExport: chHeadType[] = [
+export const rainMainHeadNmExport: chHeadType[] = [
+ { headNm: "useQuilty", text: "이용수질(필요시)", length: 3 },
+ { headNm: "feeHist", text: "과태료 부과내역", length: 3 },
+];
+
+export const rainRuseHeadNmExport: chHeadType[] = [
+ { headNm: "useQuilty", text: "이용수질(필요시)", length: 3 },
+ { headNm: "feeHist", text: "과태료 부과내역", length: 3 },
+ { headNm: "ruseWater", text: "연간대체수 이용량(m³)", length: 13 },
+ { headNm: "detailQulity", text: "분기", length: 11 },
+];
+
+
+export const rainSplHeadNmExport: chHeadType[] = [
{ headNm: "useQuilty", text: "이용수질(필요시)", length: 3 },
{ headNm: "feeHist", text: "과태료 부과내역", length: 3 },
- { headNm: "ruseWater", text: "연간보급수 이용량(m³)", length: 13 },
{ headNm: "detailQulity", text: "분기", length: 11 },
{ headNm: "splWater", text: "연간빗물 이용량(m³)", length: 13 },
];
diff --git a/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/index.tsx b/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/index.tsx
index 4c7f2d514..63d2d1d03 100644
--- a/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/index.tsx
+++ b/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/index.tsx
@@ -3,18 +3,20 @@ import { TEST_UUID } from "@/app/store/ruseFcltMng/fcltReg/rainReg";
import {
deleteFectch,
fetchType,
+ getCountFetch,
getFetch,
postFectch,
putFectch,
} from "@/components/lib/api";
-import { ToastFormUi } from "@/components/ui/toast/toastFromUi";
import type { SelectDataType } from "@common/business_components/ui";
import { z } from "zod";
import { buildingToExcelType } from "./excel";
import {
rainChkgdnHeadListExport,
rainChkZod,
- rainHeadNmExport,
+ rainMainHeadNmExport,
+ rainRuseHeadNmExport,
+ rainSplHeadNmExport,
ruseHeadListExport,
splHeadListExport,
type chHeadType,
@@ -22,38 +24,47 @@ import {
import type { TableUpperProps } from "@/app/store/common/type/header";
import toast from "react-hot-toast";
+export const rainPageSize = 10;
+export const commonCd = "41";
+
export type rainChkZodType = z.infer;
const fcltDiv = [
{ val: "RST", text: "중수도시설" },
{ val: "RNB", text: "빗물이용시설" },
];
-const rainHeadNm = rainHeadNmExport;
+const rainRuseHeadNm = rainRuseHeadNmExport;
+const rainSplHeadNm = rainSplHeadNmExport;
const rainChkgdnHeadList = rainChkgdnHeadListExport;
const ruseHeadList = ruseHeadListExport;
const splHeadList = splHeadListExport;
+const rainMainHeadNm = rainMainHeadNmExport
const rainChk: rainChkZodType[] = [];
export type rainChkgdnState = {
rainChkgdn: {
rainChkgdnHeadList: TableUpperProps[];
+ rainSplHeadNm:chHeadType[]
+ rainRuseHeadNm:chHeadType[]
rainChk: rainChkZodType[];
- rainHeadNm: chHeadType[];
ruseHeadList: TableUpperProps[];
splHeadList: TableUpperProps[];
isInit: boolean;
isModalClose: boolean;
fcltDiv: SelectDataType[];
+ rainMainHeadNm:chHeadType[]
excelList: [];
isSttn: boolean;
+ rainChkCount: number;
+ isLoading: boolean;
};
};
type rainChkgdnActions = {
rainChkInit: (
- pageNo: string,
- cnt: string,
+ pageNo: number,
+ cnt: number,
sggCd: string,
searchTxt: string
) => void;
@@ -66,6 +77,13 @@ type rainChkgdnActions = {
rainChkExcelDataUPload(excelData: rainChkZodType[]): Promise;
rainChkDelete(chkgdnPks: number[]): Promise;
rainChkHeadChange: (rainChkgdn: rainChkgdnState, isEdit: boolean) => void;
+ rainChkNmSearch: (
+ pageNo: number,
+ cnt: number,
+ year: string,
+ sggCd: string,
+ txt: string
+ ) => void;
};
export type rainChkgdnType = rainChkgdnState & rainChkgdnActions;
@@ -73,7 +91,9 @@ export type rainChkgdnType = rainChkgdnState & rainChkgdnActions;
export const rainChkgdnStateExport: rainChkgdnState = {
rainChkgdn: {
rainChkgdnHeadList: rainChkgdnHeadList,
- rainHeadNm: rainHeadNm,
+ rainRuseHeadNm: rainRuseHeadNm,
+ rainSplHeadNm:rainSplHeadNm,
+ rainMainHeadNm:rainMainHeadNm,
rainChk: rainChk,
splHeadList: splHeadList,
ruseHeadList: ruseHeadList,
@@ -82,6 +102,8 @@ export const rainChkgdnStateExport: rainChkgdnState = {
excelList: [],
fcltDiv: fcltDiv,
isSttn: false,
+ rainChkCount: 1,
+ isLoading: false,
},
};
@@ -103,20 +125,24 @@ const makeMdfrChk = (data: rainChkZodType[], type: string, toDo: string) => {
};
const initFetch = async (
- pageNo: string,
- cnt: string,
- txt: string | undefined,
+ pageNo: number,
+ cnt: number,
+ year: string | undefined,
sgg: string | undefined
) => {
const currentYear = new Date().getFullYear().toString();
- const rainRes = await getFetch(
+
+ console.log("cnt ", cnt);
+ const rainRes = await getCountFetch(
"wr",
`/reuseChk/rainy` +
(pageNo ? `/${pageNo}` : "/1") +
- (cnt ? `/${cnt}` : "/20") +
- (txt ? `/${txt}` : `/${currentYear}`) +
+ (cnt ? `/${cnt}` : "/10") +
+ (year ? `/${year}` : `/${currentYear}`) +
(sgg ? `/${sgg}` : "/0")
);
+
+ console.log(" rainRes ", rainRes);
return rainRes;
};
@@ -142,16 +168,24 @@ export const rainChkgdnActionsExport: (set: any) => rainChkgdnActions = (
}));
},
rainChkExcelDataUPload: async (excelData: rainChkZodType[]) => {
+ set((state: rainChkgdnType) => (
+ { rainChkgdn: { ...state.rainChkgdn, isLoading: true } }));
try {
const res = await postFectch("/reuseChk/rainy", excelData);
if (res.status === 200) {
const currentYear = new Date().getFullYear().toString();
- const rainChkRes = await initFetch("1", "20", currentYear, "0");
- return set((state: rainChkgdnState) => ({
+ const rainChkRes = await initFetch(
+ 1,
+ rainPageSize,
+ currentYear,
+ commonCd
+ );
+ set((state: rainChkgdnState) => ({
...state,
rainChkgdn: {
...state.rainChkgdn,
- rainChk: rainChkRes,
+ rainChk: rainChkRes.data,
+ rainChkCount: rainChkRes.count,
},
}));
toast.success("지도점검 등록이 완료되었습니다.");
@@ -161,22 +195,62 @@ export const rainChkgdnActionsExport: (set: any) => rainChkgdnActions = (
} catch (error) {
console.log(error);
toast.error("지도점검 등록이 실패되었습니다.");
+ } finally {
+ set((state: rainChkgdnType) => ({ rainChkgdn: { ...state.rainChkgdn, isLoading: false } }));
}
},
rainChkInit: async (
- pageNo: string,
- cnt: string,
- searchTxt: string,
+ pageNo: number,
+ cnt: number,
+ year: string,
sggCd: string
) => {
+ set((state: rainChkgdnType) => ({ rainChkgdn: { ...state.rainChkgdn, isLoading: true } }));
try {
- const rainChkRes = await initFetch(pageNo, cnt, searchTxt, sggCd);
-
+ const rainChkRes = await initFetch(pageNo, cnt, year, sggCd);
+ set((state: rainChkgdnState) => ({
+ ...state,
+ rainChkgdn: {
+ ...state.rainChkgdn,
+ rainChk: rainChkRes.data,
+ rainChkCount: rainChkRes.count,
+ isInit: true, // 무한 루프 방지를 위해 isInit을 true로 설정
+ },
+ }));
+ } catch (error) {
+ console.log(error);
+ // 에러가 발생하더라도 무한 루프에 빠지지 않도록 isInit을 true로 설정합니다.
+ set((state: rainChkgdnType) => ({
+ rainChkgdn: { ...state.rainChkgdn, isInit: true },
+ }));
+ } finally {
+ set((state: rainChkgdnType) => ({ rainChkgdn: { ...state.rainChkgdn, isLoading: false } }));
+ }
+ },
+ rainChkNmSearch: async (
+ pageNo: number,
+ cnt: number,
+ year: string,
+ sggCd: string,
+ txt: string
+ ) => {
+ try {
+ const currentYear = new Date().getFullYear();
+ const rainChkRes = await getCountFetch(
+ "wr",
+ `/reuseChk/rainy` +
+ (pageNo ? `/${pageNo}` : "/1") +
+ (cnt ? `/${cnt}` : "/10") +
+ (year ? `/${year}` : `/${currentYear}`) +
+ (sggCd ? `/${sggCd}` : "/0") +
+ (txt ? `/${txt}` : "")
+ );
return set((state: rainChkgdnState) => ({
...state,
rainChkgdn: {
...state.rainChkgdn,
- rainChk: rainChkRes,
+ rainChk: rainChkRes.data,
+ rainChkCount: rainChkRes.count,
},
}));
} catch (error) {
@@ -187,26 +261,32 @@ export const rainChkgdnActionsExport: (set: any) => rainChkgdnActions = (
try {
const chData = await makeMdfrChk(rainChk, "rain", "rainDetil");
- const res = await postFectch("/reuseChk/rainy", chData);
- if (res.staus === 200) {
+ const res = await putFectch("/reuseChk/rainy/list", chData);
+ if (res) {
toast.success(
- "지도점검 보급수 및 밋물이용량 수정이 완료되었습니다. "
+ "지도점검 대체수 및 밋물이용량 수정이 완료되었습니다. "
);
const currentYear = new Date().getFullYear().toString();
- const rainChkRes = await initFetch("1", "20", currentYear, "11");
+ const rainChkRes = await initFetch(
+ 1,
+ rainPageSize,
+ currentYear,
+ "41"
+ );
return set((state: rainChkgdnState) => ({
...state,
rainChkgdn: {
...state.rainChkgdn,
- rainChk: rainChkRes,
+ rainChk: rainChkRes.data,
+ rainChkCount: rainChkRes.count,
},
}));
} else {
- toast.error("지도점검 보급수 및 밋물이용량 수정 오류입니다.");
+ toast.error("지도점검 대체수 및 밋물이용량 수정 오류입니다.");
}
} catch (error) {
console.log(error);
- toast.error("지도점검 보급수 및 밋물이용량 수정 오류입니다.");
+ toast.error("지도점검 대체수 및 밋물이용량 수정 오류입니다.");
}
},
rainChkGuidUpdate: async (rainChk: rainChkZodType) => {
@@ -217,17 +297,22 @@ export const rainChkgdnActionsExport: (set: any) => rainChkgdnActions = (
toast.success("지도점검 수질 및 과태료 수정이 완료되었습니다. ");
const currentYear = new Date().getFullYear().toString();
- const rainChkRes = await initFetch("1", "20", currentYear, "11");
+ const rainChkRes = await initFetch(
+ 1,
+ rainPageSize,
+ currentYear,
+ "41"
+ );
return set((state: rainChkgdnState) => ({
...state,
rainChkgdn: {
...state.rainChkgdn,
- rainChk: rainChkRes,
+ rainChk: rainChkRes.data,
+ rainChkCount: rainChkRes.count,
},
}));
- }else{
+ } else {
toast.error("지도점검 수질 및 과태료 수정 오류입니다.");
-
}
} catch (error) {
toast.error("지도점검 수질 및 과태료 수정 오류입니다.");
@@ -241,17 +326,22 @@ export const rainChkgdnActionsExport: (set: any) => rainChkgdnActions = (
toast.success("삭제가 완료되었습니다. ");
const currentYear = new Date().getFullYear().toString();
- const rainChkRes = await initFetch("1", "20", currentYear, "11");
+ const rainChkRes = await initFetch(
+ 1,
+ rainPageSize,
+ currentYear,
+ "41"
+ );
return set((state: rainChkgdnState) => ({
...state,
rainChkgdn: {
...state.rainChkgdn,
- rainChk: rainChkRes,
+ rainChk: rainChkRes.data,
+ rainChkCount: rainChkRes.count,
},
}));
- }else{
+ } else {
toast.error("삭제시 오류가 발생하였습니다.. ");
-
}
} catch (error) {
toast.error("삭제시 오류가 발생하였습니다.. ");
diff --git a/apps/wr/app/store/prfmncReg/chkgdnReg/rswrtChkgdn/headList.tsx b/apps/wr/app/store/prfmncReg/chkgdnReg/rswrtChkgdn/headList.tsx
index 0e690dbb9..a7fea419d 100644
--- a/apps/wr/app/store/prfmncReg/chkgdnReg/rswrtChkgdn/headList.tsx
+++ b/apps/wr/app/store/prfmncReg/chkgdnReg/rswrtChkgdn/headList.tsx
@@ -109,6 +109,24 @@ export const rswtChkgdZod = z.object({
rswtrPollutions: z.array(rswtrPolutionsZode),
});
+
+
+export const rswtRuseHeadNmExport: chHeadType[] = [
+ { headNm: "useQuilty", text: "이용수질(필요시)", length: 3 },
+ { headNm: "feeHist", text: "과태료 부과내역", length: 3 },
+ { headNm: "ruseWater", text: "연간중수 이용량(m³)", length: 13 },
+ { headNm: "detailQulity", text: "분기", length: 11 },
+];
+
+export const rswtSplHeadNmExport: chHeadType[] = [
+ { headNm: "useQuilty", text: "이용수질(필요시)", length: 3 },
+ { headNm: "feeHist", text: "과태료 부과내역", length: 3 },
+ { headNm: "detailQulity", text: "분기", length: 11 },
+ { headNm: "splWater", text: "연간대체수 이용량(m³)", length: 13 },
+];
+
+
+
export const rswtHeadNmExport: chHeadType[] = [
{ headNm: "useQuilty", text: "연간 평균 이용수질", length: 10 },
{ headNm: "feeHist", text: "과태료 부과내역", length: 3 },
@@ -126,7 +144,7 @@ export const rswtChkHeadListExport: TableUpperProps[] = [
{ id: "spwtPositn", title: "채수지점" ,mergeCell: true},
{ id: "chckYmd", title: "점검일" ,mergeCell: true},
{ id: "utztnUsgCd", title: "이용용도" },
- { id: "splyUswtrUtztnQnt", title: "연간보급수이용량(m³)" ,type: "number"},
+ { id: "splyUswtrUtztnQnt", title: "연간대체수이용량(m³)" ,type: "number"},
{ id: "ruseFcltUtztnQnt", title: "연간중수도이용량(m³)",type: "number"},
{
diff --git a/apps/wr/app/store/prfmncReg/chkgdnReg/rswrtChkgdn/index.tsx b/apps/wr/app/store/prfmncReg/chkgdnReg/rswrtChkgdn/index.tsx
index acc6ccaba..d40c1190c 100644
--- a/apps/wr/app/store/prfmncReg/chkgdnReg/rswrtChkgdn/index.tsx
+++ b/apps/wr/app/store/prfmncReg/chkgdnReg/rswrtChkgdn/index.tsx
@@ -1,6 +1,4 @@
-import {
- TEST_UUID,
-} from "@/app/store/ruseFcltMng/fcltReg/rainReg";
+import { TEST_UUID } from "@/app/store/ruseFcltMng/fcltReg/rainReg";
import type {
SelectDataType,
SheetParameter,
@@ -8,6 +6,7 @@ import type {
import {
deleteFectch,
fetchType,
+ getCountFetch,
getFetch,
postFectch,
putFectch,
@@ -20,15 +19,24 @@ import {
rswtDetailHeadListExport,
rswtHeadNmExport,
rswtrDetailsZod,
+ rswtRuseHeadNmExport,
+ rswtSplHeadNmExport,
} from "./headList";
import { z } from "zod";
import { ToastFormUi } from "@/components/ui/toast/toastFromUi";
import { type chHeadType } from "../rainChkgdn/headList";
import type { TableUpperProps } from "@/app/store/common/type/header";
+import toast from "react-hot-toast";
+
+export const rswtPageSize = 10;
const rswtChkHeadList = rswtChkHeadListExport;
const rswtDetailHeadList = rswtDetailHeadListExport;
const rswtHeadNm = rswtHeadNmExport;
+const rswtRuseHeadNm =rswtRuseHeadNmExport
+const rswtSplHeadNm =rswtSplHeadNmExport
+
+
export type rswtChkZodType = z.infer;
export type rswtrChkDetailsZodType = z.infer;
export type rswtChkgdnState = {
@@ -40,13 +48,29 @@ export type rswtChkgdnState = {
excelList: SheetParameter[];
rswtChkRes: rswtChkZodType[];
rswtChkPolGuide: rswtChkZodType[];
+ rswtSplHeadNm:chHeadType[]
+ rswtRuseHeadNm:chHeadType[]
isInit: boolean;
- isSttn: boolean
+ isSttn: boolean;
+ isLoading:boolean;
+ rswtChkCount: number;
};
};
type rswtChkgdnActions = {
- rswtChkgdnInit: (pageNo: string, cnt: string, year: string, sggCd: string) => 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[]
@@ -67,27 +91,41 @@ export const rswtChkgdnStateExport: rswtChkgdnState = {
rswtChkHeadList: rswtChkHeadList,
rswtDetailHeadList: rswtDetailHeadList,
rswtHeadNm: rswtHeadNm,
- excelList: [{
- data: [[]], headerNum: 0, headerRange: "A1:V3",
- sheetName: "",
- startCol: '1'
- }],
+ rswtRuseHeadNm:rswtRuseHeadNm,
+ rswtSplHeadNm:rswtSplHeadNm,
+
+ excelList: [
+ {
+ data: [[]],
+ headerNum: 0,
+ headerRange: "A1:V3",
+ sheetName: "",
+ startCol: "1",
+ },
+ ],
rswtChkRes: [],
rswtChkPolGuide: [],
isInit: false,
isSttn: false,
+ isLoading:false,
+ rswtChkCount: 1,
},
};
-const initFetch = async (pageNo: string, cnt: string, year: string | undefined, sgg: string | undefined) => {
+const initFetch = async (
+ pageNo: number,
+ cnt: number,
+ year: string | undefined,
+ sgg: string | undefined
+) => {
const currentYear = new Date().getFullYear().toString();
- const rswtChkRes = await getFetch(
+ const rswtChkRes = await getCountFetch(
"wr",
`/reuseChk/reuseWater` +
- (pageNo ? `/${pageNo}` : "/1") +
- (cnt ? `/${cnt}` : "/20") +
- (year ? `/${year}` : `/${currentYear}`) +
- (sgg ? `/${sgg}` : "/0")
+ (pageNo ? `/${pageNo}` : "/1") +
+ (cnt ? `/${cnt}` : "/20") +
+ (year ? `/${year}` : `/${currentYear}`) +
+ (sgg ? `/${sgg}` : "/0")
);
return rswtChkRes;
};
@@ -139,15 +177,59 @@ export const rswtChkgdnActionsExport: (set: any) => rswtChkgdnActions = (
},
}));
},
- rswtChkgdnInit: async (pageNo: string, cnt: string, year: string, sggCd: string) => {
+ rswtChkgdnInit: async (
+ pageNo: number,
+ cnt: number,
+ year: string,
+ sggCd: string
+ ) => {
+ set((state: rswtChkgdnType) => ({ rswtChkgdn: { ...state.rswtChkgdn, isLoading: true } }));
try {
const rswtChkRes = await initFetch(pageNo, cnt, year, sggCd);
+ set((state: rswtChkgdnState) => ({
+ ...state,
+ rswtChkgdn: {
+ ...state.rswtChkgdn,
+ rswtChkRes: rswtChkRes.data,
+ rswtChkCount: rswtChkRes.count,
+ isInit: true, // 무한 루프를 방지하기 위해 isInit을 true로 설정
+ },
+ }));
+ } catch (error) {
+ console.log(error);
+ set((state: rswtChkgdnType) => ({
+ rswtChkgdn: { ...state.rswtChkgdn, isInit: true },
+ }));
+ } finally {
+ set((state: rswtChkgdnType) => ({ rswtChkgdn: { ...state.rswtChkgdn, isLoading: false } }));
+ }
+ },
+ rswtChkNmSearch: async (
+ pageNo: number,
+ cnt: number,
+ year: string,
+ sggCd: string,
+ txt: string
+ ) => {
+ try {
+ const currentYear = new Date().getFullYear().toString();
+ const rswtChkRes = await getCountFetch(
+ "wr",
+ `/reuseChk/reuseWater` +
+ (pageNo ? `/${pageNo}` : "/1") +
+ (cnt ? `/${cnt}` : "/20") +
+ (year ? `/${year}` : `/${currentYear}`) +
+ (sggCd ? `/${sggCd}` : "/0") +
+ (txt ? `/${txt}` : "")
+ );
+
return set((state: rswtChkgdnState) => ({
...state,
rswtChkgdn: {
...state.rswtChkgdn,
- rswtChkRes: rswtChkRes,
+ rswtChkRes: rswtChkRes.data,
+ rswtChkCount: rswtChkRes.count,
isInit: false,
},
}));
@@ -157,6 +239,9 @@ export const rswtChkgdnActionsExport: (set: any) => rswtChkgdnActions = (
},
rswtChkExceDataUpload: async (excelData: rswtChkZodType[]) => {
try {
+ set((state: rswtChkgdnType) => (
+ { rswtChkgdn: { ...state.rswtChkgdn, isLoading: true } }));
+ console.log('excelData ', excelData)
const res = await postFectch("/reuseChk/reuseWater", excelData);
if (res.ok) {
ToastFormUi({
@@ -165,65 +250,66 @@ export const rswtChkgdnActionsExport: (set: any) => rswtChkgdnActions = (
});
}
const currentYear = new Date().getFullYear().toString();
- const rswtChkRes = await initFetch("1", "20", currentYear, "0");
+ const rswtChkRes = await initFetch(1, rswtPageSize, currentYear, "0");
return set((state: rswtChkgdnState) => ({
...state,
rswtChkgdn: {
...state.rswtChkgdn,
- rswtChkRes: rswtChkRes
+ rswtChkRes: rswtChkRes.data,
+ rswtChkCount: rswtChkRes.count,
},
}));
} catch (error) {
console.log(error);
+ }finally{
+ set((state: rswtChkgdnType) => (
+ { rswtChkgdn: { ...state.rswtChkgdn, isLoading: false } }));
}
+
},
rswtChkDetilsUpdate: async (rswtChk: rswtrChkDetailsZodType[]) => {
try {
const chData = await makeMdfrChk(rswtChk);
-
const res = await putFectch("/reuseChk/reuseWater", chData);
if (res.ok) {
- ToastFormUi({
- body: "지도점검 과태료 수정 수정이 완료되었습니다. ",
- title: "지도점검 수정",
- });
+ toast.success("지도점검 과태료 수정이 완료되었습니다. ",)
}
const currentYear = new Date().getFullYear().toString();
- const rswtChkRes = await initFetch("1", "20", currentYear, "0");
+ const rswtChkRes = await initFetch(1, rswtPageSize, currentYear, "0");
return set((state: rswtChkgdnState) => ({
...state,
rswtChkgdn: {
...state.rswtChkgdn,
- rswtChkRes: rswtChkRes,
+ rswtChkRes: rswtChkRes.data,
+ rswtChkCount: rswtChkRes.count,
},
}));
} catch (error) {
console.log(error);
- alert("수정에 실패하였습니다.");
+ toast.error("지도점검 과태료 수정 오류입니다. ",)
+
}
},
rswtChkDelete: async (chkgdnPks: number[]) => {
try {
const res = await deleteFectch(`/reuseChk/reuseWater`, chkgdnPks);
- if (res.ok) {
- ToastFormUi({
- body: "삭제가 완료되었습니다. ",
- title: "지도점검 삭제",
- });
+ if (res) {
+ toast.success("삭제가 완료되었습니다.")
}
const currentYear = new Date().getFullYear().toString();
- const rswtChkRes = await initFetch("1", "20", currentYear, "0");
+ const rswtChkRes = await initFetch(1, rswtPageSize, currentYear, "0");
return set((state: rswtChkgdnState) => ({
...state,
rswtChkgdn: {
...state.rswtChkgdn,
- rswtChkRes: rswtChkRes,
+ rswtChkRes: rswtChkRes.data,
+ rswtChkCount: rswtChkRes.count,
},
}));
} catch (error) {
- ToastFormUi({ body: "삭제를 실패했습니다.. ", title: "지도점검 삭제" });
+ toast.error("삭제 오류입니다.")
}
},
rswtChkPolAndGuide: async (chkGdnPk: number) => {
@@ -240,7 +326,11 @@ export const rswtChkgdnActionsExport: (set: any) => rswtChkgdnActions = (
rswtChkPolGuide: rswtChkPolGuide,
},
}));
- } catch (error) { }
+ } catch (error) {
+
+
+
+ }
},
rswtChkPolInit: () => {
try {
@@ -251,7 +341,7 @@ export const rswtChkgdnActionsExport: (set: any) => rswtChkgdnActions = (
rswtChkPolGuide: undefined,
},
}));
- } catch (error) { }
+ } catch (error) {}
},
rwstPolAndGuideUpdate: async (rswtChk: rswtChkZodType[]) => {
try {
@@ -261,13 +351,10 @@ export const rswtChkgdnActionsExport: (set: any) => rswtChkgdnActions = (
chData[0]
);
if (res.ok) {
- ToastFormUi({
- body: "지도점검 연간 수질 및 보급수/중수도 수정이 완료되었습니다. ",
- title: "지도점검 수정",
- });
+ toast.success("지도점검 연간 수질 및 대체수/중수도 수정이 완료되었습니다.")
}
const currentYear = new Date().getFullYear().toString();
- const rswtChkRes = await initFetch("1", "20", currentYear, "0");
+ const rswtChkRes = await initFetch(1, rswtPageSize, currentYear, "0");
return set((state: rswtChkgdnState) => ({
...state,
rswtChkgdn: {
@@ -277,10 +364,9 @@ export const rswtChkgdnActionsExport: (set: any) => rswtChkgdnActions = (
}));
} catch (error) {
console.log(error);
- ToastFormUi({
- body: "지도점검 연간 수질 및 보급수/중수도 수정이 실패하였습니다.. ",
- title: "지도점검 수정",
- });
+
+ toast.error("지도점검 연간 수질 및 대체수/중수도 수정 오류입니다.")
+
}
},
rswtChkHeadChange: async (rswtChkgdn: rswtChkgdnState, isEdit: boolean) => {
@@ -301,7 +387,7 @@ export const rswtChkgdnActionsExport: (set: any) => rswtChkgdnActions = (
rswtDetailHeadList: rswtDetailHeadList,
},
}));
- } catch (e) { }
+ } catch (e) {}
},
};
};
diff --git a/apps/wr/app/store/prfmncSttn/chkgdnSttn/rainChkgdnSttn/index.tsx b/apps/wr/app/store/prfmncSttn/chkgdnSttn/rainChkgdnSttn/index.tsx
index 2136dfebe..bbbb3a61e 100644
--- a/apps/wr/app/store/prfmncSttn/chkgdnSttn/rainChkgdnSttn/index.tsx
+++ b/apps/wr/app/store/prfmncSttn/chkgdnSttn/rainChkgdnSttn/index.tsx
@@ -2,7 +2,7 @@ import type { rainChkZodType } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn"
import { getFetch } from "@/components/lib/api";
import type { SelectDataType } from "@common/business_components/ui";
import { rainChkgdnHeadSttnExport, ruseSttnHeadListExport, splSttnHeadListExport } from "./headList";
-import { rainHeadNmExport, type chHeadType } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList";
+import { rainMainHeadNmExport, type chHeadType } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList";
import { buildingExcelRainSttn } from "./excel";
import type { TableUpperProps } from "@/app/store/common/type/header";
@@ -15,7 +15,7 @@ const fcltDiv = [
const rainChkgdnHeadList = rainChkgdnHeadSttnExport;
const ruseHeadList = ruseSttnHeadListExport;
const splHeadList = splSttnHeadListExport;
-const rainHeadNm = rainHeadNmExport
+const rainHeadNm = rainMainHeadNmExport
const rainChk: rainChkZodType[] = [];
diff --git a/apps/wr/app/store/prfmncSttn/chkgdnSttn/rswtChkgdnSttn/headList.tsx b/apps/wr/app/store/prfmncSttn/chkgdnSttn/rswtChkgdnSttn/headList.tsx
index 91f6bf718..a505f1b0c 100644
--- a/apps/wr/app/store/prfmncSttn/chkgdnSttn/rswtChkgdnSttn/headList.tsx
+++ b/apps/wr/app/store/prfmncSttn/chkgdnSttn/rswtChkgdnSttn/headList.tsx
@@ -11,7 +11,7 @@ export const rswtChkSttnHeadListExport: TableUpperProps[] = [
{ id: "spwtPositn", title: "채수지점", mergeCell: true },
{ id: "chckYmd", title: "점검일", mergeCell: true },
{ id: "utztnUsgCd", title: "이용용도" },
- { id: "splyUswtrUtztnQnt", title: "연간보급수이용량(m³)", type: "number" },
+ { id: "splyUswtrUtztnQnt", title: "연간대체수이용량(m³)", type: "number" },
{ id: "ruseFcltUtztnQnt", title: "연간중수도이용량(m³)", type: "number" },
{
diff --git a/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/index.tsx b/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/index.tsx
index b513085ae..db8b6a717 100644
--- a/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/index.tsx
+++ b/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/index.tsx
@@ -148,7 +148,7 @@ export const pbnstPrfmncSttnActionsExport: (set: any) => pbnstPrfmncSttnActions
let usageSum = 0;
let year = "";
const yearsData = []
-
+
res.data.forEach((item) => {
if (item.prfList.length === 0) {
const year = ""; // 연도 정보가 없으면 빈 문자열, 필요시 item에서 추출
@@ -161,26 +161,26 @@ export const pbnstPrfmncSttnActionsExport: (set: any) => pbnstPrfmncSttnActions
item.prfList.forEach((acc) => {
year = acc.ym?.substring(0, 4) ?? "";
inUsageSum =
- (acc.wshwtr ?? 0) +
- (acc.coolUswtr ?? 0) +
- (acc.cleanUswtr ?? 0) +
- (acc.drwtUswtr ?? 0) +
- (acc.dltnUswtr ?? 0) +
- (acc.ithlRswtr ?? 0) +
- (acc.ithlEtcUswtr ?? 0) +
- (acc.cleanToilUswtr ?? 0) +
- (acc.resn ?? 0);
+ (acc.wshwtr ?? 0) + //조경용수
+ (acc.coolUswtr ?? 0) + //냉각수
+ (acc.cleanUswtr ?? 0) + //청소수
+ (acc.drwtUswtr ?? 0) + //식수대
+ (acc.dltnUswtr ?? 0) + //희석용수
+ (acc.ithlRswtr ?? 0) + //중수도
+ (acc.ithlEtcUswtr ?? 0) //기타
outUsageSum =
- (acc.lndwtr ?? 0) +
- (acc.hydUswtr ?? 0) +
- (acc.ugwtChr ?? 0) +
- (acc.farmUswtr ?? 0) +
- (acc.rvrKeepUswtr ?? 0) +
- (acc.indstUswtr ?? 0);
+ (acc.cleanToilUswtr ?? 0) + //청소화장실용수
+ (acc.resn ?? 0)+ //세척살수용도
+ (acc.lndwtr ?? 0) + //조경용수
+ (acc.hydUswtr ?? 0) + //친수용수
+ (acc.ugwtChr ?? 0) + //지하수충전
+ (acc.farmUswtr ?? 0) + //농업용수
+ (acc.rvrKeepUswtr ?? 0) + //하천등유지용수
+ (acc.indstUswtr ?? 0); //공업용수
const yearData = yearsData.find(
(yearItem) =>
yearItem.year === year &&
- yearItem.pbnstRuseFcltPk == acc.pbnstRuseFcltPk
+ yearItem.pbnstRuseFcltPk == acc.pbnstRuseFcltFk
);
if (yearData) {
diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/htdflSttn/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/htdflSttn/index.tsx
index dccc8719c..ba81066be 100644
--- a/apps/wr/app/store/ruseFcltMng/fcltSttn/htdflSttn/index.tsx
+++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/htdflSttn/index.tsx
@@ -5,6 +5,8 @@ import type { z } from "zod";
import { controlHeadView } from "../rainSttn";
import type { customHtdflBdst } from "../../fcltReg/htdflReg";
import { fetchType, getFetch } from "@/components/lib/api";
+import type { SelectDataType } from "@common/business_components";
+import { excelHtdflSttnParsing } from "./excel";
const htdflSttHeadList = htdflSttHeadListExport;
const htdflSttNodeList = htdflSttNodeListExport;
@@ -21,7 +23,8 @@ export type htdflSttnState = {
};
type htdflSttnActions = {
initHtdfl: (con: string) => void;
- htdflSttnSearch: (page: number, total: string, con: string) => void;
+ htdflSttnSearch: (page: number, total: string, con: string, sidoCode: SelectDataType[],
+ sggCode: SelectDataType[]) => void;
htdflChSttnHead: (
headList: z.infer,
) => void;
@@ -67,22 +70,23 @@ export const htdflSttnActionsExport: (set: any) => htdflSttnActions = (
console.log(error);
}
},
- htdflSttnSearch: async (page: number, total: string, con: string) => {
+ htdflSttnSearch: async (page: number, total: string, con: string,
+ sidoCode: SelectDataType[],
+ sggCode: SelectDataType[]
+ ) => {
try {
const htdflSttnRes = await getFetch(
fetchType.WR,
`/drain/facilityList/${page}/${total}/${con}`
);
if (Number(total) > 9000) {
-
-
+ const htdflExcel = excelHtdflSttnParsing(htdflSttnRes, sidoCode, sggCode);
set((state: htdflSttnState) => {
-
return {
...state,
htdflSttn: {
...state.htdflSttn,
- excelList: htdflSttnRes,
+ excelList: htdflExcel,
},
};
});
diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/headList.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/headList.tsx
index 8dd2a4d6f..ef662cc8c 100644
--- a/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/headList.tsx
+++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/headList.tsx
@@ -426,7 +426,7 @@ export const rainSttNodeListExport: CommonTableProps[] = [
export const rainSttnDetailNodeListExport:CommonTableProps[] = [
{ id: "totalSplyUswtrUtztnQnt",
- title: "연간보급수이용량(m³)",
+ title: "연간대체수이용량(m³)",
visible: true,
row: 1,
rowSpan: 2,
@@ -511,7 +511,7 @@ export const rainSttnDetailNodeListExport:CommonTableProps[] = [
export const rainSttnDetailHeadListExport:CommonTableProps[] = [
{ id: "totalSplyUswtrUtztnQnt",
- title: "연간보급수이용량(m³)",
+ title: "연간대체수이용량(m³)",
visible: true,
row: 1,
rowSpan: 1,
diff --git a/apps/wr/components/lib/api/index.ts b/apps/wr/components/lib/api/index.ts
index 452788eb0..69bc1bb68 100644
--- a/apps/wr/components/lib/api/index.ts
+++ b/apps/wr/components/lib/api/index.ts
@@ -46,6 +46,29 @@ export const getFetch = async (type: string, url: string) => {
}
};
+
+export const getCountFetch = async (type: string, url: string) => {
+ const div =
+ type === fetchType.COMMON
+ ? DEV_URL_FO
+ : type === fetchType.LOCAL
+ ? LOCAL_URL
+ : type === fetchType.CS
+ ? ''
+ : DEV_URL_WR;
+
+ const response = await fetch(div + url, {
+ method: "GET",
+ headers: {
+ accept: "application/json",
+ },
+ });
+ // JSON 응답 처리
+ const res = await response.json();
+ return res;
+
+};
+
export const getFetchWithCount = async (type: string, url: string) => {
const div =
type === fetchType.COMMON
diff --git a/apps/wr/components/lib/func/TableData.tsx b/apps/wr/components/lib/func/TableData.tsx
index 7a35e02c4..5be5d9fb3 100644
--- a/apps/wr/components/lib/func/TableData.tsx
+++ b/apps/wr/components/lib/func/TableData.tsx
@@ -54,27 +54,30 @@ export const rainChkTableData = (chkData: rainChkZodType[]) => {
export const rswtChkTableData = (chkData: rswtChkZodType[]) => {
// 1. chkgdnFk + utztnUsgCd 기준 누계 정보 만들기
const makeRswtData: any[] = [];
- chkData?.forEach((root) => {
- root.rswtrDetails.forEach((detail) => {
- let flatRswtChk = {};
- const findGuide = root.guideDetails.find(
- (guide) => guide.utztnUsgCd === detail.utztnUsgCd
- );
- const findPoluttion = root.rswtrPollutions.find(
- (polution) => polution.utztnUsgCd === detail.utztnUsgCd
- );
- const operMngCd = root?.reuseBuilding.operMngCd;
- flatRswtChk = {
- ...root,
- ...detail,
- ...findGuide,
- ...findPoluttion,
- ...flatRswtChk,
- operMngCd: operMngCd,
- };
- makeRswtData.push(flatRswtChk);
+ if(chkData&& chkData.length>0){
+
+ chkData?.forEach((root) => {
+ root.rswtrDetails.forEach((detail) => {
+ let flatRswtChk = {};
+ const findGuide = root.guideDetails.find(
+ (guide) => guide.utztnUsgCd === detail.utztnUsgCd
+ );
+ const findPoluttion = root.rswtrPollutions.find(
+ (polution) => polution.utztnUsgCd === detail.utztnUsgCd
+ );
+ const operMngCd = root?.reuseBuilding.operMngCd;
+ flatRswtChk = {
+ ...root,
+ ...detail,
+ ...findGuide,
+ ...findPoluttion,
+ ...flatRswtChk,
+ operMngCd: operMngCd,
+ };
+ makeRswtData.push(flatRswtChk);
+ });
});
- });
+ }
return makeRswtData;
};
diff --git a/apps/wr/components/lib/func/commom.tsx b/apps/wr/components/lib/func/commom.tsx
index 8569d4eb3..50e425722 100644
--- a/apps/wr/components/lib/func/commom.tsx
+++ b/apps/wr/components/lib/func/commom.tsx
@@ -165,18 +165,34 @@ export const yearOptions: { val: string; text: string }[] = Array.from(
})
);
-export const getdmdMatFlag = (flag: string|undefined) => {
- let flagMat = "";
-
- if(flag === undefined || flag === null) {
- flagMat = "신청";
- }else if(flag.trim() === "Sub") {
- flagMat = "검토";
-
- }else if(flag.trim() === "matched") {
- flagMat = "매칭완료";
- }else {
- flagMat = "신청";
+export const getdmdMatFlag = (flag: string | undefined | null): string => {
+ // 1. undefined나 null인 경우, '신청'을 반환합니다.
+ // (이 검사를 먼저 함으로써 아래에서 .trim()을 안전하게 사용할 수 있습니다.)
+ if (flag == null) {
+ return "신청";
}
- return flagMat;
+
+ // 2. 이제 flag가 문자열임이 보장되므로 .trim()을 호출해 앞뒤 공백을 제거합니다.
+ const trimmedFlag = flag.trim();
+
+ if (trimmedFlag === "Sub") {
+ return "검토";
+ } else if (trimmedFlag === "matched") {
+ return "매칭완료";
+ }
+ // 3. 그 외 모든 경우(빈 문자열 포함)는 '신청'으로 처리합니다.
+ return "신청";
};
+
+
+
+export const formatPhoneNumber=(tel:string) => {
+ const onlyNums = tel.replace(/[^0-9]/g, '');
+ if (onlyNums.length === 10) {
+ return onlyNums.replace(/(\d{2})(\d{4})(\d{4})/, '$1-$2-$3');
+ } else if (onlyNums.length === 11) {
+ return onlyNums.replace(/(\d{3})(\d{4})(\d{4})/, '$1-$2-$3');
+ } else {
+ return tel; // 유효하지 않으면 빈 문자열
+ }
+}
\ No newline at end of file
diff --git a/apps/wr/components/ui/form/coMat/conCostForm/conCostForm.tsx b/apps/wr/components/ui/form/coMat/conCostForm/conCostForm.tsx
index b22f9474e..3d59d0a61 100644
--- a/apps/wr/components/ui/form/coMat/conCostForm/conCostForm.tsx
+++ b/apps/wr/components/ui/form/coMat/conCostForm/conCostForm.tsx
@@ -368,7 +368,7 @@ export default function ConCostForm({
childrenTriger={
<>
>
}
@@ -405,7 +405,7 @@ export default function ConCostForm({
)}
/>
-
+ {/*
+
*/}
void }) {
const { rswtChkgdn, rainChkExcelDataUPload, rswtChkExceDataUpload } =
useWrStore((state) => {
return state;
@@ -146,29 +144,28 @@ export default function ChkgdExcel({ type }: { type: string }) {
const onSubmit = (values: z.infer) => {
if (values.chckYr === "") {
- ToastFormUi({ body: "등록년도를 작성해주세요", title: "지도점검 등록" });
+ toast.error("등록년도를 작성해주세요");
return;
}
if (type === "RNB") {
if (excelData === undefined || excelData?.length === 0) {
- ToastFormUi({
- body: "빈 파일 및 파일 오류 입니다.",
- title: "지도점검 등록",
- });
+ toast.error("빈 파일 및 파일 오류 입니다.");
+
return;
} else {
rainChkExcelDataUPload(excelData as rainChkZodType[]);
+ setIsRegExcel(false)
}
} else if (type === "RST") {
if (excelRswtData === undefined || excelRswtData?.length === 0) {
- ToastFormUi({
- body: "빈 파일 및 파일 오류 입니다.",
- title: "중수지도점검 등록",
- });
+ toast.error("빈 파일 및 파일 오류 입니다.");
+
return;
} else {
rswtChkExceDataUpload(excelRswtData as rswtChkZodType[]);
+ setIsRegExcel(false)
+
}
}
};
diff --git a/apps/wr/components/ui/modal/chkgd/chkgdModal/chkgdModal.tsx b/apps/wr/components/ui/modal/chkgd/chkgdModal/chkgdModal.tsx
index 965bc7275..d62406e9f 100644
--- a/apps/wr/components/ui/modal/chkgd/chkgdModal/chkgdModal.tsx
+++ b/apps/wr/components/ui/modal/chkgd/chkgdModal/chkgdModal.tsx
@@ -10,7 +10,7 @@ import type { z } from "zod";
import React from "react";
import type { TableUpperProps } from "@/app/store/common/type/header";
-export default function ChkgdModal({ type, obj }: { type: string; obj: any }) {
+export default function ChkgdModal({ type, obj ,setIsModal }: { type: string; obj: any , setIsModal:(open:boolean)=>void}) {
const {
rainChkgdn,
rswtChkgdn,
@@ -79,6 +79,8 @@ export default function ChkgdModal({ type, obj }: { type: string; obj: any }) {
]);
useEffect(() => {
+ console.log('obj ', obj)
+
const result = obj.guideDetails?.reduce((acc: any, cur: any) => {
const code = cur.utztnUsgCd;
const month = cur.ym?.slice(4); // "MM"
@@ -114,9 +116,10 @@ export default function ChkgdModal({ type, obj }: { type: string; obj: any }) {
});
}
- console.log("result ", result);
setGuidData(result as splRuseWaterType[]);
+
+ console.log('obj ', obj)
if (obj.rswtrPollutions) {
const resultPolution: Record = {
"1": [],
@@ -217,12 +220,14 @@ export default function ChkgdModal({ type, obj }: { type: string; obj: any }) {
obj.guideDetails = realGuideDetail;
if (type === "RNB") {
rainChkGuidUpdate(obj);
+ setIsModal(false)
} else {
const polution = Object.values(upPolutionData)
.flat()
.filter((item) => item.utztnUsgCd !== "평균");
obj.rswtrPollutions = polution;
rwstPolAndGuideUpdate([obj]);
+ setIsModal(false)
}
};
@@ -262,12 +267,13 @@ export default function ChkgdModal({ type, obj }: { type: string; obj: any }) {
- {`연간보급수이용량`}
+ {`연간대체수이용량`}
{
setChGuidData(data);
@@ -280,7 +286,8 @@ export default function ChkgdModal({ type, obj }: { type: string; obj: any }) {
{
setChGuidData(data);
@@ -302,6 +309,7 @@ export default function ChkgdModal({ type, obj }: { type: string; obj: any }) {
{
getPolutionData(data);
diff --git a/apps/wr/components/ui/modal/coReg/coRegExcel/coRegExcelModal.tsx b/apps/wr/components/ui/modal/coReg/coRegExcel/coRegExcelModal.tsx
index 89f15a3cc..6f6afe186 100644
--- a/apps/wr/components/ui/modal/coReg/coRegExcel/coRegExcelModal.tsx
+++ b/apps/wr/components/ui/modal/coReg/coRegExcel/coRegExcelModal.tsx
@@ -4,32 +4,36 @@ import type { customLdrmnt } from "@/app/store/matDmd/ldrmntCoSttn";
import { names } from "@/app/store/matDmd/ldrmntCoSttn/excel";
import { filePicked, FileUpload, FormUi, Title } from "@common/business_components/ui";
import { Form, FormField } from "@common/business_components/ui/form";
+import LoadingOverlay from "@common/business_components/ui/loadingBar";
import { Button, Progress } from "@common/components/ui";
import { zodResolver } from "@hookform/resolvers/zod";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
+import toast from "react-hot-toast";
import type { z } from "zod";
-export default function CoRegExcel() {
-
-
+export default function CoRegExcel({ isModal }: { isModal: (open: boolean) => void }) {
+ const { ldrmnt,loadingOpen } = useWrStore((state) => state);
+ const { isLoading } = ldrmnt;
const form = useForm>({
resolver: zodResolver(coRegExcel),
});
const { ldrmntRegData, ldrmntDelete } = useWrStore((state) => state);
const [excelData, setExcelData] = useState();
-
const [file, setFiles] = useState();
+ useEffect(() => {
+ console.log("ldrmnt", ldrmnt)
+ }, [ldrmnt])
+
const onSubmit = (values: z.infer) => {
- ldrmntDelete();
+ loadingOpen(true);
if (file) {
- filePicked(file, 0).then((res) => {
- //TODO:loading
+ filePicked(file, 0).then(async (res) => {
+
try {
let array: { [key: string]: string | number }[] = []
- let isError = false;
if (Array.isArray(res)) {
res.some((item, index) => {
let object: { [key: string]: string | number } = {}
@@ -43,26 +47,24 @@ export default function CoRegExcel() {
}
return false;
})
- if (isError === true)
- return true;
+
array.push(object)
- if (index != 0 && index % 5000 == 0) {
- ldrmntRegData(array);
- array = []
- array.length = 0;
- }
return false;
})
}
- if (isError === false)
- ldrmntRegData(array);
+ await ldrmntRegData(array);
+ isModal(false);
+ loadingOpen(false);
+ toast.success(`잠재수요처 등록이 완료되었습니다.`);
} catch (e) {
console.log(e)
+ loadingOpen(false);
alert(e)
return true;
}
-
+ }).catch((e)=>{
+ console.log("file", e);
});
};
}
@@ -70,6 +72,7 @@ export default function CoRegExcel() {
return (
<>