From 76558e2f0a2b2055e16de9b3583af5241e09d7e5 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Wed, 10 Jan 2024 11:06:15 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E5=8D=87=E7=BA=A7=E7=89=88=E6=9C=AC,=20?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/DeviceGroupsController.cs | 13 ++- .../DevicePermissionsController.cs | 41 ++++++++++ ...eviceRequest.cs => DeviceAssignRequest.cs} | 9 +- .../Request/DeviceGetAssignmentsRequest.cs | 24 ++++++ .../Device/Request/DeviceGroupSaveRequest.cs | 5 ++ .../Request/DevicePermissionSaveReuqest.cs | 25 ++++++ .../Response/DeviceGroupPageResponse.cs | 7 +- .../Response/DeviceGroupTreeResponse.cs | 24 ++++++ .../Device/Services/IDeviceGroupService.cs | 4 +- .../Services/IDevicePermissionService.cs | 16 ++++ .../Services/Implements/DeviceGroupService.cs | 82 ++++++++++++++++++- .../Implements/DevicePermissionService.cs | 50 +++++++++++ Src/Dlhis.Basic/Dlhis.Basic.csproj | 2 +- Src/Dlhis.Canteen/Dlhis.Canteen.csproj | 2 +- Src/Dlhis.Common/Dlhis.Common.csproj | 2 +- .../Basic/Entity/BasicTypeEntity.cs | 3 +- .../Entity/CanteenBusinessPlaceEntity.cs | 1 + .../Entity/CanteenBusinessShiftEntity.cs | 1 + .../Basic/Entity/CanteenSettingEntity.cs | 1 + .../Basic/Entity/CanteenUserEntity.cs | 1 + .../Basic/Entity/DepartmentEntity.cs | 3 +- Src/Dlhis.Entity/Basic/Entity/DeviceEntity.cs | 1 + .../Basic/Entity/DeviceTemplateEntity.cs | 1 + Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs | 1 + Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs | 3 +- .../Basic/Entity/ZHRF_SYN_01Entity.cs | 1 + .../Basic/Entity/ZHRF_SYN_02Entity.cs | 1 + .../Canteen/Entities/BalanceRecordEntity.cs | 1 + .../Canteen/Entities/CanteenOrderEntity.cs | 1 + .../Device/Entities/DeviceGroupEntity.cs | 8 ++ .../Entities/DeviceGroupRelationshipEntity.cs | 1 + .../Device/Entities/DeviceRegistryEntity.cs | 1 + .../Device/Entities/DeviceTask.cs | 3 +- Src/Dlhis.Entity/Dlhis.Entity.csproj | 2 +- .../Sys/Entities/DevicePermissionEntity.cs | 26 +++--- Src/Dlhis.Entity/Sys/Entities/MenuEntity.cs | 1 + .../Sys/Entities/MenuPermissionEntity.cs | 1 + Src/Dlhis.Entity/Sys/Entities/TenantEntity.cs | 22 +++++ ...ype.cs => DeviceAssignmentTypeEnumType.cs} | 18 ++-- .../Dlhis.ScheduledTask.csproj | 3 +- Src/Dlhis.ScheduledTask/Job/SyncPersonJob.cs | 2 +- Src/Dlhis.Sys/Dlhis.Sys.csproj | 3 +- Src/Dlhis.User/Dlhis.User.csproj | 2 +- 43 files changed, 376 insertions(+), 43 deletions(-) create mode 100644 Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs rename Src/Dlhis.Basic/Device/Request/{AssignDeviceRequest.cs => DeviceAssignRequest.cs} (64%) create mode 100644 Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs create mode 100644 Src/Dlhis.Basic/Device/Request/DevicePermissionSaveReuqest.cs create mode 100644 Src/Dlhis.Basic/Device/Response/DeviceGroupTreeResponse.cs create mode 100644 Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs create mode 100644 Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs create mode 100644 Src/Dlhis.Entity/Sys/Entities/TenantEntity.cs rename Src/Dlhis.Entity/Sys/Enums/{DevicePermissionTypeEnumType.cs => DeviceAssignmentTypeEnumType.cs} (61%) diff --git a/Src/Dlhis.Basic/Device/Controllers/DeviceGroupsController.cs b/Src/Dlhis.Basic/Device/Controllers/DeviceGroupsController.cs index 7b50920b..e0274c09 100644 --- a/Src/Dlhis.Basic/Device/Controllers/DeviceGroupsController.cs +++ b/Src/Dlhis.Basic/Device/Controllers/DeviceGroupsController.cs @@ -33,6 +33,17 @@ public class DeviceGroupsController : ControllerBase return await _deviceGroupService.GetPageAsync(request); } + /// + /// 获取设备分组树 + /// + /// 是否显示设备 + /// + [HttpGet("tree")] + public async Task> GetTreeAsync(bool showDevices) + { + return await _deviceGroupService.GetTreeAsync(showDevices); + } + /// /// 设备分组保存 /// @@ -61,7 +72,7 @@ public class DeviceGroupsController : ControllerBase /// /// [HttpPost("assign")] - public async Task AssignDevicesAsync(AssignDevicesRequest request) + public async Task AssignDevicesAsync(DeviceAssignRequest request) { await _deviceGroupService.AssignDevicesAsync(request); } diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs new file mode 100644 index 00000000..28e6321f --- /dev/null +++ b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs @@ -0,0 +1,41 @@ +using Dlhis.Basic.Device.Request; +using Dlhis.Basic.Device.Services; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Dlhis.Basic.Device.Controllers; + +[Authorize] +[Route("api/[controller]")] +[ApiController] +public class DevicePermissionsController : ControllerBase +{ + private readonly IDevicePermissionService _devicePermissionService; + + public DevicePermissionsController(IDevicePermissionService devicePermissionService) + { + _devicePermissionService = devicePermissionService; + } + + /// + /// 分配权限 + /// + /// + /// + [HttpPost("assign")] + public async Task AssignmentAsync(List requests) + { + await _devicePermissionService.AssignmentAsync(requests); + } + + /// + /// 当前类型的权限分配 + /// + /// + /// + [HttpGet("assignments")] + public async Task> GetAssignmentsAsync(DeviceGetAssignmentsRequest request) + { + return await _devicePermissionService.GetAssignmentsAsync(request.UserId, request.UniqueType, request.UniqueValue); + } +} diff --git a/Src/Dlhis.Basic/Device/Request/AssignDeviceRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceAssignRequest.cs similarity index 64% rename from Src/Dlhis.Basic/Device/Request/AssignDeviceRequest.cs rename to Src/Dlhis.Basic/Device/Request/DeviceAssignRequest.cs index ebe68812..3a6be64f 100644 --- a/Src/Dlhis.Basic/Device/Request/AssignDeviceRequest.cs +++ b/Src/Dlhis.Basic/Device/Request/DeviceAssignRequest.cs @@ -2,11 +2,16 @@ namespace Dlhis.Basic.Device.Request; -public class AssignDevicesRequest +public class DeviceAssignRequest { + /// + /// 设备组 + /// [Required(ErrorMessage = "设备组不能为空")] public Guid GroupCode { get; set; } - + /// + /// 设备code + /// public List DeviceCodes { get; set; } = new List(); } diff --git a/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs new file mode 100644 index 00000000..7394cda1 --- /dev/null +++ b/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs @@ -0,0 +1,24 @@ +using Dlhis.Entity.Sys.Enums; +using System.ComponentModel.DataAnnotations; + +namespace Dlhis.Basic.Device.Request; + +public class DeviceGetAssignmentsRequest +{ + /// + /// 用户档案号 + /// + [Required] + public string UserId { get; set; } + + /// + /// 权限分配类型 MenuAssignmentTypeEnumType + /// + [EnumDataType(typeof(DeviceAssignmentTypeEnumType))] + public DeviceAssignmentTypeEnumType UniqueType { get; set; } + + /// + /// 类型对应的唯一值(可为空) + /// + public Guid? UniqueValue { get; set; } +} diff --git a/Src/Dlhis.Basic/Device/Request/DeviceGroupSaveRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceGroupSaveRequest.cs index e8ee96a2..625b2134 100644 --- a/Src/Dlhis.Basic/Device/Request/DeviceGroupSaveRequest.cs +++ b/Src/Dlhis.Basic/Device/Request/DeviceGroupSaveRequest.cs @@ -6,6 +6,11 @@ public class DeviceGroupSaveRequest { public long? Id { get; set; } + /// + /// 上级分组 + /// + public Guid? PCode { get; set; } + /// /// 设备组名称 /// diff --git a/Src/Dlhis.Basic/Device/Request/DevicePermissionSaveReuqest.cs b/Src/Dlhis.Basic/Device/Request/DevicePermissionSaveReuqest.cs new file mode 100644 index 00000000..b3899be0 --- /dev/null +++ b/Src/Dlhis.Basic/Device/Request/DevicePermissionSaveReuqest.cs @@ -0,0 +1,25 @@ +using System.ComponentModel.DataAnnotations; +using Dlhis.Entity.Sys.Enums; + +namespace Dlhis.Basic.Device.Request; + +public class DevicePermissionSaveReuqest +{ + /// + /// 人员档案号 + /// + [Required(ErrorMessage = "人员档案号不能为空")] + public string UserId { get; set; } + + /// + /// 分配权限类型 DevicePermissionTypeEnumType + /// + [EnumDataType(typeof(DeviceAssignmentTypeEnumType), ErrorMessage = "枚举类型错误")] + public DeviceAssignmentTypeEnumType UniqueType { get; set; } + + /// + /// 分配权限值不能为空 + /// + [Required(ErrorMessage = "分配权限值不能为空")] + public Guid UniqueValue { get; set; } +} diff --git a/Src/Dlhis.Basic/Device/Response/DeviceGroupPageResponse.cs b/Src/Dlhis.Basic/Device/Response/DeviceGroupPageResponse.cs index 5b3873db..446557ed 100644 --- a/Src/Dlhis.Basic/Device/Response/DeviceGroupPageResponse.cs +++ b/Src/Dlhis.Basic/Device/Response/DeviceGroupPageResponse.cs @@ -1,9 +1,10 @@ -using SqlSugar; - -namespace Dlhis.Basic.Device.Response; +namespace Dlhis.Basic.Device.Response; public class DeviceGroupPageResponse { + /// + /// 设备分组code + /// public Guid Code { get; set; } /// diff --git a/Src/Dlhis.Basic/Device/Response/DeviceGroupTreeResponse.cs b/Src/Dlhis.Basic/Device/Response/DeviceGroupTreeResponse.cs new file mode 100644 index 00000000..6e9588ea --- /dev/null +++ b/Src/Dlhis.Basic/Device/Response/DeviceGroupTreeResponse.cs @@ -0,0 +1,24 @@ +namespace Dlhis.Basic.Device.Response; + +public class DeviceGroupTreeResponse +{ + /// + /// 上级分组code + /// + public Guid? PCode { get; set; } + + /// + /// 分组code/设备code + /// + public Guid Code { get; set; } + + /// + /// 分组名称/设备名称 + /// + public string Name { get; set; } + + /// + /// 下级 + /// + public List Next { get; set; } = new(); +} diff --git a/Src/Dlhis.Basic/Device/Services/IDeviceGroupService.cs b/Src/Dlhis.Basic/Device/Services/IDeviceGroupService.cs index 4ac107e6..e759376e 100644 --- a/Src/Dlhis.Basic/Device/Services/IDeviceGroupService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDeviceGroupService.cs @@ -8,9 +8,11 @@ public interface IDeviceGroupService : IScopeDependency { Task> GetPageAsync(DeviceGroupPageRequest request); + Task> GetTreeAsync(bool showDevices); + Task SaveAsync(DeviceGroupSaveRequest request); Task> GetDevicesAsync(Guid code); - Task AssignDevicesAsync(AssignDevicesRequest requests); + Task AssignDevicesAsync(DeviceAssignRequest requests); } diff --git a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs new file mode 100644 index 00000000..1b244029 --- /dev/null +++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs @@ -0,0 +1,16 @@ +using Dlhis.Basic.Device.Request; +using Dlhis.Entity.Sys.Enums; + +namespace Dlhis.Basic.Device.Services; + +public interface IDevicePermissionService : IScopeDependency +{ + /// + /// 保存设备权限 + /// + /// + /// + Task AssignmentAsync(List reuqests); + + Task> GetAssignmentsAsync(string userId, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue); +} diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceGroupService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceGroupService.cs index 09e6bfe0..37c34957 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceGroupService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceGroupService.cs @@ -27,8 +27,26 @@ public class DeviceGroupService : IDeviceGroupService .ToPageListAsync(request); } + public async Task> GetTreeAsync(bool showDevices) + { + var deviceGroups = await _dbContext.Queryable() + .Select() + .ToListAsync(); + + var tops = deviceGroups.Where(x => !x.PCode.HasValue).ToList(); + tops.ForEach(x => + { + RecursionGetNext(x, deviceGroups, showDevices); + }); + + return tops; + } + public async Task SaveAsync(DeviceGroupSaveRequest request) { + //检查父级节点 + await CheckPCodeExistsDeviceAsync(request.PCode); + if (!request.Id.HasValue) { var entity = request.Adapt(); @@ -52,11 +70,13 @@ public class DeviceGroupService : IDeviceGroupService await _dbContext.DeleteAsync(deviceGroup); } - public async Task AssignDevicesAsync(AssignDevicesRequest request) + public async Task AssignDevicesAsync(DeviceAssignRequest request) { var group = await _dbContext.Queryable().Where(x => x.Code == request.GroupCode).FirstAsync(); group.ThrowIfNull("设备组不存在"); + await CheckNoNextGroupAsync(group.Code); + if (!request.DeviceCodes.Any()) { //todo 删除时候判断权限是否分配 @@ -75,7 +95,6 @@ public class DeviceGroupService : IDeviceGroupService await _dbContext.InsertAsync(entities); } - //todo 生成下发任务 } @@ -90,4 +109,63 @@ public class DeviceGroupService : IDeviceGroupService .ToListAsync(); } + + /****************************************************** help methods *********************************************************/ + + /// + /// 检查 + /// + /// + /// + private async Task CheckPCodeExistsDeviceAsync(Guid? pCode) + { + if (pCode.HasValue) + { + var exists = await _dbContext.Queryable().Where(x => x.GroupCode == pCode).AnyAsync(); + exists.ThrowIfTrue("父级分组存在设备"); + } + } + + /// + /// + /// + /// + /// + private async Task CheckNoNextGroupAsync(Guid currentCode) + { + var exists = await _dbContext.Queryable().Where(x => x.PCode == currentCode).AnyAsync(); + exists.ThrowIfTrue("存在下级设备分组"); + } + + + /// + /// 递归获取树 + /// + /// + /// + /// + private void RecursionGetNext(DeviceGroupTreeResponse current, List departments, bool showDevices) + { + var next = departments.Where(x => x.PCode == current.Code).ToList(); + current.Next = next; + foreach (var item in next) + { + RecursionGetNext(item, departments, showDevices); + } + + //最后层级附加设备信息 + if (!current.Next.Any() && showDevices) + { + current.Next = _dbContext.Queryable() + .LeftJoin((relation, device) => relation.DeviceCode == device.Code) + .Where((relation, device) => relation.GroupCode == current.Code) + .Select((relation, device) => new DeviceGroupTreeResponse + { + Code = device.Code, + Name = device.UniqueNo, + PCode = relation.GroupCode + }) + .ToList(); + } + } } diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs new file mode 100644 index 00000000..40b2e442 --- /dev/null +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -0,0 +1,50 @@ +using Dlhis.Basic.Device.Request; +using Dlhis.Entity.Sys.Entities; +using Dlhis.Entity.Sys.Enums; +using Kurisu.SqlSugar.Services; + +namespace Dlhis.Basic.Device.Services.Implements; + +public class DevicePermissionService : IDevicePermissionService +{ + private readonly IDbContext _dbContext; + + public DevicePermissionService(IDbContext dbContext) + { + _dbContext = dbContext; + } + + public async Task AssignmentAsync(List reuqests) + { + foreach (var item in reuqests) + { + var permissions = await _dbContext.Queryable() + .Where(x => x.UniqueType == item.UniqueType) + .Where(x => x.UniqueValue == item.UniqueValue) + .Where(x => x.UserId == item.UserId) + .ToListAsync(); + + //todo 差异数据 + await _dbContext.Client.Deleteable(permissions).ExecuteCommandAsync(); + + await _dbContext.InsertAsync(new DevicePermissionEntity + { + UserId = item.UserId, + UniqueType = item.UniqueType, + UniqueValue = item.UniqueValue, + }); + } + } + + public async Task> GetAssignmentsAsync(string userId, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue) + { + var assignments = await _dbContext.Queryable() + .Where(x => x.UniqueType == uniqueType) + .WhereIF(uniqueValue.HasValue, x => x.UniqueValue == uniqueValue) + .Where(x => x.UserId == userId) + .Select(x => x.UniqueValue) + .ToListAsync(); + + return assignments; + } +} diff --git a/Src/Dlhis.Basic/Dlhis.Basic.csproj b/Src/Dlhis.Basic/Dlhis.Basic.csproj index 5b3b834d..d70ce740 100644 --- a/Src/Dlhis.Basic/Dlhis.Basic.csproj +++ b/Src/Dlhis.Basic/Dlhis.Basic.csproj @@ -17,7 +17,7 @@ - + diff --git a/Src/Dlhis.Canteen/Dlhis.Canteen.csproj b/Src/Dlhis.Canteen/Dlhis.Canteen.csproj index 0d652e95..309ba48b 100644 --- a/Src/Dlhis.Canteen/Dlhis.Canteen.csproj +++ b/Src/Dlhis.Canteen/Dlhis.Canteen.csproj @@ -35,7 +35,7 @@ - + diff --git a/Src/Dlhis.Common/Dlhis.Common.csproj b/Src/Dlhis.Common/Dlhis.Common.csproj index bba5cbec..df170770 100644 --- a/Src/Dlhis.Common/Dlhis.Common.csproj +++ b/Src/Dlhis.Common/Dlhis.Common.csproj @@ -25,7 +25,7 @@ - + diff --git a/Src/Dlhis.Entity/Basic/Entity/BasicTypeEntity.cs b/Src/Dlhis.Entity/Basic/Entity/BasicTypeEntity.cs index 21452fd9..e6173c9f 100644 --- a/Src/Dlhis.Entity/Basic/Entity/BasicTypeEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/BasicTypeEntity.cs @@ -1,4 +1,5 @@ -using SqlSugar; +using Kurisu.SqlSugar; +using SqlSugar; namespace Dlhis.Entity.Basic.Entity; diff --git a/Src/Dlhis.Entity/Basic/Entity/CanteenBusinessPlaceEntity.cs b/Src/Dlhis.Entity/Basic/Entity/CanteenBusinessPlaceEntity.cs index 11aae70f..8af87c99 100644 --- a/Src/Dlhis.Entity/Basic/Entity/CanteenBusinessPlaceEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/CanteenBusinessPlaceEntity.cs @@ -1,5 +1,6 @@ using Dlhis.Entity.Canteen.Enums; using Kurisu.Core.DataAccess.Entity; +using Kurisu.SqlSugar; using SqlSugar; using SqlSugar.DbConvert; diff --git a/Src/Dlhis.Entity/Basic/Entity/CanteenBusinessShiftEntity.cs b/Src/Dlhis.Entity/Basic/Entity/CanteenBusinessShiftEntity.cs index f39eca25..e70150ab 100644 --- a/Src/Dlhis.Entity/Basic/Entity/CanteenBusinessShiftEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/CanteenBusinessShiftEntity.cs @@ -1,4 +1,5 @@ using Kurisu.Core.DataAccess.Entity; +using Kurisu.SqlSugar; using SqlSugar; namespace Dlhis.Entity.Basic.Entity; diff --git a/Src/Dlhis.Entity/Basic/Entity/CanteenSettingEntity.cs b/Src/Dlhis.Entity/Basic/Entity/CanteenSettingEntity.cs index b5afcc2b..93a6c612 100644 --- a/Src/Dlhis.Entity/Basic/Entity/CanteenSettingEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/CanteenSettingEntity.cs @@ -1,5 +1,6 @@ using Dlhis.Entity.Canteen.Enums; using Kurisu.Core.DataAccess.Entity; +using Kurisu.SqlSugar; using SqlSugar; using SqlSugar.DbConvert; diff --git a/Src/Dlhis.Entity/Basic/Entity/CanteenUserEntity.cs b/Src/Dlhis.Entity/Basic/Entity/CanteenUserEntity.cs index 3b574c00..e227b0d6 100644 --- a/Src/Dlhis.Entity/Basic/Entity/CanteenUserEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/CanteenUserEntity.cs @@ -1,5 +1,6 @@ using Dlhis.Entity.Canteen.Enums; using Kurisu.Core.DataAccess.Entity; +using Kurisu.SqlSugar; using SqlSugar; using SqlSugar.DbConvert; diff --git a/Src/Dlhis.Entity/Basic/Entity/DepartmentEntity.cs b/Src/Dlhis.Entity/Basic/Entity/DepartmentEntity.cs index d81f7fa8..7e4018e0 100644 --- a/Src/Dlhis.Entity/Basic/Entity/DepartmentEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/DepartmentEntity.cs @@ -1,4 +1,5 @@ -using SqlSugar; +using Kurisu.SqlSugar; +using SqlSugar; namespace Dlhis.Entity.Basic.Entity; diff --git a/Src/Dlhis.Entity/Basic/Entity/DeviceEntity.cs b/Src/Dlhis.Entity/Basic/Entity/DeviceEntity.cs index 79281c0c..2b977cc8 100644 --- a/Src/Dlhis.Entity/Basic/Entity/DeviceEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/DeviceEntity.cs @@ -1,5 +1,6 @@ using Dlhis.Entity.Device.Enums; using Kurisu.Core.DataAccess.Entity; +using Kurisu.SqlSugar; using SqlSugar; namespace Dlhis.Entity.Basic.Entity; diff --git a/Src/Dlhis.Entity/Basic/Entity/DeviceTemplateEntity.cs b/Src/Dlhis.Entity/Basic/Entity/DeviceTemplateEntity.cs index 1d7d235b..8ea2e16b 100644 --- a/Src/Dlhis.Entity/Basic/Entity/DeviceTemplateEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/DeviceTemplateEntity.cs @@ -1,5 +1,6 @@ using System; using Kurisu.Core.DataAccess.Entity; +using Kurisu.SqlSugar; using SqlSugar; namespace Dlhis.Entity.Basic.Entity; diff --git a/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs b/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs index fcb01d70..db2c1efc 100644 --- a/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/GainfoEntity.cs @@ -1,4 +1,5 @@ using Dlhis.Entity.Basic.Enums; +using Kurisu.SqlSugar; using SqlSugar; using SqlSugar.DbConvert; diff --git a/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs b/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs index 5145e169..8d3f9925 100644 --- a/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs @@ -1,4 +1,5 @@ -using SqlSugar; +using Kurisu.SqlSugar; +using SqlSugar; namespace Dlhis.Entity.Basic.Entity; diff --git a/Src/Dlhis.Entity/Basic/Entity/ZHRF_SYN_01Entity.cs b/Src/Dlhis.Entity/Basic/Entity/ZHRF_SYN_01Entity.cs index f7db41cb..7d4f540c 100644 --- a/Src/Dlhis.Entity/Basic/Entity/ZHRF_SYN_01Entity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/ZHRF_SYN_01Entity.cs @@ -1,4 +1,5 @@ using Dlhis.Entity; +using Kurisu.SqlSugar; using SqlSugar; namespace Dlhis.ScheduledTask.Entities diff --git a/Src/Dlhis.Entity/Basic/Entity/ZHRF_SYN_02Entity.cs b/Src/Dlhis.Entity/Basic/Entity/ZHRF_SYN_02Entity.cs index 17841743..fb39d37d 100644 --- a/Src/Dlhis.Entity/Basic/Entity/ZHRF_SYN_02Entity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/ZHRF_SYN_02Entity.cs @@ -1,4 +1,5 @@ using Dlhis.Entity; +using Kurisu.SqlSugar; using SqlSugar; namespace Dlhis.ScheduledTask.Entities diff --git a/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs index 94c606e6..61daa06e 100644 --- a/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs +++ b/Src/Dlhis.Entity/Canteen/Entities/BalanceRecordEntity.cs @@ -1,5 +1,6 @@ using Dlhis.Entity.Canteen.Enums; using Kurisu.Core.DataAccess.Entity; +using Kurisu.SqlSugar; using SqlSugar; using SqlSugar.DbConvert; diff --git a/Src/Dlhis.Entity/Canteen/Entities/CanteenOrderEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/CanteenOrderEntity.cs index 8a192b6e..0e6cf988 100644 --- a/Src/Dlhis.Entity/Canteen/Entities/CanteenOrderEntity.cs +++ b/Src/Dlhis.Entity/Canteen/Entities/CanteenOrderEntity.cs @@ -40,4 +40,5 @@ public class CanteenOrderEntity : BalanceRecordEntity, ITenantId /// [SugarColumn(ColumnDescription = "处理结果")] public string Result { get; set; } + public string TenantId { get; set; } } \ No newline at end of file diff --git a/Src/Dlhis.Entity/Device/Entities/DeviceGroupEntity.cs b/Src/Dlhis.Entity/Device/Entities/DeviceGroupEntity.cs index f302cbd1..95e0dad6 100644 --- a/Src/Dlhis.Entity/Device/Entities/DeviceGroupEntity.cs +++ b/Src/Dlhis.Entity/Device/Entities/DeviceGroupEntity.cs @@ -1,4 +1,5 @@ using Kurisu.Core.DataAccess.Entity; +using Kurisu.SqlSugar; using SqlSugar; namespace Dlhis.Entity.Device.Entities; @@ -9,6 +10,12 @@ namespace Dlhis.Entity.Device.Entities; [SugarTable(TableName = "DeviceGroup", TableDescription = "设备组")] public class DeviceGroupEntity : SugarBaseEntity, ITenantId, ISoftDeleted { + /// + /// 上级设备组code + /// + [SugarColumn(ColumnDescription = "上级设备组code")] + public Guid? PCode { get; set; } + /// /// 设备组code /// @@ -21,6 +28,7 @@ public class DeviceGroupEntity : SugarBaseEntity, ITenantId, ISoftDeleted [SugarColumn(ColumnDescription = "设备组名称")] public string Name { get; set; } + public string TenantId { get; set; } diff --git a/Src/Dlhis.Entity/Device/Entities/DeviceGroupRelationshipEntity.cs b/Src/Dlhis.Entity/Device/Entities/DeviceGroupRelationshipEntity.cs index 848fc9ea..352c55c4 100644 --- a/Src/Dlhis.Entity/Device/Entities/DeviceGroupRelationshipEntity.cs +++ b/Src/Dlhis.Entity/Device/Entities/DeviceGroupRelationshipEntity.cs @@ -1,4 +1,5 @@ using Kurisu.Core.DataAccess.Entity; +using Kurisu.SqlSugar; using SqlSugar; namespace Dlhis.Entity.Device.Entities; diff --git a/Src/Dlhis.Entity/Device/Entities/DeviceRegistryEntity.cs b/Src/Dlhis.Entity/Device/Entities/DeviceRegistryEntity.cs index 3ba6c6b9..aa88393e 100644 --- a/Src/Dlhis.Entity/Device/Entities/DeviceRegistryEntity.cs +++ b/Src/Dlhis.Entity/Device/Entities/DeviceRegistryEntity.cs @@ -1,4 +1,5 @@ using Kurisu.Core.DataAccess.Entity; +using Kurisu.SqlSugar; using SqlSugar; namespace Dlhis.Entity.Device.Entities; diff --git a/Src/Dlhis.Entity/Device/Entities/DeviceTask.cs b/Src/Dlhis.Entity/Device/Entities/DeviceTask.cs index e472e9ae..0ed03883 100644 --- a/Src/Dlhis.Entity/Device/Entities/DeviceTask.cs +++ b/Src/Dlhis.Entity/Device/Entities/DeviceTask.cs @@ -1,4 +1,5 @@ -using SqlSugar; +using Kurisu.SqlSugar; +using SqlSugar; namespace Dlhis.Entity.Device.Entities; diff --git a/Src/Dlhis.Entity/Dlhis.Entity.csproj b/Src/Dlhis.Entity/Dlhis.Entity.csproj index 8fd6be3f..beec1bdc 100644 --- a/Src/Dlhis.Entity/Dlhis.Entity.csproj +++ b/Src/Dlhis.Entity/Dlhis.Entity.csproj @@ -11,7 +11,7 @@ - + diff --git a/Src/Dlhis.Entity/Sys/Entities/DevicePermissionEntity.cs b/Src/Dlhis.Entity/Sys/Entities/DevicePermissionEntity.cs index 66c2eff9..185c1746 100644 --- a/Src/Dlhis.Entity/Sys/Entities/DevicePermissionEntity.cs +++ b/Src/Dlhis.Entity/Sys/Entities/DevicePermissionEntity.cs @@ -1,6 +1,8 @@ using Dlhis.Entity.Sys.Enums; using Kurisu.Core.DataAccess.Entity; +using Kurisu.SqlSugar; using SqlSugar; +using SqlSugar.DbConvert; namespace Dlhis.Entity.Sys.Entities; @@ -8,25 +10,27 @@ namespace Dlhis.Entity.Sys.Entities; /// 设备权限 /// [SugarTable(TableName = "DevicePermission", TableDescription = "设备权限")] -public class DevicePermissionEntity : ITenantId +public class DevicePermissionEntity : SugarBaseEntity, ITenantId, ISoftDeleted { + /// + /// 人员档案 + /// + [SugarColumn(ColumnDescription = "人员档案")] + public string UserId { get; set; } + /// /// 设备权限类型 /// - [SugarColumn(ColumnDataType = "varchar(50)", ColumnDescription = "设备权限类型", SqlParameterDbType = typeof(DevicePermissionTypeEnumType))] - public DevicePermissionTypeEnumType UniqueType { get; set; } + [SugarColumn(ColumnDataType = "varchar(50)", ColumnDescription = "设备权限类型", SqlParameterDbType = typeof(EnumToStringConvert))] + public DeviceAssignmentTypeEnumType UniqueType { get; set; } /// /// 类型值 /// - [SugarColumn(ColumnDataType = "varchar(50)", ColumnDescription = "类型值")] - public string UniqueValue { get; set; } - - /// - /// 设备code - /// - [SugarColumn(ColumnDataType = "varchar(50)", ColumnDescription = "设备code")] - public string Code { get; set; } + [SugarColumn(ColumnDescription = "类型值")] + public Guid UniqueValue { get; set; } public string TenantId { get; set; } + + public bool IsDeleted { get; set; } } \ No newline at end of file diff --git a/Src/Dlhis.Entity/Sys/Entities/MenuEntity.cs b/Src/Dlhis.Entity/Sys/Entities/MenuEntity.cs index a0946177..b36858da 100644 --- a/Src/Dlhis.Entity/Sys/Entities/MenuEntity.cs +++ b/Src/Dlhis.Entity/Sys/Entities/MenuEntity.cs @@ -1,4 +1,5 @@ using Dlhis.Entity.Sys.Enums; +using Kurisu.SqlSugar; using SqlSugar; using SqlSugar.DbConvert; diff --git a/Src/Dlhis.Entity/Sys/Entities/MenuPermissionEntity.cs b/Src/Dlhis.Entity/Sys/Entities/MenuPermissionEntity.cs index e177ad52..33133cf2 100644 --- a/Src/Dlhis.Entity/Sys/Entities/MenuPermissionEntity.cs +++ b/Src/Dlhis.Entity/Sys/Entities/MenuPermissionEntity.cs @@ -1,5 +1,6 @@ using Dlhis.Entity.Sys.Enums; using Kurisu.Core.DataAccess.Entity; +using Kurisu.SqlSugar; using SqlSugar; using SqlSugar.DbConvert; diff --git a/Src/Dlhis.Entity/Sys/Entities/TenantEntity.cs b/Src/Dlhis.Entity/Sys/Entities/TenantEntity.cs new file mode 100644 index 00000000..7e7e13b3 --- /dev/null +++ b/Src/Dlhis.Entity/Sys/Entities/TenantEntity.cs @@ -0,0 +1,22 @@ +using SqlSugar; + +namespace Dlhis.Entity.Sys.Entities; + +/// +/// 租户 +/// +[SugarTable(TableName = "Tenants")] +public class TenantEntity +{ + public int Id { get; set; } + + /// + /// 基地code + /// + public string Code { get; set; } + + /// + /// 租户名称 + /// + public string Name { get; set; } +} diff --git a/Src/Dlhis.Entity/Sys/Enums/DevicePermissionTypeEnumType.cs b/Src/Dlhis.Entity/Sys/Enums/DeviceAssignmentTypeEnumType.cs similarity index 61% rename from Src/Dlhis.Entity/Sys/Enums/DevicePermissionTypeEnumType.cs rename to Src/Dlhis.Entity/Sys/Enums/DeviceAssignmentTypeEnumType.cs index c956942b..d5614214 100644 --- a/Src/Dlhis.Entity/Sys/Enums/DevicePermissionTypeEnumType.cs +++ b/Src/Dlhis.Entity/Sys/Enums/DeviceAssignmentTypeEnumType.cs @@ -5,18 +5,18 @@ namespace Dlhis.Entity.Sys.Enums; /// /// 设备权限类型 /// -[Description("设备权限类型")] -public enum DevicePermissionTypeEnumType +[Description("设备分配权限类型")] +public enum DeviceAssignmentTypeEnumType { + /// + /// 设备 + /// + [Description("设备")] + Device = 1, + /// /// 设备组 /// [Description("设备组")] - Group = 1, - - /// - /// 人员 - /// - [Description("人员")] - Person = 2 + Group = 2 } diff --git a/Src/Dlhis.ScheduledTask/Dlhis.ScheduledTask.csproj b/Src/Dlhis.ScheduledTask/Dlhis.ScheduledTask.csproj index 7893c27b..7a7f1fcc 100644 --- a/Src/Dlhis.ScheduledTask/Dlhis.ScheduledTask.csproj +++ b/Src/Dlhis.ScheduledTask/Dlhis.ScheduledTask.csproj @@ -20,8 +20,7 @@ - - + diff --git a/Src/Dlhis.ScheduledTask/Job/SyncPersonJob.cs b/Src/Dlhis.ScheduledTask/Job/SyncPersonJob.cs index 9bc903a9..01d35165 100644 --- a/Src/Dlhis.ScheduledTask/Job/SyncPersonJob.cs +++ b/Src/Dlhis.ScheduledTask/Job/SyncPersonJob.cs @@ -164,7 +164,7 @@ namespace Dlhis.ScheduledTask.Job { SapNo = item.ano, No = item.guestno, - //GType = item.@class, + Type = item.@class, Name = item.gname, Code = item.ename, CountryNo = item.country, diff --git a/Src/Dlhis.Sys/Dlhis.Sys.csproj b/Src/Dlhis.Sys/Dlhis.Sys.csproj index 763d284c..77c0be37 100644 --- a/Src/Dlhis.Sys/Dlhis.Sys.csproj +++ b/Src/Dlhis.Sys/Dlhis.Sys.csproj @@ -17,8 +17,7 @@ - - + diff --git a/Src/Dlhis.User/Dlhis.User.csproj b/Src/Dlhis.User/Dlhis.User.csproj index b15a865e..0ff70623 100644 --- a/Src/Dlhis.User/Dlhis.User.csproj +++ b/Src/Dlhis.User/Dlhis.User.csproj @@ -16,7 +16,7 @@ - +