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;
+ }
+ }
+}