diff --git a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx index 011cfe54..24c5a44d 100644 --- a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx @@ -58,7 +58,6 @@ export default function CircuitTrestleSetting({ id }) { const { setModuleStatisticsData } = useCircuitTrestle() const { handleCanvasToPng } = useImgLoader() const moduleSelectionData = useRecoilValue(moduleSelectionDataState) - const passivityCircuitAllocationRef = useRef() const { setIsGlobalLoading } = useContext(QcastContext) const originCanvasViewPortTransform = useRef([]) @@ -844,9 +843,16 @@ export default function CircuitTrestleSetting({ id }) { pcsItemId: item.itemId, pscOptCd: getPcsOptCd(index), paralQty: serQty.paralQty, - // 접속함 중복 체크: 동일 itemId는 1개만, 다르면 각각 올림 + // 접속함 중복 체크: (itemId, moduleTpCd) 조합 기준으로 dedupe (Cross Mix 구분) connections: item.connList?.length - ? [...new Map(item.connList.map((conn) => [conn.itemId, { connItemId: conn.itemId, connMaxParalCnt: conn.connMaxParalCnt }])).values()] + ? [ + ...new Map( + item.connList.map((conn) => [ + `${conn.itemId}_${conn.moduleTpCd}`, + { connItemId: conn.itemId, connMaxParalCnt: conn.connMaxParalCnt, moduleTpCd: conn.moduleTpCd }, + ]), + ).values(), + ] : [], }) // return { @@ -1041,7 +1047,7 @@ export default function CircuitTrestleSetting({ id }) { {tabNum === 1 && allocationType === ALLOCATION_TYPE.AUTO && } {tabNum === 1 && allocationType === ALLOCATION_TYPE.PASSIVITY && ( - + )} {tabNum === 2 && } diff --git a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx index da6ea213..60f44db3 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx @@ -345,6 +345,7 @@ export default function StepUp(props) { itemId: conn.itemId ?? '', itemNm: conn.itemNm ?? '', vstuParalCnt: conn.vstuParalCnt ?? 0, + moduleTpCd: conn.moduleTpCd, })) } @@ -585,15 +586,16 @@ export default function StepUp(props) { pcsItemId: serQty.itemId, pcsOptCd: seletedOption, paralQty: serQty.paralQty, - // 접속함 중복 체크: 동일 itemId는 1개만, 다르면 각각 올림 + // 접속함 중복 체크: (itemId, moduleTpCd) 조합 기준으로 dedupe connections: item.connList?.length ? [ ...new Map( item.connList.map((conn) => [ - conn.itemId, + `${conn.itemId}_${conn.moduleTpCd}`, { connItemId: conn.itemId, connMaxParalCnt: conn.connMaxParalCnt, + moduleTpCd: conn.moduleTpCd, }, ]), ).values(), diff --git a/src/hooks/common/useMasterController.js b/src/hooks/common/useMasterController.js index 36f5bd61..971b42ce 100644 --- a/src/hooks/common/useMasterController.js +++ b/src/hooks/common/useMasterController.js @@ -264,6 +264,8 @@ export function useMasterController() { */ const getPcsAutoRecommendList = async (params = null) => { return await post({ url: '/api/v1/master/getPcsAutoRecommendList', data: params }).then((res) => { + console.log('[moduleTpCd] getPcsAutoRecommendList req:', params) + console.log('[moduleTpCd] getPcsAutoRecommendList res pcsItemList:', res?.data?.pcsItemList?.map((p) => ({ itemId: p.itemId, pcsTpCd: p.pcsTpCd, connList: p.connList?.map((c) => ({ itemId: c.itemId, moduleTpCd: c.moduleTpCd })) }))) return res }) } @@ -286,6 +288,8 @@ export function useMasterController() { */ const getPcsVoltageChk = async (params = null) => { return await post({ url: '/api/v1/master/getPcsVoltageChk', data: params }).then((res) => { + console.log('[moduleTpCd] getPcsVoltageChk req:', params) + console.log('[moduleTpCd] getPcsVoltageChk res pcsItemList:', res?.data?.pcsItemList?.map((p) => ({ itemId: p.itemId, pcsTpCd: p.pcsTpCd, connList: p.connList?.map((c) => ({ itemId: c.itemId, moduleTpCd: c.moduleTpCd })) }))) return res }) } @@ -322,11 +326,15 @@ export function useMasterController() { } return await post({ url: '/api/v1/master/getPcsVoltageStepUpList', data: params }).then((res) => { + console.log('[moduleTpCd] getPcsVoltageStepUpList req:', params) + console.log('[moduleTpCd] getPcsVoltageStepUpList res pcsItemList:', res?.data?.pcsItemList?.map((p) => ({ itemId: p.itemId, pcsTpCd: p.pcsTpCd, connList: p.connList?.map((c) => ({ itemId: c.itemId, moduleTpCd: c.moduleTpCd })) }))) return res }) } const getQuotationItem = async (params) => { + console.log('[moduleTpCd] getQuotationItem req pcses.connections:', params?.pcses?.map((p) => ({ pcsItemId: p.pcsItemId, connections: p.connections }))) + console.log('[moduleTpCd] getQuotationItem full req:', params) return await post({ url: '/api/v1/master/getQuotationItem', data: params }) .then((res) => { return res @@ -355,6 +363,8 @@ export function useMasterController() { */ const getPcsConnOptionItemList = async (params = null) => { return await post({ url: '/api/v1/master/getPcsConnOptionItemList', data: params }).then((res) => { + console.log('[moduleTpCd] getPcsConnOptionItemList req:', params) + console.log('[moduleTpCd] getPcsConnOptionItemList res pcsItemList:', res?.data?.pcsItemList?.map((p) => ({ itemId: p.itemId, pcsTpCd: p.pcsTpCd, connList: p.connList?.map((c) => ({ itemId: c.itemId, moduleTpCd: c.moduleTpCd })) }))) return res }) }