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 baf65268..a5d68382 100644
--- a/Src/Dlhis.ScheduledTask/Job/SyncPersonJob.cs
+++ b/Src/Dlhis.ScheduledTask/Job/SyncPersonJob.cs
@@ -165,7 +165,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 @@
-
+