From d779ce912d47e9091fde48c2ff0b1b89ec29e4df Mon Sep 17 00:00:00 2001 From: zhangdi <15053473693@163.com> Date: Mon, 9 Feb 2026 09:58:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=E5=B7=A5=E5=BA=8F=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schedulingDashboard/container.vue | 49 ++++++------------- 1 file changed, 14 insertions(+), 35 deletions(-) diff --git a/src/views/productionSchedulingPlan/schedulingDashboard/container.vue b/src/views/productionSchedulingPlan/schedulingDashboard/container.vue index 956c019..bd55b73 100644 --- a/src/views/productionSchedulingPlan/schedulingDashboard/container.vue +++ b/src/views/productionSchedulingPlan/schedulingDashboard/container.vue @@ -1135,56 +1135,35 @@ export default { }); } - // ... 合并任务逻辑保持不变 ... - const groupedTasks = {}; - woTasks.forEach(task => { - if (!groupedTasks[task.processName]) { - groupedTasks[task.processName] = []; - } - groupedTasks[task.processName].push(task); - }); - - Object.values(groupedTasks).forEach(group => { - // 按计划开始时间升序排序 - const sortedTasks = [...group].sort((a, b) => { - return new Date(a.planStartTime) - new Date(b.planStartTime); - }); - - const mergedTasks = []; + const mergedTasks = []; let currentMergedTask = null; - sortedTasks.forEach(task => { + for (const task of woTasks) { if (!currentMergedTask) { + // 初始化第一个任务 currentMergedTask = { ...task }; } else { - const prevEndTime = new Date(currentMergedTask.planEndTime); - const currStartTime = new Date(task.planStartTime); - const currEndTime = new Date(task.planEndTime); - - // 判断是否重叠或连续:当前任务开始时间 <= 已合并任务的结束时间 - if (currStartTime.getTime() <= prevEndTime.getTime()) { - // 合并时间区间:结束时间取最大值 - if (currEndTime.getTime() > prevEndTime.getTime()) { - currentMergedTask.planEndTime = task.planEndTime; - } - // 可选:合并其他字段,如数量、人员等 - // currentMergedTask.makeQty += task.makeQty; + // 仅当当前任务与前一个任务工序名称相同时才合并 + if (currentMergedTask.processName === task.processName) { + // 更新结束时间为当前任务的结束时间(假设顺序正确) + currentMergedTask.planEndTime = task.planEndTime; + // 注意:不更新 startTime,保留第一个的开始时间 } else { - // 无重叠,推入并开启新合并任务 + // 工序不同,推入当前合并任务,开启新任务 mergedTasks.push(currentMergedTask); currentMergedTask = { ...task }; } } - }); + } + // 推入最后一个合并任务 if (currentMergedTask) { mergedTasks.push(currentMergedTask); } tasks.push(...mergedTasks); - }); }); - // console.log(909090, tasks); + // >>>>>>>>>> 新增排序逻辑 <<<<<<<<<< // 1. 对 orders 按 receiveTime 升序 orders.sort((a, b) => new Date(a.receiveTime) - new Date(b.receiveTime)); @@ -1227,7 +1206,6 @@ export default { this.earliestPlanStartTime = earliest ? new Date(earliest) : null; this.latestPlanEndTime = latest ? new Date(latest) : null; - console.log(new Date(earliest), this.earliestPlanStartTime, 'earliest'); this.updateCurrentPageOrders(); this.loading = false; }, @@ -1338,7 +1316,8 @@ export default { }, // 任务 样式计算 getStatusColor(row) { - if (row.planStatus === '1') { + console.log('计算状态颜色', row.planStatus, row.remindStatus); + if (row.planStatus === '1') { if (row.remindStatus === '1') { return '#FFD700'; // 黄色(可自定义) } else if (row.remindStatus === '2') {