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);
}
}