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)