IOrderDomainService.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. using Hotline.Schedulings;
  2. using Hotline.Share.Dtos.FlowEngine;
  3. using Hotline.Share.Dtos.Order;
  4. using Hotline.Share.Enums.FlowEngine;
  5. namespace Hotline.Orders
  6. {
  7. public interface IOrderDomainService
  8. {
  9. #region OrderHandle
  10. Task<Order> GetOrderAsync(string? orderId, bool withHotspot = false, bool withAcceptor = false,
  11. bool withExtension = false, CancellationToken cancellationToken = default);
  12. Task<string> AddAsync(Order order, bool autoAccept = false, CancellationToken cancellationToken = default);
  13. /// <summary>
  14. /// 撤回或跳转前处理数据及校验
  15. /// <remarks>
  16. ///工单撤回时需校验工单当前是否存在待发布记录、待回访记录,若存在需删除对应记录(跳转同理)
  17. ///工单撤回时需校验工单是否存在甄别中记录,若存在不允许撤回当前工单(跳转同理)
  18. /// </remarks>
  19. /// </summary>
  20. Task ReadyToRecallAsync(string orderId, CancellationToken cancellationToken);
  21. ///// <summary>
  22. ///// 计算并赋值order的几个时长字段
  23. ///// </summary>
  24. ///// <returns></returns>
  25. //Task CalculateAndSetOrderDuration(bool setHandleDuration, bool setFileDuration, bool allDuration);
  26. #endregion
  27. #region OrderRedo
  28. Task<string> AddOrderRedoAsync(OrderRedo orderRedo, CancellationToken cancellationToken);
  29. Task RemoveOrderRedoAsync(string id, CancellationToken cancellationToken);
  30. Task UpdateOrderRedoAsync(OrderRedo orderRedo, CancellationToken cancellationToken);
  31. #endregion
  32. #region 扩展信息
  33. Task<OrderExtension?> GetOrderExtensionsAsync(string provinceNo, CancellationToken cancellationToken);
  34. Task UpdateExtensionAsync(OrderExtension orderExtension, CancellationToken cancellationToken);
  35. /// <summary>
  36. /// 新增工单扩展信息
  37. /// </summary>
  38. Task AddExtensionAsync(OrderExtension extension, CancellationToken cancellationToken);
  39. #endregion
  40. #region OrderComplement
  41. /// <summary>
  42. /// 新增工单补充信息
  43. /// </summary>
  44. Task<string> AddOrderComplementAsync(AddOrderComplementDto dto, CancellationToken cancellationToken);
  45. #endregion
  46. #region 平均派单
  47. /// <summary>
  48. /// 平均派单
  49. /// </summary>
  50. /// <returns></returns>
  51. Task<FlowStepHandler> AverageOrder(CancellationToken cancellationToken);
  52. /// <summary>
  53. /// 登录平均派单
  54. /// </summary>
  55. /// <param name="userId"></param>
  56. /// <returns></returns>
  57. Task LogAverageOrder(string userId, Scheduling scheduling, CancellationToken cancellationToken);
  58. /// <summary>
  59. /// 触发平均派单
  60. /// </summary>
  61. /// <returns></returns>
  62. Task TriggerAverageOrder(CancellationToken cancellationToken);
  63. #endregion
  64. #region 工单校验- 交通类工单
  65. /// <summary>
  66. /// 工单校验 - 交通类工单
  67. /// </summary>
  68. /// <returns></returns>
  69. Task<OrderValidation> OrderValidation(AddOrderDto dto, CancellationToken cancellationToken);
  70. #endregion
  71. /// <summary>
  72. /// 验证是否是管理员
  73. /// </summary>
  74. /// <returns></returns>
  75. bool IsCheckAdmin();
  76. /// <summary>
  77. /// 推送即将超期和超期短信
  78. /// </summary>
  79. /// <returns></returns>
  80. Task SendOverTimeSms(CancellationToken cancellationToken);
  81. Task OrderPublishAsync(Order order, CancellationToken cancellationToken);
  82. Task OrderAutomaticPublishAsync(Order order, CancellationToken cancellationToken);
  83. /// <summary>
  84. /// 重办和退回工单时如果有取消发布的工单, 清除回访待办和回访列表中的数据
  85. /// </summary>
  86. /// <param name="orderId"></param>
  87. /// <param name="cancellationToken"></param>
  88. /// <returns></returns>
  89. Task VisitNoneByCancelPublishAsync(string orderId, CancellationToken cancellationToken);
  90. /// <summary>
  91. /// 查询退回操作目标节点的指派方式
  92. /// </summary>
  93. ReverseFlowStepAssignInfo GetOrderPreviousAssignInfo(EBusinessType targetStepBusinessType, AssignStepHandler? handler);
  94. }
  95. }