TaskAssignment.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using Microsoft.AspNetCore.SignalR;
  2. using OASystem.API.OAMethodLib.Hubs;
  3. using OASystem.Domain.Entities.Groups;
  4. using OASystem.Domain.Entities.PersonnelModule;
  5. using OASystem.Infrastructure.Repositories.PersonnelModule;
  6. using ILogger = Microsoft.Extensions.Logging.ILogger;
  7. namespace OASystem.API.OAMethodLib.Quartz.Business
  8. {
  9. /// <summary>
  10. /// 任务指派
  11. /// 定时任务
  12. /// </summary>
  13. public static class TaskAssignment
  14. {
  15. private readonly static TaskAllocationRepository _taskAllocationRep = AutofacIocManager.Instance.GetService<TaskAllocationRepository>();
  16. private readonly static ILogger _logger;
  17. /// <summary>
  18. /// 定时任务更改状态
  19. /// 每天下午六点定时更新
  20. /// </summary>
  21. public static async void PostTaskUpdateStatus()
  22. {
  23. var data = await _taskAllocationRep._sqlSugar
  24. .Queryable<Pm_TaskAllocation>()
  25. .Where(it => it.IsDel == 0 &&
  26. !string.IsNullOrEmpty(it.PredictEndTime) &&
  27. Convert.ToDateTime(it.PredictEndTime) >= DateTime.Now
  28. )
  29. .ToListAsync();
  30. if (data.Count > 0)
  31. {
  32. //处理要变更状态的员工
  33. List<int> primaryIds = new List<int>();
  34. primaryIds = data.Select(it => it.Id).ToList();
  35. var subData = await _taskAllocationRep._sqlSugar
  36. .Queryable<Pm_TaskRelevanceUser>()
  37. .Where(it => it.IsDel == 0 &&
  38. primaryIds.Contains(it.TAId) &&
  39. it.TaskStatus <= (int)TaskEnum.UnderWay
  40. )
  41. .ToListAsync();
  42. foreach (var item in subData)
  43. {
  44. item.OverTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm-ss");
  45. item.TaskStatus = (int)TaskEnum.UnFinished;
  46. item.Cause = string.Format(@"任务没有提交完成或者超时,由系统设置任务未完成");
  47. }
  48. if (subData.Count > 0)
  49. {
  50. var updateStatus = await _taskAllocationRep._sqlSugar
  51. .Updateable(subData)
  52. .WhereColumns(it => it.Id)
  53. .ExecuteCommandAsync();
  54. }
  55. }
  56. }
  57. /// <summary>
  58. /// 任务消息推送
  59. /// 每天下午2点定时推送
  60. /// </summary>
  61. public static async void PostTaskNewsFeed()
  62. {
  63. }
  64. }
  65. }