81 lines
2.7 KiB
C#
81 lines
2.7 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;
|
|
using Infrastructure.Extensions;
|
|
using Moq;
|
|
using OpenAuth.App.ServiceApp.InsTaskHallManager.Response;
|
|
|
|
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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 完成任务
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public async Task<List<InsTaskRes>> GetCompleteTaskList()
|
|
{
|
|
var query = await client.Queryable<InsTask>().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;
|
|
}
|
|
|
|
}
|
|
}
|