diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs index 027a0cc9..22956de6 100644 --- a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs +++ b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs @@ -140,4 +140,11 @@ public class DevicePermissionsController : ControllerBase { return await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(new List { userNo }); } + + [HttpGet("reset-visitors")] + [IgnoreTenant] + public async Task ResetVisitorsByDeviceAsync(string deviceUniqueNo) + { + return await _devicePermissionService.ResetVisitorsByDeviceAsync(deviceUniqueNo); + } } \ No newline at end of file diff --git a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs index 9ce9f580..09833f35 100644 --- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs @@ -55,4 +55,6 @@ public interface IDevicePermissionService : IScopeDependency Task> GetDeviceUserCodesAsync(string deviceUniqueNo); Task ExternalAndManuallyUserNoAsync(string deviceUniqueNo); + + Task ResetVisitorsByDeviceAsync(string deviceUniqueNo); } \ No newline at end of file diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index 10050f1a..94ba3fba 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -552,4 +552,28 @@ public class DevicePermissionService : IDevicePermissionService .Distinct() .ToList(); } + + public async Task ResetVisitorsByDeviceAsync(string deviceUniqueNo) + { + var device = await _dbContext.Queryable().SingleAsync(x => x.UniqueNo == deviceUniqueNo); + device.ThrowIfNull("设备不存在"); + + var userNos = await GetDeviceUserNosFromVisitorAsync(device.Code); + var deviceTaskEntities = userNos.Select(x => new DeviceTaskEntity + { + Type = DeviceTaskEnumType.Add, + DeviceType = device.Type, + UserId = null, + UserNo = x, + DeviceUniqueNo = device.UniqueNo, + Status = DeviceTaskStatusEnumType.Wait, + Version = 0, + ResultMessage = null, + Source = "手动下发设备中的访客人员", + Priority = 0, + TenantId = device.TenantId + }).ToList(); + + return await _dbContext.InsertAsync(deviceTaskEntities); + } } \ No newline at end of file