diff --git a/OpenAuth.App/ServiceApp/FireManagement/FireCodeH5App.cs b/OpenAuth.App/ServiceApp/FireManagement/FireCodeH5App.cs index 2036cc9..eafe7b8 100644 --- a/OpenAuth.App/ServiceApp/FireManagement/FireCodeH5App.cs +++ b/OpenAuth.App/ServiceApp/FireManagement/FireCodeH5App.cs @@ -106,7 +106,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement Accumulate = SqlFunc.Subqueryable().Where(b => b.SiteId == r.Id).Count(), }).FirstAsync(); var userinfo = await db.FmSiteUser.AsQueryable() - .LeftJoin((a, b) => a.SiteUserId == b.Id).Select((a, b) => new + .LeftJoin((a, b) => a.SiteUserId == b.Id.ToString()).Select((a, b) => new { Id = a.Id, SiteUserId = a.SiteUserId, diff --git a/OpenAuth.App/ServiceApp/FmFireSiteManage/FmFireSiteApp.cs b/OpenAuth.App/ServiceApp/FmFireSiteManage/FmFireSiteApp.cs new file mode 100644 index 0000000..5d0542e --- /dev/null +++ b/OpenAuth.App/ServiceApp/FmFireSiteManage/FmFireSiteApp.cs @@ -0,0 +1,684 @@ +using DocumentFormat.OpenXml.Office2021.DocumentTasks; +using DocumentFormat.OpenXml.Spreadsheet; +using Infrastructure; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Options; +using NPOI.XSSF.UserModel; +using OpenAuth.App.BaseApp.Base; +using OpenAuth.App.Common; +using OpenAuth.App.Interface; +using OpenAuth.App.Response; +using OpenAuth.App.ServiceApp.FireManagement.Response; +using OpenAuth.App.ServiceApp.FmFireSiteManage.Response; +using OpenAuth.Repository; +using OpenAuth.Repository.Domain; +using OpenAuth.Repository.Domain.FireManagement; +using Org.BouncyCastle.Ocsp; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.WebSockets; +using System.Text; +using System.Threading.Tasks; +using Yitter.IdGenerator; + +namespace OpenAuth.App.ServiceApp.FmFireSiteManage +{ + public class FmFireSiteApp : SqlSugarBaseApp + { + private ClientWebSocket _socket; + private IConfiguration _configuration; + IOptions _options; + IOptions _options2; + IOptions _jpoptions; + + public FmFireSiteApp(IConfiguration configuration, IOptions options, IOptions options2, + IOptions jpoptions, ISugarUnitOfWork unitWork, + ISimpleClient repository, IAuth auth) : base(unitWork, repository, auth) + { + _auth = auth; + _options = options; + _options2 = options2; + _configuration = configuration; + _jpoptions = jpoptions; + } + + #region 站点管理 + /// + /// 查询所有站点 + /// + /// + /// + /// + /// + /// + public async Task>>> LoadAllSite(string siteName, int pageIndex, int pageSize, int state) + { + var currentUser = _auth.GetCurrentUser(); + using (var db = base.UnitWork.CreateContext()) + { + RefAsync totalNumber = 0; + var list = await db.FmSiteInfo.AsQueryable() + .WhereIF(state != 3, (a) => a.State == state) + .WhereIF(!string.IsNullOrEmpty(siteName), (a) => a.SiteName.Contains(siteName)) + .Select((a) => new FmSiteInfo + { + Id = a.Id.SelectAll(), + }) + .OrderByDescending(a => a.CreateTime) + .ToPageListAsync(pageIndex, pageSize, totalNumber); + return new Response>> + { + Result = new PageInfo> { Items = list, Total = totalNumber } + }; + } + } + /// + /// 导出所有站点 + /// + /// + public MemoryStream ExportSite(int state) + { + var currentUser = _auth.GetCurrentUser(); + using (var db = base.UnitWork.CreateContext()) + { + List list = new List(); + list = db.FmSiteInfo.AsQueryable() + .WhereIF(state != 3, (a) => a.State == state) + .Select((a) => new FmSiteInfo + { + Id = a.Id.SelectAll(), + }) + .OrderByDescending(a => a.CreateTime) + .ToList(); + + //根目录 + var root = AppDomain.CurrentDomain.BaseDirectory; + //Execl 文件 + var execlPath = "ExportFiles/ExportInterphoneInfo.xlsx"; + + using (FileStream fs = new FileStream($"{root}{execlPath}", FileMode.Open, FileAccess.Read)) + { + var workBook = new XSSFWorkbook(fs); + + #region + + var sheet = workBook.GetSheetAt(0); + + var columnWidth = 20 * 256; // 一个字符等于 256 个单位 + for (int i = 0; i < list.Count; i++) + { + sheet.SetColumnWidth(i, columnWidth); + } + var row1 = sheet.CreateRow(0); + row1.Height = 30 * 20; + row1.CreateCell(0).SetCellValue("站点名称"); + row1.CreateCell(1).SetCellValue("站点地址"); + row1.CreateCell(2).SetCellValue("审核状态"); + row1.CreateCell(3).SetCellValue("负责人"); + row1.CreateCell(4).SetCellValue("负责人电话"); + + for (int i = 0; i < list.Count; i++) + { + var num = i + 1; + var row = sheet.CreateRow(num); + row.Height = 30 * 20; + row.CreateCell(0).SetCellValue(list[i].SiteName == null ? "" : list[i].SiteName); + row.CreateCell(1).SetCellValue(list[i].SiteAddress == null ? "" : list[i].SiteAddress); + row.CreateCell(2).SetCellValue(list[i].State == 0 ? "未审核" : (list[i].State == 1 ? "审核通过" : "审核未通过")); + row.CreateCell(3).SetCellValue(list[i].Director == null ? "" : list[i].Director); + row.CreateCell(4).SetCellValue(list[i].Phone == null ? "" : list[i].Phone); + } + #endregion + MemoryStream ms = new MemoryStream(); + + workBook.Write(ms); + return ms; + } + } + } + /// + /// 站点审核 + /// + /// 站点id + /// + /// + /// + public async Task> AuditSite(long siteId, int state, string content) + { + using (var db = base.UnitWork.CreateContext()) + { + var model = db.FmSiteInfo.AsQueryable().First(r => r.Id == siteId); + if (model == null) + { + throw new Exception("未查询到站点"); + } + else + { + model.AuditTime = DateTime.Now; + model.State = state; + model.StateContent = content; + var flag = await db.FmSiteInfo.UpdateAsync(model); + if (db.Commit() && flag) + { + return new Response { Result = true, Message = "审核成功" }; + } + else + { + return new Response { Result = false, Message = "审核失败" }; + } + } + } + } + #endregion + + #region 站点管理 + /// + /// 获取站点管理人员及消息接收人员 + /// + /// + /// + /// + /// + public async Task>>> LoadSiteUser(long siteId, long roleid, int pageIndex, int pageSize) + { + using (var db = base.UnitWork.CreateContext()) + { + RefAsync totalNumber = 0; + var list = await db.FmSiteUser.AsQueryable() + .LeftJoin((a, b) => a.SiteUserId == b.Id.ToString()) + .LeftJoin((a, b, c) => a.SiteUserId == c.UserId.ToString()) + .Where((a, b, c) => c.RoleId == roleid && a.SiteId == siteId) + .Select((a, b) => new SiteUserRes() + { + Id = a.Id, + Name = b.Name, + SiteId = a.SiteId, + SiteUserId = a.SiteUserId, + UserRole = a.UserRole, + Account = b.Account + }).ToPageListAsync(pageIndex, pageSize, totalNumber); + + return new Response>> + { + Result = new PageInfo> { Items = list, Total = totalNumber } + }; + } + } + + /// + /// 获取林场所有管理员 + /// + /// 角色id(传林场管理员角色id) + /// + /// + /// + public TableData LoadSiteAllUser(long roleid, int pageIndex, int pageSize) + { + TableData data = new TableData(); + using (var db = base.UnitWork.CreateContext()) + { + int totalCount = 0; + var list = db.User.AsQueryable() + .LeftJoin((a, r) => a.Id == r.UserId) + .Where((a, r) => r.RoleId == roleid) + .Select((a) => (dynamic)new + { + a.Id, + a.Name, + a.Account + }) + .ToPageList(pageIndex, pageSize, ref totalCount); + data.data = list; + data.count = totalCount; + data.code = 200; + data.msg = "请求成功"; + } + return data; + } + /// + /// 获取站点列表 + /// + /// + /// + public TableData LoadSiteByUserId(string userId, int pageIndex, int pageSize) + { + TableData data = new TableData(); + using (var db = base.UnitWork.CreateContext()) + { + //查询user的所有场地 + var siteids = db.FmSiteUser.AsQueryable().Where(a => a.SiteUserId == userId).Select(a => a.SiteId).ToList(); + var startTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")); + var endTime = DateTime.Now; + int totalCount = 0; + var list = db.FmSiteInfo.AsQueryable() + //.LeftJoin((a, b) => a.Id == b.SiteId) + .Where((a) => siteids.Contains(a.Id)) + //.Where((a, b) => b.InTime >= startTime && b.InTime <= endTime) + //.GroupBy((a, b) => a.Id) + .Select((a) => (dynamic)new + { + Id = a.Id.SelectAll(), + incount = SqlFunc.Subqueryable().Where(r => r.SiteId == a.Id && r.InTime >= startTime && r.InTime <= endTime).Count(), + }).ToPageList(pageIndex, pageSize, ref totalCount); + data.data = list; + data.count = totalCount; + data.code = 200; + data.msg = "请求成功"; + } + return data; + } + + /// + /// 站点注册 + /// + /// 站点信息 + /// + public async Task> AddSite(FmSiteInfo fmSite) + { + if (fmSite != null) + { + fmSite.CreateTime = DateTime.Now; + fmSite.State = 0; + using (var db = base.UnitWork.CreateContext()) + { + if (db.FmSiteInfo.AsQueryable().Any(a => a.SiteName == fmSite.SiteName)) + { + throw new Exception("该站点名称已被注册"); + } + else + { + fmSite.Id = YitIdHelper.NextId(); + fmSite.AuditTime = fmSite.CreateTime; + if (fmSite.State != 1) + { + fmSite.State = 0; + } + + fmSite.SiteUser.ForEach(a => + { + a.Id = YitIdHelper.NextId(); + a.SiteId = fmSite.Id; + }); + FmSiteUser sugar_SiteUser = new FmSiteUser(); + sugar_SiteUser.Id = YitIdHelper.NextId(); + sugar_SiteUser.SiteId = fmSite.Id; + sugar_SiteUser.SiteUserId = fmSite.CreateUserId; + sugar_SiteUser.UserRole = 1; + fmSite.SiteUser.Add(sugar_SiteUser); + await db.FmSiteInfo.InsertAsync(fmSite); + await db.FmSiteUser.InsertRangeAsync(fmSite.SiteUser); + if (db.Commit()) + { + return new Response { Result = true, Message = "操作成功" }; + } + else + { + return new Response { Result = false, Message = "操作失败" }; + } + } + } + } + else + { + throw new Exception("提交数据为空"); + } + } + /// + /// 站点编辑 + /// + /// 站点编辑 + /// + public async Task> EditSite(FmSiteInfo fmSite) + { + if (fmSite != null) + { + using (var db = base.UnitWork.CreateContext()) + { + if (fmSite.SiteUser != null) + { + fmSite.SiteUser.ForEach(a => + { + a.Id = YitIdHelper.NextId(); + a.SiteId = fmSite.Id; + }); + await db.FmSiteUser.DeleteAsync(r => r.SiteId == fmSite.Id); + await db.FmSiteUser.InsertRangeAsync(fmSite.SiteUser); + } + // Update the fmSite object + await db.FmSiteInfo.UpdateAsync(fmSite); + + if (db.Commit()) + { + return new Response { Result = true, Message = "操作成功" }; + } + else + { + return new Response { Result = false, Message = "操作失败" }; + } + } + } + else + { + throw new Exception("提交数据为空"); + } + } + + + /// + /// 获取站点详情 + /// + /// + /// + public async Task> GetSiteInfo(long siteId) + { + TableData data = new TableData(); + using (var db = base.UnitWork.CreateContext()) + { + var info = await db.FmSiteInfo.AsQueryable() + .Where((a) => a.Id == siteId) + .Select((a) => new FmSiteRes + { + Id = a.Id.SelectAll(), + Accumulate = SqlFunc.Subqueryable().Where(r => r.SiteId == a.Id).Count(), + }).FirstAsync(); + var inf = await db.FmSiteUser.AsQueryable() + .LeftJoin((a, b) => a.SiteUserId == b.Id.ToString()) + .Where(a => a.SiteId == siteId) + .Select((a, b) => new FmSiteUser() + { + Id = a.Id, + SiteUserId = a.SiteUserId, + SiteId = a.SiteId, + UserRole = a.UserRole, + Name = b.Name, + Phone = b.Account + }).ToListAsync(); + info.SiteUser = inf; + return new Response { Result = info }; + } + } + #endregion + //#region 进山人员管理 + ///// + ///// 进出山类型 + ///// + ///// + //public TableData InTypes() + //{ + // List list = new List(); + + // foreach (var e in Enum.GetValues(typeof(InType))) + // { + // list.Add(new EnumItem + // { + // Value = Convert.ToInt32(e), + // Descprtion = ((InType)e).GetDescription() + // }); + // } + // return new TableData + // { + // code = 200, + // count = list.Count, + // data = list.OrderBy(a => a.Value), + // msg = "success" + // }; + //} + ///// + ///// 获取进出山人员信息 + ///// + ///// + ///// + ///// + ///// + ///// + ///// + //// This code is a method that loads in user data from a database. It takes in seven parameters: userName, cardNo, siteId, pageIndex, pageSize, startTime, and endTime + //// It then creates a TableData object and sets the startTime and endTime to the current date and time if the year is 0001. It then uses the SqlSugarOper class to query + //// the FmEnteringInfo, SysUser, and FmSiteInfo tables. It filters the results based on the parameters passed in and selects certain fields from the tables. + //// It then orders the results by InTime in descending order and maps the InType field to its description. Finally, it returns the TableData object with the filtered + //// results and the total count of the results. + //public TableData LoadInUser(string userName, string cardNo, long siteId, int pageIndex, int pageSize, DateTime startTime, DateTime endTime) + //{ + // var currentUser = _auth.GetCurrentUser(); + // TableData data = new TableData(); + // if (startTime.Year == 0001) + // { + // startTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")); + // endTime = DateTime.Now; + // } + // using (var db = SqlSugarOper.GetInstance(_configuration)) + // { + // int totalCount = 0; + // //获取当前用户的乡镇信息 + // var currentAreaUser = db.Queryable().Where(r => r.UserId == currentUser.User.Id && r.UserRole == 1).ToList(); + + // if (currentAreaUser.Count > 0) + // { + // var areaid = currentAreaUser.Select(r => r.AreaId); + // var areaids = db.Queryable() + // .Where(r => areaid.Contains(r.PId) || areaid.Contains(r.Id)) + // .Select(r => r.Id).ToList(); + // var fuser = db.Queryable() + // .Where((a) => areaids.Contains(a.AreaId)) + // .Select(r => r.UserId).ToList(); + // var site = db.Queryable() + // .Where(r => fuser.Contains(r.SiteUserId)) + // .Select(r => r.SiteId).ToList(); + // var list = db.Queryable() + // .LeftJoin((a, b) => a.CreateUserId == b.Id) + // .LeftJoin((a, b, c) => a.SiteId == c.Id) + // .WhereIF(siteId != 0, (a, b, c) => a.SiteId == siteId) + // .WhereIF(!string.IsNullOrEmpty(userName), (a, b, c) => a.UserName.Contains(userName)) + // .WhereIF(!string.IsNullOrEmpty(cardNo), (a, b, c) => a.CardNo == cardNo) + // .Where((a, b, c) => a.InTime >= startTime && a.InTime <= endTime) + // .Where((a, b, c) => site.Contains(a.SiteId)) + // .Select((a, b, c) => new EnteringInfoResp() + // { + // Id = a.Id, + // UserName = a.UserName, + // InType = a.InType, + // Phone = a.Phone, + // InTime = a.InTime, + // SiteName = c.SiteName, + // CardNo = a.CardNo, + // UserAddress = a.UserAddress, + // Name = b.Name, + // OutTime = a.OutTime, + // Reason = a.Reason, + // RegistrationType = a.RegistrationType, + // ProjectName = a.ProjectName + // }) + // .OrderBy((a) => a.InTime, OrderByType.Desc)//倒序 + // .Mapper(it => it.InTypeName = ((InType)it.InType).GetDescription()) + // .Mapper(it => it.RegistrationTypeName = ((RegistrationType)it.RegistrationType).GetDescription()) + // .ToPageList(pageIndex, pageSize, ref totalCount); + // data.data = list; + // data.count = totalCount; + // data.code = 200; + // data.msg = "请求成功"; + // } + // else + // { + // var list = db.Queryable() + // .LeftJoin((a, b) => a.CreateUserId == b.Id) + // .LeftJoin((a, b, c) => a.SiteId == c.Id) + // .WhereIF(siteId != 0, (a, b, c) => a.SiteId == siteId) + // .WhereIF(!string.IsNullOrEmpty(userName), (a, b, c) => a.UserName.Contains(userName)) + // .WhereIF(!string.IsNullOrEmpty(cardNo), (a, b, c) => a.CardNo == cardNo) + // .Where((a, b, c) => a.InTime >= startTime && a.InTime <= endTime) + // .Select((a, b, c) => new EnteringInfoResp() + // { + // Id = a.Id, + // UserName = a.UserName, + // InType = a.InType, + // Phone = a.Phone, + // InTime = a.InTime, + // SiteName = c.SiteName, + // CardNo = a.CardNo, + // UserAddress = a.UserAddress, + // Name = b.Name, + // OutTime = a.OutTime, + // Reason = a.Reason, + // RegistrationType = a.RegistrationType, + // ProjectName = a.ProjectName + // }) + // .OrderBy((a) => a.InTime, OrderByType.Desc)//倒序 + // .Mapper(it => it.InTypeName = ((InType)it.InType).GetDescription()) + // .Mapper(it => it.RegistrationTypeName = ((RegistrationType)it.RegistrationType).GetDescription()) + // .ToPageList(pageIndex, pageSize, ref totalCount); + // data.data = list; + // data.count = totalCount; + // data.code = 200; + // data.msg = "请求成功"; + // } + + // } + // return data; + //} + ///// + ///// 导出进出山人员信息 + ///// + ///// + //public MemoryStream ExportInUser(long siteId, DateTime startTime, DateTime endTime) + //{ + // var currentUser = _auth.GetCurrentUser(); + // if (startTime.Year == 0001) + // { + // startTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")); + // endTime = DateTime.Now; + // } + // using (var db = SqlSugarOper.GetInstance(_configuration)) + // { + // List list = new List(); + // //获取当前用户的乡镇信息 + // var currentAreaUser = db.Queryable().Where(r => r.UserId == currentUser.User.Id).ToList(); + + // if (currentAreaUser.Count > 0) + // { + // var areaid = currentAreaUser.Select(r => r.AreaId); + // var areaids = db.Queryable() + // .Where(r => areaid.Contains(r.PId) || areaid.Contains(r.Id)) + // .Select(r => r.Id).ToList(); + // var fuser = db.Queryable() + // .Where((a) => areaids.Contains(a.AreaId)) + // .Select(r => r.UserId).ToList(); + // var site = db.Queryable() + // .Where(r => fuser.Contains(r.SiteUserId)) + // .Select(r => r.SiteId).ToList(); + // list = db.Queryable() + // .LeftJoin((a, b) => a.CreateUserId == b.Id) + // .LeftJoin((a, b, c) => a.SiteId == c.Id) + // .WhereIF(siteId != 0, (a, b, c) => a.SiteId == siteId) + // .Where((a, b, c) => a.InTime >= startTime && a.InTime <= endTime) + // .Where((a, b, c) => site.Contains(a.SiteId)) + // .Select((a, b, c) => new EnteringInfoResp() + // { + // Id = a.Id, + // UserName = a.UserName, + // InType = a.InType, + // Phone = a.Phone, + // InTime = a.InTime, + // SiteName = c.SiteName, + // CardNo = a.CardNo, + // UserAddress = a.UserAddress, + // Name = b.Name, + // OutTime = a.OutTime, + // Reason = a.Reason, + // RegistrationType = a.RegistrationType, + // ProjectName = a.ProjectName + // }) + // .OrderBy((a) => a.InTime, OrderByType.Desc)//倒序 + // .Mapper(it => it.InTypeName = ((InType)it.InType).GetDescription()) + // .Mapper(it => it.RegistrationTypeName = ((RegistrationType)it.RegistrationType).GetDescription()) + // .ToList(); + // } + // else + // { + // list = db.Queryable() + // .LeftJoin((a, b) => a.CreateUserId == b.Id) + // .LeftJoin((a, b, c) => a.SiteId == c.Id) + // .WhereIF(siteId != 0, (a, b, c) => a.SiteId == siteId) + // .Where((a, b, c) => a.InTime >= startTime && a.InTime <= endTime) + // .Select((a, b, c) => new EnteringInfoResp() + // { + // Id = a.Id, + // UserName = a.UserName, + // InType = a.InType, + // Phone = a.Phone, + // InTime = a.InTime, + // SiteName = c.SiteName, + // CardNo = a.CardNo, + // UserAddress = a.UserAddress, + // Name = b.Name, + // OutTime = a.OutTime, + // Reason = a.Reason, + // RegistrationType = a.RegistrationType, + // ProjectName = a.ProjectName + // }) + // .OrderBy((a) => a.InTime, OrderByType.Desc)//倒序 + // .Mapper(it => it.InTypeName = ((InType)it.InType).GetDescription()) + // .Mapper(it => it.RegistrationTypeName = ((RegistrationType)it.RegistrationType).GetDescription()) + // .ToList(); + // } + + + // //根目录 + // var root = AppDomain.CurrentDomain.BaseDirectory; + // //Execl 文件 + // var execlPath = "ExportFiles/ExportInterphoneInfo.xlsx"; + + // using (FileStream fs = new FileStream($"{root}{execlPath}", FileMode.Open, FileAccess.Read)) + // { + // var workBook = new XSSFWorkbook(fs); + + // #region + + // var sheet = workBook.GetSheetAt(0); + + // var columnWidth = 20 * 256; // 一个字符等于 256 个单位 + // for (int i = 0; i < list.Count; i++) + // { + // sheet.SetColumnWidth(i, columnWidth); + // } + // var row1 = sheet.CreateRow(0); + // row1.Height = 30 * 20; + // row1.CreateCell(0).SetCellValue("人员姓名"); + // row1.CreateCell(1).SetCellValue("身份证号"); + // row1.CreateCell(2).SetCellValue("电话"); + // row1.CreateCell(3).SetCellValue("登记类型"); + // row1.CreateCell(4).SetCellValue("进山时间"); + // row1.CreateCell(5).SetCellValue("出山时间"); + // row1.CreateCell(6).SetCellValue("防火站点"); + // row1.CreateCell(7).SetCellValue("登记方式"); + // row1.CreateCell(8).SetCellValue("进山原因"); + + // for (int i = 0; i < list.Count; i++) + // { + // var num = i + 1; + // var row = sheet.CreateRow(num); + // row.Height = 30 * 20; + // row.CreateCell(0).SetCellValue(list[i].UserName == null ? "" : list[i].UserName); + // row.CreateCell(1).SetCellValue(list[i].CardNo == null ? "" : list[i].CardNo); + // row.CreateCell(2).SetCellValue(list[i].Phone == null ? "" : list[i].Phone); + // row.CreateCell(3).SetCellValue(list[i].RegistrationTypeName == null ? "" : list[i].RegistrationTypeName); + // row.CreateCell(4).SetCellValue(list[i].InTime == null ? "" : list[i].InTime.ToString()); + // row.CreateCell(5).SetCellValue(list[i].OutTime == null ? "" : list[i].OutTime.ToString()); + // row.CreateCell(6).SetCellValue(list[i].SiteName == null ? "" : list[i].SiteName); + // row.CreateCell(7).SetCellValue(list[i].InTypeName == null ? "" : list[i].InTypeName); + // row.CreateCell(8).SetCellValue(list[i].Reason == null ? "" : list[i].Reason); + // } + // #endregion + // MemoryStream ms = new MemoryStream(); + + // workBook.Write(ms); + // return ms; + // } + // } + + + //} + //#endregion + } +} diff --git a/OpenAuth.App/ServiceApp/FmFireSiteManage/Response/FmSiteRes.cs b/OpenAuth.App/ServiceApp/FmFireSiteManage/Response/FmSiteRes.cs new file mode 100644 index 0000000..45ebf59 --- /dev/null +++ b/OpenAuth.App/ServiceApp/FmFireSiteManage/Response/FmSiteRes.cs @@ -0,0 +1,17 @@ +using OpenAuth.Repository.Domain.FireManagement; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OpenAuth.App.ServiceApp.FmFireSiteManage.Response +{ + public class FmSiteRes:FmSiteInfo + { + /// + /// 累计进山人次 + /// + public int Accumulate { get; set; } + } +} diff --git a/OpenAuth.App/ServiceApp/FmFireSiteManage/Response/SiteUserRes.cs b/OpenAuth.App/ServiceApp/FmFireSiteManage/Response/SiteUserRes.cs new file mode 100644 index 0000000..7e4d777 --- /dev/null +++ b/OpenAuth.App/ServiceApp/FmFireSiteManage/Response/SiteUserRes.cs @@ -0,0 +1,19 @@ +using OpenAuth.Repository.Domain.FireManagement; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OpenAuth.App.ServiceApp.FmFireSiteManage.Response +{ + public class SiteUserRes:FmSiteUser + { + /// + /// Desc:用户登录帐号 + /// Default: + /// Nullable:False + /// + public string Account { get; set; } + } +} diff --git a/OpenAuth.Repository/Domain/FireManagement/FmSiteUser.cs b/OpenAuth.Repository/Domain/FireManagement/FmSiteUser.cs index 48949d3..060365e 100644 --- a/OpenAuth.Repository/Domain/FireManagement/FmSiteUser.cs +++ b/OpenAuth.Repository/Domain/FireManagement/FmSiteUser.cs @@ -33,7 +33,7 @@ namespace OpenAuth.Repository.Domain.FireManagement /// Default: /// Nullable:False /// - public long SiteUserId { get; set; } + public string SiteUserId { get; set; } /// /// Desc:人员角色(1-管理员,2-消息接受者) diff --git a/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FmFireSiteController.cs b/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FmFireSiteController.cs new file mode 100644 index 0000000..ee41ff4 --- /dev/null +++ b/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FmFireSiteController.cs @@ -0,0 +1,205 @@ +using Infrastructure; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using OpenAuth.App.Response; +using OpenAuth.App.ServiceApp.FireManagement; +using OpenAuth.App.ServiceApp.FireManagement.Request; +using OpenAuth.App.ServiceApp.FmFireSiteManage; +using OpenAuth.App.ServiceApp.FmFireSiteManage.Response; +using OpenAuth.Repository.Domain.FireManagement; + +namespace OpenAuth.WebApi.Controllers.ServiceControllers.FireManagement +{ + /// + /// 防火站点管理模块 + /// + [Route("api/[controller]/[action]")] + [ApiController] + public class FmFireSiteController : ControllerBase + { + private readonly FmFireSiteApp _app; + + public FmFireSiteController(FmFireSiteApp app) + { + _app = app; + } + + #region 站点管理 + /// + /// 查询所有站点 + /// + /// 站点名称 + /// + /// + /// 状态(0-未审核,1-审核通过,2-未通过) + /// + [HttpGet] + public async Task>>> LoadAllSite(string siteName, int pageIndex, int pageSize, int state) + { + Response>> response = new Response>>(); + try + { + return await _app.LoadAllSite(siteName,pageIndex,pageSize,state); + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.InnerException?.Message ?? ex.Message; + } + return response; + } + /// + /// 导出所有站点 + /// + /// + [HttpGet] + public IActionResult ExportSite(int state) + { + var ms = _app.ExportSite(state); + ms.Position = 0; + return File(ms, "application/octet-stream", + $"站点{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx"); + } + + /// + /// 站点审核 + /// + /// 站点id + /// 要修改的状态 + /// 审核说明 + /// + [HttpPost] + public async Task> AuditSite(long siteId, int state, string content) + { + Response response = new(); + try + { + return await _app.AuditSite(siteId,state,content); + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.InnerException?.Message ?? ex.Message; + } + return response; + } + + /// + /// 获取站点管理人员及消息接收人员 + /// + /// 站点id + /// 角色id(站点管理人员角色的id) + /// 页码 + /// 页面大小 + /// + [HttpGet] + public async Task>>> LoadSiteUser(long siteId, long roleid, int pageIndex, int pageSize) + { + Response>> response = new Response>>(); + try + { + return await _app.LoadSiteUser(siteId, roleid,pageIndex, pageSize); + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.InnerException?.Message ?? ex.Message; + } + return response; + } + + /// + /// 获取所有站点管理人员 + /// + /// 角色id(站点管理人员角色id) + /// 页码 + /// 页面大小 + /// + [HttpGet] + [AllowAnonymous] + public TableData LoadSiteAllUser(long roleid, int pageIndex, int pageSize) + { + return _app.LoadSiteAllUser(roleid,pageIndex, pageSize); + } + + /// + /// 根据管理员获取站点列表 + /// + /// + /// + /// + /// + [HttpGet] + [AllowAnonymous] + public TableData LoadSiteByUserId(string userId, int pageIndex, int pageSize) + { + return _app.LoadSiteByUserId(userId, pageIndex, pageSize); + } + + /// + /// 注册站点信息 + /// + /// 站点数据 + /// + [HttpPost] + [AllowAnonymous] + public async Task> AddSiteInfo(FmSiteInfo fmSite) + { + Response response = new(); + try + { + return await _app.AddSite(fmSite); + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.InnerException?.Message ?? ex.Message; + } + return response; + } + + /// + /// 站点编辑 + /// + /// 站点编辑 + /// + [HttpPost] + [AllowAnonymous] + public async Task> EditSiteInfo(FmSiteInfo fmSite) + { + Response response = new(); + try + { + return await _app.EditSite(fmSite); + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.InnerException?.Message ?? ex.Message; + } + return response; + } + + /// + /// 获取站点详情 + /// + /// 站点id + /// + [HttpGet] + public async Task> GetSiteInfo(long siteId) + { + Response response = new Response(); + try + { + return await _app.GetSiteInfo(siteId); + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.InnerException?.Message ?? ex.Message; + } + return response; + } + #endregion + } +}