diff --git a/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs b/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs index 806780a..10ea354 100644 --- a/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs +++ b/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs @@ -211,6 +211,103 @@ namespace OpenAuth.App.ServiceApp.FireManagement } } } + + public async Task>> GetFireClueStatisticsByState(int type) + { + using (var db = base.UnitWork.CreateContext()) + { + if (type == 1) + { + DateTime firstDayOfMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); + var list = await db.FmFireclueInfo.AsQueryable() + .Where(r => r.ReportTime >= firstDayOfMonth) + .GroupBy(r => new { r.ReportTime.Day }) + .Select(r => new FireInfoStateForChart + { + DateTime = r.ReportTime.Day.ToString() + "日", + TreatedCount = SqlFunc.AggregateSum(SqlFunc.IIF(r.State >= 3, 1, 0)), + UntreatedCount = SqlFunc.AggregateSum(SqlFunc.IIF(r.State < 3, 1, 0)) + }).ToListAsync(); + return new Response> { Result = list }; + } + else if (type == 2) + { + DateTime firstDayOfYear = new DateTime(DateTime.Now.Year, 1, 1); + var list = await db.FmFireclueInfo.AsQueryable() + .Where(r => r.ReportTime >= firstDayOfYear) + .GroupBy(r => new { r.ReportTime.Month }) + .Select(r => new FireInfoStateForChart + { + DateTime = r.ReportTime.Month.ToString() + "月", + TreatedCount = SqlFunc.AggregateSum(SqlFunc.IIF(r.State >= 3, 1, 0)), + UntreatedCount = SqlFunc.AggregateSum(SqlFunc.IIF(r.State < 3, 1, 0)) + }).ToListAsync(); + return new Response> { Result = list }; + } + else + { + DateTime firstDayOfYear = DateTime.Now.AddYears(-3); + var list = await db.FmFireclueInfo.AsQueryable() + .Where(r => r.ReportTime >= firstDayOfYear) + .GroupBy(r => new { r.ReportTime.Year }) + .Select(r => new FireInfoStateForChart + { + DateTime = r.ReportTime.Year.ToString() + "年", + TreatedCount = SqlFunc.AggregateSum(SqlFunc.IIF(r.State >= 3, 1, 0)), + UntreatedCount = SqlFunc.AggregateSum(SqlFunc.IIF(r.State < 3, 1, 0)) + }).ToListAsync(); + return new Response> { Result = list }; + } + } + } + public async Task>> GetFireClueStatisticsByDegreeType(int type) + { + using (var db = base.UnitWork.CreateContext()) + { + if (type == 1) + { + DateTime firstDayOfMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); + var list = await db.FmFireclueInfo.AsQueryable() + .Where(r => r.ReportTime >= firstDayOfMonth) + .GroupBy(r => new { r.ReportTime.Day }) + .Select(r => new FireInfoDegreeForChart + { + DateTime = r.ReportTime.Day.ToString() + "日", + ExtraLargeCount = SqlFunc.AggregateSum(SqlFunc.IIF(r.DegreeType == 1, 1, 0)), + LargeCount = SqlFunc.AggregateSum(SqlFunc.IIF(r.DegreeType == 2, 1, 0)) + }).ToListAsync(); + return new Response> { Result = list }; + } + else if (type == 2) + { + DateTime firstDayOfYear = new DateTime(DateTime.Now.Year, 1, 1); + var list = await db.FmFireclueInfo.AsQueryable() + .Where(r => r.ReportTime >= firstDayOfYear) + .GroupBy(r => new { r.ReportTime.Month }) + .Select(r => new FireInfoDegreeForChart + { + DateTime = r.ReportTime.Month.ToString() + "月", + ExtraLargeCount = SqlFunc.AggregateSum(SqlFunc.IIF(r.DegreeType == 1, 1, 0)), + LargeCount = SqlFunc.AggregateSum(SqlFunc.IIF(r.DegreeType == 2, 1, 0)) + }).ToListAsync(); + return new Response> { Result = list }; + } + else + { + DateTime firstDayOfYear = DateTime.Now.AddYears(-3); + var list = await db.FmFireclueInfo.AsQueryable() + .Where(r => r.ReportTime >= firstDayOfYear) + .GroupBy(r => new { r.ReportTime.Year }) + .Select(r => new FireInfoDegreeForChart + { + DateTime = r.ReportTime.Year.ToString() + "年", + ExtraLargeCount = SqlFunc.AggregateSum(SqlFunc.IIF(r.DegreeType == 1, 1, 0)), + LargeCount = SqlFunc.AggregateSum(SqlFunc.IIF(r.DegreeType == 2, 1, 0)) + }).ToListAsync(); + return new Response> { Result = list }; + } + } + } #endregion } } diff --git a/OpenAuth.App/ServiceApp/FireManagement/Response/FireInfoDegreeForChart.cs b/OpenAuth.App/ServiceApp/FireManagement/Response/FireInfoDegreeForChart.cs new file mode 100644 index 0000000..bbfe34d --- /dev/null +++ b/OpenAuth.App/ServiceApp/FireManagement/Response/FireInfoDegreeForChart.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OpenAuth.App.ServiceApp.FireManagement.Response +{ + public class FireInfoDegreeForChart + { + public string DateTime { get; set; } + public int ExtraLargeCount { get; set; } + public int LargeCount { get; set; } + } +} diff --git a/OpenAuth.App/ServiceApp/FireManagement/Response/FireInfoStateForChart.cs b/OpenAuth.App/ServiceApp/FireManagement/Response/FireInfoStateForChart.cs new file mode 100644 index 0000000..4cc6506 --- /dev/null +++ b/OpenAuth.App/ServiceApp/FireManagement/Response/FireInfoStateForChart.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OpenAuth.App.ServiceApp.FireManagement.Response +{ + public class FireInfoStateForChart + { + public string DateTime { get; set; } + public int TreatedCount { get; set; } + public int UntreatedCount { get; set; } + } +} diff --git a/OpenAuth.Repository/Domain/FireManagement/FmFireclueInfo.cs b/OpenAuth.Repository/Domain/FireManagement/FmFireclueInfo.cs index 1f485bb..51ac8cc 100644 --- a/OpenAuth.Repository/Domain/FireManagement/FmFireclueInfo.cs +++ b/OpenAuth.Repository/Domain/FireManagement/FmFireclueInfo.cs @@ -99,5 +99,9 @@ namespace OpenAuth.Repository.Domain.FireManagement /// 音频 /// public string Audio { get; set; } + /// + /// 程度类型1-特大,2-重大,3-其他 + /// + public int DegreeType { get; set; } } } diff --git a/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs b/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs index 1a585c9..67007bf 100644 --- a/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs +++ b/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs @@ -168,7 +168,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers.FireManagement /// 1-月,2-年 /// [HttpGet] - [AllowAnonymous] public async Task>> GetFireClueStatistics(int type) { Response> response = new Response>(); @@ -183,6 +182,48 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers.FireManagement } return response; } + /// + /// 按状态统计火情线索 + /// + /// + /// + [HttpGet] + [AllowAnonymous] + public async Task>> GetFireClueStatisticsByState(int type) + { + Response> response = new Response>(); + try + { + return await _app.GetFireClueStatisticsByState(type); + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.InnerException?.Message ?? ex.Message; + } + return response; + } + /// + /// 按等级统计火情线索 + /// + /// + /// + [HttpGet] + [AllowAnonymous] + public async Task>> GetFireClueStatisticsByDegreeType(int type) + { + Response> response = new Response>(); + try + { + return await _app.GetFireClueStatisticsByDegreeType(type); + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.InnerException?.Message ?? ex.Message; + } + return response; + } #endregion }