列车驾驶台加对应列车索引+生成继电器时加是否覆盖之前的采集驱动数据

This commit is contained in:
joylink_zhaoerwei 2024-05-07 13:09:16 +08:00
parent e71ff9a5c7
commit a337216236
2 changed files with 165 additions and 156 deletions

View File

@ -83,6 +83,7 @@
:width="tccCanvasWidth"
:height="tccCanvasHeight"
@hide="tccHide"
:title="`列车${tccStore.tccId}`"
>
<div id="tcc-app-container" class="overflow-hidden"></div>
</draggable-dialog>

View File

@ -197,6 +197,10 @@
label="集中站"
:rules="[(val) => val != '' || '集中站不能为空']"
></q-select>
<q-toggle
v-model="generaterRelayLayout.generateCJQD"
label="是否覆盖采集驱动数据"
/>
<div class="q-gutter-sm q-pa-md row justify-center">
<q-btn
label="确定"
@ -469,7 +473,8 @@ const generaterRelayLayoutDialog = ref(false);
const generaterRelayLayout = ref<{
publishId: string;
centralizedStation: number;
}>({ publishId: '', centralizedStation: 0 });
generateCJQD: boolean;
}>({ publishId: '', centralizedStation: 0, generateCJQD: true });
let publishIdOption = ref<{ label: string; value: number }[]>();
let centralizedStationsOption = ref<{ label: string; value: number }[]>([
@ -827,180 +832,183 @@ function oneClickGeneraterRelayLayout() {
);
}
});
//
const deviceRelateRelayList = loadDeviceRelateRelayList();
const allCjData: relayCabinetGraphicData.CjData[] = [];
deviceRelateRelayList.forEach((deviceRelateRelay) => {
let deviceCiCjConfig;
if (deviceRelateRelay.deviceType !== DeviceType.CarWashing) {
deviceCiCjConfig = ciCjMap.get(
`${deviceRelateRelay.deviceType}+${allDeviceModelMap.get(
`${deviceRelateRelay.deviceType}+${deviceRelateRelay.code}`
)}`
);
} else {
deviceCiCjConfig = ciCjMap.get(
`${deviceRelateRelay.deviceType}+undefined`
);
}
let copyDeviceCiCjConfig: CjData[] =
deviceCiCjConfig === undefined
? undefined
: JSON.parse(JSON.stringify(deviceCiCjConfig));
//EMP
if (
deviceRelateRelay.deviceType == DeviceType.station &&
deviceCiCjConfig
) {
const handleCopyDeviceCiCjConfig: CjData[] = [];
if (hasEMP_MKX_SPKS.hasEMP) {
const refDeviceCodesAndPos: {
code: string;
position: relayCabinetGraphicData.CjDataItem.PostionType;
}[][] = [];
deviceRelateRelay.combinationtypes[0].refRelays.forEach(
(relayId) => {
const code = generateRelays.find((g) => g.id == relayId)?.code;
if (code) {
refDeviceCodesAndPos.push(
[
{
code,
position: PostionType.Q,
},
],
[
{
code,
position: PostionType.H,
},
]
);
}
}
if (generaterRelayLayout.value.generateCJQD) {
//
const deviceRelateRelayList = loadDeviceRelateRelayList();
const allCjData: relayCabinetGraphicData.CjData[] = [];
deviceRelateRelayList.forEach((deviceRelateRelay) => {
let deviceCiCjConfig;
if (deviceRelateRelay.deviceType !== DeviceType.CarWashing) {
deviceCiCjConfig = ciCjMap.get(
`${deviceRelateRelay.deviceType}+${allDeviceModelMap.get(
`${deviceRelateRelay.deviceType}+${deviceRelateRelay.code}`
)}`
);
} else {
deviceCiCjConfig = ciCjMap.get(
`${deviceRelateRelay.deviceType}+undefined`
);
handleCopyDeviceCiCjConfig?.push({
code: 'EMP',
refDeviceCodesAndPos,
});
}
if (hasEMP_MKX_SPKS.hasMKX) {
handleCopyDeviceCiCjConfig.push(deviceCiCjConfig[0]);
let copyDeviceCiCjConfig: CjData[] =
deviceCiCjConfig === undefined
? undefined
: JSON.parse(JSON.stringify(deviceCiCjConfig));
//EMP
if (
deviceRelateRelay.deviceType == DeviceType.station &&
deviceCiCjConfig
) {
const handleCopyDeviceCiCjConfig: CjData[] = [];
if (hasEMP_MKX_SPKS.hasEMP) {
const refDeviceCodesAndPos: {
code: string;
position: relayCabinetGraphicData.CjDataItem.PostionType;
}[][] = [];
deviceRelateRelay.combinationtypes[0].refRelays.forEach(
(relayId) => {
const code = generateRelays.find(
(g) => g.id == relayId
)?.code;
if (code) {
refDeviceCodesAndPos.push(
[
{
code,
position: PostionType.Q,
},
],
[
{
code,
position: PostionType.H,
},
]
);
}
}
);
handleCopyDeviceCiCjConfig?.push({
code: 'EMP',
refDeviceCodesAndPos,
});
}
if (hasEMP_MKX_SPKS.hasMKX) {
handleCopyDeviceCiCjConfig.push(deviceCiCjConfig[0]);
}
if (hasEMP_MKX_SPKS.hasSPKS) {
handleCopyDeviceCiCjConfig.push(deviceCiCjConfig[1]);
}
copyDeviceCiCjConfig = handleCopyDeviceCiCjConfig;
}
if (hasEMP_MKX_SPKS.hasSPKS) {
handleCopyDeviceCiCjConfig.push(deviceCiCjConfig[1]);
}
copyDeviceCiCjConfig = handleCopyDeviceCiCjConfig;
}
//
if (
deviceRelateRelay.deviceType == DeviceType.CarWashing &&
deviceCiCjConfig
) {
const duanNum = allDeviceModelMap.get(
`${deviceRelateRelay.deviceType}+${deviceRelateRelay.code}`
) as string;
for (let i = 2; i <= +duanNum; i++) {
copyDeviceCiCjConfig[0].refDeviceCodesAndPos.push([
{
code: `TWJ${i}`,
position: PostionType.Q,
},
]);
copyDeviceCiCjConfig[1].refDeviceCodesAndPos.push(
[
//
if (
deviceRelateRelay.deviceType == DeviceType.CarWashing &&
deviceCiCjConfig
) {
const duanNum = allDeviceModelMap.get(
`${deviceRelateRelay.deviceType}+${deviceRelateRelay.code}`
) as string;
for (let i = 2; i <= +duanNum; i++) {
copyDeviceCiCjConfig[0].refDeviceCodesAndPos.push([
{
code: `CFJ${i}`,
code: `TWJ${i}`,
position: PostionType.Q,
},
],
[
{
code: `CFJ${i}`,
position: PostionType.H,
},
]
);
]);
copyDeviceCiCjConfig[1].refDeviceCodesAndPos.push(
[
{
code: `CFJ${i}`,
position: PostionType.Q,
},
],
[
{
code: `CFJ${i}`,
position: PostionType.H,
},
]
);
}
}
}
copyDeviceCiCjConfig?.forEach((combinationtype) => {
combinationtype.refDeviceCodesAndPos.forEach((items) => {
const cjData: relayCabinetGraphicData.CjDataItem[] = [];
items.forEach((relay) => {
cjData.push(
new relayCabinetGraphicData.CjDataItem({
relayId: generateRelaysMap.get(
`${deviceRelateRelay.deviceType}+${deviceRelateRelay.code}+${combinationtype.code}+${relay.code}`
),
position: relay.position,
})
copyDeviceCiCjConfig?.forEach((combinationtype) => {
combinationtype.refDeviceCodesAndPos.forEach((items) => {
const cjData: relayCabinetGraphicData.CjDataItem[] = [];
items.forEach((relay) => {
cjData.push(
new relayCabinetGraphicData.CjDataItem({
relayId: generateRelaysMap.get(
`${deviceRelateRelay.deviceType}+${deviceRelateRelay.code}+${combinationtype.code}+${relay.code}`
),
position: relay.position,
})
);
});
allCjData.push(
new relayCabinetGraphicData.CjData({ refRelays: cjData })
);
});
allCjData.push(
new relayCabinetGraphicData.CjData({ refRelays: cjData })
);
});
});
});
creatCiCjListByCombinationtype(
32,
Math.ceil(allCjData.length / 32),
allCjData
);
creatCiCjListByCombinationtype(
32,
Math.ceil(allCjData.length / 32),
allCjData
);
//
const allQdData: relayCabinetGraphicData.QdData[] = [];
deviceRelateRelayList.forEach((deviceRelateRelay) => {
let deviceCiQdConfig: QdData[] | undefined;
let changeDeviceCiQdConfig: QdData[];
if (deviceRelateRelay.deviceType !== DeviceType.CarWashing) {
deviceCiQdConfig = ciQdMap.get(
`${deviceRelateRelay.deviceType}+${allDeviceModelMap.get(
//
const allQdData: relayCabinetGraphicData.QdData[] = [];
deviceRelateRelayList.forEach((deviceRelateRelay) => {
let deviceCiQdConfig: QdData[] | undefined;
let changeDeviceCiQdConfig: QdData[];
if (deviceRelateRelay.deviceType !== DeviceType.CarWashing) {
deviceCiQdConfig = ciQdMap.get(
`${deviceRelateRelay.deviceType}+${allDeviceModelMap.get(
`${deviceRelateRelay.deviceType}+${deviceRelateRelay.code}`
)}`
);
changeDeviceCiQdConfig =
deviceCiQdConfig === undefined
? undefined
: JSON.parse(JSON.stringify(deviceCiQdConfig));
} else {
deviceCiQdConfig = ciQdMap.get(
`${deviceRelateRelay.deviceType}+undefined`
);
changeDeviceCiQdConfig =
deviceCiQdConfig === undefined
? undefined
: JSON.parse(JSON.stringify(deviceCiQdConfig));
const duanNum = allDeviceModelMap.get(
`${deviceRelateRelay.deviceType}+${deviceRelateRelay.code}`
)}`
);
changeDeviceCiQdConfig =
deviceCiQdConfig === undefined
? undefined
: JSON.parse(JSON.stringify(deviceCiQdConfig));
} else {
deviceCiQdConfig = ciQdMap.get(
`${deviceRelateRelay.deviceType}+undefined`
);
changeDeviceCiQdConfig =
deviceCiQdConfig === undefined
? undefined
: JSON.parse(JSON.stringify(deviceCiQdConfig));
const duanNum = allDeviceModelMap.get(
`${deviceRelateRelay.deviceType}+${deviceRelateRelay.code}`
) as string;
for (let i = 2; i <= +duanNum; i++) {
changeDeviceCiQdConfig[0].refDeviceCodes.push([`TWJ${i}`]);
) as string;
for (let i = 2; i <= +duanNum; i++) {
changeDeviceCiQdConfig[0].refDeviceCodes.push([`TWJ${i}`]);
}
}
}
changeDeviceCiQdConfig?.forEach((combinationtype) => {
combinationtype.refDeviceCodes.forEach((items) => {
const qdData: number[] = [];
items.forEach((relayCode) => {
qdData.push(
generateRelaysMap.get(
`${deviceRelateRelay.deviceType}+${deviceRelateRelay.code}+${combinationtype.code}+${relayCode}`
) as number
changeDeviceCiQdConfig?.forEach((combinationtype) => {
combinationtype.refDeviceCodes.forEach((items) => {
const qdData: number[] = [];
items.forEach((relayCode) => {
qdData.push(
generateRelaysMap.get(
`${deviceRelateRelay.deviceType}+${deviceRelateRelay.code}+${combinationtype.code}+${relayCode}`
) as number
);
});
allQdData.push(
new relayCabinetGraphicData.QdData({ refRelays: qdData })
);
});
allQdData.push(
new relayCabinetGraphicData.QdData({ refRelays: qdData })
);
});
});
});
creatCiQdListByCombinationtype(
32,
Math.ceil(allQdData.length / 32),
allQdData
);
creatCiQdListByCombinationtype(
32,
Math.ceil(allQdData.length / 32),
allQdData
);
}
//
generateRelayLayout(generateRelays);