수요매칭 검토 put 테스트 완료
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -249,4 +249,16 @@ export const coModalHeadListExport: CommonTableProps[] = [
|
||||
rowSpan: 1,
|
||||
colSpan: 1,
|
||||
},
|
||||
]
|
||||
|
||||
export const usageProcData =[
|
||||
{ usage: "청소", process: "총인처리시설 + 염소소독" },
|
||||
{ usage: "화장실용수", process: "총인처리시설 + 염소소독" },
|
||||
{ usage: "세척", process: "총인처리시설 + UV소독" },
|
||||
{ usage: "살수", process: "총인처리시설 + UV소독" },
|
||||
{ usage: "조경", process: "총인처리시설 + UV소독" },
|
||||
{ usage: "농업", process: "총인처리시설 + UV소독" },
|
||||
{ usage: "하천", process: "총인처리시설 + UV소독" },
|
||||
{ usage: "지하수", process: "전처리시설 + RO" },
|
||||
{ usage: "공업", process: "전처리시설 + RO" },
|
||||
]
|
||||
@@ -2,8 +2,9 @@ import type { z } from "zod";
|
||||
import type { sttnHeadListType } from "../coSttn/headList";
|
||||
import { coRvwHeadListExport, coRvwNodeListExport } from "./headList";
|
||||
import type { CommonTableProps } from "../../common/type/header";
|
||||
import type { DmdCoReqType } from "./type";
|
||||
import { fetchType, getFetch } from "@/components/lib/api";
|
||||
import type { DedMatUpdateType, DmdCoReqType } from "./type";
|
||||
import { fetchType, getFetch, putFectch } from "@/components/lib/api";
|
||||
import toast from "react-hot-toast/headless";
|
||||
|
||||
const coRvwHeadList = coRvwHeadListExport;
|
||||
const coRvwNodeList = coRvwNodeListExport;
|
||||
@@ -30,35 +31,82 @@ export type coRvwType = coRvwState & coRvwActions;
|
||||
|
||||
type coRvwActions = {
|
||||
coMatRvwInit: (
|
||||
pageCnt: number,
|
||||
pageNo: number,
|
||||
sggCd: string,
|
||||
pageCnt: number,
|
||||
startYear: string,
|
||||
endYear: string
|
||||
) => void;
|
||||
endYear: string,
|
||||
sggCd: string
|
||||
) => void,
|
||||
coMatRvwUpdate: (
|
||||
splyCd: string,
|
||||
dmdCd: string,
|
||||
data: DedMatUpdateType
|
||||
)=>void
|
||||
};
|
||||
|
||||
const coMatInit = async (
|
||||
pageNo: number,
|
||||
pageCnt: number,
|
||||
startYear: string,
|
||||
endYear: string,
|
||||
sggCd: string
|
||||
) => {
|
||||
const url = `/reuseFc/request/infoList/${pageNo}/${pageCnt}/${startYear}/${endYear}/${sggCd}`;
|
||||
const coMatRvwRes = await getFetch(fetchType.WR, url);
|
||||
|
||||
return coMatRvwRes;
|
||||
};
|
||||
|
||||
export const coRvwActionsExport: (set: any) => coRvwActions = (set: any) => {
|
||||
return {
|
||||
coMatRvwInit: async (
|
||||
pageCnt: number,
|
||||
pageNo: number,
|
||||
sggCd: string,
|
||||
pageCnt: number,
|
||||
startYear: string,
|
||||
endYear: string
|
||||
endYear: string,
|
||||
sggCd: string
|
||||
) => {
|
||||
const tempData = `/reuseFc/request/10000000000000`;
|
||||
const url = `/reuseFc/request/${pageNo}/${pageCnt}/${sggCd}/${startYear}/${endYear}}`;
|
||||
const coMatRvwRes = await getFetch(fetchType.WR, tempData);
|
||||
const url = `/reuseFc/request/infoList/${pageNo}/${pageCnt}/${startYear}/${endYear}/${sggCd}`;
|
||||
const coMatRvwRes = await getFetch(fetchType.WR, url);
|
||||
|
||||
return set((state: coRvwState) => ({
|
||||
...state,
|
||||
coRvw: {
|
||||
...state.coRvw,
|
||||
init: false,
|
||||
coMatRvwRes: [coMatRvwRes],
|
||||
coMatRvwRes: coMatRvwRes,
|
||||
},
|
||||
}));
|
||||
},
|
||||
coMatRvwUpdate: async (
|
||||
splyCd: string,
|
||||
dmdCd: string,
|
||||
data: DedMatUpdateType
|
||||
) => {
|
||||
try {
|
||||
const isUpdate = await putFectch(
|
||||
`/reuseFc/request/cst/${splyCd}/${dmdCd}`,
|
||||
data
|
||||
);
|
||||
|
||||
const coMatRvwRes = coMatInit(
|
||||
1,
|
||||
10,
|
||||
new Date().getFullYear().toString(),
|
||||
new Date().getFullYear().toString(),
|
||||
"11"
|
||||
);
|
||||
return set((state: coRvwState) => ({
|
||||
...state,
|
||||
coRvw: {
|
||||
...state.coRvw,
|
||||
init: false,
|
||||
coMatRvwRes: coMatRvwRes,
|
||||
},
|
||||
}));
|
||||
} catch (e) {
|
||||
toast.error("매칭 검토 저장 오류입니다.");
|
||||
}
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,40 +1,43 @@
|
||||
import { z } from "zod";
|
||||
const DmdInfoSchema = z.object({
|
||||
dmdInfoSn: z.number(),
|
||||
dmdInfoFk: z.string(),
|
||||
dmndTmng: z.coerce.date(),
|
||||
dmndQty: z.number(),
|
||||
wntUntprc: z.number(),
|
||||
grssClfg: z.number(),
|
||||
combResdch: z.number(),
|
||||
trbt: z.number(),
|
||||
blgcOxygDmndQnt: z.number(),
|
||||
smll: z.number(),
|
||||
crmty: z.number(),
|
||||
tn: z.number(),
|
||||
tph: z.number(),
|
||||
ph: z.number(),
|
||||
clIonQnt: z.number(),
|
||||
cdtnv: z.number(),
|
||||
rmrk: z.string(),
|
||||
useUsgCd: z.string(),
|
||||
});
|
||||
const DmdMatSchema = z.object({
|
||||
dmdInfoFk: z.string(),
|
||||
splyFcltFk: z.string(),
|
||||
splyFcltFlg: z.string(),
|
||||
pbnstRuseFcltBizFk: z.number(),
|
||||
splyBgngDay: z.coerce.date(),
|
||||
splyEndDay: z.coerce.date(),
|
||||
splyCpct: z.number(),
|
||||
splyFmYn: z.string(),
|
||||
useUsgCd: z.string(),
|
||||
});
|
||||
|
||||
export const DmdCoReqSchema =
|
||||
z.object({
|
||||
cityText:z.string().nullish(),
|
||||
sggText:z.string().nullish(),
|
||||
const DemandInfoSchema = z.object({
|
||||
dmdInfoSn: z.number(),
|
||||
dmdInfoFk: z.string(),
|
||||
dmndTmng: z.coerce.date(),
|
||||
dmndQty: z.number(),
|
||||
wntUntprc: z.number(),
|
||||
grssClfg: z.number(),
|
||||
combResdch: z.number(),
|
||||
trbt: z.number(),
|
||||
blgcOxygDmndQnt: z.number(),
|
||||
smll: z.number(),
|
||||
crmty: z.number(),
|
||||
tn: z.number(),
|
||||
tph: z.number(),
|
||||
ph: z.number(),
|
||||
clIonQnt: z.number(),
|
||||
cdtnv: z.number(),
|
||||
rmrk: z.string(),
|
||||
useUsgCd: z.string(),
|
||||
mtchnCmptnYmd: z.string(),
|
||||
rvwCmptnYmd: z.string()
|
||||
});
|
||||
|
||||
const DemandMatchingSchema = z.object({
|
||||
dmdInfoFk: z.string(),
|
||||
splyFcltFk: z.string(),
|
||||
splyFcltFlg: z.string(),
|
||||
pbnstRuseFcltBizFk: z.number(),
|
||||
splyBgngDay: z.coerce.date(),
|
||||
splyEndDay: z.coerce.date(),
|
||||
splyCpct: z.number(),
|
||||
splyFmYn: z.string(),
|
||||
useUsgCd: z.string(),
|
||||
dmdInfoSn: z.number(),
|
||||
splyCndtList:z.array(z.string())
|
||||
});
|
||||
|
||||
const DemandCoSchema = z.object({
|
||||
dmdInfoPk: z.string(),
|
||||
dmdCoNm: z.string(),
|
||||
ctpvCd: z.string(),
|
||||
@@ -51,11 +54,45 @@ export const DmdCoReqSchema =
|
||||
mdfcnDt: z.coerce.date(),
|
||||
mdfr: z.string(),
|
||||
dmdAplyPswd: z.string(),
|
||||
demandInfo: z.array(DmdInfoSchema),
|
||||
demandMatchings: z.array(DmdMatSchema),
|
||||
})
|
||||
|
||||
|
||||
demandInfo: z.array(DemandInfoSchema).nullish(), // 안쓰는 거임
|
||||
demandMatchings: z.array(DemandMatchingSchema).nullish()// 안쓰는 거임
|
||||
});
|
||||
|
||||
const DemandCstSchema = z.object({
|
||||
dmdInfoSn: z.number(),
|
||||
usgPrcsProcs: z.string(),
|
||||
cstrnCst: z.number(),
|
||||
fcltSbsdEpsTrf: z.number(),
|
||||
prcsFcltCpctCstrnCst: z.number()
|
||||
});
|
||||
|
||||
export const DmdCoReqSchema = z.object({
|
||||
cityText:z.string().nullish(),
|
||||
sggText:z.string().nullish(),
|
||||
dmdInfoSn: z.number(),
|
||||
dmdInfoFk: z.string(),
|
||||
dmndTmng: z.coerce.date(),
|
||||
dmndQty: z.number(),
|
||||
wntUntprc: z.number(),
|
||||
grssClfg: z.number(),
|
||||
combResdch: z.number(),
|
||||
trbt: z.number(),
|
||||
blgcOxygDmndQnt: z.number(),
|
||||
smll: z.number(),
|
||||
crmty: z.number(),
|
||||
tn: z.number(),
|
||||
tph: z.number(),
|
||||
ph: z.number(),
|
||||
clIonQnt: z.number(),
|
||||
cdtnv: z.number(),
|
||||
rmrk: z.string(),
|
||||
useUsgCd: z.string(),
|
||||
mtchnCmptnYmd: z.string(),
|
||||
rvwCmptnYmd: z.string(),
|
||||
demandCo: DemandCoSchema,
|
||||
demandMatching: DemandMatchingSchema,
|
||||
demandCst: DemandCstSchema
|
||||
});
|
||||
|
||||
|
||||
export type DmdCoReqType = z.infer<typeof DmdCoReqSchema>;
|
||||
@@ -67,4 +104,15 @@ export type DmdMatTableType = {
|
||||
telno:string,
|
||||
regDt:string,
|
||||
state:string
|
||||
}
|
||||
|
||||
|
||||
export type DedMatUpdateType =
|
||||
{
|
||||
dmdInfoSn: number;
|
||||
usgPrcsProcs: string;
|
||||
cstrnCst: number;
|
||||
fcltSbsdEpsTrf: number;
|
||||
prcsFcltCpctCstrnCst: number;
|
||||
rgtr: string;
|
||||
}
|
||||
@@ -14,7 +14,7 @@ export const getCity = (val: string, sggCd: SelectDataType[]) => {
|
||||
val: item.val,
|
||||
text: item.text, // 한국어 텍스트
|
||||
}));
|
||||
data.unshift({val:'0',text:'전체'})
|
||||
data.unshift({ val: "0", text: "전체" });
|
||||
return data;
|
||||
};
|
||||
|
||||
@@ -95,8 +95,6 @@ export const excelArrayDownload = (
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
||||
// onchange 텍스트를 숫자로 and ,제거
|
||||
export const handleCommaNumberChange = (
|
||||
e: React.ChangeEvent<HTMLInputElement>,
|
||||
@@ -126,7 +124,6 @@ export const getCityOrSgg = (ref: RefObject<ReturnType>) => {
|
||||
return con;
|
||||
};
|
||||
|
||||
|
||||
export const safeDate = (value: any): Date | undefined => {
|
||||
const date = new Date(value);
|
||||
return isNaN(date.getTime()) ? undefined : date;
|
||||
@@ -139,4 +136,23 @@ export const yearOptions: { val: string; text: string }[] = Array.from(
|
||||
val: String(1970 + i),
|
||||
text: `${1970 + i}년`,
|
||||
})
|
||||
);
|
||||
);
|
||||
|
||||
export const getdmdMatFlag = (flag: string) => {
|
||||
let flagMat = "";
|
||||
switch (flag) {
|
||||
case "Init":
|
||||
flagMat = "신청";
|
||||
break;
|
||||
case "Sub":
|
||||
flagMat = "검토";
|
||||
break;
|
||||
case "Matched":
|
||||
flagMat = "완료";
|
||||
break;
|
||||
default :
|
||||
flagMat = "";
|
||||
break;
|
||||
}
|
||||
return flagMat;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import {
|
||||
Label,
|
||||
Popover,
|
||||
PopoverContent,
|
||||
PopoverTrigger,
|
||||
} from "@common/components";
|
||||
|
||||
export default function BizTotalMoneyPop({
|
||||
children,
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
}) {
|
||||
return (
|
||||
<>
|
||||
<Popover>
|
||||
<PopoverTrigger>{children}</PopoverTrigger>
|
||||
<PopoverContent className="w-[22vw]">
|
||||
<div className="!w-full justify-center flex items-center">
|
||||
<div className=" items-center font-bold mb-1 !text-3xl">총사업비 계산방법</div>
|
||||
<div className=" items-center !text-2xl">
|
||||
하수처리수 재이용시설 총 사업비 = 공사비+시설부대경비{" "}
|
||||
</div>
|
||||
</div>
|
||||
</PopoverContent>
|
||||
</Popover>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
import { usageProcData } from "@/app/store/matDmd/coMatRvw/headList";
|
||||
import { UiTable } from "@common/business_components/ui";
|
||||
import { Popover, PopoverContent, PopoverTrigger } from "@common/components";
|
||||
import { Children } from "react";
|
||||
|
||||
export default function UsageProcData({ children }: { children: React.ReactNode }) {
|
||||
return (
|
||||
<>
|
||||
<Popover>
|
||||
<PopoverTrigger>{children}</PopoverTrigger>
|
||||
|
||||
<PopoverContent className="w-[25vw] max-w-none h-[54vh]">
|
||||
<UiTable
|
||||
className=""
|
||||
headName={"용도에 따른 처리공정"}
|
||||
tableData={usageProcData}
|
||||
headlist={[
|
||||
{ id: "usage", title: "용도" },
|
||||
{ id: "process", title: "단위공정" },
|
||||
]}
|
||||
pageSize={0}
|
||||
total={0}
|
||||
cellClick={() => {}}
|
||||
onPageChange={() => {}}
|
||||
/>
|
||||
</PopoverContent>
|
||||
</Popover>
|
||||
</>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user