Infrastructure/OpenAuth.App/ServiceApp/InsTaskHallManager/InsTaskHallApp.cs

54 lines
1.8 KiB
C#

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;
namespace OpenAuth.App.ServiceApp.InsTaskHallManager
{
public class InsTaskHallApp : SqlSugarBaseApp<InsTask, SugarDbContext>
{
private readonly IConfiguration _configuration;
private readonly ISqlSugarClient client;
public InsTaskHallApp(ISugarUnitOfWork<SugarDbContext> unitWork,
ISimpleClient<InsTask> repository, IAuth auth, ISqlSugarClient sqlSugarClient,
IConfiguration configuration) : base(unitWork, repository, auth)
{
_configuration = configuration;
this.client = sqlSugarClient;
}
/// <summary>
/// 任务区
/// </summary>
/// <returns></returns>
public async Task<List<dynamic>> GetTaskList()
{
var query = await client.Queryable<InsTask>().Where(r => r.IsCompleted == false)
.LeftJoin<InsAishp>((r, p) => r.ShpId == p.Id)
.OrderByDescending(r=>r.CreateTime)
.Select<dynamic>((r, p) => new
{
r.Id,
r.TaskName,
r.State,
p.ShpCount,
CompleteCount = SqlFunc.Subqueryable<InsTaskgroup>().Where(a => a.TaskId == r.Id).Count() > 0 ? SqlFunc.Subqueryable<InsTaskgroup>().Where(a => a.TaskId == r.Id).Sum(r => (r.EndNum - r.BeginNum)) : 0
}).ToListAsync();
return query;
}
}
}