diff --git a/Src/Dlhis.Basic/Device/Request/DeviceSetResigterBusinessPlaceRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceSetResigterBusinessPlaceRequest.cs
index ef87f679..fb750ea1 100644
--- a/Src/Dlhis.Basic/Device/Request/DeviceSetResigterBusinessPlaceRequest.cs
+++ b/Src/Dlhis.Basic/Device/Request/DeviceSetResigterBusinessPlaceRequest.cs
@@ -10,6 +10,6 @@
///
/// 营业点
///
- public Guid BusinessPlaceCode { get; set; }
+ public Guid? BusinessPlaceCode { get; set; }
}
}
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
index 70cb0034..810c377d 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
@@ -3,9 +3,7 @@ using Dlhis.Basic.Device.Response;
using Dlhis.Entity.Basic.Entity;
using Dlhis.Entity.Device.Entities;
using Dlhis.Entity.Device.Enums;
-using Kurisu.AspNetCore.UnifyResultAndValidation;
using Kurisu.AspNetCore.Utils.Extensions;
-using Kurisu.SqlSugar.Attributes;
using Kurisu.SqlSugar.Services;
using Mapster;
@@ -20,7 +18,7 @@ public class DeviceConnectService : IDeviceConnectService
_dbContext = dbContext;
}
-
+
public async Task ResigterAsync(DeviceResigterRequest request)
{
var businessPlace = await _dbContext.Queryable().Where(x => x.CustomCode == request.BusinessCustomCode).FirstAsync();
@@ -55,7 +53,7 @@ public class DeviceConnectService : IDeviceConnectService
public async Task> GetNotSetBusinessPlaceDevicesAsync()
{
var devices = await _dbContext.Queryable().Where(x => x.Enable).ToListAsync();
- devices = devices.Where(x => x.Funcs.Any(item => item == DeviceFuncEnumType.Meal)).ToList();
+ devices = devices.Where(x => x.Type == DeviceTypeEnumType.Meal).ToList();
return devices.Adapt>();
}
@@ -63,26 +61,31 @@ public class DeviceConnectService : IDeviceConnectService
public async Task SetResigterBusinessPlaceAsync(DeviceSetResigterBusinessPlaceRequest request)
{
var device = await GetEnableDeviceAsync(request.UniqueNo);
- if (device.Funcs?.Any(x => x == DeviceFuncEnumType.Meal) != true)
- {
- throw new UserFriendlyException("当前设备无用餐功能,无法设置");
- }
+ (device.Type != DeviceTypeEnumType.Meal).ThrowIfTrue("非就餐类型设备,无法设置");
var registry = await _dbContext.Queryable().Where(x => x.DeviceUniqueNo == request.UniqueNo).FirstAsync();
registry.ThrowIfNull($"{request.UniqueNo}的设备注册信息不存在,无法设置营业点");
- var businessPlace = await _dbContext.Queryable().Where(x => x.Code == request.BusinessPlaceCode).FirstAsync();
- businessPlace.ThrowIfNull("营业点不存在,无法设置到设备注册信息中");
+ if (request.BusinessPlaceCode.HasValue)
+ {
+ var businessPlace = await _dbContext.Queryable().Where(x => x.Code == request.BusinessPlaceCode).FirstAsync();
+ businessPlace.ThrowIfNull("营业点不存在,无法设置到设备注册信息中");
- //更新营业点信息
- registry.BusinessPlaceCode = businessPlace.Code;
- registry.BusinessPlaceCustomCode = businessPlace.CustomCode;
+ //更新营业点信息
+ registry.BusinessPlaceCode = businessPlace.Code;
+ registry.BusinessPlaceCustomCode = businessPlace.CustomCode;
+ }
+ else
+ {
+ //更新营业点信息
+ registry.BusinessPlaceCode = null;
+ registry.BusinessPlaceCustomCode = null;
+ }
await _dbContext.UpdateAsync(registry);
- //todo 通知设备重新获取
}
-
+
public async Task HeartbeatAsync(DeviceHeartbeatRequest request)
{
var registry = await _dbContext.Queryable().Where(x => x.DeviceUniqueNo == request.UniqueNo).FirstAsync();
diff --git a/Src/Dlhis.Entity/Device/Enums/DeviceFuncEnumType.cs b/Src/Dlhis.Entity/Device/Enums/DeviceFuncEnumType.cs
index d8985ae7..b60112f4 100644
--- a/Src/Dlhis.Entity/Device/Enums/DeviceFuncEnumType.cs
+++ b/Src/Dlhis.Entity/Device/Enums/DeviceFuncEnumType.cs
@@ -8,23 +8,11 @@ namespace Dlhis.Entity.Device.Enums;
[Description("设备功能")]
public enum DeviceFuncEnumType
{
- ///
- /// 门禁
- ///
- [Description("门禁")]
- Door = 1,
-
- ///
- /// 就餐
- ///
- [Description("就餐")]
- Meal,
-
///
/// 人脸
///
[Description("人脸")]
- Face,
+ Face = 1,
///
/// 刷卡
@@ -38,22 +26,9 @@ public enum DeviceFuncEnumType
[Description("二维码")]
QrCode,
-
///
/// 布控
///
[Description("布控")]
Control,
-
- ///
- /// 考勤
- ///
- [Description("考勤")]
- Attendance,
-
- ///
- /// 计划
- ///
- [Description("计划")]
- Schedule
}
diff --git a/Src/Dlhis.Sys/Identity/Controllers/TenantsController.cs b/Src/Dlhis.Sys/Identity/Controllers/TenantsController.cs
index 1a0a605d..f34fb7ab 100644
--- a/Src/Dlhis.Sys/Identity/Controllers/TenantsController.cs
+++ b/Src/Dlhis.Sys/Identity/Controllers/TenantsController.cs
@@ -61,6 +61,17 @@ public class TenantsController : ControllerBase
return await _tenantService.GetTenantByCode(code);
}
+ ///
+ /// 保存租户
+ ///
+ ///
+ ///
+ [HttpPost("save")]
+ public async Task SaveTenantAsync(TenantSaveRequest request)
+ {
+ await _tenantService.SaveTenantAsync(request);
+ }
+
///
/// 获取我的管理租户
///
diff --git a/Src/Dlhis.Sys/Identity/Request/TenantSaveRequest.cs b/Src/Dlhis.Sys/Identity/Request/TenantSaveRequest.cs
new file mode 100644
index 00000000..a065d331
--- /dev/null
+++ b/Src/Dlhis.Sys/Identity/Request/TenantSaveRequest.cs
@@ -0,0 +1,20 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Dlhis.Sys.Identity.Request;
+
+public class TenantSaveRequest
+{
+ public int? Id { get; set; }
+
+ ///
+ /// 代码
+ ///
+ [Required(ErrorMessage = "基地/租户代码不能为空")]
+ public string Code { get; set; }
+
+ ///
+ /// 名称
+ ///
+ [Required(ErrorMessage = "基地/租户名称不能为空")]
+ public string Name { get; set; }
+}
diff --git a/Src/Dlhis.Sys/Identity/Services/ITenantService.cs b/Src/Dlhis.Sys/Identity/Services/ITenantService.cs
index c8a144fb..4c58ad63 100644
--- a/Src/Dlhis.Sys/Identity/Services/ITenantService.cs
+++ b/Src/Dlhis.Sys/Identity/Services/ITenantService.cs
@@ -13,4 +13,6 @@ public interface ITenantService : IScopeDependency
Task GetTenantByCode(string code);
Task> GetMyTenantsAsync();
+
+ Task SaveTenantAsync(TenantSaveRequest request);
}
diff --git a/Src/Dlhis.Sys/Identity/Services/Implements/TenantService.cs b/Src/Dlhis.Sys/Identity/Services/Implements/TenantService.cs
index 441bd744..7dfbbff8 100644
--- a/Src/Dlhis.Sys/Identity/Services/Implements/TenantService.cs
+++ b/Src/Dlhis.Sys/Identity/Services/Implements/TenantService.cs
@@ -45,6 +45,29 @@ public class TenantService : ITenantService
.FirstAsync();
}
+
+ public async Task SaveTenantAsync(TenantSaveRequest request)
+ {
+ if (!request.Id.HasValue)
+ {
+ await _dbContext.InsertAsync(new TenantEntity
+ {
+ Code = request.Code,
+ Name = request.Name,
+ });
+ }
+ else
+ {
+ var entity = await _dbContext.Queryable().FirstAsync(x => x.Id == request.Id);
+ entity.ThrowIfNull("基地/租户信息不存在");
+
+ entity.Code = request.Code;
+ entity.Name = request.Name;
+
+ await _dbContext.UpdateAsync(entity);
+ }
+ }
+
public async Task> GetMyTenantsAsync()
{
var userId = _currentUser.GetIntSubjectId();