From 55cce895c985476e8d9976f955ffe8ba8c36a561 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 25 Jan 2024 16:59:30 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2null?= =?UTF-8?q?=E5=80=BC,=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Device/Request/DeviceSaveRequest.cs | 6 ++ .../Services/Implements/DeviceService.cs | 9 +- .../Services/Implements/MealUserService.cs | 13 ++- .../Request/CanteenSettingSaveRequest.cs | 12 +-- Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs | 4 +- .../Job/CreateGetAttendanceJob.cs | 86 +++++++++---------- 6 files changed, 74 insertions(+), 56 deletions(-) diff --git a/Src/Dlhis.Basic/Device/Request/DeviceSaveRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceSaveRequest.cs index bf96e51e..b1b9cade 100644 --- a/Src/Dlhis.Basic/Device/Request/DeviceSaveRequest.cs +++ b/Src/Dlhis.Basic/Device/Request/DeviceSaveRequest.cs @@ -32,6 +32,12 @@ public class DeviceSaveRequest [Required(ErrorMessage = "设备功能不能为空")] public List Funcs { get; set; } + /// + /// 心跳间隔 + /// + [Range(0, int.MaxValue)] + public int HeartbeatInterval { get; set; } + /// /// 部署点 /// diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs index 9403f1a2..c8255235 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs @@ -27,9 +27,11 @@ public class DeviceService : IDeviceService public async Task> GetPageAsync(DevicePageRequest request) { var page = await _dbContext.Queryable() - .Select(device => new DevicePageResponse + .LeftJoin((d, dt) => d.TemplateCode == dt.Code) + .Select((d, dt) => new DevicePageResponse { - FuncsStr = device.Funcs.ToString() + FuncsStr = d.Funcs.ToString(), + Brand = dt.Brand, }, true) .ToPageListAsync(request); @@ -70,7 +72,8 @@ public class DeviceService : IDeviceService var entity = await _dbContext.Queryable().Where(x => x.Id == request.Id).FirstAsync(); entity.ThrowIfNull("设备不存在,无法更新"); - request.Adapt(entity); + var uniqueNo = entity.UniqueNo; + request.Adapt(entity).UniqueNo = uniqueNo; await _dbContext.UpdateAsync(entity); } diff --git a/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs b/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs index b8d29f41..0469fe53 100644 --- a/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs +++ b/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs @@ -24,7 +24,16 @@ public class MealUserService : IMealUserService public async Task> GetPageAsync(MealUserPageRequest request) { var page = await _dbContext.Queryable() - .Select() + .LeftJoin((x, ga) => x.UserNo == ga.No) + .Select((x, ga) => new MealUserResponse + { + Balance = x.Balance, + BalanceOfRecharge = x.BalanceOfRecharge, + BalanceOfSubsidies = x.BalanceOfSubsidies, + UserCode = ga.Code, + UserNo = ga.No, + UserType = x.UserType + }) .ToPageListAsync(request); return page; @@ -33,7 +42,7 @@ public class MealUserService : IMealUserService public async Task AddAsync(MealUserAddRequest request) { //todo 获取档案信息 - + var gainfoEntity = await _gainfoStore.Queryable(GainfoStatusEnumType.Working) .Where(x => x.No.ToString() == request.UserNo) .FirstAsync(); diff --git a/Src/Dlhis.Canteen/Setting/Request/CanteenSettingSaveRequest.cs b/Src/Dlhis.Canteen/Setting/Request/CanteenSettingSaveRequest.cs index ef7c480a..093c72cf 100644 --- a/Src/Dlhis.Canteen/Setting/Request/CanteenSettingSaveRequest.cs +++ b/Src/Dlhis.Canteen/Setting/Request/CanteenSettingSaveRequest.cs @@ -8,31 +8,31 @@ public class CanteenSettingSaveRequest public long? Id { get; set; } /// - /// 配置生效范围 + /// 配置生效范围类型 CanteenSettingUnqiueEnumType /// [EnumDataType(typeof(CanteenSettingUnqiueEnumType))] public CanteenSettingUnqiueEnumType UniqueType { get; set; } /// - /// 唯一值 eg:UniqueType = 1时,传入非空字符串 + /// 配置生效范围 /// - [Required(ErrorMessage = "值不能为空")] + [Required(ErrorMessage = "配置生效范围不能为空")] public string UniqueValue { get; set; } /// - /// 自定义分类分类 + /// 自定义分类 /// [Required(ErrorMessage = "分类不能为空")] public string Catalog { get; set; } /// - /// 参数 CanteenSettingItemEnumType + /// 就餐配置 CanteenSettingItemEnumType /// [EnumDataType(typeof(CanteenSettingItemEnumType))] public CanteenSettingItemEnumType Item { get; set; } /// - /// 值 + /// 参数值 /// public string Value { get; set; } } diff --git a/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs b/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs index 788d3080..1ddbe206 100644 --- a/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs @@ -42,9 +42,9 @@ public class GainfoEntity : SugarBaseEntity public string NameEn { get; set; } /// - /// 工号 + /// 学工号 /// - [SugarColumn(ColumnDescription = "工号")] + [SugarColumn(ColumnDescription = "学工号")] public string Code { get; set; } /// diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Job/CreateGetAttendanceJob.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Job/CreateGetAttendanceJob.cs index de9b16e5..9a0f8d8b 100644 --- a/Src/Dlhis.ScheduledTask/TaskAssignment/Job/CreateGetAttendanceJob.cs +++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Job/CreateGetAttendanceJob.cs @@ -2,57 +2,57 @@ using Dlhis.Entity.Device.Entities; using Dlhis.Entity.Device.Enums; using Kurisu.AspNetCore.Utils.Extensions; +using Kurisu.Core.DataAccess.Entity; using Kurisu.SqlSugar.Services; -namespace Dlhis.ScheduledTask.TaskAssignment.Job +namespace Dlhis.ScheduledTask.TaskAssignment.Job; + +public class CreateGetAttendanceJob { - public class CreateGetAttendanceJob + private readonly IDbContext _dbContext; + private readonly ILogger _logger; + + public CreateGetAttendanceJob(IDbContext dbContext, ILogger logger) { - private readonly IDbContext _dbContext; - private readonly ILogger _logger; + _logger = logger; + _dbContext = dbContext; + } - public CreateGetAttendanceJob(IDbContext dbContext, ILogger logger) + public async Task RunAsync() + { + _dbContext.Client.QueryFilter.ClearAndBackup(); + try { - _logger = logger; - _dbContext = dbContext; + var devices = await _dbContext.Queryable().Where(x => x.Enable).ToListAsync(); + devices = devices.Where(x => x.Funcs.Contains(DeviceFuncEnumType.Attendance)).ToList(); + + var tasks = devices.Select(x => new DeviceTaskEntity + { + DeviceUniqueNo = x.UniqueNo, + Status = DeviceTaskStatusEnumType.Wait, + + TenantId = x.TenantId, + Version = 0, + UserNo = string.Empty, + UserCode = string.Empty, + Type = DeviceTaskEnumType.UploadRecord, + + CreatedBy = 1, + CreateTime = DateTime.Now, + ModifiedBy = 1, + ModifiedTime = DateTime.Now, + + }).ToList(); + + await _dbContext.InsertAsync(tasks); } - - public async Task RunAsync() + catch (Exception ex) { - _dbContext.Client.QueryFilter.ClearAndBackup(); - try - { - var devices = await _dbContext.Queryable().Where(x => x.Enable).ToListAsync(); - devices = devices.Where(x => x.Funcs.Contains(DeviceFuncEnumType.Attendance)).ToList(); - - var tasks = devices.Select(x => new DeviceTaskEntity - { - DeviceUniqueNo = x.UniqueNo, - Status = DeviceTaskStatusEnumType.Wait, - - TenantId = x.TenantId, - Version = 0, - UserNo = string.Empty, - UserCode = string.Empty, - Type = DeviceTaskEnumType.UploadRecord, - - CreatedBy = 1, - CreateTime = DateTime.Now, - ModifiedBy = 1, - ModifiedTime = DateTime.Now, - - }).ToList(); - - await _dbContext.InsertAsync(tasks); - } - catch (Exception ex) - { - _logger.LogError(ex, $"生成{DeviceTaskEnumType.UploadRecord.GetDescription()}任务失败:" + ex.Message); - } - finally - { - _dbContext.Client.QueryFilter.Restore(); - } + _logger.LogError(ex, "生成{type}任务失败:{message}", DeviceTaskEnumType.UploadRecord.GetDescription(), ex.Message); + } + finally + { + _dbContext.Client.QueryFilter.Restore(); } } }