st 设置设备类型

This commit is contained in:
yanghongwei 2024-06-10 17:55:56 +08:00
parent 5575215e79
commit 649c2be62d
7 changed files with 95 additions and 23 deletions

View File

@ -1725,6 +1725,13 @@
<param name="input"></param> <param name="input"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:langguanApi.Service.DeviceService.GetDeviceAndData(System.String)">
<summary>
取设备及数据
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Service.DeviceService.Exist(langguanApi.Model.DeviceAddDto)"> <member name="M:langguanApi.Service.DeviceService.Exist(langguanApi.Model.DeviceAddDto)">
<summary> <summary>
是否存在 是否存在
@ -2321,5 +2328,10 @@
暂存服务 暂存服务
</summary> </summary>
</member> </member>
<member name="P:ServiceLocator.Instance">
<summary>
服务容器
</summary>
</member>
</members> </members>
</doc> </doc>

View File

@ -91,5 +91,8 @@ app.Run();
/// </summary> /// </summary>
public static class ServiceLocator public static class ServiceLocator
{ {
/// <summary>
/// 服务容器
/// </summary>
public static IServiceProvider Instance { get; set; } public static IServiceProvider Instance { get; set; }
} }

View File

@ -1,6 +1,8 @@
using langguanApi.Extensions.AutoDI; using langguanApi.Extensions.AutoDI;
using langguanApi.Model; using langguanApi.Model;
using langguanApi.Model.Dto; using langguanApi.Model.Dto;
using langguanApi.Model.Entity;
using Npoi.Mapper;
using System.Linq.Expressions; using System.Linq.Expressions;
namespace langguanApi.Service namespace langguanApi.Service
@ -34,6 +36,24 @@ namespace langguanApi.Service
Expression<Func<Alert, bool>> exp = filter => filter.CreateDateTime >= DateTime.Now.AddDays(-7) && filter.IsDelete == false; Expression<Func<Alert, bool>> exp = filter => filter.CreateDateTime >= DateTime.Now.AddDays(-7) && filter.IsDelete == false;
return (await base.GetListWithExp(exp)).OrderByDescending(s => s.CreateDateTime); return (await base.GetListWithExp(exp)).OrderByDescending(s => s.CreateDateTime);
} }
public async Task<byte[]> ExportData(DateTime start, DateTime end)
{
Expression<Func<Alert, bool>> exp = filter => filter.CreateDateTime >= start
&& filter.CreateDateTime <= end
&& filter.IsDelete == false;
var list = await base.GetListWithExp(exp);
var mapper = new Mapper();
mapper.Map<Alert>("报警开始时间", s => s.CreateDateTime.ToString("yyyy-MM-dd HH:mm:ss"))
.Map<Alert>("设备名称", s => s.deviceName)
// .Map<Alert>("工序", s => s.)
.Map<Ledger>("新能源", s => s.NewCar ? "是" : "否")
.Map<Ledger>("燃油车", s => s.Emissions)
.Map<Ledger>("出厂日间 ", s => s.OutTime)
.Format<Alert>("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();
}
/// <summary> /// <summary>
/// 分页取数据 /// 分页取数据
/// </summary> /// </summary>

View File

@ -10,10 +10,8 @@ namespace langguanApi.Service
[ServiceInjection(InjectionType.Transient)] [ServiceInjection(InjectionType.Transient)]
public class DeviceService : BaseService<Device> public class DeviceService : BaseService<Device>
{ {
public Hj212Service _hj212Service; public DeviceService(IConfiguration config) : base(config, nameof(Device))
public DeviceService(IConfiguration config, Hj212Service hj212Service) : base(config, nameof(Device))
{ {
_hj212Service = hj212Service;
} }
/// <summary> /// <summary>
@ -31,6 +29,11 @@ namespace langguanApi.Service
await base.CreateAsync(entity); await base.CreateAsync(entity);
return new ApiResult { code = 0, msg = "" }; return new ApiResult { code = 0, msg = "" };
} }
/// <summary>
/// 取设备及数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<ApiResult> GetDeviceAndData(string id) public async Task<ApiResult> GetDeviceAndData(string id)
{ {
var entity = await base.GetAsync(id); var entity = await base.GetAsync(id);
@ -38,8 +41,23 @@ namespace langguanApi.Service
{ {
return new ApiResult { code = 1, msg = "设备不存在" }; return new ApiResult { code = 1, msg = "设备不存在" };
} }
var items = await _hj212Service.GetViewByDeviceMn(entity.deviceMN); var _service = ServiceLocator.Instance.GetService<Hj212Service>();
return new ApiResult { code = 0, msg = "", data = new { device = entity, items } }; 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 = "" } };
} }
/// <summary> /// <summary>

