feat 电子围栏数据配置

This commit is contained in:
2025-09-29 14:56:58 +08:00
parent f8705e7137
commit 0b66033b25
14 changed files with 462 additions and 0 deletions

View File

@@ -0,0 +1,95 @@
using Dlhis.Basic.WorkGrids.Request;
using Dlhis.Basic.WorkGrids.Response;
using Dlhis.Basic.WorkGrids.Services;
using Kurisu.AspNetCore.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Dlhis.Basic.WorkGrids.Controllers;
/// <summary>
/// 电子围栏操作
/// </summary>
[Authorize]
[Route("api/[controller]")]
[ApiController]
public class EFenceController : ControllerBase
{
private readonly IEFenceService _eFenceService;
public EFenceController(IEFenceService eFenceService)
{
_eFenceService = eFenceService;
}
/// <summary>
/// 保存电子围栏(新增或更新)
/// </summary>
[HttpPost("save")]
public async Task SaveAsync([FromBody] EFenceSaveRequest request)
{
await _eFenceService.SaveAsync(request);
}
/// <summary>
/// 获取电子围栏分页
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet("page")]
public async Task<Pagination<EFencePageResponse>> GetEFencePageAsync([FromQuery] EFencePageRequest request)
{
return await _eFenceService.GetEFencePageAsync(request);
}
/// <summary>
/// 获取围栏下的房间
/// </summary>
/// <param name="eFenceCode"></param>
/// <returns></returns>
[HttpGet("rooms")]
public async Task<List<EFenceDormitoryRoomResponse>> GetRoomsAsync(Guid eFenceCode)
{
return await _eFenceService.GetRoomsAsync(eFenceCode);
}
/// <summary>
/// 获取房间人员
/// </summary>
/// <param name="roomId"></param>
/// <returns></returns>
[HttpGet("room-persons")]
public async Task<List<EFenceDormitoryRoomPersonResponse>> GetRoomPersonsAsync(string roomId)
{
return await _eFenceService.GetRoomPersonsAsync(roomId);
}
/// <summary>
/// 向围栏添加设备
/// </summary>
[HttpPost("devices/add")]
public async Task AddDevicesAsync(EFenceDevicesRequest request)
{
await _eFenceService.AddDevicesAsync(request.FenceId, request.DeviceCodes);
}
/// <summary>
/// 从围栏移除设备
/// </summary>
[HttpPost("devices/remove")]
public async Task RemoveDevicesAsync(EFenceDevicesRequest request)
{
await _eFenceService.RemoveDevicesAsync(request.FenceId, request.DeviceCodes);
}
/// <summary>
/// 获取设备列表
/// </summary>
/// <param name="fenceId"></param>
/// <returns></returns>
[HttpGet("devices")]
public async Task<List<EFenceDevicePageResponse>> GetDevicesByFenceIdAsync(long fenceId)
{
return await _eFenceService.GetDevicesByFenceIdAsync(fenceId);
}
}