From 8b93e28a66f029293f10438b1ca2cad1c2d7fbf4 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 23 Jun 2025 17:34:32 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=85=B6=E4=BB=96=E7=B1=BB=E5=9E=8B=E4=BA=BA=E5=91=98=E6=95=B0?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevicePermissionsController.cs | 12 +++++++++++ .../Services/IDevicePermissionService.cs | 2 ++ .../Implements/DevicePermissionService.cs | 20 +++++++++++++++++++ 3 files changed, 34 insertions(+) diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs index 2cced022..027a0cc9 100644 --- a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs +++ b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs @@ -114,6 +114,18 @@ public class DevicePermissionsController : ControllerBase return await _devicePermissionService.GetDeviceUserCodesAsync(deviceUniqueNo); } + /// + /// 设备其他类型人员 + /// + /// + /// + [HttpGet("gainfo/others")] + [IgnoreTenant] + public async Task ExternalAndManuallyUserNoAsync(string deviceUniqueNo) + { + return await _devicePermissionService.ExternalAndManuallyUserNoAsync(deviceUniqueNo); + } + [HttpGet("userPermissionCodes")] [IgnoreTenant] public async Task> GetAssignDeviceCodesAsync(string userCode) diff --git a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs index 03dc4616..9ce9f580 100644 --- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs @@ -53,4 +53,6 @@ public interface IDevicePermissionService : IScopeDependency Task> GetDeviceUserCodesAsync(string deviceUniqueNo); + + Task ExternalAndManuallyUserNoAsync(string deviceUniqueNo); } \ 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 0d632232..d6fabd88 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -468,6 +468,26 @@ public class DevicePermissionService : IDevicePermissionService return ids.Distinct().ToList(); } + public async Task ExternalAndManuallyUserNoAsync(string deviceUniqueNo) + { + var device = await _dbContext.Queryable().SingleAsync(x => x.UniqueNo == deviceUniqueNo); + device.ThrowIfNull("设备不存在"); + + var devicePermissionManuallyUserNoCount = await _dbContext.Queryable() + .Where(x => SqlFunc.Subqueryable() + .Where(p => p.DeviceCode == device.Code) + .Where(p => p.UserNo == x.No).Any()) + .CountAsync(); + + var userNos = await GetDeviceUserNosFromVisitorAsync(device.Code); + + return new + { + ManuallyUserCount = devicePermissionManuallyUserNoCount, + VisitorCount = userNos.Count + }; + } + public async Task> GetDeviceUserCodesAsync(string deviceUniqueNo) { var device = await _dbContext.Queryable().SingleAsync(x => x.UniqueNo == deviceUniqueNo);