[1845] 실내집중형 PCS 수동 회로분할 동일 방위/구배 강제 — INDFCS + 수동 분할에서 다방위/다구배 직렬회로 구성 차단
This commit is contained in:
parent
cee4f9e4e9
commit
4ebe4cb455
@ -49,6 +49,15 @@
|
||||
- **태그**: `[INDFCS-SAME-ROOF 2026-05-06]`
|
||||
- **회귀 체크**: ① INDFCS 동일 방위/구배 누적 ② INDFCS 1차 동향 후 2차 남향 추가 차단 ③ 북면 혼합 차단(기존) ④ OUTDMULTI 다방위 차단(기존) ⑤ 자동분할 영향 없음.
|
||||
|
||||
### 1.8 [1845] 보정 — 검증 단위를 PCS → 회로번호로 좁힘 (커밋 `[TBD-CODE]`)
|
||||
- **작성일**: 2026-05-06
|
||||
- **배경**: 1.7 수정 직후 회귀에서 **자동분할 후 수동분할 이어가는 시나리오** 차단 발견. 자동으로 회로 1=남(south-5.5) 4장이 부여된 같은 PCS 에, 수동으로 회로 2=서(west-5.5) 4장을 묶으려 하면 alert 차단됨. 회로 1 과 회로 2 는 서로 다른 직렬회로이므로 통과돼야 정상.
|
||||
- **원인**: 1.7 의 (b) 누적 패턴이 같은 PCS 의 **모든** 기존 모듈을 합집합 대상으로 잡아, 다른 회로번호까지 검증에 포함됨. HANASYS 보고 본문 "**同一の直列回路として**構成できてしまう" 에 비춰 보면 검증 단위는 PCS 가 아니라 **회로번호** 가 맞음.
|
||||
- **수정**: `originHaveThisPcsModules` 를 `getCircuitNumber()` 결과 (이번 부여하려는 회로번호 문자열) 와 일치하는 모듈로 필터링한 `sameCircuitExisting` 으로 교체. 이번 선택 모듈 + 같은 회로번호 기존 모듈만 합집합 검증.
|
||||
- **진단 경로**: `debugCapture.log('INDFCS-VALIDATION', ...)` 임시 삽입 → `NEXT_PUBLIC_ENABLE_LOGGING=true` 로 재현 → `debug/debug.log` 에서 `uniqueKeys` 와 `existingSameCircuitCount` 확인 후 정식화 시 제거.
|
||||
- **태그**: `[INDFCS-SAME-ROOF 2026-05-06]` (1.7 과 동일 태그, 주석에 "보정 2026-05-06" 명시)
|
||||
- **회귀 체크 추가**: ⑥ 자동(회로 1 = 남) → 수동(회로 2 = 서) 통과 ⑦ 수동에서 같은 회로번호로 다른 방위 묶기는 여전히 차단.
|
||||
|
||||
---
|
||||
|
||||
## 2. 모듈 배치 / 설치 영역
|
||||
|
||||
@ -161,11 +161,15 @@ export default function PassivityCircuitAllocation(props) {
|
||||
}
|
||||
|
||||
// [INDFCS-SAME-ROOF 2026-05-06] 실내집중형 PCS 수동 회로분할 시
|
||||
// 동일 PCS 의 같은 직렬회로 안에서 다른 방위 또는 다른 구배의 지붕면 모듈이 섞이지 않도록 차단.
|
||||
// "동일한 직렬회로(=같은 회로번호)" 안에서만 다른 방위/구배 모듈이 섞이지 않도록 차단.
|
||||
// 검증 대상 = 이번 선택 모듈 + 같은 PCS·같은 회로번호의 기존 모듈 합집합.
|
||||
// (HANASYS 보고: INDFCS + 수동 분할에서만 다방위/다구배 직렬회로 구성 가능했던 버그)
|
||||
// 검증 대상 = 이번에 선택한 모듈 + 같은 PCS 에 이미 묶인 기존 모듈 (북면 검사와 동일한 누적 패턴)
|
||||
// (보정 2026-05-06: 1차에서 PCS 단위 합집합으로 검증해 다른 회로번호까지 차단되던 것을
|
||||
// "同一の直列回路として" 본문 의도에 맞춰 회로번호 단위로 좁힘)
|
||||
const newCircuitNumberStr = getCircuitNumber()
|
||||
const sameCircuitExisting = originHaveThisPcsModules.filter((obj) => obj.circuitNumber === newCircuitNumberStr)
|
||||
const indfcsCombinedSurfaceTypes = new Set(
|
||||
targetModuleInfos.concat(originHaveThisPcsModules).map((obj) => {
|
||||
targetModuleInfos.concat(sameCircuitExisting).map((obj) => {
|
||||
const surface = canvas.getObjects().find((s) => s.id === obj.surfaceId)
|
||||
return surface ? `${surface.direction}-${surface.roofMaterial.pitch}` : ''
|
||||
}),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user