From 4d582170aaa6dadbd1cd1fa1e0a95f6267405e47 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 8 Jan 2026 14:03:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B5=81=E6=B0=B4?= =?UTF-8?q?=E7=BA=BF=E4=BB=BB=E5=8A=A1=E6=8C=87=E5=AE=9A=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=B8=88=E6=A8=A1=E5=BC=8F=E5=9C=A8=E5=AE=A1=E6=A0=B8=E6=97=B6?= =?UTF-8?q?=E8=A2=AB=E5=8F=91=E5=B8=83=E5=88=B0=E5=A4=A7=E5=8E=85=E7=9A=84?= =?UTF-8?q?=E4=B8=A5=E9=87=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/designhub/service/TaskService.java | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/com/designhub/service/TaskService.java b/backend/src/main/java/com/designhub/service/TaskService.java index 80b8c4f..fc8495e 100644 --- a/backend/src/main/java/com/designhub/service/TaskService.java +++ b/backend/src/main/java/com/designhub/service/TaskService.java @@ -332,10 +332,17 @@ public class TaskService { // 设置发布类型(从前端传递,默认为recruitment) task.setReleaseType(dto.getReleaseType() != null ? dto.getReleaseType() : "recruitment"); // 如果是assigned模式,设置接收人 - if ("assigned".equals(dto.getReleaseType()) && dto.getReceiverId() != null) { - task.setReceiverId(dto.getReceiverId()); + // 对于流水线任务,如果主任务receiverId为空,从第一个子任务获取 + Long mainReceiverId = dto.getReceiverId(); + if ("assigned".equals(dto.getReleaseType()) && mainReceiverId == null && dto.getItems() != null && !dto.getItems().isEmpty()) { + // 从第一个子任务获取指定的设计师 + mainReceiverId = dto.getItems().get(0).getReceiverId(); + log.info("流水线任务assigned模式,从第一个子任务获取receiverId: {}", mainReceiverId); + } + if ("assigned".equals(dto.getReleaseType()) && mainReceiverId != null) { + task.setReceiverId(mainReceiverId); // 获取接收人的部门ID - User receiver = userService.getUserById(dto.getReceiverId()); + User receiver = userService.getUserById(mainReceiverId); if (receiver != null && receiver.getDeptId() != null) { task.setReceiverDeptId(receiver.getDeptId()); } @@ -476,6 +483,19 @@ public class TaskService { item.setEstimatedHours(groupTotalHours); item.setSortOrder(itemIndex); item.setProgress(0); + + // 如果是assigned模式,设置子任务的接收人(从该组的第一个任务项获取) + if ("assigned".equals(dto.getReleaseType()) && !groupItems.isEmpty()) { + Long itemReceiverId = groupItems.get(0).getReceiverId(); + if (itemReceiverId != null) { + item.setReceiverId(itemReceiverId); + User itemReceiver = userService.getUserById(itemReceiverId); + if (itemReceiver != null && itemReceiver.getDeptId() != null) { + item.setReceiverDeptId(itemReceiver.getDeptId()); + } + log.info("子任务组 {} 已预先指定设计师: {}", groupNo, itemReceiverId); + } + } // 关键:根据流水线模式和分组设置初始状态 if ("sequential".equals(dto.getPipelineMode())) {