From f500380ab2279ae238564f52a37dcdca4bb9fb7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Fri, 13 Mar 2026 11:44:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/task/controller/TaskController.java | 16 ++++---- .../convert/TaskStatControllerConvert.java | 2 + .../service/dto/TaskStatQueryServiceDTO.java | 23 ++++++++++++ .../task/service/impl/TaskServiceImpl.java | 37 +++++++++++++++---- 4 files changed, 63 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/ruoyi/task/controller/TaskController.java b/src/main/java/com/ruoyi/task/controller/TaskController.java index ef14e06..bb326e1 100644 --- a/src/main/java/com/ruoyi/task/controller/TaskController.java +++ b/src/main/java/com/ruoyi/task/controller/TaskController.java @@ -54,14 +54,14 @@ public class TaskController extends BaseController return R.ok(TaskControllerConvert.from(taskService.getTaskById(taskId))); } - /** - * 复杂条件查询任务列表 - */ - @PostMapping("/list") - public R> list(@RequestBody TaskQueryDTO queryDTO) - { - return R.ok(TaskControllerConvert.fromList(taskService.getTaskList(queryDTO))); - } +// /** +// * 复杂条件查询任务列表 +// */ +// @PostMapping("/list") +// public R> list(@RequestBody TaskQueryDTO queryDTO) +// { +// return R.ok(TaskControllerConvert.fromList(taskService.getTaskList(queryDTO))); +// } /** * 更新任务 diff --git a/src/main/java/com/ruoyi/task/controller/convert/TaskStatControllerConvert.java b/src/main/java/com/ruoyi/task/controller/convert/TaskStatControllerConvert.java index d65c725..f41b773 100644 --- a/src/main/java/com/ruoyi/task/controller/convert/TaskStatControllerConvert.java +++ b/src/main/java/com/ruoyi/task/controller/convert/TaskStatControllerConvert.java @@ -25,6 +25,8 @@ public class TaskStatControllerConvert { com.ruoyi.task.service.dto.TaskStatQueryServiceDTO dto = new com.ruoyi.task.service.dto.TaskStatQueryServiceDTO(); dto.setYear(apiDTO.getYear()); dto.setMonth(apiDTO.getMonth()); + dto.setStartDate(apiDTO.getStartDate()); + dto.setEndDate(apiDTO.getEndDate()); dto.setTaskCategory(apiDTO.getTaskCategory()); dto.setTaskType(apiDTO.getTaskType()); dto.setStatusList(apiDTO.getStatusList()); diff --git a/src/main/java/com/ruoyi/task/service/dto/TaskStatQueryServiceDTO.java b/src/main/java/com/ruoyi/task/service/dto/TaskStatQueryServiceDTO.java index a509420..50696d4 100644 --- a/src/main/java/com/ruoyi/task/service/dto/TaskStatQueryServiceDTO.java +++ b/src/main/java/com/ruoyi/task/service/dto/TaskStatQueryServiceDTO.java @@ -4,6 +4,7 @@ import com.ruoyi.task.api.enums.StatusEnum; import com.ruoyi.task.api.enums.TaskCategoryEnum; import com.ruoyi.task.api.enums.TaskTypeEnum; +import java.util.Date; import java.util.List; /** @@ -20,6 +21,12 @@ public class TaskStatQueryServiceDTO { /** 月份 */ private Integer month; + /** 开始日期 */ + private Date startDate; + + /** 结束日期 */ + private Date endDate; + /** 任务类别 */ private TaskCategoryEnum taskCategory; @@ -51,6 +58,22 @@ public class TaskStatQueryServiceDTO { this.month = month; } + public Date getStartDate() { + return startDate; + } + + public void setStartDate(Date startDate) { + this.startDate = startDate; + } + + public Date getEndDate() { + return endDate; + } + + public void setEndDate(Date endDate) { + this.endDate = endDate; + } + public TaskCategoryEnum getTaskCategory() { return taskCategory; } diff --git a/src/main/java/com/ruoyi/task/service/impl/TaskServiceImpl.java b/src/main/java/com/ruoyi/task/service/impl/TaskServiceImpl.java index eb58b02..c56e71a 100644 --- a/src/main/java/com/ruoyi/task/service/impl/TaskServiceImpl.java +++ b/src/main/java/com/ruoyi/task/service/impl/TaskServiceImpl.java @@ -222,13 +222,23 @@ public class TaskServiceImpl implements ITaskService { continue; } - calendar.setTime(t.getStartTime()); - int year = calendar.get(Calendar.YEAR); - if (year == queryDTO.getYear()) { - int month = calendar.get(Calendar.MONTH) + 1; - months.put(month, months.getOrDefault(month, 0) + 1); - total++; + // 如果指定了日期范围,则使用日期范围过滤;否则使用年份过滤 + if (queryDTO.getStartDate() != null && queryDTO.getEndDate() != null) { + if (t.getStartTime().before(queryDTO.getStartDate()) || t.getStartTime().after(queryDTO.getEndDate())) { + continue; + } + } else if (queryDTO.getYear() != null) { + calendar.setTime(t.getStartTime()); + int year = calendar.get(Calendar.YEAR); + if (year != queryDTO.getYear()) { + continue; + } } + + calendar.setTime(t.getStartTime()); + int month = calendar.get(Calendar.MONTH) + 1; + months.put(month, months.getOrDefault(month, 0) + 1); + total++; } } @@ -273,7 +283,20 @@ public class TaskServiceImpl implements ITaskService { calendar.setTime(t.getStartTime()); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; - if (year == queryDTO.getYear() && month == queryDTO.getMonth()) { + + // 如果指定了日期范围,则使用日期范围过滤;否则使用年月过滤 + boolean matchDate = false; + if (queryDTO.getStartDate() != null && queryDTO.getEndDate() != null) { + if (!t.getStartTime().before(queryDTO.getStartDate()) && !t.getStartTime().after(queryDTO.getEndDate())) { + matchDate = true; + } + } else if (queryDTO.getYear() != null && queryDTO.getMonth() != null) { + if (year == queryDTO.getYear() && month == queryDTO.getMonth()) { + matchDate = true; + } + } + + if (matchDate) { int day = calendar.get(Calendar.DAY_OF_MONTH); TaskStatItemServiceDTO item = new TaskStatItemServiceDTO();