wr: 주석 추가 및 냄새 - 으로 나오도록

This commit is contained in:
2026-04-07 18:12:21 +09:00
parent bc577e488f
commit cb8cc460f9
5 changed files with 61 additions and 65 deletions
@@ -53,25 +53,25 @@ const buildingZod = z.object({
});
export const rswtrPolutionsZode = z.object({
utztnUsgCdText:z.string().nullish(),
chkgdnDtlFk: z.string().nullish(),
utztnUsgCd: z.string().nullish(),
node: z.string().nullish(),
grssClfgUswtr: z.number(),
combResdch: z.number(),
trbt: z.number(),
bod: z.number(),
smll: z.number(),
crmty: z.number(),
tph: z.number(),
tn: z.number(),
ph: z.number(),
clIonQnt: z.number(),
regDt: z.string().nullish(),
rgtr: z.string().nullish(),
mdfcnDt: z.string().nullish(),
mdfr: z.string().nullish(),
edit:z.boolean().nullish()
utztnUsgCdText:z.string().nullish(), // 이용용도 코드의 화면 표시용 한글명
chkgdnDtlFk: z.string().nullish(), // 지도점검 상세 PK와 연결되는 FK
utztnUsgCd: z.string().nullish(), // 이용용도 코드
node: z.string().nullish(), // 분기 구분값(1~4분기)
grssClfgUswtr: z.number(), // 총대장균군수
combResdch: z.number(), // 결합잔류염소
trbt: z.number(), // 탁도
bod: z.number(), // BOD
smll: z.string(), // 냄새
crmty: z.number(), // 색도
tph: z.number(), // 총인(T-P)
tn: z.number(), // 총질소(T-N)
ph: z.number(), // 수소이온농도(pH)
clIonQnt: z.number(), // 염화물
regDt: z.string().nullish(), // 등록일시
rgtr: z.string().nullish(), // 등록자
mdfcnDt: z.string().nullish(), // 수정일시
mdfr: z.string().nullish(), // 수정자
edit:z.boolean().nullish() // 화면에서 수정 가능 여부
});
export const rswtrDetailsZod = z.object({
@@ -43,16 +43,16 @@ export type rainChkSttnType = rainChkSttnState & rainChkSttnActions;
export const rainChkSttnStateExport: rainChkSttnState = {
rainChkSttn: {
rainChkRes: [],
fcltDiv: fcltDiv,
rainChkgdnHeadList: rainChkgdnHeadList,
ruseHeadList: ruseHeadList,
splHeadList: splHeadList,
rainHeadNm: rainHeadNm,
isInit: false,
sttnExcelList: [],
isSttn: false,
rainChkCount: 1,
rainChkRes: [], // 빗물이용시설 지도점검 현황 메인 목록 데이터
fcltDiv: fcltDiv, // 시설 구분 RST 중수도시설, RNB 빗물이용시설
rainChkgdnHeadList: rainChkgdnHeadList, // 메인 목록 테이블 헤더 정의
ruseHeadList: ruseHeadList, // 연간 빗물이용량 상세 테이블 헤더 정의
splHeadList: splHeadList, // 연간 대체수이용량 상세 테이블 헤더 정의
rainHeadNm: rainHeadNm, // 메인 목록 다단 헤더명 정의
isInit: false, // 현황 화면 초기 조회 완료 여부
sttnExcelList: [], // 엑셀 다운로드용 가공 데이터
isSttn: false, // 등록/현황 화면 구분 및 읽기 전용 제어 플래그
rainChkCount: 1, // 메인 목록 전체 건수
},
};
+16 -28
View File
@@ -234,7 +234,7 @@ export const chRowspanTable = (
}}
/>
)
) : ["smll", "ph"].includes(head.id) && head.type === "text" ? (
) : ["smll"].includes(head.id) && head.type === "text" ? (
<>-</>
) : [
"totalSplyUswtrUtztnQnt",
@@ -349,27 +349,24 @@ export const InputTableBody = (
return (
<TableRow key={dataIndex + "row"}>
{headList.map((head, headIndex) => {
//냄새, ph면 계산 못하게 - 로 수정
if (["smll", "ph"].includes(head.id)) {
return (
<TableCell
key={head.id + headIndex}
className={`w-36 ${bgClass} text-center !text-xl`}
>
<span>-</span>
</TableCell>
);
}
const isTextColumn = head.id === "구분" || head.id === "용수명";
//냄새면 계산 못하게 - 로 수정
// if (["smll"].includes(head.id)) {
// return (
// <TableCell
// key={head.id + headIndex}
// className={`w-36 ${bgClass} text-center !text-xl`}
// >
// <span>-</span>
// </TableCell>
// );
// }
const isTextColumn = head.id === "구분" || head.id === "utztnUsgCdText";
const textAlignClass = isTextColumn
? "text-center"
: "text-right";
// 총합계 행이면 "구분"에서 colSpan=2로 병합
if (
(data["구분"] === 0 || data["용수명"] === 0) &&
head.id === "구분"
) {
if ( (data["구분"] === 0 || data["용수명"] === 0) && head.id === "구분" ) {
return (
<TableCell
key={head.id + headIndex}
@@ -381,10 +378,7 @@ export const InputTableBody = (
);
}
// 총합계(합계) 행이면 "용수명" 컬럼은 렌더링하지 않음
if (
(data["구분"] === 0 || data["용수명"] === 0) &&
head.id === "용수명"
) {
if ( (data["구분"] === 0 || data["용수명"] === 0) && head.id === "용수명" ) {
return null;
}
@@ -446,13 +440,7 @@ export const InputTableBody = (
key={head.id + headIndex}
className={`w-36 ${bgClass}`}
>
<div
// className={`
// ${head.id !== "utztnUsgCd" ? "text-right" : "text-center"}
// !text-xl w-full h-10
// `}
className={`${textAlignClass} !text-xl w-full h-10`}
>
<div className={`${textAlignClass} !text-xl w-full h-10`}>
{Number(data[head.id])
? formatCommaNumber(data[head.id as keyof any])
: (data[head.id as keyof any] ?? "")}
@@ -14,10 +14,10 @@ import React, { useEffect, useState } from "react";
import type { z } from "zod";
export default function ChkgdModal({
type,
obj,
setIsModal,
readonly,
type, // 시설 구분값. "RNB"이면 빗물, 그 외는 중수도 상세 모달로 처리
obj, // 목록에서 선택한 1건의 상세 데이터. 가이드/수질/과태료 정보 렌더링과 저장에 사용
setIsModal, // 모달 열림 상태를 제어하는 함수. 저장 완료 시 false로 닫는다
readonly, // 편집 가능 여부. true면 입력 가능, false면 조회 전용으로 렌더링
}: {
type: string;
obj: any;
@@ -60,7 +60,7 @@ export default function ChkgdModal({
combResdch: 0,
trbt: 0,
bod: 0,
smll: 0,
smll: '-',
crmty: 0,
tph: 0,
tn: 0,
@@ -72,7 +72,7 @@ export default function ChkgdModal({
useEffect(() => {
if (rainChkSttn.isSttn) {
setHeadList({
splHeadList: rainChkSttn.splHeadList,
splHeadList: rainChkSttn.splHeadList, // 연간 대체수이용량 헤더 정의
ruseHeadList: rainChkSttn.ruseHeadList,
rswtDetailHeadList:
type === "RNB" ? [] : rswtChkSttn.rswtDetailSttnHeadList,
@@ -85,9 +85,12 @@ export default function ChkgdModal({
});
}
}, [
type,
rainChkSttn.isSttn,
rainChkgdn.splHeadList,
rainChkgdn.ruseHeadList,
rainChkSttn.splHeadList,
rainChkSttn.ruseHeadList,
rswtChkgdn.rswtDetailHeadList,
rswtChkSttn.rswtDetailSttnHeadList,
]);
@@ -159,12 +162,13 @@ export default function ChkgdModal({
if (onlyData.length === 0) return;
const total = initStats();
// 분기별 원본 수질 데이터를 모두 더해 평균 계산의 분모/분자를 만든다.
onlyData.forEach((item) => {
total.grssClfgUswtr += item.grssClfgUswtr;
total.combResdch += item.combResdch;
total.trbt += item.trbt;
total.bod += item.bod;
total.smll += item.smll;
// 냄새(smll)는 수치 평균 대상이 아니라 누적하지 않는다.
total.crmty += item.crmty;
total.tph += item.tph;
total.tn += item.tn;
@@ -172,6 +176,7 @@ export default function ChkgdModal({
total.clIonQnt += item.clIonQnt;
});
// 누적 합계를 항목 개수로 나눠 화면에 표시할 평균 행을 만든다.
const average = {
utztnUsgCdText: "평균",
edit: false,
@@ -179,7 +184,7 @@ export default function ChkgdModal({
combResdch: (total.combResdch / onlyData.length).toFixed(1),
trbt: (total.trbt / onlyData.length).toFixed(1),
bod: (total.bod / onlyData.length).toFixed(1),
smll: (total.smll / onlyData.length).toFixed(1),
smll: '-',
crmty: (total.crmty / onlyData.length).toFixed(1),
tph: (total.tph / onlyData.length).toFixed(1),
tn: (total.tn / onlyData.length).toFixed(1),
@@ -1,3 +1,6 @@
/**
* 재이용실적등록 > 지도점검결과 등록 - 중수도 table 목록
*/
"use client";
import { headMakeprfmnc } from "@/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/TableHead";
import { useWrStore } from "@/app/store";