From 4cb7d419de1c12875b423aa1b40d1dd34540c436 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 26 Aug 2024 16:11:32 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=A4=84=E7=90=86=E5=B7=B2=E7=9F=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/DeviceConnectService.cs | 30 +++++++------- .../Order/Controllers/BalancesController.cs | 2 +- .../Order/Request/BalanceRecordPageRequest.cs | 12 +++++- .../BalanceRecordUserGroupPageRequest.cs | 1 - .../BalanceRecordAnalysisShiftResponse.cs | 5 +++ .../Order/Services/IBalanceService.cs | 2 +- .../Services/Implements/BalanceService.cs | 41 +++++++++++++------ .../Basic/Dto/FaceImageDetectionDto.cs | 4 +- 8 files changed, 65 insertions(+), 32 deletions(-) diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs index 30671f82..72d4a785 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs @@ -17,25 +17,35 @@ namespace Dlhis.Basic.Device.Services.Implements; public class DeviceConnectService : IDeviceConnectService { private readonly IDbContext _dbContext; - private readonly IHttpContextAccessor _httpContextAccessor; - public DeviceConnectService(IDbContext dbContext, IHttpContextAccessor httpContextAccessor) + public DeviceConnectService(IDbContext dbContext) { _dbContext = dbContext; - _httpContextAccessor = httpContextAccessor; } public async Task RegisterAsync(DeviceResigterRequest request) { - var businessPlace = await _dbContext.Queryable().Where(x => x.CustomCode == request.BusinessCustomCode).FirstAsync(); + var businessPlace = await _dbContext.Queryable().Where(x => x.CustomCode == request.BusinessCustomCode).SingleAsync(); businessPlace.ThrowIfNull("营业点不存在"); var device = await GetEnableDeviceAsync(request.UniqueNo, false, request.DeployPlace, businessPlace.TenantId); - var registry = await _dbContext.Queryable().Where(x => x.DeviceUniqueNo == request.UniqueNo).FirstAsync(); + if (device.DeployPlace.Equals("AUTO", StringComparison.OrdinalIgnoreCase)) + { + device.DeployPlace = businessPlace.Name; + await _dbContext.UpdateAsync(device); + } + + var registry = await _dbContext.Queryable().Where(x => x.DeviceUniqueNo == request.UniqueNo).SingleAsync(); if (registry != null) { + registry.LastHeartbeatTime = DateTime.Now; + registry.RegisterTime = DateTime.Now; + registry.BusinessPlaceCode = businessPlace.Code; + + await _dbContext.UpdateAsync(registry); + return "请勿重复注册设备"; } @@ -48,12 +58,6 @@ public class DeviceConnectService : IDeviceConnectService TenantId = device.TenantId }; - if (device.DeployPlace == "AUTO") - { - device.DeployPlace = businessPlace.Name; - await _dbContext.UpdateAsync(device); - } - await _dbContext.InsertAsync(registry); return "设备注册成功"; } @@ -156,9 +160,7 @@ public class DeviceConnectService : IDeviceConnectService /// private async Task GetEnableDeviceAsync(string uniqueNo, bool checkExists = true, string deployPlace = "", string tenantId = "") { - var device = await _dbContext.Queryable() - .Where(x => x.UniqueNo == uniqueNo) - .FirstAsync(); + var device = await _dbContext.Queryable().Where(x => x.UniqueNo == uniqueNo).SingleAsync(); if (checkExists) { diff --git a/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs b/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs index 1a78c69b..4c3ad403 100644 --- a/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs +++ b/Src/Dlhis.Canteen/Order/Controllers/BalancesController.cs @@ -121,7 +121,7 @@ public class BalancesController : ControllerBase /// [HttpGet("user/group/page")] [IgnoreTenant] - public async Task> GetUserBalanceGroupAsync([FromQuery] BalanceRecordUserGroupPageRequest request) + public async Task> GetUserBalanceGroupAsync([FromQuery] BalanceRecordUserGroupPageRequest request) { return await _balanceService.GetUserBalanceGroupAsync(request); } diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageRequest.cs index ed941e98..499949c0 100644 --- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageRequest.cs +++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordPageRequest.cs @@ -35,10 +35,20 @@ public class BalanceRecordPageRequest : PageDto, IValidatableObject [EnumDataType(typeof(GainfoStatusEnumType))] public GainfoStatusEnumType? GainfoStatus { get; set; } + /// + /// 用户工号 + /// + public string UserCode { get; set; } + + /// + /// 用户名称 + /// + public string UserName { get; set; } + public IEnumerable Validate(ValidationContext validationContext) { GainfoStatus ??= GainfoStatusEnumType.Working; - + if (SearchDateTimePeriod?.End != null) { SearchDateTimePeriod.End = SearchDateTimePeriod.End.Value.AddDays(1).AddSeconds(-1); diff --git a/Src/Dlhis.Canteen/Order/Request/BalanceRecordUserGroupPageRequest.cs b/Src/Dlhis.Canteen/Order/Request/BalanceRecordUserGroupPageRequest.cs index 94f6a5be..c749dd75 100644 --- a/Src/Dlhis.Canteen/Order/Request/BalanceRecordUserGroupPageRequest.cs +++ b/Src/Dlhis.Canteen/Order/Request/BalanceRecordUserGroupPageRequest.cs @@ -18,7 +18,6 @@ public class BalanceRecordUserGroupPageRequest : PageDto, IValidatableObject [Required(ErrorMessage = "工号不可为空")] public string UserCode { get; set; } - /// /// 消费类型 /// diff --git a/Src/Dlhis.Canteen/Order/Response/BalanceRecordAnalysisShiftResponse.cs b/Src/Dlhis.Canteen/Order/Response/BalanceRecordAnalysisShiftResponse.cs index 75b66dbe..1cdace72 100644 --- a/Src/Dlhis.Canteen/Order/Response/BalanceRecordAnalysisShiftResponse.cs +++ b/Src/Dlhis.Canteen/Order/Response/BalanceRecordAnalysisShiftResponse.cs @@ -17,4 +17,9 @@ public class BalanceRecordAnalysisShiftPageResponse public DateTime Date { get; set; } public List> Shifts { get; set; } + + /// + /// 当天总额 + /// + public decimal DateAmount => Shifts.Sum(x => x.Value); } \ No newline at end of file diff --git a/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs b/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs index b40fb39f..efb27b66 100644 --- a/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs +++ b/Src/Dlhis.Canteen/Order/Services/IBalanceService.cs @@ -13,7 +13,7 @@ public interface IBalanceService : IScopeDependency Task GetPageByUserAsync(BalanceRecordUserPageRequest request); - Task> GetUserBalanceGroupAsync(BalanceRecordUserGroupPageRequest request); + Task> GetUserBalanceGroupAsync(BalanceRecordUserGroupPageRequest request); Task SupplementBalanceAsync(BalanceSupplementRequest request); diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs index 90f10526..baaae1c9 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/BalanceService.cs @@ -53,10 +53,11 @@ public class BalanceService : IBalanceService .LeftJoin((record, ga, department, bPlace) => record.BusinessPlaceCode == bPlace.Code) .LeftJoin((record, ga, department, bPlace, order) => record.No == order.No) .WhereIF(request.Factory.IsPresent(), record => record.TenantId == request.Factory) - .WhereIF(request.Type.HasValue, record => record.Type == request.Type) .WhereIF(request.SearchDateTimePeriod.HasValue(), record => record.CostDate >= request.SearchDateTimePeriod.Start && record.CostDate <= request.SearchDateTimePeriod.End) + .WhereIF(request.Type.HasValue, record => record.Type == request.Type) .WhereIF(request.ShiftTypes.IsPresent(), record => request.ShiftTypes.Contains(record.ShiftType)) - .WhereIF(request.Search.IsPresent(), (record, ga) => ga.Code == request.Search || ga.Name == request.Search) + .WhereIF(request.UserCode.IsPresent(), record => record.UserCode == request.UserCode) + .WhereIF(request.UserName.IsPresent(), record => record.Name == request.UserName) .OrderBy(record => record.CreateTime, OrderByType.Desc) .Select((record, ga, department, bPlace, order) => new BalanceRecordResponse { @@ -381,27 +382,43 @@ public class BalanceService : IBalanceService }; } - public async Task> GetUserBalanceGroupAsync(BalanceRecordUserGroupPageRequest request) + public async Task> GetUserBalanceGroupAsync(BalanceRecordUserGroupPageRequest request) { return await _dbContext.Queryable() .LeftJoin((record, ga) => record.UserNo == ga.No) + //.LeftJoinIF(request.GainfoStatus == GainfoStatusEnumType.Working, (record, ga) => record.UserNo == ga.No) + //.LeftJoinIF(request.GainfoStatus == GainfoStatusEnumType.Leave, (record, ga) => record.UserNo == ga.No) .LeftJoin((record, ga, department) => ga.DepartmentNo == department.No) .LeftJoin((record, ga, department, bPlace) => record.BusinessPlaceCode == bPlace.Code) - .Where((record, ga) => record.UserCode == request.UserCode) - .Where(record => record.Status == BalanceRecordStatusEnumType.Valid && record.Source != BalanceRecordSourceEnumType.EMealVoucher) //不展示电子餐券信息 - .WhereIF(request.Type.HasValue, record => record.Type == request.Type) + .LeftJoin((record, ga, department, bPlace, order) => record.No == order.No) + .Where(record => record.UserCode == request.UserCode) .WhereIF(request.SearchDateTimePeriod.HasValue(), record => record.CostDate >= request.SearchDateTimePeriod.Start && record.CostDate <= request.SearchDateTimePeriod.End) - .OrderBy(record => record.CostDateTime) - .Select((record, ga, department, bPlace) => new BalanceRecordUserPageResponse + .WhereIF(request.Type.HasValue, record => record.Type == request.Type) + .OrderBy(record => record.CreateTime, OrderByType.Desc) + .Select((record, ga, department, bPlace, order) => new BalanceRecordResponse { Id = record.Id, - CurrentAmount = SqlFunc.Abs(record.Amount), - Source = record.Source, No = record.No, + IsOffline = order.IsOffline, + Amount = record.Amount, + CostDate = record.CostDate, + CostId = record.CostId, + DepartmentNo = record.DepartmentNo, + DeviceInfo = record.DeviceUniqueNo, + UserNo = record.UserNo, + UserCode = record.UserCode, + Type = record.Type, + Status = record.Status, + Source = record.Source, + OriginTenantId = record.OriginTenantId, + Name = record.Name, + DepartmentName = department.Name, BusinessPlaceName = bPlace.Name, - ShiftType = record.ShiftType, CostDateTime = record.CostDateTime, - ApplicationType = record.ApplicationType, + Factory = record.TenantId, + ShiftType = record.ShiftType, + Remark = record.Remark, + Werks = record.Werks }) .ToPageListAsync(request); } diff --git a/Src/Dlhis.Entity/Basic/Dto/FaceImageDetectionDto.cs b/Src/Dlhis.Entity/Basic/Dto/FaceImageDetectionDto.cs index 3b4c3557..bb6ff87b 100644 --- a/Src/Dlhis.Entity/Basic/Dto/FaceImageDetectionDto.cs +++ b/Src/Dlhis.Entity/Basic/Dto/FaceImageDetectionDto.cs @@ -18,12 +18,12 @@ public class FaceImageDetectionDto public class FaceImageDetection { /// - /// 检查类型 + /// 检查类型 FaceQualityTypeEnumType /// public FaceQualityTypeEnumType Type { get; set; } /// - /// 要求登记 + /// 要求登记 FaceQualityLevelEnumType /// public FaceQualityLevelEnumType Level { get; set; } } \ No newline at end of file