diff --git a/OpenAuth.App/ServiceApp/FireManagement/FireGridApp.cs b/OpenAuth.App/ServiceApp/FireManagement/FireGridApp.cs
index 0579b9e..a51756a 100644
--- a/OpenAuth.App/ServiceApp/FireManagement/FireGridApp.cs
+++ b/OpenAuth.App/ServiceApp/FireManagement/FireGridApp.cs
@@ -88,6 +88,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement
.Where((a, b) => a.IsDelete == false)
.WhereIF(!string.IsNullOrEmpty(pointName), (a, b, c) => a.PointName.Contains(pointName))
.WhereIF(areaid != 0, (a, b, c) => chileorg.Contains(c.AreaId))
+ .OrderBy((a,b,c)=>a.PointName)
.Select((a, b) => new CheckPointInfo
{
id = a.Id,
diff --git a/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs b/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs
index 90e1921..83497ec 100644
--- a/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs
+++ b/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs
@@ -221,6 +221,70 @@ namespace OpenAuth.App.ServiceApp.FireManagement
}
}
+ ///
+ /// 从态势感知平台添加无人机上报火情线索
+ ///
+ ///
+ ///
+ public async Task> AddFireClueInfoUAV(string info)
+ {
+ using (var db = base.UnitWork.CreateContext())
+ {
+ var obj = Newtonsoft.Json.JsonConvert.DeserializeObject(info);
+ FmFireclueInfo fm = new FmFireclueInfo();
+ fm.Id = YitIdHelper.NextId();
+ fm.State = (int)State.上报;
+ fm.ReportTime = DateTime.Now;
+ fm.Lat = obj.Lat;
+ fm.Lng=obj.Lng;
+ fm.Address=obj.Address;
+ fm.AreaName=obj.AreaName;
+ fm.Image=obj.Image;
+ fm.SourceType = 3;
+ fm.ReportPerson = obj.ReportPerson;
+ fm.Describe=obj.Describe;
+ fm.DegreeType = obj.DegreeType;
+ var today = DateTime.Now.Date;
+ var tomorrow = today.AddDays(1);
+ var exitinfo = db.FmFireclueInfo
+ .AsQueryable()
+ .Count(a => a.ReportTime >= today && a.ReportTime < tomorrow);
+ string excount = exitinfo.ToString("D3");
+ string sourceType = fm.SourceType switch
+ {
+ 1 => "R",
+ 2 => "J",
+ 3 => "W",
+ 4 => "R",
+ 5 => "G",
+ 6 => "Y",
+ _ => "R"
+ };
+
+ // 生成线索编号
+ fm.ClueNo = $"LH{DateTime.Now:yyyyMMdd}{excount}{sourceType}";
+ await db.FmFireclueInfo.InsertAsync(fm);
+ await db.FmFireclueinfoLog.InsertAsync(new FmFireclueinfoLog
+ {
+ Id = YitIdHelper.NextId(),
+ Fireclueid = fm.Id,
+ Title = "无人机火情线索上报",
+ CreateTime = DateTime.Now,
+ CreateId = fm.CreateId,
+ Content = fm.Describe
+ });
+ if (db.Commit())
+ {
+ JPushInfo("火情信息", 0);
+ return new Response { Result = true, Message = "操作成功" };
+ }
+ else
+ {
+ return new Response { Result = false, Message = "操作失败" };
+ }
+ }
+ }
+
class ReciveTaskInfo
{
public long taskid { get; set; }
diff --git a/OpenAuth.App/ServiceApp/FireManagement/Request/ReciveFireClueInfo.cs b/OpenAuth.App/ServiceApp/FireManagement/Request/ReciveFireClueInfo.cs
new file mode 100644
index 0000000..80a5dcd
--- /dev/null
+++ b/OpenAuth.App/ServiceApp/FireManagement/Request/ReciveFireClueInfo.cs
@@ -0,0 +1,52 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OpenAuth.App.ServiceApp.FireManagement.Request
+{
+ public class ReciveFireClueInfo
+ {
+ ///
+ /// 人员名称
+ ///
+ public string ReportPerson { get; set; }
+
+ ///
+ /// 描述
+ ///
+ public string Describe { get; set; }
+
+ ///
+ /// 经度
+ ///
+ public string Lng { get; set; }
+
+ ///
+ /// 纬度
+ ///
+ public string Lat { get; set; }
+
+ ///
+ /// 地址
+ ///
+ public string Address { get; set; }
+
+ ///
+ /// 地区名称
+ ///
+ public string AreaName { get; set; }
+
+ ///
+ /// 图片地址
+ ///
+ public string Image { get; set; }
+
+ ///
+ /// 程度类型1-特大,2-重大,3-其他
+ ///
+ public int DegreeType { get; set; }
+ }
+}
diff --git a/OpenAuth.WebApi/Mqtt/MqttService.cs b/OpenAuth.WebApi/Mqtt/MqttService.cs
index 38e0f53..5b1e917 100644
--- a/OpenAuth.WebApi/Mqtt/MqttService.cs
+++ b/OpenAuth.WebApi/Mqtt/MqttService.cs
@@ -45,7 +45,18 @@ namespace Infrastructure.Mqtt
var payload = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
Console.WriteLine(payload);
// TODO: 可在这里写入数据库、调用业务逻辑等
- await _app.ReceiveTaskImage(payload);
+ if (topic == "fire")
+ {
+ await _app.ReceiveTaskImage(payload);
+ }
+ else
+ {
+ if (topic == "fireclueinfo")
+ {
+ await _app.AddFireClueInfoUAV(payload);
+ }
+ }
+
await Task.CompletedTask;
}
catch (Exception ex)
@@ -75,6 +86,7 @@ namespace Infrastructure.Mqtt
// 订阅主题
await _client.SubscribeAsync("fire");
+ await _client.SubscribeAsync("fireclueinfo");
}
catch (Exception ex)