package com.ruoyi.wrzs.access.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.wrzs.access.pojo.AccessGate; import com.ruoyi.wrzs.access.pojo.AccessPerson; import com.ruoyi.wrzs.access.pojo.AccessRecord; import com.ruoyi.wrzs.access.pojo.AccessVehicle; import com.ruoyi.wrzs.access.service.AccessService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * 门禁管理 *

* 车辆:车牌识别 + RFID;人员:人脸识别 + 工卡;与地磅联动控制放行 */ @Api(tags = "门禁管理") @AllArgsConstructor @RestController @RequestMapping("/environmentAccess") public class AccessController { private final AccessService accessService; // ==================== 门禁点 ==================== @ApiOperation("门禁点分页") @GetMapping("/accessGatePage") public AjaxResult gatePage(Page page, AccessGate query) { return AjaxResult.success(accessService.gatePage(page, query)); } @ApiOperation("门禁点下拉列表") @GetMapping("/accessGateList") public AjaxResult gateList() { return AjaxResult.success(accessService.gateList()); } @ApiOperation("新增门禁点") @PostMapping("/accessGateAdd") public AjaxResult gateAdd(@RequestBody AccessGate gate) { return AjaxResult.success(accessService.gateSave(gate)); } @ApiOperation("修改门禁点") @PutMapping("/accessGateUpdate") public AjaxResult gateUpdate(@RequestBody AccessGate gate) { return AjaxResult.success(accessService.gateUpdate(gate)); } @ApiOperation("删除门禁点") @DeleteMapping("/accessGateDelete") public AjaxResult gateDelete(@RequestBody List ids) { return AjaxResult.success(accessService.gateRemove(ids)); } // ==================== 车辆授权 ==================== @ApiOperation("车辆通行授权分页") @GetMapping("/accessVehiclePage") public AjaxResult vehiclePage(Page page, AccessVehicle query) { return AjaxResult.success(accessService.vehiclePage(page, query)); } @ApiOperation("新增车辆通行授权") @PostMapping("/accessVehicleAdd") public AjaxResult vehicleAdd(@RequestBody AccessVehicle vehicle) { return AjaxResult.success(accessService.vehicleSave(vehicle)); } @ApiOperation("修改车辆通行授权") @PutMapping("/accessVehicleUpdate") public AjaxResult vehicleUpdate(@RequestBody AccessVehicle vehicle) { return AjaxResult.success(accessService.vehicleUpdate(vehicle)); } @ApiOperation("删除车辆通行授权") @DeleteMapping("/accessVehicleDelete") public AjaxResult vehicleDelete(@RequestBody List ids) { return AjaxResult.success(accessService.vehicleRemove(ids)); } // ==================== 人员授权 ==================== @ApiOperation("人员通行授权分页") @GetMapping("/accessPersonPage") public AjaxResult personPage(Page page, AccessPerson query) { return AjaxResult.success(accessService.personPage(page, query)); } @ApiOperation("新增人员通行授权") @PostMapping("/accessPersonAdd") public AjaxResult personAdd(@RequestBody AccessPerson person) { return AjaxResult.success(accessService.personSave(person)); } @ApiOperation("修改人员通行授权") @PutMapping("/accessPersonUpdate") public AjaxResult personUpdate(@RequestBody AccessPerson person) { return AjaxResult.success(accessService.personUpdate(person)); } @ApiOperation("删除人员通行授权") @DeleteMapping("/accessPersonDelete") public AjaxResult personDelete(@RequestBody List ids) { return AjaxResult.success(accessService.personRemove(ids)); } // ==================== 识别放行 ==================== @ApiOperation("车辆识别放行(车牌识别+RFID+地磅联动)") @PostMapping("/accessVehicleRecognize") public AjaxResult vehicleRecognize(@RequestParam Long gateId, @RequestParam(required = false) String plateNumber, @RequestParam(required = false) String rfidTag, @RequestParam(required = false, defaultValue = "0") String direction, @RequestParam(required = false) String photoUrl) { try { return AjaxResult.success(accessService.vehicleRecognize(gateId, plateNumber, rfidTag, direction, photoUrl)); } catch (IllegalArgumentException e) { return AjaxResult.error(e.getMessage()); } } @ApiOperation("人员识别放行(人脸识别+工卡)") @PostMapping("/accessPersonRecognize") public AjaxResult personRecognize(@RequestParam Long gateId, @RequestParam(required = false) String cardNo, @RequestParam(required = false) String personName, @RequestParam(required = false, defaultValue = "0") String direction, @RequestParam(required = false) String photoUrl) { try { return AjaxResult.success(accessService.personRecognize(gateId, cardNo, personName, direction, photoUrl)); } catch (IllegalArgumentException e) { return AjaxResult.error(e.getMessage()); } } // ==================== 通行记录 ==================== @ApiOperation("通行记录分页") @GetMapping("/accessRecordPage") public AjaxResult recordPage(Page page, AccessRecord query) { return AjaxResult.success(accessService.recordPage(page, query)); } @ApiOperation("删除通行记录") @DeleteMapping("/accessRecordDelete") public AjaxResult recordDelete(@RequestBody List ids) { return AjaxResult.success(accessService.recordRemove(ids)); } @ApiOperation("今日通行统计") @GetMapping("/accessOverview") public AjaxResult overview() { return AjaxResult.success(accessService.recordOverview()); } }