회로및가대설정 모듈데이터별 함수 처리

This commit is contained in:
changkyu choi 2025-01-23 15:25:02 +09:00
parent 23e0cbeb5f
commit 9c35b1e437
2 changed files with 146 additions and 76 deletions

View File

@ -66,14 +66,6 @@ export default function CircuitTrestleSetting({ id }) {
selectedModels, selectedModels,
setSelectedModels, setSelectedModels,
} }
const stepUpProps = {
tabNum,
setTabNum,
models,
setModels,
circuitAllocationType,
setCircuitAllocationType,
}
useEffect(() => { useEffect(() => {
if (!managementState) { if (!managementState) {
@ -89,7 +81,58 @@ export default function CircuitTrestleSetting({ id }) {
}) })
return return
} }
const roofSurfaceList = canvas
console.log('🚀 ~ onAutoRecommend ~ selectedModules:', selectedModules)
const params = {
...getApiProps(),
useModuleItemList: getSelectedModuleList(),
roofSurfaceList: getRoofSurfaceList(),
pcsItemList: getModelList(),
}
getPcsAutoRecommendList(params).then((res) => {
if (res.data?.pcsItemList) {
setModels(res.data.pcsItemList)
setTabNum(2)
} else {
swalFire({
title: '파워컨디셔너를 추가해 주세요.',
type: 'alert',
})
}
})
}
const getApiProps = () => {
return {
maxConnYn: pcsCheck.max ? 'Y' : 'N',
smpCirYn: pcsCheck.division ? 'Y' : 'N',
coldZoneYn: managementState?.coldRegionFlg === '1' ? 'Y' : 'N',
}
}
const getModelList = () => {
return models.map((model) => {
return {
itemId: model.itemId,
pcsMkrCd: model.pcsMkrCd,
pcsSerCd: model.pcsSerCd,
}
})
}
const getSelectedModuleList = () => {
return selectedModules.itemList.map((m) => {
return {
itemId: m.itemId,
mixMatlNo: m.mixMatlNo,
}
})
}
const getRoofSurfaceList = () => {
return canvas
.getObjects() .getObjects()
.filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE) .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE)
.map((obj) => { .map((obj) => {
@ -107,37 +150,6 @@ export default function CircuitTrestleSetting({ id }) {
}), }),
} }
}) })
const params = {
maxConnYn: pcsCheck.max ? 'Y' : 'N',
smpCirYn: pcsCheck.division ? 'Y' : 'N',
coldZoneYn: managementState?.coldRegionFlg === '1' ? 'Y' : 'N',
useModuleItemList: selectedModules.itemList.map((m) => {
return {
itemId: m.itemId,
mixMatlNo: m.mixMatlNo,
}
}),
roofSurfaceList: roofSurfaceList,
pcsItemList: models.map((model) => {
return {
itemId: model.itemId,
pcsMkrCd: model.pcsMkrCd,
pcsSerCd: model.pcsSerCd,
}
}),
}
getPcsAutoRecommendList(params).then((res) => {
if (res.data?.pcsItemList) {
setModels(res.data.pcsItemList)
setTabNum(2)
} else {
swalFire({
title: '파워컨디셔너를 추가해 주세요.',
type: 'alert',
})
}
})
} }
const onAutoAllocation = () => { const onAutoAllocation = () => {
@ -200,6 +212,19 @@ export default function CircuitTrestleSetting({ id }) {
setAllocationType(ALLOCATION_TYPE.PASSIVITY) setAllocationType(ALLOCATION_TYPE.PASSIVITY)
} }
const stepUpProps = {
tabNum,
setTabNum,
models,
setModels,
circuitAllocationType,
setCircuitAllocationType,
getApiProps,
getSelectedModuleList,
getRoofSurfaceList,
getModelList,
}
return ( return (
<WithDraggable isShow={true} pos={{ x: 50, y: 230 }}> <WithDraggable isShow={true} pos={{ x: 50, y: 230 }}>
<div className={`modal-pop-wrap l-2`}> <div className={`modal-pop-wrap l-2`}>

View File

@ -24,9 +24,16 @@ export default function StepUp(props) {
const [stepUpListData, setStepUpListData] = useState([]) const [stepUpListData, setStepUpListData] = useState([])
const [optCodes, setOptCodes] = useState([]) const [optCodes, setOptCodes] = useState([])
useCanvasPopupStatusController(6)
const canvasPopupStatusState = useRecoilValue(canvasPopupStatusStore)
if (Object.keys(canvasPopupStatusState[6]).length !== 0) {
console.log('🚀 ~ useEffect ~ canvasPopupStatusState :', canvasPopupStatusState)
}
useEffect(() => { useEffect(() => {
console.log('🚀 ~ useEffect ~ >>>>>>>>>>>> props:', props)
if (!managementState) { if (!managementState) {
console.log('🚀 ~ useEffect ~ managementState:', managementState)
setManagementState(managementStateLoaded) setManagementState(managementStateLoaded)
} }
@ -73,48 +80,86 @@ export default function StepUp(props) {
} }
//getPcsVoltageStepUpList(null) //getPcsVoltageStepUpList(null)
getPcsVoltageStepUpList().then((res) => { // PCS
fetchStepUpData()
}, [])
const fetchStepUpData = async () => {
try {
const res = await getPcsVoltageStepUpList()
if (res?.result.code === 200 && res?.data) { if (res?.result.code === 200 && res?.data) {
const dataArray = Array.isArray(res.data) ? res.data : [res.data] const dataArray = Array.isArray(res.data) ? res.data : [res.data]
const stepUpListData = dataArray.map((stepUps) => ({ const stepUpListData = formatStepUpListData(dataArray)
...stepUps,
optionList: (stepUps.optionList || []).map((option) => ({
pcsOptCd: option.pcsOptCd,
pcsOptNm: option.pcsOptNm,
pcsOptNmJp: option.pcsOptNmJp,
})),
pcsItemList: (stepUps.pcsItemList || []).map((item) => ({
goodsNo: item.goodsNo,
itemId: item.itemId,
itemNm: item.itemNm,
pcsMkrCd: item.pcsMkrCd,
pcsSerCd: item.pcsSerCd,
connList: (item.connList || []).map((conn) => ({
connAllowCur: conn.connAllowCur,
connMaxParalCnt: conn.connMaxParalCnt,
goodsNo: conn.goodsNo,
itemId: conn.itemId,
itemNm: conn.itemNm,
vstuParalCnt: conn.vstuParalCnt,
})),
serQtyList: (item.serQtyList || []).map((qty) => ({
serQty: qty.serQty,
paralQty: qty.paralQty,
})),
})),
}))
console.log('🚀 ~ useEffect ~ getPcsVoltageStepUpList ~ stepUpListData:', stepUpListData) console.log('🚀 ~ useEffect ~ getPcsVoltageStepUpList ~ stepUpListData:', stepUpListData)
setStepUpListData(stepUpListData) setStepUpListData(stepUpListData)
setOptCodes(res.data.optionList.map((opt) => ({ ...opt, code: opt.pcsOptCd, name: opt.pcsOptNm, nameJp: opt.pcsOptNmJp }))) // PCS
const formattedOptCodes = formatOptionCodes(res.data.optionList)
setOptCodes(formattedOptCodes)
} }
}) } catch (error) {
}, []) console.error('Error fetching step up data:', error)
}
}
useCanvasPopupStatusController(6) // PCS
const canvasPopupStatusState = useRecoilValue(canvasPopupStatusStore) const formatOptionCodes = (optionList = []) => {
if (Object.keys(canvasPopupStatusState[6]).length !== 0) { return optionList.map((opt) => ({
console.log('🚀 ~ useEffect ~ canvasPopupStatusState :', canvasPopupStatusState) code: opt.pcsOptCd,
name: opt.pcsOptNm,
nameJp: opt.pcsOptNmJp,
}))
}
// PCS
const formatStepUpListData = (dataArray = []) => {
return dataArray.map((stepUps) => ({
...stepUps,
optionList: formatOptionList(stepUps.optionList),
pcsItemList: formatPcsItemList(stepUps.pcsItemList),
}))
}
// PCS
const formatOptionList = (optionList = []) => {
return optionList.map((option) => ({
pcsOptCd: option.pcsOptCd,
pcsOptNm: option.pcsOptNm,
pcsOptNmJp: option.pcsOptNmJp,
}))
}
// PCS
const formatPcsItemList = (pcsItemList = []) => {
return pcsItemList.map((item) => ({
goodsNo: item.goodsNo,
itemId: item.itemId,
itemNm: item.itemNm,
pcsMkrCd: item.pcsMkrCd,
pcsSerCd: item.pcsSerCd,
connList: formatConnList(item.connList),
serQtyList: formatSerQtyList(item.serQtyList),
}))
}
// PCS
const formatConnList = (connList = []) => {
return connList.map((conn) => ({
connAllowCur: conn.connAllowCur,
connMaxParalCnt: conn.connMaxParalCnt,
goodsNo: conn.goodsNo,
itemId: conn.itemId,
itemNm: conn.itemNm,
vstuParalCnt: conn.vstuParalCnt,
}))
}
// PCS
const formatSerQtyList = (serQtyList = []) => {
return serQtyList.map((qty) => ({
serQty: qty.serQty,
paralQty: qty.paralQty,
}))
} }
// //