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()); }