diff --git a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs
index 9649c414..33b6db3e 100644
--- a/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs
+++ b/Src/Dlhis.Basic/BusinessPlace/Controllers/BusinessPlacesController.cs
@@ -74,6 +74,7 @@ public class BusinessPlacesController : ControllerBase
///
///
///
+ [AllowAnonymous]
[HttpGet("shifts")]
public async Task GetShiftsByPlaceCustomCodeHttpGetAsync([FromQuery] BusinessPlaceGetShiftsRequest request)
{
diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
index 6de59649..9ad46959 100644
--- a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
+++ b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
@@ -75,6 +75,7 @@ public class DevicesController : ControllerBase
///
///
///
+ [AllowAnonymous]
[HttpPost("resigter")]
public async Task ResigterAsync(DeviceResigterRequest request)
{
@@ -114,4 +115,14 @@ public class DevicesController : ControllerBase
{
await _deviceConnectService.HeartbeatAsync(request);
}
+
+ ///
+ /// 检查设备是否存在
+ ///
+ ///
+ [HttpGet("exists")]
+ public async Task CheckExistsAsync(string deviceUniqueNo)
+ {
+ return await _deviceService.CheckExistsAsync(deviceUniqueNo);
+ }
}
diff --git a/Src/Dlhis.Basic/Device/Services/IDeviceService.cs b/Src/Dlhis.Basic/Device/Services/IDeviceService.cs
index a9a84773..708b947a 100644
--- a/Src/Dlhis.Basic/Device/Services/IDeviceService.cs
+++ b/Src/Dlhis.Basic/Device/Services/IDeviceService.cs
@@ -9,4 +9,6 @@ public interface IDeviceService : IScopeDependency
Task> GetPageAsync(DevicePageRequest request);
Task SaveAsync(DeviceSaveRequest request);
+
+ Task CheckExistsAsync(string deviceUniqueNo);
}
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
index 96ffedbd..6a531783 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
@@ -35,9 +35,10 @@ public class DeviceConnectService : IDeviceConnectService
RegisterTime = DateTime.Now,
BusinessPlaceCode = businessPlace?.Code,
BusinessPlaceCustomCode = businessPlace?.CustomCode,
+ TenantId = device.TenantId,
};
- await _dbContext.InsertAsync(registry);
+ await _dbContext.InsertAsync(registry);
return "设备注册成功";
}
@@ -93,8 +94,8 @@ public class DeviceConnectService : IDeviceConnectService
private async Task GetEnableDeviceAsync(string uniqueNo)
{
var device = await _dbContext.Queryable()
- .Where(x => x.UniqueNo == uniqueNo)
- .FirstAsync();
+ .Where(x => x.UniqueNo == uniqueNo)
+ .FirstAsync();
device.ThrowIfNull($"未知的设备唯一编码{uniqueNo}");
device.Enable.ThrowIfFalse("设备尚未启用");
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs
index 27496c9f..73d60440 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs
@@ -1,9 +1,11 @@
using Dlhis.Basic.Device.Request;
using Dlhis.Basic.Device.Response;
using Dlhis.Entity.Basic.Entity;
+using Dlhis.Entity.Device.Entities;
using Kurisu.AspNetCore.UnifyResultAndValidation;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.Core.DataAccess.Dto;
+using Kurisu.SqlSugar.Attributes;
using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
using Mapster;
@@ -34,6 +36,7 @@ public class DeviceService : IDeviceService
return page;
}
+ [Transactional]
public async Task SaveAsync(DeviceSaveRequest request)
{
await CheckUniqueNoExistsAsync(request);
@@ -46,6 +49,21 @@ public class DeviceService : IDeviceService
entity.Code = Guid.NewGuid();
entity.Brand = template.Brand;
await _dbContext.InsertAsync(entity);
+ //同时保存注册信息
+ var registry = await _dbContext.Queryable().Where(x => x.DeviceUniqueNo == request.UniqueNo).FirstAsync();
+ if (registry == null)
+ {
+ registry = new DeviceRegistryEntity()
+ {
+ DeviceUniqueNo = request.UniqueNo,
+ LastHeartbeatTime = DateTime.Now,
+ RegisterTime = DateTime.Now,
+ BusinessPlaceCode = null,
+ BusinessPlaceCustomCode = null,
+ };
+
+ await _dbContext.InsertAsync(registry);
+ }
}
else
{
@@ -119,5 +137,13 @@ public class DeviceService : IDeviceService
exists.ThrowIfTrue("唯一号已经存在");
}
+
+ [IgnoreTenant]
+ public async Task CheckExistsAsync(string deviceUniqueNo)
+ {
+ return await _dbContext.Queryable()
+ .Where(x => x.UniqueNo == deviceUniqueNo && x.Enable)
+ .AnyAsync();
+ }
}
diff --git a/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs b/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs
index 22f0f6ce..56bc97b1 100644
--- a/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs
+++ b/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs
@@ -35,7 +35,7 @@ public class MealUserService : IMealUserService
//todo 获取档案信息
var gainfoEntity = await _gainfoStore.Queryable(GainfoStatusEnumType.Working)
- .Where(x => x.Guestno.ToString() == request.UserId)
+ .Where(x => x.No.ToString() == request.UserId)
.FirstAsync();
gainfoEntity.ThrowIfNull($"档案[{request.UserId}]不存在");
@@ -44,7 +44,7 @@ public class MealUserService : IMealUserService
{
UserId = request.UserId,
UserType = request.UserType,
- UserCode = gainfoEntity.Ename,
+ UserCode = gainfoEntity.Code,
CarNo = gainfoEntity.CarNo,
Balance = 0,
BalanceOfRecharge = 0,