View File

@ -10,13 +10,15 @@ using langguanApi.Extensions.AutoDI;
namespace langguanApi.Service namespace langguanApi.Service
{ {
public class HJ212SocketServer public class HJ212SocketServer
{ {
private Hj212Service _hj212Service; private Hj212Service _hj212Service;
public HJ212SocketServer(Hj212Service hj212Service) private DeviceService _deviceService;
public HJ212SocketServer(Hj212Service hj212Service, DeviceService deviceService)
{ {
_hj212Service = hj212Service; _hj212Service = hj212Service;
_deviceService = deviceService;
} }
/// <summary> /// <summary>
/// 缓冲器 /// 缓冲器
@ -90,15 +92,35 @@ namespace langguanApi.Service
{ {
Console.WriteLine("收到自: " + session.RemoteIPEndPoint + ": " + rawText); Console.WriteLine("收到自: " + session.RemoteIPEndPoint + ": " + rawText);
HJ212_2017 hj = new HJ212_2017(); HJ212_2017 hj = new HJ212_2017();
// st 27 =voc,st=31 cems, st=32,tsp
if (hj.DecodeData(rawText)) if (hj.DecodeData(rawText))
{ {
var body = JsonConvert.SerializeObject(hj.CP); var body = JsonConvert.SerializeObject(hj.CP);
var entity = JsonConvert.DeserializeObject<Model.HJ212>(body); var entity = JsonConvert.DeserializeObject<Model.HJ212>(body);
entity.deviceMN = hj.DATA_HEAD["MN"]; 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) private void OnNetServer_ExceptionCaught(Exception ex)
{ {
Console.WriteLine("Error in NetServer" + ex); Console.WriteLine("Error in NetServer" + ex);

View File

@ -22,20 +22,17 @@ namespace langguanApi.Service
public async Task Add(Model.HJ212 hJ212, string deviceIp) public async Task Add(Model.HJ212 hJ212, string deviceIp)
{ {
////判断设备类型 tsp 会有经纬度数据 ////判断设备类型 tsp 会有经纬度数据
int deviceType = 1;//设备类型为1 =voc // int deviceType = 1;//设备类型为1 =voc
if (hJ212.lat > 0 && hJ212.lng > 0)
{ ////先判断当前设备是否存在
deviceType = 1; //await _deviceSerive.Add(new DeviceAddDto()
} //{
//先判断当前设备是否存在 // deviceMN = hJ212.deviceMN,
await _deviceSerive.Add(new DeviceAddDto() // Ip = deviceIp,
{ // lat = hJ212.lat,
deviceMN = hJ212.deviceMN, // lng = hJ212.lng,
Ip = deviceIp, // DeviceType = deviceType
lat = hJ212.lat, //});
lng = hJ212.lng,
DeviceType = deviceType
});
await base.CreateAsync(hJ212); await base.CreateAsync(hJ212);
} }
/// <summary> /// <summary>

View File

@ -24,7 +24,7 @@ namespace langguanApi.Service
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public void CreatTask() public async void CreatTask()
{ {
//5分钟执行一次 //5分钟执行一次