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