diff --git a/backend/src/main/java/com/designhub/service/TaskApprovalService.java b/backend/src/main/java/com/designhub/service/TaskApprovalService.java index 6f6a69e..8628503 100644 --- a/backend/src/main/java/com/designhub/service/TaskApprovalService.java +++ b/backend/src/main/java/com/designhub/service/TaskApprovalService.java @@ -18,6 +18,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.List; import java.util.stream.Collectors; @@ -327,6 +328,9 @@ public class TaskApprovalService { .orderByAsc(TaskItem::getGroupNo) ); + // 时间格式化器:MM月dd日 HH:mm + DateTimeFormatter groupDeadlineFormatter = DateTimeFormatter.ofPattern("MM月dd日 HH:mm"); + if (!taskItems.isEmpty()) { content.append("**任务明细**: \n"); for (TaskItem item : taskItems) { @@ -351,10 +355,16 @@ public class TaskApprovalService { // 格式化工时显示 String hoursDisplay = formatEstimatedHours(item.getEstimatedHours()); + // 格式化截止时间 + String groupDeadlineDisplay = ""; + if (item.getDeadline() != null) { + groupDeadlineDisplay = " | 截止: " + item.getDeadline().format(groupDeadlineFormatter); + } + content.append(" \n"); content.append("▸ **").append(deptName).append("** | ") .append(item.getTotalScore()).append("分 | ") - .append(hoursDisplay).append(" \n"); + .append(hoursDisplay).append(groupDeadlineDisplay).append(" \n"); // 解析并显示任务类型明细 if (item.getTypeDetails() != null && !item.getTypeDetails().isEmpty()) { @@ -857,6 +867,9 @@ public class TaskApprovalService { .orderByAsc(TaskItem::getGroupNo) ); + // 时间格式化器:MM月dd日 HH:mm + DateTimeFormatter deadlineFormatter = DateTimeFormatter.ofPattern("MM月dd日 HH:mm"); + if (!receiverItems.isEmpty()) { content.append("**您负责的任务明细**: \n"); for (TaskItem item : receiverItems) { @@ -881,10 +894,16 @@ public class TaskApprovalService { // 格式化工时显示 String hoursDisplay = formatEstimatedHours(item.getEstimatedHours()); + // 格式化截止时间 + String deadlineDisplay = ""; + if (item.getDeadline() != null) { + deadlineDisplay = " | 截止: " + item.getDeadline().format(deadlineFormatter); + } + content.append(" \n"); content.append("▸ **").append(deptName).append("** | ") .append(item.getTotalScore()).append("分 | ") - .append(hoursDisplay).append(" \n"); + .append(hoursDisplay).append(deadlineDisplay).append(" \n"); // 解析并显示任务类型明细 if (item.getTypeDetails() != null && !item.getTypeDetails().isEmpty()) { diff --git a/frontend/src/views/TaskHall.vue b/frontend/src/views/TaskHall.vue index 9c308c1..230608c 100644 --- a/frontend/src/views/TaskHall.vue +++ b/frontend/src/views/TaskHall.vue @@ -3069,8 +3069,8 @@ const getSubTaskDeadline = (subTask: any) => { if (subTask.status !== 'in_progress' && subTask.status !== 'completed') return null // 直接使用后端返回的deadline字段 if (!subTask.deadline) return null - // 格式化为"XX月XX日HH时" - return dayjs(subTask.deadline).format('MM月DD日HH时') + // 格式化为"XX月XX日HH:mm" + return dayjs(subTask.deadline).format('MM月DD日 HH:mm') } // 获取任务完成截止时间(用于进行中的任务)