diff --git a/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs b/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs index 88c06e7..5ab1146 100644 --- a/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs +++ b/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs @@ -3,6 +3,7 @@ using System.Text; using Hopetry.App.SugarModel.CommonModel; using Infrastructure; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Newtonsoft.Json; using NPOI.HSSF.UserModel; @@ -79,6 +80,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement fftuList.Add(fftu); }); } + await db.FmFireTaskUser.InsertRangeAsync(fftuList); if (db.Commit()) { @@ -112,6 +114,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement return new Response> { Result = users }; } } + /// /// 查询任务列表 /// @@ -126,6 +129,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement return new Response> { Result = tasks }; } } + /// /// 查询人员单位信息 /// @@ -138,7 +142,9 @@ namespace OpenAuth.App.ServiceApp.FireManagement return new Response> { Result = userunit }; } } + #region 单位管理 + //添加人员单位 public async Task> AddUserUnit(FmUserUnit info) { @@ -156,6 +162,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement } } } + //编辑人员单位 public async Task> EditUserUnit(FmUserUnit info) { @@ -172,6 +179,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement } } } + //获取单个人员单位 public async Task> LoadUserUnitById(long id) { @@ -181,6 +189,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement return new Response { Result = info }; } } + //删除人员单位 public async Task> DeleteUserUnit(long id) { @@ -217,14 +226,14 @@ namespace OpenAuth.App.ServiceApp.FireManagement { using (var stream = file.OpenReadStream()) { - workbook = new XSSFWorkbook(stream);//excel的版本2007 + workbook = new XSSFWorkbook(stream); //excel的版本2007 } } else if (file.FileName.IndexOf(".xls") > 0) { using (var stream = file.OpenReadStream()) { - workbook = new HSSFWorkbook(stream);//excel的版本2003 + workbook = new HSSFWorkbook(stream); //excel的版本2003 } } @@ -279,10 +288,14 @@ namespace OpenAuth.App.ServiceApp.FireManagement response.Code = 400; response.Message = "上传文件类型错误"; } + return response; } + #endregion + #region 火情线索 + public async Task> AddFireClueInfo(FmFireclueInfo info) { using (var db = base.UnitWork.CreateContext()) @@ -290,7 +303,8 @@ namespace OpenAuth.App.ServiceApp.FireManagement info.Id = YitIdHelper.NextId(); info.State = (int)State.上报; info.ReportTime = DateTime.Now; - var exitinfo = db.FmFireclueInfo.AsQueryable().Where(a => a.ReportTime.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")).Count(); + var exitinfo = db.FmFireclueInfo.AsQueryable().Where(a => + a.ReportTime.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")).Count(); info.ClueNo = "H" + DateTime.Now.ToString("yyyyMMdd") + (exitinfo == 0 ? "01" : "0" + (exitinfo + 1)); await db.FmFireclueInfo.InsertAsync(info); if (db.Commit()) @@ -303,6 +317,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement } } } + /// /// 查询火情线索 /// @@ -317,6 +332,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement return new Response { Result = info }; } } + public async Task> LoadClueWithInfoById(long id) { using (var db = base.UnitWork.CreateContext()) @@ -336,6 +352,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement return new Response { Result = endInfo }; } } + //查询火情线索列表 public async Task>> GetFireClueList() { @@ -345,6 +362,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement return new Response> { Result = list }; } } + //按月统计火情线索 public async Task>> GetFireClueStatistics(int type) { @@ -368,14 +386,14 @@ namespace OpenAuth.App.ServiceApp.FireManagement { DateTime firstDayOfYear = new DateTime(DateTime.Now.Year, 1, 1); var list = await db.FmFireclueInfo.AsQueryable() - //.Where(r => r.State == 1) - .Where(r => r.ReportTime >= firstDayOfYear) - .GroupBy(r => new { r.ReportTime.Month }) - .Select(r => new FireInfoForChart - { - DateTime = r.ReportTime.Month.ToString() + "月", - Count = SqlFunc.AggregateCount(r.Id) - }).ToListAsync(); + //.Where(r => r.State == 1) + .Where(r => r.ReportTime >= firstDayOfYear) + .GroupBy(r => new { r.ReportTime.Month }) + .Select(r => new FireInfoForChart + { + DateTime = r.ReportTime.Month.ToString() + "月", + Count = SqlFunc.AggregateCount(r.Id) + }).ToListAsync(); return new Response> { Result = list }; } } @@ -403,32 +421,33 @@ namespace OpenAuth.App.ServiceApp.FireManagement { 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(); + .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(); + .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()) @@ -451,33 +470,35 @@ namespace OpenAuth.App.ServiceApp.FireManagement { 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(); + .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(); + .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 + /// /// 在线情况 /// @@ -498,15 +519,17 @@ namespace OpenAuth.App.ServiceApp.FireManagement { foreach (var item in orgid.Where(r => r.Level < 3)) { - var chileorg = (await db.SysOrg.AsQueryable().ToChildListAsync(it => it.ParentId, item)).Select(it => it.Id).ToList(); + var chileorg = (await db.SysOrg.AsQueryable().ToChildListAsync(it => it.ParentId, item)) + .Select(it => it.Id).ToList(); chileorglist.AddRange(chileorg); } } + var userInfoQuery = db.User.AsQueryable() - .LeftJoin((a, b) => a.Id == b.CreateId) - .LeftJoin((a, b, c) => a.Id == c.UserId) - .Where((a, b, c) => a.Status == 0) - .WhereIF(level != 0, (a, b, c) => chileorglist.Contains(c.UserId)); + .LeftJoin((a, b) => a.Id == b.CreateId) + .LeftJoin((a, b, c) => a.Id == c.UserId) + .Where((a, b, c) => a.Status == 0) + .WhereIF(level != 0, (a, b, c) => chileorglist.Contains(c.UserId)); var userinfo = await userInfoQuery .Select((a, b, c) => new UserOnLineResp { @@ -651,5 +674,42 @@ namespace OpenAuth.App.ServiceApp.FireManagement } } + /// + /// 保存地图标绘 + /// + /// + /// + public async Task> SaveMapPlotting(MapPlottingReq req) + { + var record = req.MapTo(); + record.Id = YitIdHelper.NextId(); + using var db = Repository.AsSugarClient(); + await db.Insertable(record).IgnoreColumnsNull().ExecuteCommandAsync(); + return new Response() + { + Result = true, + Message = "保存成功", + Code = 200 + }; + } + + public async Task>> GetMapPlotting(PageReq req) + { + using var db = Repository.AsSugarClient(); + RefAsync total = 0; + var page = await db.Queryable() + .OrderByDescending(r => r.CreateTime) + .ToPageListAsync(req.page, req.limit, total); + return new Response> + { + Code = 200, + Message = "查询成功", + Result = new PageInfo + { + Items = page, + Total = total + } + }; + } } } \ No newline at end of file diff --git a/OpenAuth.App/ServiceApp/FireManagement/Request/MapPlottingReq.cs b/OpenAuth.App/ServiceApp/FireManagement/Request/MapPlottingReq.cs new file mode 100644 index 0000000..ae1a84f --- /dev/null +++ b/OpenAuth.App/ServiceApp/FireManagement/Request/MapPlottingReq.cs @@ -0,0 +1,7 @@ +namespace OpenAuth.App.ServiceApp.FireManagement.Request; + +public class MapPlottingReq +{ + public string Title { get;set; } + public string Description { get;set; } +} \ No newline at end of file diff --git a/OpenAuth.Repository/Domain/FireManagement/FmMapPlotting.cs b/OpenAuth.Repository/Domain/FireManagement/FmMapPlotting.cs new file mode 100644 index 0000000..91e0121 --- /dev/null +++ b/OpenAuth.Repository/Domain/FireManagement/FmMapPlotting.cs @@ -0,0 +1,26 @@ +using SqlSugar; + +namespace OpenAuth.Repository.Domain.FireManagement; + +/// +/// 地图标绘记录 +/// +[SugarTable("fm_mapplotting")] +public class FmMapPlotting +{ + /// + /// id 主键 + /// + [SugarColumn(IsPrimaryKey = true,ColumnName = "id")] + public long Id { get; set; } + + [SugarColumn(ColumnName = "title")] public string Title { get; set; } + + [SugarColumn(ColumnName = "description")] + public string Description { get; set; } + + [SugarColumn(ColumnName = "state")] public int? State { get; set; } + + [SugarColumn(ColumnName = "create_time")] + public DateTime? CreateTime { get; set; } +} \ No newline at end of file diff --git a/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs b/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs index 3575c63..e3dcce5 100644 --- a/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs +++ b/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs @@ -1,6 +1,7 @@ using Infrastructure; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using OpenAuth.App.BaseApp.Base; using OpenAuth.App.ServiceApp.FireManagement; using OpenAuth.App.ServiceApp.FireManagement.Request; using OpenAuth.App.ServiceApp.FireManagement.Response; @@ -382,5 +383,38 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers.FireManagement { return await _app.AddPointAsync(info); } + + /// + /// 地图标绘保存 + /// + /// + /// + [HttpPost] + [AllowAnonymous] + public async Task> SaveMapPlotting(MapPlottingReq req) + { + if (string.IsNullOrEmpty(req.Title)) + { + return new Response() { Code = 500, Message = "标题不能为空" }; + } + + if (string.IsNullOrEmpty(req.Description)) + { + return new Response() { Code = 500, Message = "描述不能为空" }; + } + return await _app.SaveMapPlotting(req); + } + /// + /// 地图村绘列表 + /// + /// + /// + [HttpGet] + [AllowAnonymous] + public async Task>> GetMapPlotting([FromQuery] PageReq req) + { + return await _app.GetMapPlotting(req); + } + /// 地图标绘关闭 } }