From 51b38f18bd0a6aa292a3e1b5d4ef81604958ef75 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 27 Feb 2026 16:15:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AD=90=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=AE=A1=E6=A0=B8=E5=90=8E=E4=B8=BB=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E4=B8=8D=E5=90=8C=E6=AD=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designhub/service/TaskItemService.java | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/com/designhub/service/TaskItemService.java b/backend/src/main/java/com/designhub/service/TaskItemService.java index 4638e3e..56e0b73 100644 --- a/backend/src/main/java/com/designhub/service/TaskItemService.java +++ b/backend/src/main/java/com/designhub/service/TaskItemService.java @@ -1499,15 +1499,35 @@ public class TaskItemService { } } - // 🔥 更新主任务状态为已审核通过 + // 🔥 更新主任务状态(避免出现“子任务进行中但主任务仍为pending”的状态错乱) mainTask.setApprovalStatus("approved"); - mainTask.setStatus("pending"); + if (assignedReceiverId != null) { + // 子任务已指定处理人并进入进行中:主任务同步为进行中 + mainTask.setStatus("in_progress"); + mainTask.setReceiverId(assignedReceiverId); + com.designhub.entity.User receiver = userService.getUserById(assignedReceiverId); + if (receiver != null) { + mainTask.setReceiverDeptId(receiver.getDeptId()); + } + LocalDateTime now = LocalDateTime.now(); + if (mainTask.getStartTime() == null) { + mainTask.setStartTime(now); + } + if (mainTask.getActualStartTime() == null) { + mainTask.setActualStartTime(now); + } + } else { + // 未指定处理人,继续发布在任务大厅待接单 + mainTask.setStatus("pending"); + mainTask.setReceiverId(null); + mainTask.setReceiverDeptId(null); + } mainTask.setReceivingApprovalTime(LocalDateTime.now()); mainTask.setCurrentApproverId(null); mainTask.setCurrentApproverRole(null); mainTask.setUpdateTime(LocalDateTime.now()); taskMapper.updateById(mainTask); - log.info("主任务 {} 接单部门审核通过,状态更新为 approved/pending", taskId); + log.info("主任务 {} 接单部门审核通过,状态更新为 {}/{}", taskId, mainTask.getApprovalStatus(), mainTask.getStatus()); } /**