TaskAssignment.cs 3.0 KB

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