diff --git a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs index 9649c414..33b6db3e 100644 --- a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs +++ b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs @@ -74,6 +74,7 @@ public class BusinessPlacesController : ControllerBase /// /// /// + [AllowAnonymous] [HttpGet("shifts")] public async Task GetShiftsByPlaceCustomCodeHttpGetAsync([FromQuery] BusinessPlaceGetShiftsRequest request) { diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs index 6de59649..9ad46959 100644 --- a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs +++ b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs @@ -75,6 +75,7 @@ public class DevicesController : ControllerBase /// /// /// + [AllowAnonymous] [HttpPost("resigter")] public async Task ResigterAsync(DeviceResigterRequest request) { @@ -114,4 +115,14 @@ public class DevicesController : ControllerBase { await _deviceConnectService.HeartbeatAsync(request); } + + /// + /// 检查设备是否存在 + /// + /// + [HttpGet("exists")] + public async Task CheckExistsAsync(string deviceUniqueNo) + { + return await _deviceService.CheckExistsAsync(deviceUniqueNo); + } } diff --git a/Src/Dlhis.Basic/Device/Services/IDeviceService.cs b/Src/Dlhis.Basic/Device/Services/IDeviceService.cs index a9a84773..708b947a 100644 --- a/Src/Dlhis.Basic/Device/Services/IDeviceService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDeviceService.cs @@ -9,4 +9,6 @@ public interface IDeviceService : IScopeDependency Task> GetPageAsync(DevicePageRequest request); Task SaveAsync(DeviceSaveRequest request); + + Task CheckExistsAsync(string deviceUniqueNo); } diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs index 96ffedbd..6a531783 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs @@ -35,9 +35,10 @@ public class DeviceConnectService : IDeviceConnectService RegisterTime = DateTime.Now, BusinessPlaceCode = businessPlace?.Code, BusinessPlaceCustomCode = businessPlace?.CustomCode, + TenantId = device.TenantId, }; - await _dbContext.InsertAsync(registry); + await _dbContext.InsertAsync(registry); return "设备注册成功"; } @@ -93,8 +94,8 @@ public class DeviceConnectService : IDeviceConnectService private async Task GetEnableDeviceAsync(string uniqueNo) { var device = await _dbContext.Queryable() - .Where(x => x.UniqueNo == uniqueNo) - .FirstAsync(); + .Where(x => x.UniqueNo == uniqueNo) + .FirstAsync(); device.ThrowIfNull($"未知的设备唯一编码{uniqueNo}"); device.Enable.ThrowIfFalse("设备尚未启用"); diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs index 27496c9f..73d60440 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs @@ -1,9 +1,11 @@ using Dlhis.Basic.Device.Request; using Dlhis.Basic.Device.Response; using Dlhis.Entity.Basic.Entity; +using Dlhis.Entity.Device.Entities; using Kurisu.AspNetCore.UnifyResultAndValidation; using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.Core.DataAccess.Dto; +using Kurisu.SqlSugar.Attributes; using Kurisu.SqlSugar.Extensions; using Kurisu.SqlSugar.Services; using Mapster; @@ -34,6 +36,7 @@ public class DeviceService : IDeviceService return page; } + [Transactional] public async Task SaveAsync(DeviceSaveRequest request) { await CheckUniqueNoExistsAsync(request); @@ -46,6 +49,21 @@ public class DeviceService : IDeviceService entity.Code = Guid.NewGuid(); entity.Brand = template.Brand; await _dbContext.InsertAsync(entity); + //同时保存注册信息 + var registry = await _dbContext.Queryable().Where(x => x.DeviceUniqueNo == request.UniqueNo).FirstAsync(); + if (registry == null) + { + registry = new DeviceRegistryEntity() + { + DeviceUniqueNo = request.UniqueNo, + LastHeartbeatTime = DateTime.Now, + RegisterTime = DateTime.Now, + BusinessPlaceCode = null, + BusinessPlaceCustomCode = null, + }; + + await _dbContext.InsertAsync(registry); + } } else { @@ -119,5 +137,13 @@ public class DeviceService : IDeviceService exists.ThrowIfTrue("唯一号已经存在"); } + + [IgnoreTenant] + public async Task CheckExistsAsync(string deviceUniqueNo) + { + return await _dbContext.Queryable() + .Where(x => x.UniqueNo == deviceUniqueNo && x.Enable) + .AnyAsync(); + } } diff --git a/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs b/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs index 22f0f6ce..56bc97b1 100644 --- a/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs +++ b/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs @@ -35,7 +35,7 @@ public class MealUserService : IMealUserService //todo 获取档案信息 var gainfoEntity = await _gainfoStore.Queryable(GainfoStatusEnumType.Working) - .Where(x => x.Guestno.ToString() == request.UserId) + .Where(x => x.No.ToString() == request.UserId) .FirstAsync(); gainfoEntity.ThrowIfNull($"档案[{request.UserId}]不存在"); @@ -44,7 +44,7 @@ public class MealUserService : IMealUserService { UserId = request.UserId, UserType = request.UserType, - UserCode = gainfoEntity.Ename, + UserCode = gainfoEntity.Code, CarNo = gainfoEntity.CarNo, Balance = 0, BalanceOfRecharge = 0,