diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs
index fefea005..552efee4 100644
--- a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs
+++ b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs
@@ -70,6 +70,18 @@ public class DevicePermissionsController : ControllerBase
{
return await _devicePermissionService.GetAssignmentsAsync(request.UniqueType, request.AssignType, request.AssignValue);
}
+
+ ///
+ /// 当前类型的权限分配
+ ///
+ ///
+ ///
+ [DataPermission]
+ [HttpGet("assignments-unique")]
+ public async Task> GetAssignmentUniqueAsync([FromQuery] DeviceGetAssignmentUniquesRequest request)
+ {
+ return await _devicePermissionService.GetAssignmentUniqueAsync(request);
+ }
///
diff --git a/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs
index f0798dfe..2b961487 100644
--- a/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs
+++ b/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs
@@ -27,4 +27,18 @@ public class DeviceGetAssignmentsRequest
/// 设备类型
///
public DeviceTypeEnumType Type { get; set; }
+}
+
+public class DeviceGetAssignmentUniquesRequest
+{
+ ///
+ /// 权限分配类型 DeviceAssignmentTypeEnumType
+ ///
+ [EnumDataType(typeof(DeviceAssignmentTypeEnumType))]
+ public DeviceAssignmentTypeEnumType UniqueType { get; set; }
+
+ ///
+ ///
+ ///
+ public Guid UniqueValue { get; set; }
}
\ 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 c23de1c5..b09ea908 100644
--- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs
+++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs
@@ -34,6 +34,8 @@ public interface IDevicePermissionService : IScopeDependency
///
Task> GetAssignmentsAsync(DeviceAssignmentTypeEnumType uniqueType, AssignTypeEnumType assignType, string assignValue);
+ Task> GetAssignmentUniqueAsync(DeviceGetAssignmentUniquesRequest request);
+
///
/// 生成下发任务
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs
index 29a4656c..40fd48cc 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs
@@ -180,6 +180,26 @@ public class DevicePermissionService : IDevicePermissionService
return result.FirstOrDefault(x => x.Tenant == _currentUser.GetStringTenantId())?.Codes;
}
+
+ public async Task> GetAssignmentUniqueAsync(DeviceGetAssignmentUniquesRequest request)
+ {
+ var nos = await _dbContext.Queryable()
+ .Where(x => x.UniqueType == request.UniqueType)
+ .Where(x => x.UniqueValue == request.UniqueValue)
+ .Where(x => x.AssignType == AssignTypeEnumType.User)
+ .Select(x => x.AssignValue)
+ .ToListAsync();
+
+ return await _dbContext.Queryable().Where(x => nos.Contains(x.No)).Select(x => new GainfoDto
+ {
+ Id = x.Id,
+ Code = x.Code,
+ Name = x.Name,
+ Workplace = x.Workplace,
+ Factory = x.Factory
+ }).ToListAsync();
+ }
+
public async Task GenerateDeviceTasksAsync(Func func, List userNos)
{
var tenantId = _currentUser.GetStringTenantId();