diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicesConnectController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicesConnectController.cs
index d7526017..e2b3bfe0 100644
--- a/Src/Dlhis.Basic/Device/Controllers/DevicesConnectController.cs
+++ b/Src/Dlhis.Basic/Device/Controllers/DevicesConnectController.cs
@@ -1,4 +1,5 @@
-using Dlhis.Basic.Device.Dtos;
+using System.ComponentModel.DataAnnotations;
+using Dlhis.Basic.Device.Dtos;
using Dlhis.Basic.Device.Request;
using Dlhis.Basic.Device.Services;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
@@ -66,4 +67,15 @@ public class DevicesConnectController : ControllerBase
{
return await _deviceConnectService.GetOnlineDeviceUniqueInfoAsync();
}
+
+ ///
+ /// 获取品牌设备
+ ///
+ ///
+ ///
+ [HttpGet("brand-devices")]
+ public async Task> GetDeviceUniqueInfoByBrandAsync([Required(ErrorMessage = "请明确设备品牌")] string brand)
+ {
+ return await _deviceConnectService.GetDeviceUniqueInfoByBrandAsync(brand);
+ }
}
\ No newline at end of file
diff --git a/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs b/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs
index e70b94f9..9e3304bc 100644
--- a/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs
+++ b/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs
@@ -46,4 +46,11 @@ public interface IDeviceConnectService : IScopeDependency
///
///
Task> GetOnlineDeviceUniqueInfoAsync();
+
+ ///
+ /// 根据品牌获取设备信息
+ ///
+ ///
+ ///
+ Task> GetDeviceUniqueInfoByBrandAsync(string brand);
}
\ No newline at end of file
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
index a797bf00..ba73cb91 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
@@ -115,7 +115,7 @@ public class DeviceConnectService : IDeviceConnectService
{
return await _dbContext.Queryable()
.LeftJoin((d, dr) => d.UniqueNo == dr.DeviceUniqueNo)
- .Where((d, dr) => d.Enable && SqlFunc.DateAdd(dr.LastHeartbeatTime, SqlFunc.IIF(d.HeartbeatInterval == 0, 30, 30), DateType.Second) > DateTime.Now)
+ .Where((d, dr) => d.Enable && (d.HeartbeatInterval == 0 || SqlFunc.DateAdd(dr.LastHeartbeatTime, d.HeartbeatInterval, DateType.Second) > DateTime.Now))
.Select((d, dr) => new DeviceUniqueWithConnectionInfoDto
{
DeviceUnique = d.UniqueNo,
@@ -123,6 +123,19 @@ public class DeviceConnectService : IDeviceConnectService
})
.ToListAsync();
}
+
+ public async Task> GetDeviceUniqueInfoByBrandAsync(string brand)
+ {
+ return await _dbContext.Queryable()
+ .LeftJoin((d, dt) => d.TemplateCode == dt.Code)
+ .Where((d, dt) => dt.Brand == brand)
+ .Select(d => new DeviceUniqueWithConnectionInfoDto
+ {
+ DeviceUnique = d.UniqueNo,
+ ConnectionInfo = d.ConnectionInfo
+ })
+ .ToListAsync();
+ }
//******************************************************** help methods **********************************************************