From ecbbdb7644d0fe0bffa45d6c762dd9e36761cfdd Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 13 Jan 2026 14:04:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B5=81=E6=B0=B4=E7=BA=BF?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=8C=87=E6=B4=BE=E6=97=B6=E5=AD=90=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=9C=AA=E8=AE=BE=E7=BD=AE=E6=8E=A5=E6=94=B6=E4=BA=BA?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/designhub/service/TaskService.java | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/com/designhub/service/TaskService.java b/backend/src/main/java/com/designhub/service/TaskService.java index 92dde3c..545681a 100644 --- a/backend/src/main/java/com/designhub/service/TaskService.java +++ b/backend/src/main/java/com/designhub/service/TaskService.java @@ -2926,6 +2926,16 @@ public class TaskService { public void updatePipelineSubTasksForAssigned(Long taskId, String pipelineMode) { log.info("更新指派流水线任务的子任务状态:taskId={}, mode={}", taskId, pipelineMode); + // 获取主任务信息 + Task mainTask = taskMapper.selectById(taskId); + if (mainTask == null) { + log.warn("主任务不存在:taskId={}", taskId); + return; + } + + Long receiverId = mainTask.getReceiverId(); + Long receiverDeptId = mainTask.getReceiverDeptId(); + List taskItems = taskItemMapper.selectList( new LambdaQueryWrapper() .eq(TaskItem::getTaskId, taskId) @@ -2938,20 +2948,36 @@ public class TaskService { } if ("parallel".equals(pipelineMode)) { - // 并行模式:所有子任务都进入in_progress状态 + // 并行模式:所有子任务都进入in_progress状态,并设置接收人 for (TaskItem item : taskItems) { item.setStatus("in_progress"); item.setIsLocked(0); + // 如果子任务还没有接收人,设置为主任务的接收人 + if (item.getReceiverId() == null && receiverId != null) { + item.setReceiverId(receiverId); + if (receiverDeptId != null) { + item.setReceiverDeptId(receiverDeptId); + } + log.info("子任务 {} 已设置接收人: {}", item.getId(), receiverId); + } taskItemMapper.updateById(item); } log.info("并行流水线任务的所有子任务已更新为in_progress:count={}", taskItems.size()); } else { - // 顺序模式:只有第一组进入in_progress状态 + // 顺序模式:只有第一组进入in_progress状态,并设置接收人 Integer firstGroupNo = taskItems.get(0).getGroupNo(); for (TaskItem item : taskItems) { if (item.getGroupNo().equals(firstGroupNo)) { item.setStatus("in_progress"); item.setIsLocked(0); + // 如果子任务还没有接收人,设置为主任务的接收人 + if (item.getReceiverId() == null && receiverId != null) { + item.setReceiverId(receiverId); + if (receiverDeptId != null) { + item.setReceiverDeptId(receiverDeptId); + } + log.info("子任务 {} 已设置接收人: {}", item.getId(), receiverId); + } taskItemMapper.updateById(item); log.info("顺序流水线任务第一组子任务已更新为in_progress:itemId={}", item.getId()); }