diff --git a/backend/src/main/java/com/designhub/service/TaskApprovalService.java b/backend/src/main/java/com/designhub/service/TaskApprovalService.java index 89f870a..fa05339 100644 --- a/backend/src/main/java/com/designhub/service/TaskApprovalService.java +++ b/backend/src/main/java/com/designhub/service/TaskApprovalService.java @@ -281,6 +281,31 @@ public class TaskApprovalService { task.setCurrentApproverRole("receiving_leader"); taskMapper.updateById(task); + // 🔥 如果是一级需求部门任务且是流水线任务,将第一个部门的子任务状态更新为pending_approval + // 这样接单部门负责人才能看到子任务组进行审核 + if (task.getIsPrimaryTask() != null && task.getIsPrimaryTask() == 1 + && task.getIsPipeline() != null && task.getIsPipeline() == 1) { + // 查询第一个部门的子任务(status='pending' 且 isLocked=0) + List firstDeptItems = taskItemMapper.selectList( + new LambdaQueryWrapper() + .eq(TaskItem::getTaskId, taskId) + .eq(TaskItem::getStatus, "pending") + .eq(TaskItem::getIsLocked, 0) + ); + + // 将第一个部门的子任务状态更新为pending_approval(待审核) + for (TaskItem item : firstDeptItems) { + item.setStatus("pending_approval"); + item.setUpdateTime(LocalDateTime.now()); + taskItemMapper.updateById(item); + log.info("一级需求任务第一个部门子任务 {} 状态已更新为pending_approval", item.getItemNo()); + } + + if (!firstDeptItems.isEmpty()) { + log.info("一级需求任务 {} 的第一个部门共 {} 个子任务已设置为待审核状态", taskId, firstDeptItems.size()); + } + } + // 记录审核日志 logApproval(taskId, approverId, 1, "approve", dto.getComment());