From 5f1eac0f741cf0cc0521b0d40ab28917a281aa64 Mon Sep 17 00:00:00 2001 From: zhangbin <460190368@qq.com> Date: Fri, 21 Mar 2025 16:42:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E4=B8=8B=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OpenAuth.App/Const/EnumInfo.cs | 25 +++++ .../FireManagement/FireManagementApp.cs | 104 ++++++++++++++++++ .../FireManagement/Response/SysUserResp.cs | 20 ++++ .../Domain/FireManagement/FmFireclueTask.cs | 8 +- OpenAuth.Repository/SugarDbContext.cs | 5 +- .../FireManagementController.cs | 66 +++++++++++ 6 files changed, 222 insertions(+), 6 deletions(-) create mode 100644 OpenAuth.App/Const/EnumInfo.cs create mode 100644 OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs create mode 100644 OpenAuth.App/ServiceApp/FireManagement/Response/SysUserResp.cs create mode 100644 OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs diff --git a/OpenAuth.App/Const/EnumInfo.cs b/OpenAuth.App/Const/EnumInfo.cs new file mode 100644 index 0000000..3844c2f --- /dev/null +++ b/OpenAuth.App/Const/EnumInfo.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OpenAuth.App.Const +{ + class EnumInfo + { + } + /// + /// 任务状态 + /// + public enum TaskState + { + [Description("待接收")] + 待接收 = 1, + [Description("已接收")] + 已接收 = 2, + [Description("已完成")] + 已完成 = 3, + } +} diff --git a/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs b/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs new file mode 100644 index 0000000..fa456e2 --- /dev/null +++ b/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs @@ -0,0 +1,104 @@ +using OpenAuth.App.BaseApp.Base; +using OpenAuth.Repository.Domain.DataMaintenance; +using OpenAuth.Repository; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using OpenAuth.App.Interface; +using SqlSugar; +using OpenAuth.Repository.Domain.FireManagement; +using Infrastructure; +using OpenAuth.App.ServiceApp.FireManagement.Request; +using Yitter.IdGenerator; +using OpenAuth.App.Const; +using DocumentFormat.OpenXml.Spreadsheet; +using OpenAuth.Repository.Domain; +using OpenAuth.App.ServiceApp.FireManagement.Response; + +namespace OpenAuth.App.ServiceApp.FireManagement +{ + public class FireManagementApp : SqlSugarBaseApp + { + public FireManagementApp(ISugarUnitOfWork unitWork, + ISimpleClient repository, IAuth auth) : base(unitWork, repository, auth) + { + _auth = auth; + } + /// + /// 下发防火线索任务 + /// + /// + /// + public async Task> IssuedFireClueTask(FmFireclueTask info) + { + using (var db = base.UnitWork.CreateContext()) + { + info.Id = YitIdHelper.NextId(); + info.State = (int)TaskState.待接收; + info.TaskTime = DateTime.Now; + info.IsDelete = false; + await db.FmFireclueTask.InsertAsync(info); + List fftuList = new List(); + if (info.RecipientUsers == null || info.RecipientUsers.Count == 0) + { + var userList = await db.User.AsQueryable().Where(r => r.Status == 0).ToListAsync(); + userList.ForEach(user => + { + FmFireTaskUser fftu = new FmFireTaskUser + { + Id = YitIdHelper.NextId(), + UserId = user.Id.ToString(), + TaskId = info.Id, + ReceiveTime = DateTime.Now, + State = (int)TaskState.待接收 + }; + fftuList.Add(fftu); + }); + } + else + { + info.RecipientUsers.ForEach(user => + { + FmFireTaskUser fftu = new FmFireTaskUser + { + Id = YitIdHelper.NextId(), + UserId = user, + TaskId = info.Id, + ReceiveTime = DateTime.Now, + State = (int)TaskState.待接收 + }; + fftuList.Add(fftu); + }); + } + await db.FmFireTaskUser.InsertRangeAsync(fftuList); + if (db.Commit()) + { + return new Response { Result = true, Message = "操作成功" }; + } + else + { + return new Response { Result = false, Message = "操作失败" }; + } + } + } + + //查询下发人员 + public async Task>> GetIssuedUsers(string username) + { + using (var db = base.UnitWork.CreateContext()) + { + var users = await db.User.AsQueryable() + .WhereIF(string.IsNullOrEmpty(username),r=>r.Name.Contains(username)) + .Where(r => r.Status==0) + .Select(r=> new SysUserResp + { + Id = r.Id, + Name = r.Name + }) .ToListAsync(); + return new Response> { Result = users }; + } + } + } +} diff --git a/OpenAuth.App/ServiceApp/FireManagement/Response/SysUserResp.cs b/OpenAuth.App/ServiceApp/FireManagement/Response/SysUserResp.cs new file mode 100644 index 0000000..fa1e8f8 --- /dev/null +++ b/OpenAuth.App/ServiceApp/FireManagement/Response/SysUserResp.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OpenAuth.App.ServiceApp.FireManagement.Response +{ + public class SysUserResp + { + public long Id { get; set; } + /// + /// 用户姓名 + /// + [Description("用户姓名")] + public string Name { get; set; } + + } +} diff --git a/OpenAuth.Repository/Domain/FireManagement/FmFireclueTask.cs b/OpenAuth.Repository/Domain/FireManagement/FmFireclueTask.cs index dbff115..1848112 100644 --- a/OpenAuth.Repository/Domain/FireManagement/FmFireclueTask.cs +++ b/OpenAuth.Repository/Domain/FireManagement/FmFireclueTask.cs @@ -14,11 +14,7 @@ namespace OpenAuth.Repository.Domain.FireManagement /// 主键 /// public long Id { get; set; } - - /// - /// 接收人 - /// - public string Recipient { get; set; } + /// /// 任务内容 @@ -79,5 +75,7 @@ namespace OpenAuth.Repository.Domain.FireManagement /// 逻辑删除标志 /// public bool IsDelete { get; set; } + [SugarColumn(IsIgnore = true)] + public List RecipientUsers { get; set; } } } diff --git a/OpenAuth.Repository/SugarDbContext.cs b/OpenAuth.Repository/SugarDbContext.cs index 7724a71..c13e990 100644 --- a/OpenAuth.Repository/SugarDbContext.cs +++ b/OpenAuth.Repository/SugarDbContext.cs @@ -1,6 +1,7 @@ using Models; using OpenAuth.Repository.Domain; using OpenAuth.Repository.Domain.DataMaintenance; +using OpenAuth.Repository.Domain.FireManagement; using SqlSugar; using System; using System.Collections.Generic; @@ -66,7 +67,9 @@ namespace OpenAuth.Repository #endregion #region 防火平台实体类 - + public SugarRepositiry FmFireclueTask { get; set; } + public SugarRepositiry FmFireTaskUser { get; set; } + #endregion public SugarRepositiry DmModule { get; set; } diff --git a/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs b/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs new file mode 100644 index 0000000..4768367 --- /dev/null +++ b/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs @@ -0,0 +1,66 @@ +using Infrastructure; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using OpenAuth.App.ServiceApp.FireManagement; +using OpenAuth.App.ServiceApp.FireManagement.Response; +using OpenAuth.Repository.Domain; +using OpenAuth.Repository.Domain.FireManagement; + +namespace OpenAuth.WebApi.Controllers.ServiceControllers.FireManagement +{ + /// + /// 防火管理模块 + /// + [Route("api/[controller]/[action]")] + [ApiController] + public class FireManagementController : ControllerBase + { + private readonly FireManagementApp _app; + + public FireManagementController(FireManagementApp app) + { + _app = app; + } + + /// + /// 下发防火线索任务 + /// + /// 防火任信息 + /// + [HttpPost] + public async Task> IssuedFireClueTask(FmFireclueTask info) + { + Response response = new Response(); + try + { + return await _app.IssuedFireClueTask(info); + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.InnerException?.Message ?? ex.Message; + } + return response; + } + /// + /// 查询下发人员 + /// + /// + /// + [HttpGet] + public async Task>> GetIssuedUsers(string username) + { + Response> response = new Response>(); + try + { + return await _app.GetIssuedUsers(username); + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.InnerException?.Message ?? ex.Message; + } + return response; + } + } +}