From 5d1b3ad0f748205c3c0dbf8383676dd196288f27 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 11 Jan 2024 16:31:23 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E8=AE=BE=E5=A4=87=E8=80=83=E5=8B=A4?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E8=80=83=E5=8B=A4=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/IDevicePermissionService.cs | 2 +- .../Implements/DevicePermissionService.cs | 4 +-- .../Device/Entities/DeviceUploadLogEntity.cs | 14 +++++++-- .../Controllers/DeviceUploadLogsController.cs | 11 +++++++ .../Request/DeviceUploadLogUploadRequest.cs | 23 +++++++++++++++ .../Services/IDeviceUploadLogService.cs | 2 ++ .../Implements/DeviceUploadLogService.cs | 29 +++++++++++++++++-- 7 files changed, 77 insertions(+), 8 deletions(-) create mode 100644 Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogUploadRequest.cs diff --git a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs index 1b244029..79118133 100644 --- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs @@ -12,5 +12,5 @@ public interface IDevicePermissionService : IScopeDependency /// Task AssignmentAsync(List reuqests); - Task> GetAssignmentsAsync(string userId, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue); + Task> GetAssignmentsAsync(string userNo, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue); } diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index 504a19f2..418b2241 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -36,12 +36,12 @@ public class DevicePermissionService : IDevicePermissionService } } - public async Task> GetAssignmentsAsync(string userId, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue) + public async Task> GetAssignmentsAsync(string userNo, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue) { var assignments = await _dbContext.Queryable() .Where(x => x.UniqueType == uniqueType) .WhereIF(uniqueValue.HasValue, x => x.UniqueValue == uniqueValue) - .Where(x => x.UserNo == userId) + .Where(x => x.UserNo == userNo) .Select(x => x.UniqueValue) .ToListAsync(); diff --git a/Src/Dlhis.Entity/Device/Entities/DeviceUploadLogEntity.cs b/Src/Dlhis.Entity/Device/Entities/DeviceUploadLogEntity.cs index 25d87232..a82b818d 100644 --- a/Src/Dlhis.Entity/Device/Entities/DeviceUploadLogEntity.cs +++ b/Src/Dlhis.Entity/Device/Entities/DeviceUploadLogEntity.cs @@ -1,12 +1,17 @@ using Kurisu.Core.DataAccess.Entity; -using Kurisu.SqlSugar; using SqlSugar; namespace Dlhis.Entity.Device.Entities; [SugarTable(TableName = "DeviceUploadLog", TableDescription = "设备上传记录")] -public class DeviceUploadLogEntity : SugarBaseEntity, ITenantId +public class DeviceUploadLogEntity : ITenantId { + /// + /// id + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public long Id { get; set; } + /// /// 设备号 /// @@ -27,5 +32,10 @@ public class DeviceUploadLogEntity : SugarBaseEntity, ITenantId /// public string Ip { get; set; } + /// + /// 上传时间 + /// + public DateTime UploadTime { get; set; } + public string TenantId { get; set; } } diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs index d7809b21..c98178a5 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs @@ -32,4 +32,15 @@ public class DeviceUploadLogsController : ControllerBase { return await _deviceUploadLogService.GetPageAsync(request); } + + /// + /// 上传记录 + /// + /// + /// + [HttpPost("record")] + public async Task UploadLogAsync(DeviceUploadLogUploadRequest request) + { + await _deviceUploadLogService.UploadLogAsync(request); + } } diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogUploadRequest.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogUploadRequest.cs new file mode 100644 index 00000000..df39165a --- /dev/null +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogUploadRequest.cs @@ -0,0 +1,23 @@ +using System.ComponentModel.DataAnnotations; + +namespace Dlhis.ScheduledTask.DeviceUploadLog.Request; + +public class DeviceUploadLogUploadRequest +{ + /// + /// 设备唯一号 + /// + [Required(ErrorMessage = "设备唯一号不能为空")] + public string DeviceUniqueNo { get; set; } + + /// + /// 用户学工号 + /// + [Required(ErrorMessage = "用户学工号不能为空")] + public string UserCode { get; set; } + + /// + /// 上传时间 + /// + public DateTime UploadTime { get; set; } +} diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs index 8ff42806..b3793541 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs @@ -7,4 +7,6 @@ namespace Dlhis.ScheduledTask.DeviceUploadLog.Services; public interface IDeviceUploadLogService : IScopeDependency { Task> GetPageAsync(DeviceUploadLogPageRequest request); + + Task UploadLogAsync(DeviceUploadLogUploadRequest request); } diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs index 795cd81e..a2411af6 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs @@ -2,7 +2,9 @@ using Dlhis.Entity.Device.Entities; using Dlhis.ScheduledTask.DeviceUploadLog.Request; using Dlhis.ScheduledTask.DeviceUploadLog.Response; +using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.Core.DataAccess.Dto; +using Kurisu.SqlSugar.Attributes; using Kurisu.SqlSugar.Extensions; using Kurisu.SqlSugar.Services; @@ -21,14 +23,14 @@ public class DeviceUploadLogService : IDeviceUploadLogService { var page = await _dbContext.Queryable() .LeftJoin((deviceUp, ga) => deviceUp.UserNo == ga.No) - .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, deviceUp => deviceUp.CreateTime >= request.SearchDateTimePeriod.Start) - .WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, deviceUp => deviceUp.CreateTime <= request.SearchDateTimePeriod.End) + .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, deviceUp => deviceUp.UploadTime >= request.SearchDateTimePeriod.Start) + .WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, deviceUp => deviceUp.UploadTime <= request.SearchDateTimePeriod.End) .Select((deviceUp, ga) => new DeviceUploadLogResponse { DeviceUniqueNo = deviceUp.DeviceUniqueNo, Id = deviceUp.Id, Ip = deviceUp.Ip, - UploadTime = deviceUp.CreateTime, + UploadTime = deviceUp.UploadTime, UserNo = deviceUp.UserNo, UserCode = deviceUp.UserCode, UserName = ga.Name, @@ -37,4 +39,25 @@ public class DeviceUploadLogService : IDeviceUploadLogService return page; } + + [IgnoreTenant] + public async Task UploadLogAsync(DeviceUploadLogUploadRequest request) + { + var device = await _dbContext.Queryable().Where(x => x.UniqueNo == request.DeviceUniqueNo).SingleAsync(); + device.ThrowIfNull("设备信息不存在"); + + var gainfo = await _dbContext.Queryable().Where(x => x.Code == request.UserCode).FirstAsync(); + device.ThrowIfNull("人员信息不存在"); + + var entity = new DeviceUploadLogEntity + { + DeviceUniqueNo = request.DeviceUniqueNo, + UploadTime = request.UploadTime, + UserCode = request.UserCode, + UserNo = gainfo.No, + TenantId = device.TenantId, + }; + + await _dbContext.InsertAsync(entity); + } }