From ba92e3400dc6d15b0013ea88d3c1215abee27f10 Mon Sep 17 00:00:00 2001 From: ysCha Date: Wed, 6 May 2026 15:16:46 +0900 Subject: [PATCH] =?UTF-8?q?[1845]=20=EC=8B=A4=EB=82=B4=EC=A7=91=EC=A4=91?= =?UTF-8?q?=ED=98=95=20PCS=20=EC=88=98=EB=8F=99=20=ED=9A=8C=EB=A1=9C?= =?UTF-8?q?=EB=B6=84=ED=95=A0=20=EB=8F=99=EC=9D=BC=20=EB=B0=A9=EC=9C=84/?= =?UTF-8?q?=EA=B5=AC=EB=B0=B0=20=EA=B0=95=EC=A0=9C=20=E2=80=94=20INDFCS=20?= =?UTF-8?q?+=20=EC=88=98=EB=8F=99=20=EB=B6=84=ED=95=A0=EC=97=90=EC=84=9C?= =?UTF-8?q?=20=EB=8B=A4=EB=B0=A9=EC=9C=84/=EB=8B=A4=EA=B5=AC=EB=B0=B0=20?= =?UTF-8?q?=EC=A7=81=EB=A0=AC=ED=9A=8C=EB=A1=9C=20=EA=B5=AC=EC=84=B1=20?= =?UTF-8?q?=EC=B0=A8=EB=8B=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../step/type/PassivityCircuitAllocation.jsx | 19 +++++++++++++++++++ src/locales/ja.json | 1 + src/locales/ko.json | 1 + 3 files changed, 21 insertions(+) diff --git a/src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx b/src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx index b3c38c8e..73e52848 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx @@ -160,6 +160,25 @@ export default function PassivityCircuitAllocation(props) { return } + // [INDFCS-SAME-ROOF 2026-05-06] 실내집중형 PCS 수동 회로분할 시 + // 동일 PCS 의 같은 직렬회로 안에서 다른 방위 또는 다른 구배의 지붕면 모듈이 섞이지 않도록 차단. + // (HANASYS 보고: INDFCS + 수동 분할에서만 다방위/다구배 직렬회로 구성 가능했던 버그) + // 검증 대상 = 이번에 선택한 모듈 + 같은 PCS 에 이미 묶인 기존 모듈 (북면 검사와 동일한 누적 패턴) + const indfcsCombinedSurfaceTypes = new Set( + targetModuleInfos.concat(originHaveThisPcsModules).map((obj) => { + const surface = canvas.getObjects().find((s) => s.id === obj.surfaceId) + return surface ? `${surface.direction}-${surface.roofMaterial.pitch}` : '' + }), + ) + if (indfcsCombinedSurfaceTypes.size > 1) { + swalFire({ + text: getMessage('module.circuit.fix.not.same.direction.pitch.error'), + type: 'alert', + icon: 'warning', + }) + return + } + break } case 'OUTDMULTI': { diff --git a/src/locales/ja.json b/src/locales/ja.json index 96f34735..dee07342 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -1102,6 +1102,7 @@ "module.circuit.minimun.error": "回路番号は1以上の数値を入力してください。", "module.already.exist.error": "回路番号が同じで異なるパワーコンディショナのモジュールがあります。 別の回路番号を設定してください。", "module.circuit.fix.not.same.roof.error": "異なる屋根面のモジュールが選択されています。 モジュールの選択をや直してください。", + "module.circuit.fix.not.same.direction.pitch.error": "異なる方位または異なる勾配の屋根面に設置されたモジュールは、同一の直列回路として構成できません。", "module.circuit.indoor.focused.error": "混合モジュールと屋内集中PCSを組み合わせる場合は、手動回路割り当てのみ対応可能です。", "construction.length.difference": "屋根面工法をすべて選択してください。", "menu.validation.canvas.roof": "パネルを配置するには、屋根面を入力する必要があります。", diff --git a/src/locales/ko.json b/src/locales/ko.json index f9b48bb4..79f691ad 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1102,6 +1102,7 @@ "module.circuit.minimun.error": "회로번호는 1 이상입력해주세요.", "module.already.exist.error": "회로번호가 같은 다른 파워 컨디셔너 모듈이 있습니다. 다른 회로번호를 설정하십시오.", "module.circuit.fix.not.same.roof.error": "다른 지붕면의 모듈이 선택되어 있습니다. 모듈 선택을 다시 하세요.", + "module.circuit.fix.not.same.direction.pitch.error": "다른 방위 또는 다른 구배의 지붕면에 설치된 모듈은 동일한 직렬회로로 구성할 수 없습니다.", "module.circuit.indoor.focused.error": "혼합 모듈과 실내 집중형 PCS를 조합하는 경우, 수동 회로 할당만 가능합니다.", "construction.length.difference": "지붕면 공법을 모두 선택하십시오.", "menu.validation.canvas.roof": "패널을 배치하려면 지붕면을 입력해야 합니다.",