diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicesConnectController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicesConnectController.cs
index 0b73672c..37bc6e5a 100644
--- a/Src/Dlhis.Basic/Device/Controllers/DevicesConnectController.cs
+++ b/Src/Dlhis.Basic/Device/Controllers/DevicesConnectController.cs
@@ -44,7 +44,7 @@ public class DevicesConnectController : ControllerBase
///
[HttpPost("register")]
[IgnoreTenant]
- public async Task RegisterAsync(DeviceResigterRequest request)
+ public async Task RegisterAsync(DeviceRegisterRequest request)
{
return await _deviceConnectService.RegisterAsync(request);
}
diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
index 9be24cca..5f3d9cea 100644
--- a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
+++ b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
@@ -75,7 +75,7 @@ public class DevicesController : ControllerBase
[Obsolete("迁移到DeviceConnect")]
[HttpPost("resigter")]
[IgnoreTenant]
- public async Task RegisterAsync(DeviceResigterRequest request)
+ public async Task RegisterAsync(DeviceRegisterRequest request)
{
return await _deviceConnectService.RegisterAsync(request);
}
diff --git a/Src/Dlhis.Basic/Device/Request/DeviceResigterRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceRegisterRequest.cs
similarity index 94%
rename from Src/Dlhis.Basic/Device/Request/DeviceResigterRequest.cs
rename to Src/Dlhis.Basic/Device/Request/DeviceRegisterRequest.cs
index 2caa3331..3360d169 100644
--- a/Src/Dlhis.Basic/Device/Request/DeviceResigterRequest.cs
+++ b/Src/Dlhis.Basic/Device/Request/DeviceRegisterRequest.cs
@@ -2,7 +2,7 @@
namespace Dlhis.Basic.Device.Request;
-public class DeviceResigterRequest
+public class DeviceRegisterRequest
{
///
/// 唯一编码
diff --git a/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs b/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs
index fed6c305..68395ede 100644
--- a/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs
+++ b/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs
@@ -11,7 +11,7 @@ public interface IDeviceConnectService : IScopeDependency
///
///
///
- Task RegisterAsync(DeviceResigterRequest request);
+ Task RegisterAsync(DeviceRegisterRequest request);
///
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
index 7cf1612e..f1560849 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
@@ -24,7 +24,7 @@ public class DeviceConnectService : IDeviceConnectService
}
- public async Task RegisterAsync(DeviceResigterRequest request)
+ public async Task RegisterAsync(DeviceRegisterRequest request)
{
var businessPlace = await _dbContext.Queryable().Where(x => x.CustomCode == request.BusinessCustomCode).SingleAsync();
businessPlace.ThrowIfNull("营业点不存在");
@@ -195,6 +195,14 @@ public class DeviceConnectService : IDeviceConnectService
await _dbContext.InsertAsync(device);
}
+ else
+ {
+ if (tenantId.IsPresent())
+ {
+ device.TenantId = tenantId;
+ await _dbContext.UpdateAsync(device);
+ }
+ }
}
return device;
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs
index e448ce5e..24e1b8e6 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs
@@ -89,7 +89,7 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
DeviceAssignmentTypeEnumType? ignoreUniqueType = null,
string ignoreAssignValue = null, AssignTypeEnumType? ignoreAssignType = null)
{
- var gainfos = await _dbContext.Queryable().Where(x => userNos.Contains(x.No)).ToListAsync();
+ var gainfos = await _dbContext.Queryable().WhereIF(userNos.IsPresent(), x => userNos.Contains(x.No)).ToListAsync();
if (!gainfos.Any()) return new Dictionary>();
var devices = await _dbContext.Queryable().ToListAsync();
diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs
index b8faad8b..d704bfff 100644
--- a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs
+++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs
@@ -2,7 +2,6 @@
using Dlhis.Basic.Organization.Request;
using Dlhis.Basic.Organization.Response;
using Dlhis.Basic.Organization.Services;
-using Dlhis.Basic.Places.Response;
using Dlhis.Entity.Device.Enums;
using Kurisu.AspNetCore.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization;
@@ -17,7 +16,6 @@ public class GainfoPermissionsController : ControllerBase
{
private readonly IGainfoPermissionService _gainfoPermissions;
-
public GainfoPermissionsController(IGainfoPermissionService gainfoPermissions)
{
_gainfoPermissions = gainfoPermissions;
diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs
index 5d416a89..a5e9dad1 100644
--- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs
+++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs
@@ -80,7 +80,10 @@ public class GainfoPermissionService : IGainfoPermissionService
public async Task> GetAssignDeviceCodesAsync(DeviceAssRequest request)
{
var result = await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(new List { request.UserNo });
- var permissions = result[request.UserNo].ToList();
+ if (!result.TryGetValue(request.UserNo, out var permissions))
+ {
+ return new Pagination();
+ }
var codes = permissions.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList();
@@ -144,6 +147,73 @@ public class GainfoPermissionService : IGainfoPermissionService
return page;
}
+ //
+ // public async Task> GetAllUserAssignDeviceCodesAsync()
+ // {
+ // var result = await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(null);
+ //
+ // var codes = permissions.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList();
+ //
+ // var page = await _dbContext.Queryable()
+ // .LeftJoin((d, dr) => d.UniqueNo == dr.DeviceUniqueNo)
+ // .WhereIF(request.DeviceType.HasValue, d => d.Type == request.DeviceType)
+ // .WhereIF(request.Search.IsPresent(), d => d.UniqueNo == request.Search)
+ // .Where(d => codes.Contains(d.Code))
+ // .Select((d, dr) => new GainfoDevicePermissionResponse { Factory = d.TenantId }, true)
+ // .ToPageListAsync(request);
+ //
+ // var deviceGroups = await _dbContext.Queryable().Select(x => new { x.Code, x.Name }).ToListAsync();
+ // var departments = permissions.Any(x => x.AssignTypes.Any(p => p.AssignType == AssignTypeEnumType.Department))
+ // ? await _dbContext.Queryable().Select(x => new { x.No, x.Name }).ToListAsync()
+ // : new[] { new { No = string.Empty, Name = string.Empty } }.ToList();
+ //
+ // var userGroups = permissions.Any(x => x.AssignTypes.Any(p => p.AssignType == AssignTypeEnumType.Group))
+ // ? await _dbContext.Queryable().Select(x => new { x.Code, x.Name }).ToListAsync()
+ // : new[] { new { Code = Guid.Empty, Name = string.Empty } }.ToList();
+ //
+ // page.Data.ForEach(item =>
+ // {
+ // var permission = permissions.FirstOrDefault(x => x.Tenant == item.Factory);
+ // if (permission != null)
+ // {
+ // item.Source = new DevicePermissionSourceDto
+ // {
+ // Factory = item.Factory,
+ // Types = permission.AssignTypes.Where(x => x.Codes.Any(p => p == item.Code)).Select(x =>
+ // {
+ // var codeDesc = x.UniqueType == DeviceAssignmentTypeEnumType.Device
+ // ? item.DeployPlace
+ // : deviceGroups.FirstOrDefault(p => p.Code == x.OriginalCodes.First())?.Name;
+ //
+ // var currentAssignValue = x.AssignValue;
+ //
+ // currentAssignValue = x.AssignType switch
+ // {
+ // AssignTypeEnumType.Department => departments.FirstOrDefault(p => p.No == x.AssignValue.Split(":")[1])?.Name,
+ // AssignTypeEnumType.Group => userGroups.FirstOrDefault(p => p.Code == Guid.Parse(currentAssignValue))?.Name,
+ // AssignTypeEnumType.User => "自己",
+ // _ => currentAssignValue
+ // };
+ //
+ // var r = new DevicePermissionSourceTypeDto
+ // {
+ // AssignType = x.AssignType,
+ // AssignValue = currentAssignValue,
+ // UniqueType = x.UniqueType,
+ // Codes = x.UniqueType == DeviceAssignmentTypeEnumType.Device
+ // ? x.Codes.Where(p => p == item.Code)
+ // : x.Codes.Take(1),
+ // CodeDesc = codeDesc
+ // };
+ //
+ // return r;
+ // })
+ // };
+ // }
+ // });
+ //
+ // return page;
+ // }
public async Task ResetPermissionsAsync(string userNo, DeviceTaskEnumType type, List deviceCodes, string source)