diff --git a/backend/src/main/java/com/designhub/service/TaskService.java b/backend/src/main/java/com/designhub/service/TaskService.java index 845bad4..88627a3 100644 --- a/backend/src/main/java/com/designhub/service/TaskService.java +++ b/backend/src/main/java/com/designhub/service/TaskService.java @@ -4137,6 +4137,16 @@ public class TaskService { Long receiverId = mainTask.getReceiverId(); Long receiverDeptId = mainTask.getReceiverDeptId(); + String receiverName = null; + if (receiverId != null) { + User receiver = userService.getUserById(receiverId); + if (receiver != null) { + receiverName = receiver.getRealName() != null ? receiver.getRealName() : receiver.getUsername(); + if (receiverDeptId == null) { + receiverDeptId = receiver.getDeptId(); + } + } + } List taskItems = taskItemMapper.selectList( new LambdaQueryWrapper() @@ -4192,17 +4202,15 @@ public class TaskService { if (itemDeptIndex == firstDeptIndex) { item.setStatus("in_progress"); item.setIsLocked(0); - // 指派模式下:如果子任务已有预先指定的接收人,保留;否则使用主任务的接收人 - if (item.getReceiverId() == null && receiverId != null) { + // 指派模式下:以主任务的接收人为准,避免主任务与子任务接收人不一致 + if (receiverId != null) { item.setReceiverId(receiverId); + item.setReceiverName(receiverName); if (receiverDeptId != null) { item.setReceiverDeptId(receiverDeptId); } - log.info("顺序流水线第一部门子任务 {} 设置接收人: receiverId={}, deptId={}", + log.info("顺序流水线第一部门子任务 {} 同步接收人: receiverId={}, deptId={}", item.getId(), receiverId, receiverDeptId); - } else { - log.info("顺序流水线第一部门子任务 {} 保留预先指定的接收人: receiverId={}", - item.getId(), item.getReceiverId()); } // 计算并设置deadline(使用工作时间计算) if (item.getEstimatedHours() != null && item.getEstimatedHours().compareTo(BigDecimal.ZERO) > 0) {