using Dlhis.Basic.Device.Request; using Dlhis.Basic.Device.Response; using Dlhis.Basic.Device.Services; using Kurisu.AspNetCore.DataAccess.Dto; using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Dlhis.Basic.Device.Controllers; /// /// 设备控制器 /// [Authorize] [Route("api/[controller]")] [ApiController] public class DevicesController : ControllerBase { private readonly IDeviceService _deviceService; private readonly IDeviceTemplateService _deviceTemplateService; private readonly IDeviceConnectService _deviceConnectService; public DevicesController(IDeviceService deviceService, IDeviceTemplateService deviceTemplateService, IDeviceConnectService deviceConnectService) { _deviceService = deviceService; _deviceTemplateService = deviceTemplateService; _deviceConnectService = deviceConnectService; } /// /// 设备模板分页 /// /// /// [HttpGet("template/page")] public async Task> GetTemplatePageAsync([FromQuery] DeviceTemplatePageRequest request) { return await _deviceTemplateService.GetPageAsync(request); } /// /// 设备模板保存 /// /// /// [Authorize(Roles = "admin")] [HttpPost("template")] public async Task SaveTemplateAsync(DeviceTemplateSaveRequest request) { await _deviceTemplateService.SaveTemplateAsync(request); } /// /// 设备心跳 /// /// /// [Obsolete("迁移到DeviceConnect")] [HttpPost("heartbeat")] [IgnoreTenant] public async Task HeartbeatAsync(DeviceHeartbeatRequest request) { await _deviceConnectService.HeartbeatAsync(request); } /// /// 设备注册 /// /// /// [Obsolete("迁移到DeviceConnect")] [HttpPost("resigter")] [IgnoreTenant] public async Task RegisterAsync(DeviceResigterRequest request) { return await _deviceConnectService.RegisterAsync(request); } /// /// 设备分页 /// /// /// [HttpGet("page")] [DataPermission(ignoreTenant: true, includeCustom: true)] public async Task> GetPageAsync([FromQuery] DevicePageRequest request) { return await _deviceService.GetPageAsync(request); } /// /// 设备保存 /// /// /// [HttpPost("save")] [Transactional] public async Task SaveAsync(DeviceSaveRequest request) { await _deviceService.SaveAsync(request); } /// /// 获取尚未设置营业点的设备 /// /// [HttpGet("businessplaces/incompletion")] public async Task> GetNotSetBusinessPlaceDevicesAsync() { return await _deviceConnectService.GetNotSetBusinessPlaceDevicesAsync(); } /// /// 设置设备营业点 /// /// /// [HttpPost("businessplaces")] public async Task SetRegisterBusinessPlaceAsync(DeviceSetResigterBusinessPlaceRequest request) { await _deviceConnectService.SetRegisterBusinessPlaceAsync(request); } /// /// 检查设备是否存在 /// /// [HttpGet("exists")] public async Task CheckExistsAsync(string deviceUniqueNo) { return await _deviceService.CheckExistsAsync(deviceUniqueNo); } /// /// 获取考勤设备 /// /// [HttpGet("attendances")] public async Task> GetAttendanceDevicesAsync() { return await _deviceService.GetAttendanceDevicesAsync(); } /// /// 获取考勤在线/离线设备详情列表 /// /// [HttpGet("onlineStatus/page")] public async Task> GetOnlineStatusPageAsync([FromQuery] DeviceOnlineAndOfflineRequest request) { return await _deviceService.GetOnlineStatusPageAsync(request); } /// /// 批量导入设备信息 /// /// /// [HttpPost("import")] public async Task Import(List request) { await _deviceService.ImportAsync(request); } }