From 734636adad85eee4b30081583e7a192685b3d075 Mon Sep 17 00:00:00 2001 From: changkyu choi Date: Thu, 13 Feb 2025 11:33:23 +0900 Subject: [PATCH 1/6] =?UTF-8?q?=EC=9E=90=EB=8F=99=ED=95=A0=EB=8B=B9?= =?UTF-8?q?=EC=9D=BC=20=EB=95=8C=20=EB=AA=A8=EB=93=88=EC=9D=98=20=ED=9A=8C?= =?UTF-8?q?=EB=A1=9C=20=EC=A0=95=EB=B3=B4=20=EC=B4=88=EA=B8=B0=ED=99=94=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9=20=EB=B0=8F=20API=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=8B=9C=20=EB=A9=94=EC=8B=9C=EC=A7=80=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modal/circuitTrestle/CircuitTrestleSetting.jsx | 6 +++++- .../modal/circuitTrestle/step/StepUp.jsx | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx index 67f7c058..736c4f48 100644 --- a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx @@ -178,7 +178,11 @@ export default function CircuitTrestleSetting({ id }) { ...params, pcsItemList: getSelectedPcsItemList(), }).then((res) => { - setTabNum(2) + if (res?.result.resultCode === 'S' && res?.data) { + setTabNum(2) + } else { + swalFire({ text: getMessage('common.message.send.error') }) + } }) } else { swalFire({ diff --git a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx index 723d63bf..d9398aa7 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx @@ -56,9 +56,19 @@ export default function StepUp(props) { // } useEffect(() => { - console.log(allocationType) - if (allocationType === 'auto') { + // 자동일 때 모듈의 회로 정보 초기화 + canvas + .getObjects() + .filter((obj) => obj.name === POLYGON_TYPE.MODULE) + .forEach((module) => { + module.circuit = null + module.circuitNumber = null + module.pcsItemId = null + }) + + canvas.renderAll() + // PCS 자동 승압설정 정보 조회 fetchAutoStepUpData() } else { From f73faa24446ac9cd579cb9e188cca36b029c942a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=8B=9D?= <43837214+Minsiki@users.noreply.github.com> Date: Thu, 13 Feb 2025 11:35:27 +0900 Subject: [PATCH 2/6] =?UTF-8?q?=EB=B6=80=EB=8F=99=20=EC=86=8C=EC=88=98?= =?UTF-8?q?=EC=A0=90=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/useCirCuitTrestle.js | 37 +++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/src/hooks/useCirCuitTrestle.js b/src/hooks/useCirCuitTrestle.js index 408c552f..a0b77644 100644 --- a/src/hooks/useCirCuitTrestle.js +++ b/src/hooks/useCirCuitTrestle.js @@ -15,6 +15,7 @@ import { useContext } from 'react' import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil' import { useMessage } from './useMessage' import { useCanvasPopupStatusController } from './common/useCanvasPopupStatusController' +import Big from 'big.js' export function useCircuitTrestle() { const [makers, setMakers] = useRecoilState(makersState) @@ -207,7 +208,7 @@ export function useCircuitTrestle() { surface.modules.forEach((module) => { if (!surfaceObjects[surface.id][module.moduleInfo.itemId]) { // 지붕면에 모듈 존재 여부 - surfaceObjects[surface.id][module.moduleInfo.itemId] = 0 // 모듈 초기화 + surfaceObjects[surface.id][module.moduleInfo.itemId] = new Big(0) // 모듈 초기화 } surfaceObjects[surface.id][module.moduleInfo.itemId]++ @@ -224,10 +225,18 @@ export function useCircuitTrestle() { if (!surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId]) { surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId] = 0 } - surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId]++ - surfaceObjects[surface.id].circuits[module.circuitNumber].circuits.wpOut += +module.moduleInfo.wpOut - surfaceObjects[surface.id].wpOut -= +module.moduleInfo.wpOut - surfaceObjects[surface.id][module.moduleInfo.itemId]-- + surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId] = Big( + surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId], + ) + .plus(1) + .toNumber() + surfaceObjects[surface.id].circuits[module.circuitNumber].circuits.wpOut = Big( + surfaceObjects[surface.id].circuits[module.circuitNumber].circuits.wpOut, + ) + .plus(+module.moduleInfo.wpOut) + .toNumber() + surfaceObjects[surface.id].wpOut = Big(surfaceObjects[surface.id].wpOut).minus(+module.moduleInfo.wpOut).toNumber() + surfaceObjects[surface.id][module.moduleInfo.itemId] = Big(surfaceObjects[surface.id][module.moduleInfo.itemId]).minus(1).toNumber() } }) }) @@ -236,7 +245,7 @@ export function useCircuitTrestle() { let tempRow = { name: surfaceObjects[key].roofSurface, circuit: surfaceObjects[key].circuit, - wpOut: parseFloat(surfaceObjects[key].wpOut / 1000), + wpOut: parseFloat(Big(surfaceObjects[key].wpOut).div(1000).toNumber()), } selectedModules.itemList.forEach((module) => { tempRow[module.itemId] = surfaceObjects[key][module.itemId] @@ -247,7 +256,7 @@ export function useCircuitTrestle() { let row = { name: surfaceObjects[key].roofSurface, circuit: surfaceObjects[key].circuits[circuit].circuit, - wpOut: parseFloat(surfaceObjects[key].circuits[circuit].circuits.wpOut / 1000), + wpOut: parseFloat(Big(surfaceObjects[key].circuits[circuit].circuits.wpOut).div(1000).toNumber()), } selectedModules.itemList.forEach((module) => { row[module.itemId] = surfaceObjects[key].circuits[circuit].circuits[module.itemId] @@ -255,14 +264,24 @@ export function useCircuitTrestle() { tempRows.push(row) }) }) + let ftWpOut = 0 + tempRows.forEach((row) => { + ftWpOut = Big(ftWpOut).plus(+row.wpOut).toNumber() + }) const tempFooter = { name: getMessage('modal.panel.batch.statistic.total'), circuit: '-', - wpOut: tempRows.reduce((acc, row) => acc + row.wpOut, 0), + wpOut: ftWpOut, } selectedModules.itemList.forEach((module) => { - tempFooter[module.itemId] = tempRows.reduce((acc, row) => acc + (row[module.itemId] ? row[module.itemId] : 0), 0) + let wpOut = 0 + tempRows.forEach((row) => { + wpOut = Big(wpOut) + .plus(+row[module.itemId] ?? 0) + .toNumber() + }) + tempFooter[module.itemId] = wpOut }) canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE) setModuleStatistics({ header: tempHeader, rows: tempRows.filter((row) => row.wpOut !== 0), footer: tempFooter }) From f89332bb65abdf9de49dbb587db7a72562f80cca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=8B=9D?= <43837214+Minsiki@users.noreply.github.com> Date: Thu, 13 Feb 2025 12:20:02 +0900 Subject: [PATCH 3/6] =?UTF-8?q?Undo,=20Redo=20=EB=B2=84=ED=8A=BC=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/floor-plan/CanvasMenu.jsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/floor-plan/CanvasMenu.jsx b/src/components/floor-plan/CanvasMenu.jsx index 46fe5810..8eed041a 100644 --- a/src/components/floor-plan/CanvasMenu.jsx +++ b/src/components/floor-plan/CanvasMenu.jsx @@ -677,8 +677,6 @@ export default function CanvasMenu(props) { > {/**/} - -