From 22169c73ed3901cefc5625ddf66afa57d0bd286d Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 31 Jan 2026 18:55:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AD=90=E4=BB=BB=E5=8A=A1=E6=8E=A5?= =?UTF-8?q?=E5=8D=95=E4=BA=BA=E5=90=8D=E7=A7=B0=E5=A7=8B=E7=BB=88=E4=BB=8E?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=A1=A8=E5=AE=9E=E6=97=B6=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:子任务的receiverName存储了过期值,与实际receiver_id对应的用户名不一致 原因:任务转让时只更新了receiver_id,没有更新receiver_name字段 修复:fillSubTaskStats中始终根据receiver_id查询并刷新receiverName Co-authored-by: Cursor --- backend/src/main/java/com/designhub/service/TaskService.java | 3 ++- frontend/src/types/components.d.ts | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/com/designhub/service/TaskService.java b/backend/src/main/java/com/designhub/service/TaskService.java index 7d4675d..6a5a44d 100644 --- a/backend/src/main/java/com/designhub/service/TaskService.java +++ b/backend/src/main/java/com/designhub/service/TaskService.java @@ -1587,8 +1587,9 @@ public class TaskService { task.setSubTaskPending((int) pendingCount); // 填充子任务的接单人名称和deadline + // 🔥 始终根据receiver_id刷新receiverName,避免存储的旧值不一致 for (TaskItem item : subTasks) { - if (item.getReceiverId() != null && (item.getReceiverName() == null || item.getReceiverName().isEmpty())) { + if (item.getReceiverId() != null) { User receiver = userService.getUserById(item.getReceiverId()); if (receiver != null) { item.setReceiverName(receiver.getRealName()); diff --git a/frontend/src/types/components.d.ts b/frontend/src/types/components.d.ts index 84ffa17..dac455d 100644 --- a/frontend/src/types/components.d.ts +++ b/frontend/src/types/components.d.ts @@ -49,6 +49,7 @@ declare module 'vue' { ASlider: typeof import('ant-design-vue/es')['Slider'] ASpace: typeof import('ant-design-vue/es')['Space'] ASpin: typeof import('ant-design-vue/es')['Spin'] + AStatistic: typeof import('ant-design-vue/es')['Statistic'] ASwitch: typeof import('ant-design-vue/es')['Switch'] ATable: typeof import('ant-design-vue/es')['Table'] ATabPane: typeof import('ant-design-vue/es')['TabPane'] @@ -71,5 +72,6 @@ declare module 'vue' { TaskCard: typeof import('./../components/TaskCard.vue')['default'] TaskFilters: typeof import('./../components/TaskFilters.vue')['default'] TaskFlowQueryDialog: typeof import('./../components/TaskFlowQueryDialog.vue')['default'] + TaskStatusBadge: typeof import('./../components/TaskStatusBadge.vue')['default'] } }