diff --git a/backend/src/main/java/com/designhub/service/TaskService.java b/backend/src/main/java/com/designhub/service/TaskService.java index b85d6a3..52b17cc 100644 --- a/backend/src/main/java/com/designhub/service/TaskService.java +++ b/backend/src/main/java/com/designhub/service/TaskService.java @@ -1674,7 +1674,12 @@ public class TaskService { } // 验证任务是否是流水线任务 - if (existTask.getIsPipeline() == null || existTask.getIsPipeline() != 1) { + // 特殊情况:一级需求部门任务在待完善明细状态下,允许将非流水线任务转换为流水线任务 + boolean isPrimaryTaskPendingDetail = existTask.getIsPrimaryTask() != null + && existTask.getIsPrimaryTask() == 1 + && "pending_detail_completion".equals(existTask.getApprovalStatus()); + + if ((existTask.getIsPipeline() == null || existTask.getIsPipeline() != 1) && !isPrimaryTaskPendingDetail) { throw new BusinessException(ResultCode.PARAM_ERROR, "该任务不是流水线任务"); } @@ -1745,6 +1750,7 @@ public class TaskService { // 更新主任务信息 existTask.setTitle(dto.getTitle()); existTask.setPipelineMode(dto.getPipelineMode()); + existTask.setIsPipeline(1); // 确保设置为流水线任务 existTask.setScore(totalScoreDecimal); existTask.setEstimatedHours(BigDecimal.valueOf(totalHours)); existTask.setQuantity(totalQuantity);