diff --git a/Src/Dlhis.Basic.Api/Dto/PermissionUsersInfoDto.cs b/Src/Dlhis.Basic.Api/Dto/PermissionUsersInfoDto.cs
deleted file mode 100644
index e89b9c8a..00000000
--- a/Src/Dlhis.Basic.Api/Dto/PermissionUsersInfoDto.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-namespace Dlhis.Basic.Api.Dto;
-
-public class PermissionUsersInfoDto
-{
- ///
- /// 拥有权限的用户
- ///
- public List UserNos { get; set; }
-
- ///
- /// 用户对应的 [ 厂区--设备Code ]
- ///
- public Dictionary> PermissionInfos { get; set; }
-}
\ No newline at end of file
diff --git a/Src/Dlhis.Basic.Api/Dto/UserTenantDeviceCodeDto.cs b/Src/Dlhis.Basic.Api/Dto/UserTenantDeviceCodeDto.cs
deleted file mode 100644
index 70578e86..00000000
--- a/Src/Dlhis.Basic.Api/Dto/UserTenantDeviceCodeDto.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-namespace Dlhis.Basic.Api.Dto;
-
-public class UserTenantDeviceCodeDto
-{
- ///
- /// 租户
- ///
- public string Tenant { get; set; }
-
- ///
- /// 设备权限
- ///
- public List Codes { get; set; }
-}
diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs
index b7a655aa..ba2f97c9 100644
--- a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs
+++ b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs
@@ -1,5 +1,4 @@
using Dlhis.Basic.Device.Dtos;
-using Dlhis.Basic.Device.Filters;
using Dlhis.Basic.Device.Request;
using Dlhis.Basic.Device.Response;
using Dlhis.Basic.Device.Services;
@@ -31,7 +30,6 @@ public class DevicePermissionsController : ControllerBase
///
///
[HttpPost("assign")]
- [AssignPermissionLimit]
[Transactional]
[CrossTenant]
public async Task AssignAsync(DevicePermissionSaveRequest request)
@@ -44,7 +42,6 @@ public class DevicePermissionsController : ControllerBase
///
///
[HttpPost("assign-unique")]
- [AssignPermissionLimit]
[Transactional]
[CrossTenant]
public async Task AssignToUniqueAsync(DevicePermissionsAssignToDeviceRequest request)
@@ -52,14 +49,14 @@ public class DevicePermissionsController : ControllerBase
return await _devicePermissionService.AssignToUniqueAsync(request);
}
- [AllowAnonymous]
- [HttpPost("assign-unique-import")]
- [Transactional]
- [IgnoreTenant]
- public async Task AssignToUniqueImportAsync(IFormFile file)
- {
- await _devicePermissionService.AssignToUniqueImportAsync(file);
- }
+ // [AllowAnonymous]
+ // [HttpPost("assign-unique-import")]
+ // [Transactional]
+ // [IgnoreTenant]
+ // public async Task AssignToUniqueImportAsync(IFormFile file)
+ // {
+ // await _devicePermissionService.AssignToUniqueImportAsync(file);
+ // }
///
/// 当前类型的权限分配
diff --git a/Src/Dlhis.Basic/Device/Dtos/TenantAssignTypeDeviceCode.cs b/Src/Dlhis.Basic/Device/Dtos/TenantAssignTypeDeviceCode.cs
index 8876e200..69267478 100644
--- a/Src/Dlhis.Basic/Device/Dtos/TenantAssignTypeDeviceCode.cs
+++ b/Src/Dlhis.Basic/Device/Dtos/TenantAssignTypeDeviceCode.cs
@@ -38,17 +38,4 @@ public class AssignTypeDeviceCode
public List Codes { get; set; }
public List OriginalCodes { get; set; }
-}
-
-public class UserTenantDeviceCodeDto
-{
- ///
- /// 租户
- ///
- public string Tenant { get; set; }
-
- ///
- /// 设备权限
- ///
- public IEnumerable Codes { get; set; }
}
\ No newline at end of file
diff --git a/Src/Dlhis.Basic/Device/Filters/AssignPermissionLimitAttribute.cs b/Src/Dlhis.Basic/Device/Filters/AssignPermissionLimitAttribute.cs
deleted file mode 100644
index 2c621773..00000000
--- a/Src/Dlhis.Basic/Device/Filters/AssignPermissionLimitAttribute.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using Kurisu.AspNetCore.Authentication.Abstractions;
-using Kurisu.AspNetCore.Cache;
-using Kurisu.AspNetCore.Utils.Extensions;
-using Microsoft.AspNetCore.Mvc.Filters;
-
-namespace Dlhis.Basic.Device.Filters;
-
-[AttributeUsage(AttributeTargets.Method)]
-public class AssignPermissionLimitAttribute : Attribute, IAsyncActionFilter
-{
- public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
- {
- // var currentUser = context.HttpContext.RequestServices.GetRequiredService();
- // var redisCache = context.HttpContext.RequestServices.GetRequiredService();
- //
- // var currentTenantId = currentUser.GetStringTenantId();
- //
- // await using var handler = await redisCache.LockAsync($"permission:generate:{currentTenantId}", expiry: TimeSpan.FromMinutes(3));
- // handler.Acquired.ThrowIfFalse("请勿频繁分配");
- await next();
- }
-}
\ No newline at end of file
diff --git a/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs
index a69fbd20..e47ef14e 100644
--- a/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs
+++ b/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs
@@ -56,11 +56,10 @@ public class DeviceGetAssignmentUniquesRequest
public DeviceAssignmentTypeEnumType UniqueType { get; set; }
///
- ///
+ /// 权限值
///
public Guid UniqueValue { get; set; }
-
///
/// 设备类型
///
diff --git a/Src/Dlhis.Basic/Device/Services/IDevicePermissionAnalyzeService.cs b/Src/Dlhis.Basic/Device/Services/IDevicePermissionAnalyzeService.cs
index 770e99f3..dc6eb6ea 100644
--- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionAnalyzeService.cs
+++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionAnalyzeService.cs
@@ -1,6 +1,5 @@
using Dlhis.Basic.Device.Dtos;
using Dlhis.Basic.Device.Request;
-using Dlhis.Basic.Device.Response;
using Dlhis.Basic.Organization.Dto;
using Dlhis.Entity.Sys.Entities;
using Dlhis.Entity.Sys.Enums;
@@ -12,22 +11,42 @@ namespace Dlhis.Basic.Device.Services;
///
public interface IDevicePermissionAnalyzeService : IScopeDependency
{
+ ///
+ /// 获取存储的设备权限(原始数据)
+ ///
+ ///
+ ///
Task> GetDevicePermissionsAsync(DevicePermissionSaveRequest request);
- Task GenerateDeviceTasksAsync(Func func, List userNos, string source);
-
+ ///
+ /// 获取设备权限codes(原始数据)
+ ///
+ ///
+ ///
Task> GetAssignmentsAsync(DeviceGetAssignmentsRequest request);
+ ///
+ /// 获取设备分配的人(按人员)
+ ///
+ ///
+ ///
Task> GetAssignmentUniqueAsync(DeviceGetAssignmentUniquesRequest request);
- Task> GetAssignDeviceCodesAsync(string userNo);
-
-
- Task>> GetUserAssignDeviceCodesInTenantAsync(
- List userNos,
- DeviceAssignmentTypeEnumType? ignoreUniqueType = null,
- string ignoreAssignValue = null, AssignTypeEnumType? ignoreAssignType = null);
+ ///
+ /// 获取人员所有权限codes
+ ///
+ ///
+ ///
+ Task> GetUserPermissionDeviceCodesAsync(string userNo);
+ ///
+ /// 获取人员权限(人员--(厂区--分配方式--设备codes))
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
Task>> GetUserAssignDeviceCodesWithTypeInTenantAsync(
List userNos,
DeviceAssignmentTypeEnumType? ignoreUniqueType = null,
diff --git a/Src/Dlhis.Basic/Device/Services/IDevicePermissionManuallyService.cs b/Src/Dlhis.Basic/Device/Services/IDevicePermissionManuallyService.cs
index e2a6149b..21851ee5 100644
--- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionManuallyService.cs
+++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionManuallyService.cs
@@ -4,11 +4,29 @@ using Kurisu.AspNetCore.DataAccess.Dto;
namespace Dlhis.Basic.Device.Services;
+///
+/// 例外人员权限分配
+///
public interface IDevicePermissionManuallyService : IScopeDependency
{
+ ///
+ /// 获取例外分配分页
+ ///
+ ///
+ ///
Task> GetPageAsync(PageDto requestDto);
-
+
+ ///
+ /// 添加例外
+ ///
+ ///
+ ///
Task AddAsync(DevicePermissionManuallyAddRequest request);
+ ///
+ /// 删除例外
+ ///
+ ///
+ ///
Task DeleteAsync(long id);
}
\ 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 1e9b597f..921c50cf 100644
--- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs
+++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs
@@ -21,12 +21,8 @@ public interface IDevicePermissionService : IScopeDependency
///
///
Task AssignToUniqueAsync(DevicePermissionsAssignToDeviceRequest request);
-
-
- Task AssignToUniqueImportAsync(IFormFile file);
-
-
- Task>> GetUserDevicePermissionsAsync(string code);
+
+ //Task AssignToUniqueImportAsync(IFormFile file);
///
/// 生成下发任务(主动生成)
diff --git a/Src/Dlhis.Basic/Device/Services/IDeviceTimePeriodService.cs b/Src/Dlhis.Basic/Device/Services/IDeviceTimePeriodService.cs
index 11171b85..1a3ad660 100644
--- a/Src/Dlhis.Basic/Device/Services/IDeviceTimePeriodService.cs
+++ b/Src/Dlhis.Basic/Device/Services/IDeviceTimePeriodService.cs
@@ -5,15 +5,45 @@ using Kurisu.AspNetCore.DataAccess.Dto;
namespace Dlhis.Basic.Device.Services;
+///
+/// 设备时段码服务
+///
public interface IDeviceTimePeriodService : IScopeDependency
{
+ ///
+ /// 时段码配置
+ ///
+ ///
+ ///
Task> GetPageAsync(DeviceTimePeriodPageRequest request);
+ ///
+ /// 保存时段码
+ ///
+ ///
+ ///
Task SaveAsync(DeviceTimePeriodSaveRequest request);
+ ///
+ /// 获取时段码配置
+ ///
+ ///
+ ///
+ ///
Task> GetListAsync(DeviceTimePeriodAssignEnumType assignType, Guid value);
+ ///
+ /// 删除时段码
+ ///
+ ///
+ ///
Task DeleteCardTypeAsync(DeviceTimePeriodDeleteCardTypeRequest request);
+ ///
+ /// 生成时段码
+ ///
+ ///
+ ///
+ ///
Task GenerateDeviceTimePeriodTasksAsync(Func func, string source);
}
\ No newline at end of file
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs
index 65f7d99a..e448ce5e 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs
@@ -2,7 +2,6 @@ using System.Collections.Concurrent;
using Dlhis.Basic.DataPermissions;
using Dlhis.Basic.Device.Dtos;
using Dlhis.Basic.Device.Request;
-using Dlhis.Basic.Device.Response;
using Dlhis.Basic.Organization.Dto;
using Dlhis.Entity.Basic.Entity;
using Dlhis.Entity.Basic.Enums;
@@ -11,7 +10,6 @@ using Dlhis.Entity.Device.Enums;
using Dlhis.Entity.Sys.Entities;
using Dlhis.Entity.Sys.Enums;
using Kurisu.AspNetCore.Authentication.Abstractions;
-using Kurisu.AspNetCore.DataAccess.Entity;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
using Kurisu.AspNetCore.Utils.Extensions;
@@ -34,8 +32,9 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
public async Task> GetDevicePermissionsAsync(DevicePermissionSaveRequest request)
{
- var currentTenantId = await GetCurrentFactoryAsync(request);
+ var currentTenantId = await GetCurrentFactoryAsync(request.UniqueType, request.Codes);
+ //获取当前查询的配置
var setting = _dbContext.GetQueryableSetting();
var query = _dbContext.Queryable().Where(x => x.AssignType == request.AssignType
@@ -43,6 +42,8 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
&& x.UniqueType == request.UniqueType
&& x.Type == request.Type
&& x.TenantId == currentTenantId);
+
+ //根据数据权限进行过滤
if (setting.GetEnableDataPermission())
{
(bool enableDeviceFilter, List deviceCodes) = _myDataPermissionService.GetMyDeviceCodes();
@@ -54,102 +55,32 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
}
return await query.ToListAsync();
- }
- private async Task GetCurrentFactoryAsync(DevicePermissionSaveRequest request)
- {
- var currentTenantId = _currentUser.GetStringTenantId();
- var r = request.UniqueType switch
+ //获取当前的操作人的基地
+ async Task GetCurrentFactoryAsync(DeviceAssignmentTypeEnumType uniqueType, List codes)
{
- DeviceAssignmentTypeEnumType.Device => await _dbContext.Queryable().Where(x => request.Codes.Contains(x.Code)).Where(x => x.TenantId != currentTenantId).AnyAsync(),
- DeviceAssignmentTypeEnumType.Group => await _dbContext.Queryable().Where(x => request.Codes.Contains(x.Code)).Where(x => x.TenantId != currentTenantId).AnyAsync(),
- _ => false
- };
+ var internalCurrentTenantId = _currentUser.GetStringTenantId();
- r.ThrowIfTrue("存在设备或者设备组不属于当前厂区,操作失败!");
-
- return currentTenantId;
- }
-
-
- public async Task GenerateDeviceTasksAsync(Func func, List userNos, string source)
- {
- var before = await GetUserAssignDeviceCodesInTenantAsync(userNos);
-
- //业务处理
- _dbContext.Client.QueryFilter.Restore();
- await func();
- _dbContext.Client.QueryFilter.ClearAndBackup();
-
- var current = await GetUserAssignDeviceCodesInTenantAsync(userNos);
-
- var devices = await _dbContext.Queryable().Where(x => x.Enable).ToListAsync();
-
- var waitAddTasks = new List();
- var waitDeleteTasks = new List();
-
- foreach (var userNo in userNos)
- {
- var beforeTenantDeviceCodes = before[userNo].ToList();
- var currentTenantDeviceCodes = current[userNo].ToList();
-
- var tenants = new HashSet();
- foreach (var item in beforeTenantDeviceCodes)
- tenants.Add(item.Tenant);
- foreach (var item in currentTenantDeviceCodes)
- tenants.Add(item.Tenant);
-
- foreach (var tenant in tenants)
+ var r = uniqueType switch
{
- var currentCodes = currentTenantDeviceCodes.FirstOrDefault(x => x.Tenant == tenant)?.Codes?.ToList() ?? new List();
- var beforeCodes = beforeTenantDeviceCodes.FirstOrDefault(x => x.Tenant == tenant)?.Codes?.ToList() ?? new List();
+ DeviceAssignmentTypeEnumType.Device => await _dbContext.Queryable().Where(x => codes.Contains(x.Code)).Where(x => x.TenantId != internalCurrentTenantId).AnyAsync(),
+ DeviceAssignmentTypeEnumType.Group => await _dbContext.Queryable().Where(x => codes.Contains(x.Code)).Where(x => x.TenantId != internalCurrentTenantId).AnyAsync(),
+ _ => false
+ };
- //被删除
- var deletedItems = beforeCodes.Where(x => !currentCodes.Contains(x)).ToList();
- //新增
- var addItems = currentCodes.Where(x => !beforeCodes.Contains(x)).ToList();
+ r.ThrowIfTrue("存在设备或者设备组不属于当前厂区,操作失败!");
- if (!deletedItems.Any() && !addItems.Any())
- {
- continue;
- }
-
- var deviceCodes = devices.Where(x => deletedItems.Contains(x.Code) || addItems.Contains(x.Code)).Select(x => x.Code).ToList();
- deletedItems = deletedItems.Where(x => deviceCodes.Contains(x)).ToList();
- addItems = addItems.Where(x => deviceCodes.Contains(x)).ToList();
-
- //下发任务创建
- deletedItems.ForEach(x => waitDeleteTasks.Add(new DeviceTaskEntity
- {
- DeviceUniqueNo = devices.First(item => item.Code == x).UniqueNo,
- Status = DeviceTaskStatusEnumType.Wait,
- Type = DeviceTaskEnumType.Delete,
- DeviceType = devices.First(item => item.Code == x).Type,
- UserNo = userNo,
- Version = 0,
- TenantId = tenant,
- Source = source
- }));
-
- addItems.ForEach(x => waitAddTasks.Add(new DeviceTaskEntity
- {
- DeviceUniqueNo = devices.First(item => item.Code == x).UniqueNo,
- Status = DeviceTaskStatusEnumType.Wait,
- Type = DeviceTaskEnumType.Add,
- DeviceType = devices.First(item => item.Code == x).Type,
- UserNo = userNo,
- Version = 0,
- TenantId = tenant,
- Source = source
- }));
- }
+ return internalCurrentTenantId;
}
+ }
- await ChunkInsertAsync(waitAddTasks);
- await ChunkInsertAsync(waitDeleteTasks);
-
- return new DevicePermissionAssignResponse(waitAddTasks.Count, waitDeleteTasks.Count);
+ public async Task> GetUserPermissionDeviceCodesAsync(string userNo)
+ {
+ var result = await GetUserAssignDeviceCodesWithTypeInTenantAsync(new List { userNo });
+ return result.Count == 0
+ ? new List()
+ : result[userNo].SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList();
}
@@ -344,33 +275,6 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
return r;
}
- private async Task ChunkInsertAsync(List batch) where T : class, new()
- {
- foreach (var tasks in batch.Chunk(500))
- {
- await _dbContext.InsertAsync(tasks.ToList());
- }
- }
-
-
- public async Task>> GetUserAssignDeviceCodesInTenantAsync(
- List userNos,
- DeviceAssignmentTypeEnumType? ignoreUniqueType = null,
- string ignoreAssignValue = null, AssignTypeEnumType? ignoreAssignType = null)
- {
- var result = await GetUserAssignDeviceCodesWithTypeInTenantAsync(userNos, ignoreUniqueType, ignoreAssignValue, ignoreAssignType);
-
- return result.ToDictionary(x => x.Key, x => x.Value.GroupBy(p => p.Tenant).Select(item =>
- {
- return new UserTenantDeviceCodeDto
- {
- Tenant = item.Key,
- Codes = item.SelectMany(p => p.AssignTypes).SelectMany(p => p.Codes).Distinct().ToList(),
- };
- }).ToList());
- }
-
-
public async Task> GetAssignmentsAsync(DeviceGetAssignmentsRequest request)
{
var r = await GetDevicePermissionsAsync(new DevicePermissionSaveRequest
@@ -405,10 +309,4 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
Factory = x.Factory
}).ToListAsync();
}
-
- public async Task> GetAssignDeviceCodesAsync(string userNo)
- {
- var result = await GetUserAssignDeviceCodesInTenantAsync(new List { userNo });
- return result.First().Value.SelectMany(x => x.Codes).ToList();
- }
}
\ 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 91d0ddbf..882a39a7 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs
@@ -156,81 +156,64 @@ public class DevicePermissionService : IDevicePermissionService
return new DevicePermissionAssignResponse(tasksToAdd.Count, tasksToDelete.Count);
}
- ///
- public async Task AssignToUniqueImportAsync(IFormFile file)
- {
- var deviceNo = Path.GetFileNameWithoutExtension(file.FileName);
-
- var device = await _dbContext.Queryable().Where(x => x.UniqueNo == deviceNo).SingleAsync();
- device.ThrowIfNull("设备不存在");
-
- ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
- using (var package = new ExcelPackage(file.OpenReadStream()))
- {
- ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
- int rowCount = worksheet.Dimension.Rows; // 获取行数
- int colCount = worksheet.Dimension.Columns; // 获取列数
-
- var list = new List();
- for (int i = 1; i < rowCount; i++)
- {
- var userCode = worksheet.Cells[i + 1, 2].GetCellValue();
- list.Add(userCode);
- }
-
- foreach (var items in list.Chunk(500))
- {
- var gainfoNos = await _dbContext.Queryable().Where(x => items.Contains(x.Code)).Select(x => x.No).ToListAsync();
-
- var permissions = gainfoNos.Select(x => new DevicePermissionEntity
- {
- AssignType = AssignTypeEnumType.User,
- AssignValue = x,
- UniqueType = DeviceAssignmentTypeEnumType.Device,
- UniqueValue = device.Code,
- Type = device.Type,
- TenantId = device.TenantId,
- IsDeleted = false
- }).ToList();
-
- await _dbContext.InsertAsync(permissions);
-
- var tasks = permissions.Select(x => new DeviceTaskEntity
- {
- Type = DeviceTaskEnumType.Add,
- DeviceType = x.Type,
- UserId = null,
- UserNo = x.AssignValue,
- DeviceUniqueNo = device.UniqueNo,
- Status = DeviceTaskStatusEnumType.Wait,
- Version = 0,
- ResultMessage = null,
- Source = "人员分配到设备import",
- Priority = 0,
- TenantId = device.TenantId,
- }).ToList();
-
- await _dbContext.InsertAsync(tasks);
- }
- }
- }
-
- ///
- public async Task>> GetUserDevicePermissionsAsync(string code)
- {
- var userNo = await _dbContext.Queryable().Where(x => x.Code == code).Select(x => x.No).SingleAsync();
- var result = await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(new List { userNo });
-
- return result.ToDictionary(x => x.Key, x => x.Value.GroupBy(p => p.Tenant).Select(item =>
- {
- return new UserTenantDeviceCodeDto
- {
- Tenant = item.Key,
- Codes = item.SelectMany(p => p.AssignTypes).SelectMany(p => p.Codes).Distinct().ToList(),
- };
- }));
- }
-
+ // ///
+ // public async Task AssignToUniqueImportAsync(IFormFile file)
+ // {
+ // var deviceNo = Path.GetFileNameWithoutExtension(file.FileName);
+ //
+ // var device = await _dbContext.Queryable().Where(x => x.UniqueNo == deviceNo).SingleAsync();
+ // device.ThrowIfNull("设备不存在");
+ //
+ // ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
+ // using (var package = new ExcelPackage(file.OpenReadStream()))
+ // {
+ // ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
+ // int rowCount = worksheet.Dimension.Rows; // 获取行数
+ // int colCount = worksheet.Dimension.Columns; // 获取列数
+ //
+ // var list = new List();
+ // for (int i = 1; i < rowCount; i++)
+ // {
+ // var userCode = worksheet.Cells[i + 1, 2].GetCellValue();
+ // list.Add(userCode);
+ // }
+ //
+ // foreach (var items in list.Chunk(500))
+ // {
+ // var gainfoNos = await _dbContext.Queryable().Where(x => items.Contains(x.Code)).Select(x => x.No).ToListAsync();
+ //
+ // var permissions = gainfoNos.Select(x => new DevicePermissionEntity
+ // {
+ // AssignType = AssignTypeEnumType.User,
+ // AssignValue = x,
+ // UniqueType = DeviceAssignmentTypeEnumType.Device,
+ // UniqueValue = device.Code,
+ // Type = device.Type,
+ // TenantId = device.TenantId,
+ // IsDeleted = false
+ // }).ToList();
+ //
+ // await _dbContext.InsertAsync(permissions);
+ //
+ // var tasks = permissions.Select(x => new DeviceTaskEntity
+ // {
+ // Type = DeviceTaskEnumType.Add,
+ // DeviceType = x.Type,
+ // UserId = null,
+ // UserNo = x.AssignValue,
+ // DeviceUniqueNo = device.UniqueNo,
+ // Status = DeviceTaskStatusEnumType.Wait,
+ // Version = 0,
+ // ResultMessage = null,
+ // Source = "人员分配到设备import",
+ // Priority = 0,
+ // TenantId = device.TenantId,
+ // }).ToList();
+ //
+ // await _dbContext.InsertAsync(tasks);
+ // }
+ // }
+ // }
public async Task> GetGainfoPageByDeviceAsync(DeviceWithGainfoRequest request)
{
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceTimePeriodService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceTimePeriodService.cs
index 71997067..6b819a1a 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceTimePeriodService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceTimePeriodService.cs
@@ -190,9 +190,10 @@ public class DeviceTimePeriodService : IDeviceTimePeriodService
DeviceUniqueNo = deviceUniqueNo,
Status = DeviceTaskStatusEnumType.Wait,
Version = 0,
+ ResultMessage = null,
Source = source,
Priority = 90,
- TenantId = device.TenantId
+ TenantId = device.TenantId,
});
break;
diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoGroupsController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoGroupsController.cs
index 7dc4db28..2e3f849f 100644
--- a/Src/Dlhis.Basic/Organization/Controllers/GainfoGroupsController.cs
+++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoGroupsController.cs
@@ -1,5 +1,4 @@
-using Dlhis.Basic.Device.Filters;
-using Dlhis.Basic.Device.Response;
+using Dlhis.Basic.Device.Response;
using Dlhis.Basic.Organization.Request;
using Dlhis.Basic.Organization.Response;
using Dlhis.Basic.Organization.Services;
@@ -75,7 +74,6 @@ public class GainfoGroupsController : ControllerBase
///
///
[HttpPost("assign")]
- [AssignPermissionLimit]
[Transactional]
[CrossTenant]
public async Task AssignGainfosAsync(GainfoAssignRequest request)
diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs
index d2d24271..5d416a89 100644
--- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs
+++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs
@@ -169,7 +169,7 @@ public class GainfoPermissionService : IGainfoPermissionService
//获取人员的设备权限
if (deviceCodes.IsEmpty())
{
- deviceCodes = await _devicePermissionAnalyzeService.GetAssignDeviceCodesAsync(gainfo!.No);
+ deviceCodes = await _devicePermissionAnalyzeService.GetUserPermissionDeviceCodesAsync(gainfo!.No);
}
var devices = await _dbContext.Queryable().Where(x => deviceCodes.Contains(x.Code)).ToListAsync();
diff --git a/Src/Dlhis.Basic/Places/Controllers/BusinessPlacesController.cs b/Src/Dlhis.Basic/Places/Controllers/BusinessPlacesController.cs
index fdc8d006..14eb15a0 100644
--- a/Src/Dlhis.Basic/Places/Controllers/BusinessPlacesController.cs
+++ b/Src/Dlhis.Basic/Places/Controllers/BusinessPlacesController.cs
@@ -1,5 +1,4 @@
using Dlhis.Basic.BusinessShift.Services;
-using Dlhis.Basic.Device.Filters;
using Dlhis.Basic.Places.Request;
using Dlhis.Basic.Places.Response;
using Dlhis.Basic.Places.Services;
@@ -124,7 +123,6 @@ public class BusinessPlacesController : ControllerBase
///
///
[HttpPost("device/assign")]
- [AssignPermissionLimit]
[Transactional]
[CrossTenant]
public async Task Assign(DispositionDeviceRequest request)