任务下发

DataMaintenance
zhangbin 2025-03-21 16:42:48 +08:00
parent 7d83aa8e01
commit 5f1eac0f74
6 changed files with 222 additions and 6 deletions

View File

@ -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
{
}
/// <summary>
/// 任务状态
/// </summary>
public enum TaskState
{
[Description("待接收")]
= 1,
[Description("已接收")]
= 2,
[Description("已完成")]
= 3,
}
}

View File

@ -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<FmFireclueTask, SugarDbContext>
{
public FireManagementApp(ISugarUnitOfWork<SugarDbContext> unitWork,
ISimpleClient<FmFireclueTask> repository, IAuth auth) : base(unitWork, repository, auth)
{
_auth = auth;
}
/// <summary>
/// 下发防火线索任务
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
public async Task<Response<bool>> 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<FmFireTaskUser> fftuList = new List<FmFireTaskUser>();
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<bool> { Result = true, Message = "操作成功" };
}
else
{
return new Response<bool> { Result = false, Message = "操作失败" };
}
}
}
//查询下发人员
public async Task<Response<List<SysUserResp>>> 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<List<SysUserResp>> { Result = users };
}
}
}
}

View File

@ -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; }
/// <summary>
/// 用户姓名
/// </summary>
[Description("用户姓名")]
public string Name { get; set; }
}
}

View File

@ -14,11 +14,7 @@ namespace OpenAuth.Repository.Domain.FireManagement
/// 主键
/// </summary>
public long Id { get; set; }
/// <summary>
/// 接收人
/// </summary>
public string Recipient { get; set; }
/// <summary>
/// 任务内容
@ -79,5 +75,7 @@ namespace OpenAuth.Repository.Domain.FireManagement
/// 逻辑删除标志
/// </summary>
public bool IsDelete { get; set; }
[SugarColumn(IsIgnore = true)]
public List<string> RecipientUsers { get; set; }
}
}

View File

@ -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> FmFireclueTask { get; set; }
public SugarRepositiry<FmFireTaskUser> FmFireTaskUser { get; set; }
#endregion
public SugarRepositiry<DmModule> DmModule { get; set; }

View File

@ -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
{
/// <summary>
/// 防火管理模块
/// </summary>
[Route("api/[controller]/[action]")]
[ApiController]
public class FireManagementController : ControllerBase
{
private readonly FireManagementApp _app;
public FireManagementController(FireManagementApp app)
{
_app = app;
}
/// <summary>
/// 下发防火线索任务
/// </summary>
/// <param name="info">防火任信息</param>
/// <returns></returns>
[HttpPost]
public async Task<Response<bool>> IssuedFireClueTask(FmFireclueTask info)
{
Response<bool> response = new Response<bool>();
try
{
return await _app.IssuedFireClueTask(info);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
/// <summary>
/// 查询下发人员
/// </summary>
/// <param name="username"></param>
/// <returns></returns>
[HttpGet]
public async Task<Response<List<SysUserResp>>> GetIssuedUsers(string username)
{
Response<List<SysUserResp>> response = new Response<List<SysUserResp>>();
try
{
return await _app.GetIssuedUsers(username);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
}
}