TaskAssignment.cs 3.0 KB

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