using Microsoft.AspNetCore.SignalR; using OASystem.Domain.Entities.Groups; using OASystem.Domain.Entities.PersonnelModule; using OASystem.Infrastructure.Repositories.PersonnelModule; using ILogger = Microsoft.Extensions.Logging.ILogger; namespace OASystem.API.OAMethodLib.Quartz.Business { /// <summary> /// 任务指派 /// 定时任务 /// </summary> public static class TaskAssignment { private readonly static TaskAllocationRepository _taskAllocationRep = AutofacIocManager.Instance.GetService<TaskAllocationRepository>(); private readonly static ILogger _logger; /// <summary> /// 定时任务更改状态 /// 每天下午六点定时更新 /// </summary> public static async void PostTaskUpdateStatus() { var data = await _taskAllocationRep._sqlSugar .Queryable<Pm_TaskAllocation>() .Where(it => it.IsDel == 0 && !string.IsNullOrEmpty(it.PredictEndTime) && Convert.ToDateTime(it.PredictEndTime) >= DateTime.Now ) .ToListAsync(); if (data.Count > 0) { //处理要变更状态的员工 List<int> primaryIds = new List<int>(); primaryIds = data.Select(it => it.Id).ToList(); var subData = await _taskAllocationRep._sqlSugar .Queryable<Pm_TaskRelevanceUser>() .Where(it => it.IsDel == 0 && primaryIds.Contains(it.TAId) && it.TaskStatus <= TaskerEnum.UnderWay ) .ToListAsync(); foreach (var item in subData) { item.OverTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); item.TaskStatus = TaskerEnum.UnFinished; item.Cause = string.Format(@"任务没有提交完成或者超时,由系统设置任务未完成"); } if (subData.Count > 0) { var updateStatus = await _taskAllocationRep._sqlSugar .Updateable(subData) .WhereColumns(it => it.Id) .ExecuteCommandAsync(); } } } } }