조치 진행 중, pnpm build any제외 작업진행

This commit is contained in:
jsyang
2025-07-24 10:17:58 -04:00
parent cd08b5dad8
commit c8d2c4e17e
7 changed files with 50 additions and 243 deletions
@@ -2,7 +2,7 @@
import { useFoStore } from "@/app/store";
import type { TableUpperProps } from "@/app/store/processFacility";
import { ContentsDiv, UiModal, UiTable } from "@common/business_components";
import { cn, Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@common/components";
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@common/components";
import { useEffect, useState } from "react";
import DashBoardChartModal from "./modal/page";
+25 -50
View File
@@ -1,11 +1,11 @@
"use client"
import { useFoStore } from "@/app/store";
import type { SewageOccurDetailProps } from "@/app/store/sewageOccur";
import { DateMonthPicker, UiTable } from "@common/business_components/ui";
import ListDiv from "@common/business_components/ui/list_div";
import { Table, TableCell, TableHead, TableRow } from "@common/components/ui";
import { useEffect, useState } from "react";
type tableType = { msrDt: string,waterUsage: number,swageChangePercent: number,estimationSewage: number};
export default function SewageOccurModal(props: { fcltyName: string; facilityCd : string; searchYear : string}) {
// 그리드 관련
const {SewageOccurDetail, searchSewageOccurDetailList} = useFoStore((state) => state);
@@ -15,7 +15,7 @@ export default function SewageOccurModal(props: { fcltyName: string; facilityCd
const [startYearMonth, setStartYearMonth] = useState(validSearchYear+'01');
const [endYearMonth, setEndYearMonth] = useState(validSearchYear+'12');
const [detailList, setDetailList] = useState<SewageOccurDetailProps[]>([]);
const [detailList, setDetailList] = useState<tableType[]>([]);
const {
upHeadListSewageOccurDetail,
gridListSewageOccurDetail
@@ -26,76 +26,51 @@ export default function SewageOccurModal(props: { fcltyName: string; facilityCd
}, [searchSewageOccurDetailList, props.facilityCd, validSearchYear]);
useEffect(() => {
const filteredList = gridListSewageOccurDetail.filter(item => item.msrDt.replace(/-/g, '') >= startYearMonth && item.msrDt.replace(/-/g, '') <= endYearMonth);
let maxWaterUsage = 0;
let maxSwageChangePercent = 0;
let maxEstimationSewage = 0;
let minWaterUsage = filteredList[0]?.waterUsage || 0;
let minSwageChangePercent = filteredList[0]?.swageChangePercent || 0;
let minEstimationSewage = filteredList[0]?.estimationSewage || 0;
let minWaterUsage = 9999999999;
let totalWaterUsage = 0;
let totalSwageChangePercent = 0;
let totalEstimationSewage = 0;
let avgWaterUsage = 0;
let avgSwageChangePercent = 0;
let avgEstimationSewage = 0;
filteredList.forEach(item => {
if (item.waterUsage > maxWaterUsage) {
maxWaterUsage = item.waterUsage;
}
if (item.swageChangePercent > maxSwageChangePercent) {
maxSwageChangePercent = item.swageChangePercent;
}
if (item.estimationSewage > maxEstimationSewage) {
maxEstimationSewage = item.estimationSewage;
const tableData:tableType[] = []
gridListSewageOccurDetail.forEach((item, index) => {
tableData.push({
msrDt: item.yr+'-'+(index+1>10?String(index+1):'0'+(index+1)),
waterUsage: Math.round(item.usege * 100) / 100,
swageChangePercent: Math.round((item.usege/item.usege*0.8) * 100) / 100,
estimationSewage: Math.round(item.usege*0.8 * 100) / 100
})
if (item.usege > maxWaterUsage) {
maxWaterUsage = item.usege;
}
if (item.waterUsage < minWaterUsage) {
minWaterUsage = item.waterUsage;
if (item.usege < minWaterUsage) {
minWaterUsage = item.usege;
}
if (item.swageChangePercent < minSwageChangePercent) {
minSwageChangePercent = item.swageChangePercent;
}
if (item.estimationSewage < minEstimationSewage) {
minEstimationSewage = item.estimationSewage;
}
totalWaterUsage += item.waterUsage;
totalSwageChangePercent += item.swageChangePercent;
totalEstimationSewage += item.estimationSewage;
totalWaterUsage += item.usege;
});
avgWaterUsage = totalWaterUsage?totalWaterUsage / filteredList.length:0;
console.log("totalWaterUsage", totalWaterUsage);
console.log("filteredList.length", filteredList.length);
console.log("avgWaterUsage", avgWaterUsage);
avgSwageChangePercent = totalSwageChangePercent?totalSwageChangePercent / filteredList.length:0;
avgEstimationSewage = totalEstimationSewage?totalEstimationSewage / filteredList.length:0;
avgWaterUsage = totalWaterUsage?totalWaterUsage / gridListSewageOccurDetail.length:0;
const newData = [
const newData= [
{
msrDt: '평균',
waterUsage: Math.round(avgWaterUsage * 100) / 100,
swageChangePercent: Math.round(avgSwageChangePercent * 100) / 100,
estimationSewage: Math.round(avgEstimationSewage * 100) / 100
swageChangePercent: Math.round((avgWaterUsage/avgWaterUsage*0.8) * 100) / 100,
estimationSewage: Math.round(avgWaterUsage*0.8 * 100) / 100
},
{
msrDt: '최대',
waterUsage: maxWaterUsage,
swageChangePercent: maxSwageChangePercent,
estimationSewage: maxEstimationSewage
swageChangePercent: Math.round((maxWaterUsage/maxWaterUsage*0.8) * 100) / 100,
estimationSewage: Math.round(maxWaterUsage*0.8 * 100) / 100
},
{
msrDt: '최소',
waterUsage: minWaterUsage,
swageChangePercent: minSwageChangePercent,
estimationSewage: minEstimationSewage
swageChangePercent: Math.round((minWaterUsage/minWaterUsage*0.8) * 100) / 100,
estimationSewage: Math.round(minWaterUsage*0.8 * 100) / 100
},
...filteredList
...tableData
]
setDetailList(newData);
-2
View File
@@ -13,7 +13,6 @@ export default function PlanSewage() {
,SewageOccurSearch
,initializeCommonData
,searchSewageOccurList
,calculateModalDataForAllFacilities
} = useFoStore((state) => state) || {
Common: { isInit: false, selectUpdownData: [], selectOperationData: [], selectSidoData: [], selectSigunData: [], selectRegionData: [], selectUnitWaterShedData: [], selectMiddleRegionData: [], selectEnvPartData: [], selectSearchYear: [{ val: "0" }], btnClass: "" },
SewageOccur: { sewageOccurList: [], sewageOccurCount: 0, excelList: [], upHeadList1: [], upHeadList2: [], upHeadList3: [] },
@@ -68,7 +67,6 @@ export default function PlanSewage() {
const [selectedRow, setSelectedRow] = useState<number | null>(null);
const [fcltyNm, setFcltyNm] = useState<string>("");
const [fcltyCd, setFcltyCd] = useState<string>("");
const [isCalculating, setIsCalculating] = useState<boolean>(false);
// 그리드 관련
const searchInputRef = useRef<HTMLDivElement & HTMLInputElement>(null);
-1
View File
@@ -344,7 +344,6 @@ export const flowRateSearchReducer:(set:(fn: (state: FlowRateSearchType) => Flow
rainEffectDay = rainDay;
}
let test = tmpData.find((item: FlowRateModalProps) => item.msrDt === item.msrDt);
tmpData.push({
...item,
rainEffectDay: rainEffectDay,
+19 -188
View File
@@ -1,4 +1,3 @@
import DataForm from "@/app/components/common/DataForm";
import type { TableUpperProps } from "../dashboard";
import { getFetch } from "@/app/components/api";
export type { TableUpperProps };
@@ -31,26 +30,12 @@ export type SewageOccurProps = {
}
export type SewageOccurDetailProps = {
msrDt : string,
waterUsage : number,
swageChangePercent : number,
estimationSewage : number,
cnt : number,
sum : number,
yr:string,
usege:number
}
type RawSewageData = {
msrDt: string;
inflAmnt: string;
// 기타 다른 필드 생략
};
/**====================================
* Store - data
====================================*/
/**
* (1) 메인페이지
*/
// 검색단
const LabelArray:string[] = ['구분', '시도', '시군구','용량별', '시설명', '조회기간', '시설상태', '권역', '단위유역', '중권역', '환경청별'];
@@ -131,155 +116,9 @@ const upHeadListSewageOccurDetail:TableUpperProps[] = [
{ id: "estimationSewage", title: "오수발생량 추정(m³/일)", row:0, rowSpan:2 },
];
const sewageOccurList:SewageOccurProps[] = [
]
const sewageOccurList:SewageOccurProps[] = []
const tempSewageOccurList:SewageOccurDetailProps[] = [
{
msrDt: '2024-01',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 60,
},
{
msrDt: '2024-02',
waterUsage: 106,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2024-03',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2024-04',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2024-05',
waterUsage: 100,
swageChangePercent: 10,
estimationSewage: 80,
},
{
msrDt: '2024-06',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2024-07',
waterUsage: 100,
swageChangePercent: 580,
estimationSewage: 80,
},
{
msrDt: '2024-08',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2024-09',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2024-10',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2024-11',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2024-12',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2025-01',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2025-02',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2025-03',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2025-04',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2025-05',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2025-06',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2025-07',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2025-08',
waterUsage: 100,
swageChangePercent: 0.8,
estimationSewage: 80,
},
{
msrDt: '2025-09',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2025-10',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2025-11',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
{
msrDt: '2025-12',
waterUsage: 100,
swageChangePercent: 80,
estimationSewage: 80,
},
]
const tempSewageOccurList:SewageOccurDetailProps[] = []
/**====================================
* Store - API
@@ -318,7 +157,6 @@ const fetchSewageOccurDetailList = async (bscFctCd: string, searchYear: string)
export type SewageOccurActions = {
searchSewageOccurList: (pageNo: number, pageSize: number, searchYear: string, part?: string, nameCd?: string, fcltCpct?: string, operationValue?: string, fcltyNm?: string) => void;
searchSewageOccurDetailList: (bscFctCd: string, searchYear: string) => void;
calculateModalDataForAllFacilities: (facilityList: SewageOccurProps[], searchYear: string) => Promise<SewageOccurProps[]>;
}
export type SewageOccurType = {
@@ -367,14 +205,6 @@ export const sewageOccurInitState: SewageOccurType = {
}
}
const dataFormSetting=(item : SewageOccurProps)=> {
DataForm({ type: 'float1', column: 'fctCpc', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'waterUsage', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'estimationSewage', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'sewageInputYear', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'sewageInputChungchun', item: item as unknown as Record<string, unknown>});
}
export type SewageOccurStore = SewageOccurType & SewageOccurActions;
// Add type definitions for API responses
@@ -390,9 +220,7 @@ type FlowResponse = {
count: number;
}
type SetStateFunction = (state: SewageOccurType | ((state: SewageOccurType) => SewageOccurType)) => void;
export const sewageOccurReducer:(set:SetStateFunction)=>SewageOccurActions=(set: SetStateFunction) => {
export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => {
return {
searchSewageOccurList: async (pageNo: number, pageSize: number, searchYear: string, part?: string, nameCd?: string, fcltCpct?: string, operationValue?: string, fcltyNm?: string) => {
const res = await fetchSewageOccurList(pageNo, pageSize, searchYear, part, nameCd, fcltCpct, operationValue, fcltyNm);
@@ -422,7 +250,7 @@ export const sewageOccurReducer:(set:SetStateFunction)=>SewageOccurActions=(set:
}
totWaterUsage += Number(item.inflAmnt);
});
let avg = totWaterUsage /res2.count;
const avg = totWaterUsage /res2.count;
console.log("avg ", avg);
item.waterUsage = avg * 0.65;
item.sewageInputYear = sumFlow/res2.count;
@@ -430,7 +258,7 @@ export const sewageOccurReducer:(set:SetStateFunction)=>SewageOccurActions=(set:
return item;
}));
// 조회 데이터 설정
set((state: SewageOccurType) => ({
set((state: any) => ({
...state,
SewageOccur: pageSize<5000?{
...state.SewageOccur,
@@ -445,26 +273,29 @@ export const sewageOccurReducer:(set:SetStateFunction)=>SewageOccurActions=(set:
searchSewageOccurDetailList: async (bscFctCd: string, searchYear: string) => {
const res = await fetchSewageOccurDetailList(bscFctCd, searchYear);
console.log('resData ', res.data);
let monthData: number[] = [];
const monthData: SewageOccurDetailProps[] = [];
res.data.forEach((item: FlowDataItem) => {
let month = item.msrDt?.substring(5, 7);
const month = item.msrDt?.substring(5, 7);
const monthIdx = month ? Number(month) - 1 : -1;
if (monthIdx >= 0) {
if (typeof monthData[monthIdx] === 'number') {
monthData[monthIdx] += Number(item.inflAmnt);
if (typeof monthData[monthIdx] === 'object') {
monthData[monthIdx].sum += Number(item.inflAmnt);
monthData[monthIdx].cnt++;
} else {
monthData[monthIdx] = Number(item.inflAmnt);
monthData[monthIdx] = {cnt:1, sum:Number(item.inflAmnt), yr:item.msrDt.substring(0,4), usege:0};
}
}
})
monthData.forEach(item => {
item.usege = item.sum/item.cnt *0.65
});
set((state: SewageOccurType) => ({
...state,
SewageOccurDetail: {
...state.SewageOccurDetail,
gridListSewageOccurDetail: processedData,
gridListSewageOccurDetail: monthData,
}
}))
},
+4
View File
@@ -11,6 +11,10 @@ const compat = new FlatCompat({
const eslintConfig = [
...compat.extends("next/core-web-vitals", "next/typescript"),
{rules:{
// other rules..
"@typescript-eslint/no-explicit-any": "off",
}},
];
export default eslintConfig;
@@ -20,7 +20,7 @@ export class TokenManager {
public setToken(key: string, value: string): void {
setCookie(key, value, {
secure: window.location.protocol === "https:",
secure: location.protocol === "https:",
sameSite: "lax",
});
}