IOrderApplication.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using Hotline.FlowEngine.Workflows;
  9. using Hotline.Orders;
  10. using Hotline.Settings;
  11. using Hotline.Share.Dtos;
  12. using Hotline.Share.Dtos.Bi;
  13. using Hotline.Share.Dtos.DataSharing.PusherHotlineDto;
  14. using Hotline.Share.Dtos.FlowEngine;
  15. using Hotline.Share.Dtos.FlowEngine.Workflow;
  16. using Hotline.Share.Dtos.Order;
  17. using Hotline.Share.Enums.Order;
  18. using Hotline.Share.Enums.Settings;
  19. using Hotline.Share.Requests;
  20. using MediatR;
  21. using Microsoft.AspNetCore.Mvc;
  22. using SqlSugar;
  23. using XF.Domain.Authentications;
  24. using XF.Domain.Entities;
  25. namespace Hotline.Application.Orders
  26. {
  27. public interface IOrderApplication
  28. {
  29. /// <summary>
  30. /// 派单量统计
  31. /// </summary>
  32. /// <param name="dto"></param>
  33. /// <returns></returns>
  34. Task<List<SendOrderReportOutDto>> SendOrderReportAsync(QuerySendOrderRequest dto);
  35. /// <summary>
  36. /// 更新工单办理期满时间
  37. /// 1.更新工单 2.更新流程
  38. /// </summary>
  39. /// <returns></returns>
  40. Task DelayOrderExpiredTimeAsync(string orderId, int timeCount, ETimeType timeType, bool IsProDelay, CancellationToken cancellationToken);
  41. /// <summary>
  42. /// 新增工单办理流程记录
  43. /// </summary>
  44. Task AddOrderTracesAsync(string orderId, ICollection<WorkflowTraceDto> traces, CancellationToken cancellationToken);
  45. /// <summary>
  46. /// 撤销工单
  47. /// </summary>
  48. Task CancelOrderAsync(string orderId, string opinion, CancellationToken cancellationToken);
  49. ISugarQueryable<Order> GetToExpireAsync(AboutToExpireListDto dto);
  50. //Task<PagedDto<WorkflowOrderDto>> GetToExpireNodeAsync(AboutToExpireListDto dto, CancellationToken cancellationToken);
  51. ISugarQueryable<Order> GetAboutToExpireAsync(AboutToExpireListDto dto);
  52. //Task<PagedDto<WorkflowOrderDto>> GetAboutToExpireNodeAsync(AboutToExpireListDto dto, CancellationToken cancellationToken);
  53. Task OrderParticiple(string inputStr, string orderId, DateTime time, CancellationToken cancellationToken);
  54. Task OrderSensitiveParticiple(string inputStr, string orderId, CancellationToken cancellationToken);
  55. /// <summary>
  56. /// 接收外部平台工单
  57. /// </summary>
  58. Task<AddOrderResponse> ReceiveOrderFromExternalAsync(AddOrderDto dto, ISessionContext current, CancellationToken cancellationToken);
  59. /// <summary>
  60. /// 接收外部平台修改工单附件
  61. /// </summary>
  62. Task UpdateOrderFilesAnonymousAsync(UpdateOrderFilesDto dto, CancellationToken cancellationToken);
  63. /// <summary>
  64. /// 工单回访
  65. /// </summary>
  66. /// <param name="dto"></param>
  67. /// <param name="cancellationToken"></param>
  68. /// <returns></returns>
  69. Task OrderVisitWeb(OrderVisitWebDto dto, CancellationToken cancellationToken);
  70. /// <summary>
  71. /// 回访保存
  72. /// </summary>
  73. /// <param name="dto"></param>
  74. /// <param name="cancellationToken"></param>
  75. /// <returns></returns>
  76. Task SaveOrderVisit(VisitDto dto, CancellationToken cancellationToken);
  77. /// <summary>
  78. /// 发送回访短信
  79. /// </summary>
  80. /// <param name="dto"></param>
  81. /// <returns></returns>
  82. Task VisitPushSMSAsync(VisitSmsInDto dto, CancellationToken cancellationToken);
  83. /// <summary>
  84. /// 回访来源统计
  85. /// </summary>
  86. /// <param name="dto"></param>
  87. /// <returns></returns>
  88. Task<IList<OrderVisitSourceChannelDto>> QueryOrderVisitSourceChannelAsync(QueryOrderVisitSourceChannelDto dto);
  89. /// <summary>
  90. /// 发布量统计
  91. /// </summary>
  92. /// <param name="dto"></param>
  93. /// <returns></returns>
  94. Task<(int, IList<PublishedOrderStatisticsDto>)> QueryPublishedOrderAsync(QueryOrderPublishStatisticsDto dto, bool isFull);
  95. /// <summary>
  96. /// 部门发布量统计
  97. /// </summary>
  98. /// <param name="dto"></param>
  99. /// <returns></returns>
  100. /// <exception cref="UserFriendlyException"></exception>
  101. Task<(int, IList<PublishedOrderStatisticsDto>)> QueryPublishedOrderDepartmentAsync(QueryOrderPublishStatisticsAllDto dto, bool isFull);
  102. #region 工单办理
  103. ISugarQueryable<Order> QueryOrders(QueryOrderDto dto);
  104. /// <summary>
  105. /// 保存工单办理时页面填写的数据
  106. /// </summary>
  107. /// <param name="dto"></param>
  108. /// <returns></returns>
  109. Task<Order> SaveOrderWorkflowInfo(NextWorkflowDto dto, CancellationToken cancellationToken);
  110. #endregion
  111. /// <summary>
  112. /// 未签收统计
  113. /// </summary>
  114. /// <param name="dto"></param>
  115. /// <returns></returns>
  116. ISugarQueryable<Order, WorkflowStep> QueryUnsignedOrders(QueryUnsignedOrdersRequest dto);
  117. /// <summary>
  118. /// 信件来源统计
  119. /// </summary>
  120. /// <param name="dto"></param>
  121. /// <returns></returns>
  122. ISugarQueryable<Order> QueryOrderSource(QueryOrderSourceRequest dto);
  123. /// <summary>
  124. /// 信件来源统计
  125. /// </summary>
  126. /// <param name="dto"></param>
  127. /// <returns></returns>
  128. ISugarQueryable<Order> QueryOrderSourceDetail(QueryOrderSourceDetailRequest dto);
  129. /// <summary>
  130. /// 部门超期统计
  131. /// </summary>
  132. /// <param name="dto"></param>
  133. /// <returns></returns>
  134. ISugarQueryable<OrderBiOrgDataListVo> QueryOrgDataList(ReportPagedRequest dto);
  135. /// <summary>
  136. /// 部门超期统计明细
  137. /// </summary>
  138. /// <param name="dto"></param>
  139. /// <returns></returns>
  140. ISugarQueryable<Order> QueryOrgDataListDetail(OrgDataListDetailRequest dto);
  141. /// <summary>
  142. /// 部门全量超期统计明细
  143. /// </summary>
  144. /// <param name="dto"></param>
  145. /// <returns></returns>
  146. ISugarQueryable<Order> QueryOrgDataListDetail(OrgDataListAllDetailRequest dto);
  147. /// <summary>
  148. /// 回退错件统计
  149. /// </summary>
  150. /// <param name="dto"></param>
  151. /// <returns></returns>
  152. ISugarQueryable<OrderReTransactVo> OrderReTransact(QueryOrderReTransactRequest dto);
  153. /// <summary>
  154. /// 回退错件明细统计
  155. /// </summary>
  156. /// <param name="dto"></param>
  157. /// <returns></returns>
  158. ISugarQueryable<OrderSpecialDetail> QueryOrderSourceDetail(QueryOrderReTransactDetailRequest dto);
  159. /// <summary>
  160. /// 部门满意度统计
  161. /// </summary>
  162. /// <returns></returns>
  163. Task<List<VisitAndOrgSatisfactionStatisticsDto>> VisitAndOrgSatisfactionStatistics(PagedKeywordSonRequest dto);
  164. /// <summary>
  165. /// 子部门满意度
  166. /// </summary>
  167. /// <param name="dto"></param>
  168. /// <returns></returns>
  169. Task<List<VisitAndOrgSatisfactionStatisticsDto>> VisitAndOrgStatisfactionOrgDetail(PagedKeywordSonRequest dto);
  170. /// <summary>
  171. /// 热点-区域统计
  172. /// </summary>
  173. /// <param name="dto"></param>
  174. /// <returns></returns>
  175. Task<(List<SystemArea> area, object items)> HotspotAndAreaStatistics(HotspotAndAreaStatisticsReq dto);
  176. /// <summary>
  177. /// 热点-区域统计导出
  178. /// </summary>
  179. /// <param name="dto"></param>
  180. /// <returns></returns>
  181. Task<DataTable> HotspotAndAreaStatisticsExport(HotspotAndAreaStatisticsReq dto);
  182. /// <summary>
  183. /// 热点-区域统计
  184. /// </summary>
  185. /// <param name="dt"></param>
  186. /// <param name="AddColumnName"></param>
  187. /// <param name="HotspotLevel"></param>
  188. /// <returns></returns>
  189. DataTable InitHotspotTable(DataTable dt, List<string> AddColumnName, int HotspotLevel);
  190. /// <summary>
  191. /// 热点类型满意度统计
  192. /// </summary>
  193. /// <param name="dto"></param>
  194. /// <returns></returns>
  195. Task<List<VisitAndHotspotSatisfactionStatisticsDto>> VisitAndHotspotSatisfactionStatistics(VisitAndHotspotPagedKeywordRequest dto);
  196. /// <summary>
  197. /// 热点满意度明细统计
  198. /// </summary>
  199. /// <param name="dto"></param>
  200. /// <returns></returns>
  201. ISugarQueryable<OrderVisitDetail> VisitAndHotspotSatisfactionDetail(VisitAndHotspotPagedKeywordRequest dto);
  202. /// <summary>
  203. /// 话务员办件统计
  204. /// </summary>
  205. /// <param name="dto"></param>
  206. /// <returns></returns>
  207. ISugarQueryable<OrderBiCentreDataListVo> CentreDataList(ReportPagedRequest dto);
  208. /// <summary>
  209. /// 热点受理类型统计
  210. /// </summary>
  211. /// <param name="dto"></param>
  212. /// <returns></returns>
  213. Task<(List<SystemDicData> acceptTypes, object items)> HotspotAndAcceptTypeStatistics(HotspotAndAcceptTypeStatisticsReq dto);
  214. /// <summary>
  215. /// 热点受理类型统计--导出
  216. /// </summary>
  217. /// <param name="dto"></param>
  218. /// <returns></returns>
  219. Task<DataTable> HotspotAndAcceptTypeStatisticsExport(HotspotAndAcceptTypeStatisticsReq dto);
  220. /// <summary>
  221. /// 热点受理类型明细
  222. /// </summary>
  223. /// <param name="dto"></param>
  224. /// <returns></returns>
  225. ISugarQueryable<Order> HotspotAndAcceptTypeStatisticsDetail(HotspotAndAcceptTypeStatisticsDetailReq dto);
  226. /// <summary>
  227. /// 甄别申请统计
  228. /// </summary>
  229. /// <param name="dto"></param>
  230. /// <returns></returns>
  231. ISugarQueryable<OrderScreenApplyVo> OrderScreenApply(OrderScreenApplyPagedRequest dto);
  232. /// <summary>
  233. /// 甄别审批统计
  234. /// </summary>
  235. /// <param name="dto"></param>
  236. /// <returns></returns>
  237. ISugarQueryable<OrderScreenAuditVo> OrderScreenAudit(OrderScreenAuditPagedRequest dto);
  238. /// <summary>
  239. /// 中心受理统计(日期)
  240. /// </summary>
  241. /// <param name="dto"></param>
  242. /// <returns></returns>
  243. ISugarQueryable<OrderCenterAcceptVo> OrderCenterAccept(OrderCenterAcceptPagedRequest dto);
  244. /// <summary>
  245. /// 中心受理统计(值班坐席)
  246. /// </summary>
  247. /// <returns></returns>
  248. ISugarQueryable<OrderCenterAcceptUserVo> OrderCenterAcceptUser(OrderCenterAcceptPagedRequest dto);
  249. /// <summary>
  250. /// 扭转信件统计
  251. /// </summary>
  252. /// <param name="dto"></param>
  253. /// <returns></returns>
  254. ISugarQueryable<OrderVisitJudeStatisticsRep> OrderVisitJudeStatistics(OrderVisitJudeStatisticsReq dto);
  255. /// <summary>
  256. /// 观察关注列表
  257. /// </summary>
  258. /// <param name="dto"></param>
  259. /// <returns></returns>
  260. ISugarQueryable<OrderObserve> OrderObserveList(OrderObserveListDto dto);
  261. }
  262. }