From d20b5fc98932563699f0bad17c9cb44eda312eea Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 24 Jan 2026 11:38:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E5=AD=90=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=BB=84=E5=AE=A1=E6=A0=B8=E9=80=9A=E8=BF=87=E5=90=8E?= =?UTF-8?q?=E9=92=89=E9=92=89=E9=80=9A=E7=9F=A5=E6=98=BE=E7=A4=BA=E5=AE=8C?= =?UTF-8?q?=E6=95=B4=E4=BB=BB=E5=8A=A1=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:当子任务组逐个审核通过时,钉钉通知只显示当前审核通过的这一组子任务的积分(如46分), 而任务卡片显示的是所有子任务组的汇总积分(如59.30分),导致数据不一致。 修复:在 TaskItemService.approveTaskItemGroup 发送通知时, 获取该任务的所有子任务组明细,而不是只显示当前审核的这一组, 确保通知中的积分与任务卡片保持一致。 --- .../com/designhub/service/TaskItemService.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/backend/src/main/java/com/designhub/service/TaskItemService.java b/backend/src/main/java/com/designhub/service/TaskItemService.java index c3c4fa0..40fdb36 100644 --- a/backend/src/main/java/com/designhub/service/TaskItemService.java +++ b/backend/src/main/java/com/designhub/service/TaskItemService.java @@ -1116,10 +1116,17 @@ public class TaskItemService { content.append(" \n"); - // 任务明细(与第一轮格式完全一致) - if (!groupItems.isEmpty()) { + // 🔥 任务明细:获取该任务的所有子任务组(不只是当前审核的这一组) + // 这样通知显示的积分才与任务卡片一致 + List allTaskItems = taskItemMapper.selectList( + new LambdaQueryWrapper() + .eq(TaskItem::getTaskId, taskId) + .orderBy(true, true, TaskItem::getGroupNo) + ); + + if (!allTaskItems.isEmpty()) { content.append("**任务明细**: \n"); - for (TaskItem item : groupItems) { + for (TaskItem item : allTaskItems) { // 通过任务类型ID获取接单部门名称 String deptName = "未指定"; if (item.getTaskTypeId() != null) { @@ -1141,7 +1148,7 @@ public class TaskItemService { // 格式化工时显示(与第一轮一致) String hoursDisplay = formatEstimatedHours(item.getEstimatedHours()); - content.append(" \n"); + content.append(" \n"); content.append("▸ **").append(deptName).append("** | ") .append(item.getTotalScore()).append("分 | ") .append(hoursDisplay).append(" \n"); @@ -1161,7 +1168,7 @@ public class TaskItemService { content.append("  └ ").append(typeName) .append(" ×").append(qty) .append(" = ").append(score).append("分 \n"); - } + } } catch (Exception e) { log.warn("解析任务类型明细失败: {}", e.getMessage()); }