diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionManuallyController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionManuallyController.cs
index ecb85ca9..1795014a 100644
--- a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionManuallyController.cs
+++ b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionManuallyController.cs
@@ -63,4 +63,11 @@ public class DevicePermissionManuallyController : ControllerBase
{
await _devicePermissionService.DeleteAsync(ids);
}
+
+ [HttpPost("{factory}/clear/{userCode}")]
+ [IgnoreTenant]
+ public async Task ClearAllDevicePermissions(string factory, string userCode)
+ {
+ await _devicePermissionService.ClearAllDevicePermissions(factory, userCode);
+ }
}
\ No newline at end of file
diff --git a/Src/Dlhis.Basic/Device/Services/IDevicePermissionManuallyService.cs b/Src/Dlhis.Basic/Device/Services/IDevicePermissionManuallyService.cs
index b0fe53ce..043f236f 100644
--- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionManuallyService.cs
+++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionManuallyService.cs
@@ -36,4 +36,6 @@ public interface IDevicePermissionManuallyService : IScopeDependency
///
///
Task DeleteAsync(List ids);
+
+ Task ClearAllDevicePermissions(string factory, string userCode);
}
\ No newline at end of file
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionManuallyService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionManuallyService.cs
index 332981f6..6f6f17d9 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionManuallyService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionManuallyService.cs
@@ -120,4 +120,30 @@ public class DevicePermissionManuallyService : IDevicePermissionManuallyService
await _dbContext.DeleteAsync(item);
}
}
+
+ ///
+ public async Task ClearAllDevicePermissions(string factory, string userCode)
+ {
+ var userInfo = await _dbContext.Queryable().Where(x => x.Code == userCode).Select(x => new { x.Id, x.No }).SingleAsync()
+ ?? await _dbContext.Queryable().Where(x => x.Code == userCode).Select(x => new { Id = (long)x.IdentityUserId, x.No }).SingleAsync();
+ userInfo.ThrowIfNull($"{userCode}不存在");
+ var devices = await _dbContext.Queryable().Where(x => x.TenantId == factory).ToListAsync();
+
+ var data = devices.Select(x => new DeviceTaskEntity
+ {
+ Type = DeviceTaskEnumType.Delete,
+ DeviceType = x.Type,
+ UserId = userInfo.Id,
+ UserNo = userInfo.No,
+ DeviceUniqueNo = x.UniqueNo,
+ Status = DeviceTaskStatusEnumType.Wait,
+ Version = 0,
+ ResultMessage = null,
+ Source = "手动删除处理",
+ Priority = 0,
+ TenantId = x.TenantId
+ }).ToList();
+
+ await _dbContext.InsertAsync(data);
+ }
}
\ No newline at end of file