diff --git a/langguanApi.xml b/langguanApi.xml
index 891a57d..e227f9c 100644
--- a/langguanApi.xml
+++ b/langguanApi.xml
@@ -1725,6 +1725,13 @@
+
+
+ 取设备及数据
+
+
+
+
是否存在
@@ -2321,5 +2328,10 @@
暂存服务
+
+
+ 服务容器
+
+
diff --git a/langguanApi/Program.cs b/langguanApi/Program.cs
index bf25e16..9a14adf 100644
--- a/langguanApi/Program.cs
+++ b/langguanApi/Program.cs
@@ -91,5 +91,8 @@ app.Run();
///
public static class ServiceLocator
{
+ ///
+ ///
+ ///
public static IServiceProvider Instance { get; set; }
}
diff --git a/langguanApi/Service/AlertService.cs b/langguanApi/Service/AlertService.cs
index 2a522ac..ce099b2 100644
--- a/langguanApi/Service/AlertService.cs
+++ b/langguanApi/Service/AlertService.cs
@@ -1,6 +1,8 @@
using langguanApi.Extensions.AutoDI;
using langguanApi.Model;
using langguanApi.Model.Dto;
+using langguanApi.Model.Entity;
+using Npoi.Mapper;
using System.Linq.Expressions;
namespace langguanApi.Service
@@ -34,6 +36,24 @@ namespace langguanApi.Service
Expression> exp = filter => filter.CreateDateTime >= DateTime.Now.AddDays(-7) && filter.IsDelete == false;
return (await base.GetListWithExp(exp)).OrderByDescending(s => s.CreateDateTime);
}
+ public async Task ExportData(DateTime start, DateTime end)
+ {
+ Expression> exp = filter => filter.CreateDateTime >= start
+ && filter.CreateDateTime <= end
+ && filter.IsDelete == false;
+ var list = await base.GetListWithExp(exp);
+ var mapper = new Mapper();
+ mapper.Map("报警开始时间", s => s.CreateDateTime.ToString("yyyy-MM-dd HH:mm:ss"))
+ .Map("设备名称", s => s.deviceName)
+ // .Map("工序", s => s.)
+ .Map("新能源", s => s.NewCar ? "是" : "否")
+ .Map("燃油车", s => s.Emissions)
+ .Map("出厂日间 ", s => s.OutTime)
+ .Format("yyyy-MM-dd HH:mm:ss", s => s.CreateDateTime);
+ MemoryStream stream = new MemoryStream();
+ mapper.Save(stream, list.ToList(), sheetName: "sheet1", leaveOpen: true);
+ return stream.ToArray();
+ }
///
/// 分页取数据
///
diff --git a/langguanApi/Service/DeviceService.cs b/langguanApi/Service/DeviceService.cs
index eeee61c..bca08d2 100644
--- a/langguanApi/Service/DeviceService.cs
+++ b/langguanApi/Service/DeviceService.cs
@@ -10,10 +10,8 @@ namespace langguanApi.Service
[ServiceInjection(InjectionType.Transient)]
public class DeviceService : BaseService
{
- public Hj212Service _hj212Service;
- public DeviceService(IConfiguration config, Hj212Service hj212Service) : base(config, nameof(Device))
+ public DeviceService(IConfiguration config) : base(config, nameof(Device))
{
- _hj212Service = hj212Service;
}
///
@@ -31,6 +29,11 @@ namespace langguanApi.Service
await base.CreateAsync(entity);
return new ApiResult { code = 0, msg = "" };
}
+ ///
+ /// 取设备及数据
+ ///
+ ///
+ ///
public async Task GetDeviceAndData(string id)
{
var entity = await base.GetAsync(id);
@@ -38,8 +41,23 @@ namespace langguanApi.Service
{
return new ApiResult { code = 1, msg = "设备不存在" };
}
- var items = await _hj212Service.GetViewByDeviceMn(entity.deviceMN);
- return new ApiResult { code = 0, msg = "", data = new { device = entity, items } };
+ var _service = ServiceLocator.Instance.GetService();
+ if (_service == null)
+ {
+ return new ApiResult
+ {
+ code = 0,
+ msg = "",
+ data = new
+ {
+ device = entity,
+ items = await _service.GetViewByDeviceMn(entity.deviceMN)
+ }
+ };
+
+ }
+ // var items = await _hj212Service.GetViewByDeviceMn(entity.deviceMN);
+ return new ApiResult { code = 0, msg = "", data = new { device = entity, items = "" } };
}
///
diff --git a/langguanApi/Service/HJ212SocketServer.cs b/langguanApi/Service/HJ212SocketServer.cs
index 98834b6..049d6fa 100644
--- a/langguanApi/Service/HJ212SocketServer.cs
+++ b/langguanApi/Service/HJ212SocketServer.cs
@@ -10,13 +10,15 @@ using langguanApi.Extensions.AutoDI;
namespace langguanApi.Service
{
-
+
public class HJ212SocketServer
{
private Hj212Service _hj212Service;
- public HJ212SocketServer(Hj212Service hj212Service)
+ private DeviceService _deviceService;
+ public HJ212SocketServer(Hj212Service hj212Service, DeviceService deviceService)
{
_hj212Service = hj212Service;
+ _deviceService = deviceService;
}
///
/// 缓冲器
@@ -90,15 +92,35 @@ namespace langguanApi.Service
{
Console.WriteLine("收到自: " + session.RemoteIPEndPoint + ": " + rawText);
HJ212_2017 hj = new HJ212_2017();
+ // st 27 =voc,st=31 cems, st=32,tsp
if (hj.DecodeData(rawText))
{
var body = JsonConvert.SerializeObject(hj.CP);
var entity = JsonConvert.DeserializeObject(body);
entity.deviceMN = hj.DATA_HEAD["MN"];
+ await _deviceService.Add(new DeviceAddDto
+ {
+ deviceMN = hj.DATA_HEAD["MN"],
+ DeviceType = SetDeviceType(hj.DATA_HEAD["ST"]),
+ Ip= session.RemoteIPEndPoint.ToString(),
+ });
//校验通过,开始入库
- await _hj212Service.Add(entity, session.RemoteIPEndPoint.ToString());
+ await _hj212Service.Add(entity, session.RemoteIPEndPoint.ToString());
}
}
+ private int SetDeviceType(string st)
+ {
+ //st 27 =voc,st=31 cems, st=32,tsp
+ //1 voc,2 cems,3,tsp,4 video
+ switch (st)
+ {
+ case "27": return 1;
+ case "31": return 2;
+ case "32": return 3;
+ case "33": return 4;
+ }
+ return 0;
+ }
private void OnNetServer_ExceptionCaught(Exception ex)
{
Console.WriteLine("Error in NetServer" + ex);
diff --git a/langguanApi/Service/Hj212Service.cs b/langguanApi/Service/Hj212Service.cs
index ef2906b..80cb919 100644
--- a/langguanApi/Service/Hj212Service.cs
+++ b/langguanApi/Service/Hj212Service.cs
@@ -22,20 +22,17 @@ namespace langguanApi.Service
public async Task Add(Model.HJ212 hJ212, string deviceIp)
{
////判断设备类型 tsp 会有经纬度数据
- int deviceType = 1;//设备类型为1 =voc
- if (hJ212.lat > 0 && hJ212.lng > 0)
- {
- deviceType = 1;
- }
- //先判断当前设备是否存在
- await _deviceSerive.Add(new DeviceAddDto()
- {
- deviceMN = hJ212.deviceMN,
- Ip = deviceIp,
- lat = hJ212.lat,
- lng = hJ212.lng,
- DeviceType = deviceType
- });
+ // int deviceType = 1;//设备类型为1 =voc
+
+ ////先判断当前设备是否存在
+ //await _deviceSerive.Add(new DeviceAddDto()
+ //{
+ // deviceMN = hJ212.deviceMN,
+ // Ip = deviceIp,
+ // lat = hJ212.lat,
+ // lng = hJ212.lng,
+ // DeviceType = deviceType
+ //});
await base.CreateAsync(hJ212);
}
///
diff --git a/langguanApi/Service/PingService.cs b/langguanApi/Service/PingService.cs
index 20f9d0a..da80029 100644
--- a/langguanApi/Service/PingService.cs
+++ b/langguanApi/Service/PingService.cs
@@ -24,7 +24,7 @@ namespace langguanApi.Service
///
///
///
- public void CreatTask()
+ public async void CreatTask()
{
//5分钟执行一次