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