diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
index 804e52d1..9f525254 100644
--- a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
+++ b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
@@ -43,6 +43,33 @@ public class DevicesController : ControllerBase
return await _deviceTemplateService.GetPageAsync(request);
}
+
+ ///
+ /// 设备心跳
+ ///
+ ///
+ ///
+ [Obsolete("迁移到DeviceConnect")]
+ [HttpPost("heartbeat")]
+ [IgnoreTenant]
+ public async Task HeartbeatAsync(DeviceHeartbeatRequest request)
+ {
+ await _deviceConnectService.HeartbeatAsync(request);
+ }
+
+ ///
+ /// 设备注册
+ ///
+ ///
+ ///
+ [Obsolete("迁移到DeviceConnect")]
+ [HttpPost("resigter")]
+ [IgnoreTenant]
+ public async Task ResigterAsync(DeviceResigterRequest request)
+ {
+ return await _deviceConnectService.ResigterAsync(request);
+ }
+
///
/// 设备模板保存
///
@@ -78,18 +105,6 @@ public class DevicesController : ControllerBase
await _deviceService.SaveAsync(request);
}
- ///
- /// 设备注册
- ///
- ///
- ///
- [HttpPost("resigter")]
- [IgnoreTenant]
- public async Task ResigterAsync(DeviceResigterRequest request)
- {
- return await _deviceConnectService.ResigterAsync(request);
- }
-
///
/// 获取激活码
///
@@ -126,18 +141,6 @@ public class DevicesController : ControllerBase
await _deviceConnectService.SetResigterBusinessPlaceAsync(request);
}
- ///
- /// 设备心跳
- ///
- ///
- ///
- [HttpPost("heartbeat")]
- [IgnoreTenant]
- public async Task HeartbeatAsync(DeviceHeartbeatRequest request)
- {
- await _deviceConnectService.HeartbeatAsync(request);
- }
-
///
/// 检查设备是否存在
///
diff --git a/Src/Dlhis.Basic/Device/Request/DevicePageRequest.cs b/Src/Dlhis.Basic/Device/Request/DevicePageRequest.cs
index e8acbe7f..111f857c 100644
--- a/Src/Dlhis.Basic/Device/Request/DevicePageRequest.cs
+++ b/Src/Dlhis.Basic/Device/Request/DevicePageRequest.cs
@@ -16,4 +16,9 @@ public class DevicePageRequest : PageDto
///
[EnumDataType(typeof(DeviceTypeEnumType))]
public DeviceTypeEnumType? Type { get; set; }
+
+ ///
+ /// 启用状态
+ ///
+ public bool? Enable { get; set; }
}
diff --git a/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs b/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs
index 87777045..bf3045e1 100644
--- a/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs
+++ b/Src/Dlhis.Basic/Device/Services/IDeviceConnectService.cs
@@ -19,7 +19,6 @@ public interface IDeviceConnectService : IScopeDependency
///
Task> GetNotSetBusinessPlaceDevicesAsync();
-
///
/// 设置设备营业点
///
@@ -33,4 +32,11 @@ public interface IDeviceConnectService : IScopeDependency
///
///
Task HeartbeatAsync(DeviceHeartbeatRequest request);
+
+ ///
+ /// 尝试连接
+ ///
+ ///
+ ///
+ Task TryConnectAsync(DeviceConnectionTryRequest request);
}
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
index 810c377d..78ed4376 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceConnectService.cs
@@ -1,4 +1,7 @@
-using Dlhis.Basic.Device.Request;
+using System.Net;
+using System.Net.Sockets;
+using Dlhis.Basic.Device.Dtos;
+using Dlhis.Basic.Device.Request;
using Dlhis.Basic.Device.Response;
using Dlhis.Entity.Basic.Entity;
using Dlhis.Entity.Device.Entities;
@@ -6,6 +9,7 @@ using Dlhis.Entity.Device.Enums;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.SqlSugar.Services;
using Mapster;
+using Newtonsoft.Json;
namespace Dlhis.Basic.Device.Services.Implements;
@@ -95,6 +99,26 @@ public class DeviceConnectService : IDeviceConnectService
await _dbContext.UpdateAsync(registry);
}
+
+ public async Task TryConnectAsync(DeviceConnectionTryRequest request)
+ {
+ try
+ {
+ var ipInfo = request.ConnectionInfo.ToObject();
+
+ //超时时间
+ var CancellationTokenSource = new CancellationTokenSource(300);
+ await new TcpClient().ConnectAsync(IPAddress.Parse(ipInfo.IP), ipInfo.Port, CancellationTokenSource.Token);
+
+ return true;
+ }
+ catch (Exception)
+ {
+ return false;
+ }
+ }
+
+
//******************************************************** help methods **********************************************************
///
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs
index 468ed8eb..f71f6073 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs
@@ -33,6 +33,7 @@ public class DeviceService : IDeviceService
.LeftJoin((d, dt, dr) => d.UniqueNo == dr.DeviceUniqueNo)
.LeftJoin((d, dt, dr, bp) => dr.BusinessPlaceCode == bp.Code)
.WhereIF(request.Type.HasValue, (d, dt) => d.Type == request.Type)
+ .WhereIF(request.Enable.HasValue, (d, dt) => d.Enable == request.Enable)
.WhereIF(request.Search.IsPresent(), (d) => d.UniqueNo == request.Search || d.DeployPlace.Contains(request.Search))
.Select((d, dt, dr, bp) => new DevicePageResponse
{