using OpenAuth.App.BaseApp.Base; using OpenAuth.Repository.Domain; 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 Microsoft.Extensions.Configuration; using DocumentFormat.OpenXml.Office2010.ExcelAc; using DocumentFormat.OpenXml.Office2010.CustomUI; using NPOI.OpenXmlFormats.Dml; using Infrastructure.Extensions; using Moq; namespace OpenAuth.App.ServiceApp.InsTaskHallManager { public class InsTaskHallApp : SqlSugarBaseApp { private readonly IConfiguration _configuration; private readonly ISqlSugarClient client; public InsTaskHallApp(ISugarUnitOfWork unitWork, ISimpleClient repository, IAuth auth, ISqlSugarClient sqlSugarClient, IConfiguration configuration) : base(unitWork, repository, auth) { _configuration = configuration; this.client = sqlSugarClient; } /// /// 任务区 /// /// public async Task> GetTaskList() { var query = await client.Queryable().Where(r => r.IsCompleted == false) .LeftJoin((r, p) => r.ShpId == p.Id) .OrderByDescending(r=>r.CreateTime) .Select((r, p) => new { r.Id, r.TaskName, r.State, p.ShpCount, CompleteCount = SqlFunc.Subqueryable().Where(a => a.TaskId == r.Id).Count() > 0 ? SqlFunc.Subqueryable().Where(a => a.TaskId == r.Id).Sum(r => (r.EndNum - r.BeginNum)) : 0 }).ToListAsync(); return query; } /// /// 完成任务 /// /// public async Task> GetCompleteTaskList() { var query = await client.Queryable().Where(r => r.IsCompleted == true&&r.CompleteTime!=null) .OrderByDescending(r => r.CompleteTime) .GroupBy(r=>r.CompleteTime.ToString("yyyy-MM-dd")) .Select(r => new { count = SqlFunc.AggregateCount(r.Id), time= r.CompleteTime.ToString("yyyy-MM-dd") }).ToListAsync(); return query; } } }