fix(warehouse): 修复复合架规则验证和拆分逻辑

调整复合架规则的数据结构,增加列数配置
添加复合架规则的合法性验证条件
修改拆分逻辑以根据配置的行数进行拆分
移除调试用的console.log语句
This commit is contained in:
砂糖
2025-12-24 11:46:14 +08:00
parent 401776089a
commit 65c04f3ed2

View File

@@ -121,9 +121,10 @@ export default {
compositeRules: {
// 测试库区
'2002207449418686465': {
big: 19 * 5,
small: 29 * 5,
rows: [1, 2, 3, 4, 5]
col: 5,
big: 19,
small: 29,
rows: [0, 1, 2, 3, 4]
},
},
dialogOpen: false,
@@ -139,7 +140,20 @@ export default {
computed: {
// 当前的库区是否支持复合架
isComposite() {
// 如果存在id则支持不存在
if (!this.compositeRules[this.id]) {
return false;
}
// 检车规则是否合法,
// 1. (small - big) / 2 = rows.length
if ((this.compositeRules[this.id].small - this.compositeRules[this.id].big) / 2 !== this.compositeRules[this.id].rows.length) {
return false;
}
// 2. row中最大的值小于等于big
const maxRow = Math.max(...this.compositeRules[this.id].rows);
if (maxRow > this.compositeRules[this.id].big) {
return false;
}
return this.compositeRules[this.id];
},
sortedColumnKeys() {
@@ -243,7 +257,6 @@ export default {
// 向父组件发送切换事件由父组件更新columns数据
// 如果切换为合并状态调用handleMergeWarehouse方法
// 需要二次确认
console.log(this.columns[column])
const columnData = this.columns[column] || {};
const columnFlag = columnData.layer1?.[0]?.actualWarehouseCode?.substring(0, 4) || ''; // 取前四位
@@ -289,10 +302,12 @@ export default {
const splitIds = [];
const layer1Warehouses = columnData.layer1 || [];
const layer2Warehouses = columnData.layer2 || [];
const maxSplitCount = 5; // 最多拆分5个
for (let i = 0; i < maxSplitCount; i++) {
if (layer1Warehouses[i]) splitIds.push(layer1Warehouses[i].actualWarehouseId);
if (layer2Warehouses[i]) splitIds.push(layer2Warehouses[i].actualWarehouseId);
// 将对应的行拆分
const currentRule = this.compositeRules[this.id];
const rows = currentRule?.rows || []; // 最多拆分5个
for (let i = 0; i < rows.length; i++) {
if (layer1Warehouses[i]) splitIds.push(layer1Warehouses[rows[i]].actualWarehouseId);
if (layer2Warehouses[i]) splitIds.push(layer2Warehouses[rows[i]].actualWarehouseId);
}
payload.splitIds = splitIds;
console.log(payload)