wr: 주석 추가 및 냄새 - 으로 나오도록
This commit is contained in:
@@ -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, // 메인 목록 전체 건수
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -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";
|
||||
|
||||
Reference in New Issue
Block a user