添加从供应计划累加的功能

This commit is contained in:
2026-03-06 14:48:18 +08:00
parent 7059706e9b
commit f6c665c8fa

View File

@@ -904,54 +904,54 @@ function addData() {
return; return;
} }
let data = outTempData.value.concat(checkPlanList.value); let data = outTempData.value.concat(checkPlanList.value);
let arr = []; // 去重后的最终数组 // let arr = []; // 去重后的最终数组
let duplicateSapNos = ''; // 存储重复数据的sapNo // let duplicateSapNos = ''; // 存储重复数据的sapNo
let invalidQtySapNos = ''; // 存储入库数量有误的sapNo // let invalidQtySapNos = ''; // 存储入库数量有误的sapNo
const uniqueKeys = new Set(); // 用于存储唯一的组合键 (id+pcode+realQty) // const uniqueKeys = new Set(); // 用于存储唯一的组合键 (id+pcode+realQty)
// 遍历数组,先校验数量合法性,再判断唯一性 // // 遍历数组,先校验数量合法性,再判断唯一性
data.forEach(item => { // data.forEach(item => {
// 1. 校验realQty是否大于0处理空值/非数字情况) // // 1. 校验realQty是否大于0处理空值/非数字情况)
const realQty = Number(item.realQty); // const realQty = Number(item.realQty);
if (isNaN(realQty) || realQty <= 0) { // if (isNaN(realQty) || realQty <= 0) {
// 避免同一个sapNo重复添加到提示中 // // 避免同一个sapNo重复添加到提示中
if (!invalidQtySapNos.includes(item.sapNo)) { // if (!invalidQtySapNos.includes(item.sapNo)) {
invalidQtySapNos += item.sapNo + ','; // invalidQtySapNos += item.sapNo + ',';
} // }
return; // 数量不合法,直接跳过后续唯一性判断 // return; // 数量不合法,直接跳过后续唯一性判断
} // }
// 2. 生成唯一标识组合键 // // 2. 生成唯一标识组合键
const uniqueKey = `${item.id}_${item.pcode}_${realQty}`; // const uniqueKey = `${item.id}_${item.pcode}_${realQty}`;
// 3. 检查组合键是否已存在 // // 3. 检查组合键是否已存在
if (uniqueKeys.has(uniqueKey)) { // if (uniqueKeys.has(uniqueKey)) {
// 存在重复拼接sapNo去重避免重复拼接 // // 存在重复拼接sapNo去重避免重复拼接
if (!duplicateSapNos.includes(item.sapNo)) { // if (!duplicateSapNos.includes(item.sapNo)) {
duplicateSapNos += item.sapNo + ','; // duplicateSapNos += item.sapNo + ',';
} // }
} else { // } else {
// 不存在重复,加入结果数组并记录组合键 // // 不存在重复,加入结果数组并记录组合键
arr.push(item); // arr.push(item);
uniqueKeys.add(uniqueKey); // uniqueKeys.add(uniqueKey);
} // }
console.log(uniqueKeys) // console.log(uniqueKeys)
}); // });
// 处理入库数量有误的提示 // // 处理入库数量有误的提示
if (invalidQtySapNos) { // if (invalidQtySapNos) {
invalidQtySapNos = invalidQtySapNos.slice(0, -1); // 去掉最后一个逗号 // invalidQtySapNos = invalidQtySapNos.slice(0, -1); // 去掉最后一个逗号
proxy.$modal.msgError(`入库数量有误:${invalidQtySapNos}入库数量需大于0`); // proxy.$modal.msgError(`入库数量有误:${invalidQtySapNos}入库数量需大于0`);
return // return
} // }
// 处理重复数据的提示 // // 处理重复数据的提示
if (duplicateSapNos) { // if (duplicateSapNos) {
duplicateSapNos = duplicateSapNos.slice(0, -1); // 去掉最后一个逗号 // duplicateSapNos = duplicateSapNos.slice(0, -1); // 去掉最后一个逗号
proxy.$modal.msgError(`存在重复数据:${duplicateSapNos}`); // proxy.$modal.msgError(`存在重复数据:${duplicateSapNos}`);
} // }
outTempData.value = arr outTempData.value = data
} }
// 查看所有的出库数据 // 查看所有的出库数据
@@ -1008,7 +1008,7 @@ function searchPlan() {
proxy.$modal.msgWarning("暂无数据"); proxy.$modal.msgWarning("暂无数据");
return; return;
} }
planList.value = planData; planList.value = planList.value.concat(planData);
}); });
} }