TelRest.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System.ComponentModel;
  2. using Hotline.Share.Enums.CallCenter;
  3. using SqlSugar;
  4. using XF.Domain.Entities;
  5. using XF.Domain.Repository;
  6. namespace Hotline.CallCenter.Tels
  7. {
  8. [Description("分机休息记录")]
  9. public class TelRest : WorkflowEntity//, CreationModificationEntity
  10. {
  11. /// <summary>
  12. /// 分机id
  13. /// </summary>
  14. public string TelId { get; set; }
  15. /// <summary>
  16. /// 分机号(冗余)
  17. /// </summary>
  18. public string TelNo { get; set; }
  19. /// <summary>
  20. /// 用户id
  21. /// </summary>
  22. public string UserId { get; set; }
  23. /// <summary>
  24. /// 用户名称(冗余)
  25. /// </summary>
  26. public string UserName { get; set; }
  27. /// <summary>
  28. /// 开始休息时间
  29. /// </summary>
  30. [SugarColumn(ColumnDescription = "开始休息时间")]
  31. public DateTime? StartTime { get; set; }
  32. /// <summary>
  33. /// 结束休息时间
  34. /// </summary>
  35. [SugarColumn(ColumnDescription = "结束休息时间")]
  36. public DateTime? EndTime { get; private set; }
  37. /// <summary>
  38. /// 休息时长(单位:秒)
  39. /// </summary>
  40. [SugarColumn(ColumnDescription = "休息时长(单位:秒)")]
  41. public double RestDuration { get; private set; }
  42. public string Reason { get; set; }
  43. /// <summary>
  44. /// 审核状态
  45. /// </summary>
  46. public ETelRestApplyStatus ApplyStatus { get; set; }
  47. /// <summary>
  48. /// 工号(冗余)
  49. /// </summary>
  50. [SugarColumn( IsNullable = true)]
  51. public string? StaffNo { get; set; }
  52. public TelRest()
  53. {
  54. }
  55. public TelRest(string telId, string telNo, string userId, string userName,string reason,bool isApply,string staffNo)
  56. {
  57. TelId = telId; TelNo = telNo; UserId = userId; UserName = userName; Reason = reason;StaffNo = staffNo;
  58. if(isApply)
  59. {
  60. ApplyStatus = ETelRestApplyStatus.NoAudit;
  61. }
  62. else
  63. {
  64. ApplyStatus = ETelRestApplyStatus.Resting;
  65. StartTime = DateTime.Now;
  66. }
  67. }
  68. public void EndRest()
  69. {
  70. EndTime = DateTime.Now;
  71. RestDuration = (EndTime.Value - StartTime.Value).TotalSeconds;
  72. }
  73. }
  74. }