From a388d9ef992e514114f43bb21cda2fc41e425c0f Mon Sep 17 00:00:00 2001 From: wanglei <3085637232@qq.com> Date: Fri, 12 Dec 2025 16:52:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=B7=A5=E5=8D=95=E7=9B=B8=E5=85=B3=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../water/controller/WorkOrderController.java | 21 +++++++++++++++++++ .../water/service/WorkOrderService.java | 4 ++++ .../water/service/WorkOrderServiceImpl.java | 11 ++++++++++ 3 files changed, 36 insertions(+) diff --git a/src/main/java/com/campus/water/controller/WorkOrderController.java b/src/main/java/com/campus/water/controller/WorkOrderController.java index 5ab54b8..327cfe1 100644 --- a/src/main/java/com/campus/water/controller/WorkOrderController.java +++ b/src/main/java/com/campus/water/controller/WorkOrderController.java @@ -124,6 +124,27 @@ public class WorkOrderController { } } + // 管理员按状态查询工单 + @GetMapping("/by-status") + @PreAuthorize("hasAnyRole('SUPER_ADMIN', 'AREA_ADMIN')") + public ResultVO> getOrdersByStatus( + @RequestParam WorkOrder.OrderStatus status, + @RequestParam(required = false) String areaId) { + try { + List orders; + if (areaId == null || areaId.trim().isEmpty()) { + // 查所有区域的指定状态工单 + orders = workOrderService.getOrdersByStatus(status); + } else { + // 查指定区域的指定状态工单 + orders = workOrderService.getOrdersByAreaAndStatus(areaId, status); + } + return ResultVO.success(orders); + } catch (Exception e) { + return ResultVO.error(500, "获取工单失败:" + e.getMessage()); + } + } + // 获取维修工自己的工单 - 维修人员和管理员可访问 @GetMapping("/my") @PreAuthorize("hasAnyRole('REPAIRMAN', 'SUPER_ADMIN', 'AREA_ADMIN')") diff --git a/src/main/java/com/campus/water/service/WorkOrderService.java b/src/main/java/com/campus/water/service/WorkOrderService.java index c54fcfd..4388e78 100644 --- a/src/main/java/com/campus/water/service/WorkOrderService.java +++ b/src/main/java/com/campus/water/service/WorkOrderService.java @@ -24,4 +24,8 @@ public interface WorkOrderService { // 新增:审核工单方法(与实现类签名一致) boolean reviewOrder(String orderId, boolean approved); + + // 按状态查询工单的方法 + List getOrdersByStatus(WorkOrder.OrderStatus status); + List getOrdersByAreaAndStatus(String areaId, WorkOrder.OrderStatus status); } \ No newline at end of file diff --git a/src/main/java/com/campus/water/service/WorkOrderServiceImpl.java b/src/main/java/com/campus/water/service/WorkOrderServiceImpl.java index 07fddd1..0e6b182 100644 --- a/src/main/java/com/campus/water/service/WorkOrderServiceImpl.java +++ b/src/main/java/com/campus/water/service/WorkOrderServiceImpl.java @@ -241,4 +241,15 @@ public class WorkOrderServiceImpl implements WorkOrderService { } return false; // 派单失败(工单不存在/状态异常/维修人员不满足条件) } + + // 按状态查询工单的方法 + @Override + public List getOrdersByStatus(WorkOrder.OrderStatus status) { + return workOrderRepository.findByStatus(status); + } + + @Override + public List getOrdersByAreaAndStatus(String areaId, WorkOrder.OrderStatus status) { + return workOrderRepository.findByAreaIdAndStatus(areaId, status); + } } \ No newline at end of file -- 2.34.1