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; using OpenAuth.App.ServiceApp.InsTaskHallManager.Response; 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) .Select(r => new { id=r.Id, datetime= r.CompleteTime.Value.Date }) .MergeTable() .GroupBy(r=>r.datetime) .Select(r => new InsTaskRes { count = SqlFunc.AggregateCount(r.id), time= r.datetime }) .MergeTable().OrderBy(r => r.time) .ToListAsync(); return query; } } }