From d84d8cd80971a7a03420d962a2bb83aeca33a2cd Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 29 Sep 2025 16:04:33 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E8=AE=BE=E5=A4=87=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Device/Entities/DeviceUserEntity.cs | 26 +++++++++++++++ .../Controllers/DeviceUserController.cs | 32 +++++++++++++++++++ .../Request/DeviceUploadUserCodeRequest.cs | 11 +++++++ .../Services/IDeviceUserService.cs | 8 +++++ .../Services/Implements/DeviceUserService.cs | 32 +++++++++++++++++++ 5 files changed, 109 insertions(+) create mode 100644 Src/Dlhis.Entity/Device/Entities/DeviceUserEntity.cs create mode 100644 Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUserController.cs create mode 100644 Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadUserCodeRequest.cs create mode 100644 Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUserService.cs create mode 100644 Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUserService.cs diff --git a/Src/Dlhis.Entity/Device/Entities/DeviceUserEntity.cs b/Src/Dlhis.Entity/Device/Entities/DeviceUserEntity.cs new file mode 100644 index 00000000..81aea744 --- /dev/null +++ b/Src/Dlhis.Entity/Device/Entities/DeviceUserEntity.cs @@ -0,0 +1,26 @@ +using Kurisu.AspNetCore.DataAccess.Entity; +using Kurisu.AspNetCore.DataAccess.SqlSugar; +using SqlSugar; + +namespace Dlhis.Entity.Device.Entities; + +/// +/// +/// +[SugarTable(TableName = "DeviceUsers")] +public class DeviceUserEntity : SugarBaseEntity, ISoftDeleted +{ + /// + /// 设备唯一号 + /// + [SugarColumn(IsNullable = false, UniqueGroupNameList = new[] { "idx_deviceUsers_deviceUniqueNo" })] + public string DeviceUniqueNo { get; set; } + + /// + /// 用户工号 + /// + [SugarColumn(IsNullable = false)] + public string UserCode { get; set; } + + public bool IsDeleted { get; set; } +} \ No newline at end of file diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUserController.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUserController.cs new file mode 100644 index 00000000..9358bf6d --- /dev/null +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUserController.cs @@ -0,0 +1,32 @@ +using Dlhis.ScheduledTask.DeviceUploadLog.Request; +using Dlhis.ScheduledTask.DeviceUploadLog.Services; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Dlhis.ScheduledTask.DeviceUploadLog.Controllers; + +/// +/// 设备人员 +/// +[Authorize] +[Route("api/[controller]")] +[ApiController] +public class DeviceUserController +{ + private readonly IDeviceUserService _deviceUserService; + + public DeviceUserController(IDeviceUserService deviceUserService) + { + _deviceUserService = deviceUserService; + } + + /// + /// 上传人员信息 + /// + /// + [HttpPost("upload")] + public async Task UploadAsync([FromBody] DeviceUploadUserCodeRequest request) + { + await _deviceUserService.UploadAsync(request); + } +} \ No newline at end of file diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadUserCodeRequest.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadUserCodeRequest.cs new file mode 100644 index 00000000..87cfb198 --- /dev/null +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadUserCodeRequest.cs @@ -0,0 +1,11 @@ +using System.ComponentModel.DataAnnotations; + +namespace Dlhis.ScheduledTask.DeviceUploadLog.Request; + +public class DeviceUploadUserCodeRequest +{ + [Required] + public string DeviceUniqueNo { get; set; } + + public List UserCodes { get; set; } +} \ No newline at end of file diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUserService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUserService.cs new file mode 100644 index 00000000..55d8b081 --- /dev/null +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUserService.cs @@ -0,0 +1,8 @@ +using Dlhis.ScheduledTask.DeviceUploadLog.Request; + +namespace Dlhis.ScheduledTask.DeviceUploadLog.Services; + +public interface IDeviceUserService : IScopeDependency +{ + Task UploadAsync(DeviceUploadUserCodeRequest request); +} \ No newline at end of file diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUserService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUserService.cs new file mode 100644 index 00000000..1cbdf5eb --- /dev/null +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUserService.cs @@ -0,0 +1,32 @@ +using Dlhis.Entity.Device.Entities; +using Dlhis.ScheduledTask.DeviceUploadLog.Request; +using Kurisu.AspNetCore.DataAccess.SqlSugar.Services; + +namespace Dlhis.ScheduledTask.DeviceUploadLog.Services.Implements; + +public class DeviceUserService : IDeviceUserService +{ + private readonly IDbContext _dbContext; + + public DeviceUserService(IDbContext dbContext) + { + _dbContext = dbContext; + } + + public async Task UploadAsync(DeviceUploadUserCodeRequest request) + { + if (!await _dbContext.Queryable().Where(x => x.DeviceUniqueNo == request.DeviceUniqueNo).AnyAsync()) + { + var userCodes = request.UserCodes.Distinct().ToList(); + + var entities = userCodes.Select(userCode => new DeviceUserEntity + { + DeviceUniqueNo = request.DeviceUniqueNo, + UserCode = userCode, + IsDeleted = false + }).ToList(); + + await _dbContext.InsertAsync(entities); + } + } +} \ No newline at end of file