wr: 사용용도-WR018
This commit is contained in:
@@ -44,6 +44,7 @@ export default function RuseCaseMng() {
|
||||
const [selectUtz, setSelectUtz] = useState<string>("");
|
||||
const [name, setName] = useState<string>("");
|
||||
const [resetPage, isResetPage] = useState(false);
|
||||
const [displayRuseCaseMngList, setDisplayRuseCaseMngList] = useState(ruseCaseMngList);
|
||||
const { t } = useTranslation("base");
|
||||
const alert = useAlertStore((state) => state.setMessage);
|
||||
|
||||
@@ -56,6 +57,19 @@ export default function RuseCaseMng() {
|
||||
ruseCaseMngInit();
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
const sewageOutUseCodeList = code.sewageOutFclttUse ?? [];
|
||||
|
||||
setDisplayRuseCaseMngList(
|
||||
ruseCaseMngList.map((item) => ({
|
||||
...item,
|
||||
grnteWqUsg:
|
||||
sewageOutUseCodeList.find((codeItem) => codeItem.val === item.grnteWqUsg)?.text ??
|
||||
item.grnteWqUsg,
|
||||
}))
|
||||
);
|
||||
}, [code.sewageOutFclttUse, ruseCaseMngList]);
|
||||
|
||||
// 시도 선택
|
||||
const getSelCity = (val: string | number) => {
|
||||
const cityValue = String(val);
|
||||
@@ -133,7 +147,8 @@ export default function RuseCaseMng() {
|
||||
item.ruseFcltUsg,
|
||||
item.ruseFcltSplyCpct,
|
||||
item.ruseFcltPrcsMsrc,
|
||||
item.grnteWqUsg,
|
||||
code.sewageOutFclttUse.find((codeItem) => codeItem.val === item.grnteWqUsg)?.text ??
|
||||
item.grnteWqUsg,
|
||||
item.grnteWqGrssClfg,
|
||||
item.grnteWqCombResdch,
|
||||
item.grnteWqTrbt,
|
||||
@@ -313,7 +328,7 @@ export default function RuseCaseMng() {
|
||||
<div className="w-[350%]">
|
||||
<UiTable
|
||||
headName={"물재이용사례 현황"}
|
||||
tableData={ruseCaseMngList}
|
||||
tableData={displayRuseCaseMngList}
|
||||
headlist={ruseCaseMng.ruseHeadList}
|
||||
widthFixed={true}
|
||||
pageSize={20}
|
||||
|
||||
@@ -217,6 +217,9 @@ export default function RuseRvwHstry() {
|
||||
dmdCoNm: item.demandCo?.dmdCoNm,
|
||||
daddr: item.demandCo?.daddr,
|
||||
telno: formatPhoneNumber(item.demandCo?.telno || ""),
|
||||
useUsgCd:
|
||||
code.sewageOutFclttUse.find((codeItem) => codeItem.val === item.useUsgCd)?.text ??
|
||||
item.useUsgCd,
|
||||
dmndTmng: item?.dmndTmng
|
||||
? moment(item?.dmndTmng).format("YYYY-MM-DD")
|
||||
: "없음",
|
||||
@@ -232,7 +235,7 @@ export default function RuseRvwHstry() {
|
||||
|
||||
setRvwHistData(tableData(data, { code }));
|
||||
}
|
||||
}, [rvwHistRes]);
|
||||
}, [code.sewageOutFclttUse, rvwHistRes]);
|
||||
|
||||
|
||||
return (
|
||||
|
||||
@@ -94,6 +94,22 @@ export const excelDownload = (
|
||||
if (!response.ok) {
|
||||
throw Error(response.statusText);
|
||||
}
|
||||
|
||||
const isTemplateOnlyDownload =
|
||||
excelList.length === 1 &&
|
||||
Array.isArray(excelList[0]) &&
|
||||
excelList[0].length === 0;
|
||||
|
||||
if (isTemplateOnlyDownload) {
|
||||
const blob = await response.blob();
|
||||
const link = document.createElement("a");
|
||||
link.href = URL.createObjectURL(blob);
|
||||
link.download = fileNm.endsWith(".xlsx") ? fileNm : `${fileNm}.xlsx`;
|
||||
link.click();
|
||||
URL.revokeObjectURL(link.href);
|
||||
return;
|
||||
}
|
||||
|
||||
// 받은 파일 바인너리 처리
|
||||
const blobRet = await response.arrayBuffer();
|
||||
// 버퍼에 있는 엑셀데이터 전달 후 json으로 변환
|
||||
@@ -406,4 +422,4 @@ export function handleLaeSeCdChange(
|
||||
isCityCd,
|
||||
isSggCd: [{ text: "전체", val: "0" }, ...sggOrdered],
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,13 +12,14 @@ import { useForm } from "react-hook-form";
|
||||
import type { z } from "zod";
|
||||
|
||||
export default function RuseCaseMngExcel({setIsExcelOpen}:{setIsExcelOpen: (isOpen:boolean)=>void}) {
|
||||
const { insertRuseCaseMng } = useWrStore((state) => state);
|
||||
const { insertRuseCaseMng, code } = useWrStore((state) => state);
|
||||
const alert = useAlertStore((state) => state.setMessage);
|
||||
const form = useForm<z.infer<typeof coRegExcel>>({
|
||||
resolver: zodResolver(coRegExcel),
|
||||
});
|
||||
|
||||
const [file, setFiles] = useState<File | undefined>();
|
||||
const sewageOutUseCodeList = code.sewageOutFclttUse ?? [];
|
||||
|
||||
const onSubmit = () => {
|
||||
if (file) {
|
||||
@@ -125,7 +126,25 @@ export default function RuseCaseMngExcel({setIsExcelOpen}:{setIsExcelOpen: (isOp
|
||||
|
||||
|
||||
if(parsingExcel.ok&&parsingExcel.value){
|
||||
newArray.push(parsingExcel.value);
|
||||
const parsedValue = { ...parsingExcel.value };
|
||||
const usageText = parsedValue.grnteWqUsg?.toString().trim();
|
||||
|
||||
if (usageText) {
|
||||
const usageCode = sewageOutUseCodeList.find(
|
||||
(codeItem) => codeItem.text.trim() === usageText
|
||||
)?.val;
|
||||
|
||||
if (!usageCode) {
|
||||
isError.push([
|
||||
`${parsedValue.ruseBizNm || "행"} => [보증수질_용도별] '${usageText}' 에 해당하는 WR018 코드가 없습니다.`,
|
||||
]);
|
||||
return;
|
||||
}
|
||||
|
||||
parsedValue.grnteWqUsg = usageCode;
|
||||
}
|
||||
|
||||
newArray.push(parsedValue);
|
||||
}else if(parsingExcel.errors){
|
||||
isError.push(parsingExcel.errors);
|
||||
}
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user