From 90e5728fd37327ec4aa02d67a0c25f9d2dedf96a Mon Sep 17 00:00:00 2001 From: cheche <717840555@qq.com> Date: Mon, 11 Mar 2024 17:48:47 +0800 Subject: [PATCH] feat aa --- .../GainfoPermissionsController.cs | 11 +++++ .../Services/IGainfoPermissions.cs | 2 +- .../Services/Implements/GainfoPermissions.cs | 47 +++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs index 58045b3e..60a71318 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs @@ -28,4 +28,15 @@ public class GainfoPermissionsController : ControllerBase { return await _gainfoPermissions.GetPlaceByGainfoAsync(userNo); } + + /// + /// 根据档案号 设备组查询设备 + /// + /// + /// + /// + public async Task GetDevicesUnderGroupByUserNoAsync(string userNo, string deviceGroupCode) + { + return await _gainfoPermissions.GetDevicesUnderGroupByUserNoAsync(userNo,deviceGroupCode); + } } diff --git a/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs b/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs index 91ab4316..a1a7a5b9 100644 --- a/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs +++ b/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs @@ -6,5 +6,5 @@ public interface IGainfoPermissions : IScopeDependency { Task> GetPlaceByGainfoAsync(string userNo); - //Task GetDevicesUnderGroupByUserNoAsync(string userNo, string deviceGroupCode); + Task GetDevicesUnderGroupByUserNoAsync(string userNo, string deviceGroupCode); } diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs index e8c8589e..31cb2b1c 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs @@ -3,6 +3,9 @@ using Dlhis.Basic.Organization.Response; using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Device.Entities; using Dlhis.Entity.Device.Enums; +using Dlhis.Entity.Sys.Entities; +using Dlhis.Entity.Sys.Enums; +using Dm.filter.rw; using Kurisu.SqlSugar.Services; namespace Dlhis.Basic.Organization.Services.Implements; @@ -47,6 +50,50 @@ public class GainfoPermissions : IGainfoPermissions }) .Distinct() .ToListAsync(); + } + public async Task GetDevicesUnderGroupByUserNoAsync(string userNo, string deviceGroupCode) + {; + var deviceGroups = await _dbContext.Queryable().ToListAsync(); + + var currentGroup = deviceGroups.Where(x => x.Code.ToString() == deviceGroupCode).First(); + + var groups = new List(); + if(!currentGroup.PCode.HasValue) + { + RecursionGetNext(currentGroup, deviceGroups, groups); + } + else + { + groups.Add((Guid)currentGroup.PCode); + } + + var gs = await _dbContext.Queryable() + .Where(x => groups.Contains(x.UniqueValue)) + .Where(x => x.UniqueType == DeviceAssignmentTypeEnumType.Group) + .Where(x => x.AssignType == AssignTypeEnumType.User) + .Where(x => x.AssignValue == userNo) + .Select(x => x.UniqueValue) + .ToListAsync(); + + var lst = new List(); + foreach (var gcode in gs) + { + var devices = await _dbContext.Queryable() + .Where(x => x.GroupCode == gcode) + .Select(x => x.DeviceCode) + .ToListAsync(); + + } + } + + private void RecursionGetNext(DeviceGroupEntity current, List deviceGroups,List res) + { + var next = deviceGroups.Where(x => x.PCode == current.Code).ToList(); + foreach (var item in next) + { + RecursionGetNext(item, deviceGroups,res); + } + res.Add(current.Code); } }