From e84f98933e162eaa2caa8c1a0501f771dac9bdea Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 23 Jan 2026 11:43:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A1.=E4=B8=80=E7=BA=A7?= =?UTF-8?q?=E9=9C=80=E6=B1=82=E4=BB=BB=E5=8A=A1=E6=98=8E=E7=BB=86=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E5=90=8E=E5=AD=90=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=B8=BApending=5Fapproval=202.=E6=88=91?= =?UTF-8?q?=E5=8F=91=E8=B5=B7=E7=9A=84=E4=BB=BB=E5=8A=A1=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=B9=9F=E6=98=BE=E7=A4=BA=E6=98=8E=E7=BB=86=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E4=BA=BA=E7=9A=84=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/designhub/mapper/TaskMapper.java | 5 +-- .../com/designhub/service/TaskService.java | 31 +++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/com/designhub/mapper/TaskMapper.java b/backend/src/main/java/com/designhub/mapper/TaskMapper.java index 0975ce3..7df2fc9 100644 --- a/backend/src/main/java/com/designhub/mapper/TaskMapper.java +++ b/backend/src/main/java/com/designhub/mapper/TaskMapper.java @@ -185,6 +185,7 @@ public interface TaskMapper extends BaseMapper { /** * 查询我发布的任务 + * 包括:作为发布人的任务 或 作为一级需求任务明细完善人的任务 */ @Select("") IPage selectMyPublishedTasks(Page page, @Param("userId") Long userId, diff --git a/backend/src/main/java/com/designhub/service/TaskService.java b/backend/src/main/java/com/designhub/service/TaskService.java index 52b17cc..c3ce4c8 100644 --- a/backend/src/main/java/com/designhub/service/TaskService.java +++ b/backend/src/main/java/com/designhub/service/TaskService.java @@ -3616,6 +3616,37 @@ public class TaskService { task.setCurrentApproverId(receivingLeaderId); task.setCurrentApproverRole("receiving_leader"); log.info("一级需求任务明细完善后,等待接单部门负责人审核:leaderId={}", receivingLeaderId); + + // 🔥 更新子任务状态为 pending_approval,以便接单部门负责人审核 + // 顺序模式:只更新第一个部门的子任务 + // 并行模式:更新所有子任务 + List taskItems; + if ("sequential".equals(task.getPipelineMode())) { + // 顺序模式:只更新第一个部门的子任务(item_no 中部门序号为 01) + taskItems = taskItemMapper.selectList( + new LambdaQueryWrapper() + .eq(TaskItem::getTaskId, task.getId()) + .eq(TaskItem::getStatus, "pending") + .eq(TaskItem::getIsLocked, 0) + ); + log.info("一级需求任务 {} 顺序模式,共 {} 个子任务待更新状态", task.getId(), taskItems.size()); + } else { + // 并行模式:更新所有子任务 + taskItems = taskItemMapper.selectList( + new LambdaQueryWrapper() + .eq(TaskItem::getTaskId, task.getId()) + .eq(TaskItem::getStatus, "pending") + .eq(TaskItem::getIsLocked, 0) + ); + log.info("一级需求任务 {} 并行模式,共 {} 个子任务待更新状态", task.getId(), taskItems.size()); + } + + for (TaskItem item : taskItems) { + item.setStatus("pending_approval"); + item.setUpdateTime(LocalDateTime.now()); + taskItemMapper.updateById(item); + log.info("一级需求任务子任务 {} 状态已更新为 pending_approval", item.getItemNo()); + } } else { // 如果无法确定接单部门负责人,直接发布到任务大厅 log.warn("无法确定接单部门负责人,任务将直接发布到任务大厅");