From 50a66a813dc4ee0ab52802e80930f8066a5ee72b Mon Sep 17 00:00:00 2001
From: Hinse <756681202@qq.com>
Date: Mon, 28 Mar 2022 17:19:48 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=B0=E7=9A=84wifi?=
=?UTF-8?q?=E4=B8=8A=E6=8A=A5=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ResultInfos/Dtos/ResultDto.cs | 32 +++-
.../ResultInfos/IResultService.cs | 6 +
.../ResultInfos/ResultService.cs | 65 ++++++-
.../ThirdApiInfo/Dtos/ThirdApiInfoDto.cs | 48 ++++++
.../ThirdApiInfo/IOpenService.cs | 6 +
.../ThirdApiInfo/OpenAppService.cs | 10 ++
Waste.Application/ThirdApiInfo/OpenService.cs | 162 +++++++++++++++++-
Waste.Application/Waste.Application.xml | 129 ++++++++++++++
Waste.Core/Waste.Core.csproj | 1 +
Waste.Web.Core/Startup.cs | 11 ++
10 files changed, 459 insertions(+), 11 deletions(-)
diff --git a/Waste.Application/ResultInfos/Dtos/ResultDto.cs b/Waste.Application/ResultInfos/Dtos/ResultDto.cs
index bbe8089..a260cc3 100644
--- a/Waste.Application/ResultInfos/Dtos/ResultDto.cs
+++ b/Waste.Application/ResultInfos/Dtos/ResultDto.cs
@@ -8,7 +8,7 @@ using Waste.Domain;
namespace Waste.Application
{
public class ResultList : W_Result
- {
+ {
///
/// 商户名称
///
@@ -191,4 +191,34 @@ namespace Waste.Application
///
public bool IsWeight { get; set; } = false;
}
+ ///
+ /// wifi模块上传的数据包体
+ ///
+ public class WifiPackage
+ {
+ ///
+ /// 设备机器码
+ ///
+ public string sn { get; set; }
+ ///
+ /// 桶大小
+ ///
+ public string size { get; set; } = "";
+ ///
+ /// 垃圾桶编号
+ ///
+ public string trashcode { get; set; } = "";
+ ///
+ /// 垃圾类别
+ ///
+ public string WasteType { get; set; } = "";
+ ///
+ /// 重量,KG
+ ///
+ public string Weight { get; set; } = "0";
+ ///
+ /// 是否为心跳包
+ ///
+ public bool IsHeart { get; set; } = false;
+ }
}
diff --git a/Waste.Application/ResultInfos/IResultService.cs b/Waste.Application/ResultInfos/IResultService.cs
index e28e157..0a2a862 100644
--- a/Waste.Application/ResultInfos/IResultService.cs
+++ b/Waste.Application/ResultInfos/IResultService.cs
@@ -30,5 +30,11 @@ namespace Waste.Application
///
///
Task InsertResultBy4GAsync(nMyPackage myPackage);
+ ///
+ /// wifi模块测量结果增加
+ ///
+ ///
+ ///
+ Task InsertResultByWifiAsync(WifiPackage data);
}
}
diff --git a/Waste.Application/ResultInfos/ResultService.cs b/Waste.Application/ResultInfos/ResultService.cs
index 549c636..2e4bc30 100644
--- a/Waste.Application/ResultInfos/ResultService.cs
+++ b/Waste.Application/ResultInfos/ResultService.cs
@@ -93,7 +93,7 @@ namespace Waste.Application
NetWeight = x.NetWeight,
Registration = x.Registration,
CreateTime = x.CreateTime,
- PostStatus= -1
+ PostStatus = -1
})
.Mapper((it, cache) =>
{
@@ -116,13 +116,13 @@ namespace Waste.Application
it.DeviceEcode = dev.Ecode;
it.DeviceAddress = dev.Address;
}
- var allres = cache.Get(list =>
- {
- var ids = list.Select(e => e.Id).ToList();
- return dbClient.Queryable().Where(e => ids.Contains(e.ResultId)).ToList();
- });
+ var allres = cache.Get(list =>
+ {
+ var ids = list.Select(e => e.Id).ToList();
+ return dbClient.Queryable().Where(e => ids.Contains(e.ResultId)).ToList();
+ });
var res = allres.FirstOrDefault(e => e.ResultId == it.Id);
- if(res != null)
+ if (res != null)
{
it.PostStatus = res.Status;
}
@@ -136,6 +136,53 @@ namespace Waste.Application
limit = param.limit
};
}
+ ///
+ /// wifi模块测量结果增加
+ ///
+ ///
+ ///
+ public async Task InsertResultByWifiAsync(WifiPackage data)
+ {
+ //查找设备
+ var device = await dbClient.Queryable().FirstAsync(x => data.sn == x.Ecode);
+ // _loggerService.AddLogger($"接收到的数据,参数:{myPackage.ToJson()}", 3);
+ if (device == null)
+ {
+ //记录日志
+ _loggerService.AddLogger($"设备未找到,参数:{data.ToJson()}", 3);
+ }
+ var devicedata = await dbClient.Queryable().FirstAsync(x => x.DeviceId == device.Id);
+ var resultid = IDGen.NextID();
+ DateTime time = DateTime.Now;
+ //检查设备是否为今天第一次上报
+ bool isfrist = false;
+ if (device.LastHeartTime.HasValue && device.LastHeartTime.Value.Date != DateTime.Now.Date)
+ {
+ isfrist = true;
+ }
+ //记录数据
+ await dbClient.Ado.UseStoredProcedure().ExecuteCommandAsync("Proc_InsertResult", new
+ {
+ deviceid = device.Id,
+ businessid = device.Businessid,
+ resultid = resultid,
+ imei = devicedata.IMSI,
+ iccid = devicedata.ICCID,
+ imsi = devicedata.IMSI,
+ time = time,
+ latitude = "",
+ longitude = "",
+ sign = "",
+ city = "",
+ area = data.trashcode,
+ wastetype = data.WasteType,
+ weigth = data.Weight,
+ isheart = data.IsHeart,
+ tare = device.Tare,
+ isfrist = isfrist
+ });
+
+ }
///
/// 新的4G模块测量结果增加
@@ -207,7 +254,7 @@ namespace Waste.Application
{
//查找设备
var device = await dbClient.Queryable().FirstAsync(x => myPackage.IMEI == x.Ecode);
- // _loggerService.AddLogger($"接收到的数据,参数:{myPackage.ToJson()}", 3);
+ // _loggerService.AddLogger($"接收到的数据,参数:{myPackage.ToJson()}", 3);
if (device == null)
{
//记录日志
@@ -255,7 +302,7 @@ namespace Waste.Application
myPackage.Area = Convert.ToInt32(typeHex, 16).ToString();
}
//000F000002.16进制
- // var areaHex = Convert.ToHexString(areaBytes);
+ // var areaHex = Convert.ToHexString(areaBytes);
}
//记录数据
diff --git a/Waste.Application/ThirdApiInfo/Dtos/ThirdApiInfoDto.cs b/Waste.Application/ThirdApiInfo/Dtos/ThirdApiInfoDto.cs
index a4e3daa..f91acf0 100644
--- a/Waste.Application/ThirdApiInfo/Dtos/ThirdApiInfoDto.cs
+++ b/Waste.Application/ThirdApiInfo/Dtos/ThirdApiInfoDto.cs
@@ -207,4 +207,52 @@ namespace Waste.Application.ThirdApiInfo
///
public string ExceptionInfo { get; set; }
}
+ ///
+ /// wifi模块发送的数据
+ ///
+ public class WifiRequestC2SDto
+ {
+ ///
+ /// 参数,包含sn和测量数据
+ ///
+ public string @params { get; set; }
+ }
+ ///
+ /// wifi模块发送的数据解析
+ ///
+ public class WifiRequestS2SDto
+ {
+ ///
+ /// 设备机器码
+ ///
+ public string sn { get; set; }
+
+ ///
+ /// 包头,固定为A9
+ ///
+ public string Header { get; set; } = "";
+
+ ///
+ /// 分隔符,固定为00
+ ///
+ public string splitstr { get; set; } = "";
+ ///
+ /// 解密出的16进制数据
+ ///
+ public string data { get; set; } = "";
+
+ ///
+ /// 数据是否验证通过
+ ///
+ public bool ischecked { get; set; } = true;
+ ///
+ /// 是否为心跳包
+ ///
+ public bool IsHeart { get; set; } = false;
+ ///
+ /// 结果集
+ ///
+ public byte[] databyte { get; set; }
+
+ }
}
diff --git a/Waste.Application/ThirdApiInfo/IOpenService.cs b/Waste.Application/ThirdApiInfo/IOpenService.cs
index bfd4341..6d4f652 100644
--- a/Waste.Application/ThirdApiInfo/IOpenService.cs
+++ b/Waste.Application/ThirdApiInfo/IOpenService.cs
@@ -44,5 +44,11 @@ namespace Waste.Application.ThirdApiInfo
///
///
Task UpdateVersionAsync(DeviceVerS2SDto data);
+ ///
+ /// 通过ailink wifi模式发送的数据
+ ///
+ ///
+ ///
+ Task