AiDto.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511
  1. using Hotline.Share.Dtos.Order;
  2. using Hotline.Share.Enums.Ai;
  3. using Hotline.Share.Enums.Order;
  4. using Hotline.Share.Requests;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using XF.Utility.EnumExtensions;
  11. namespace Hotline.Share.Dtos.Ai
  12. {
  13. public record AiCallOutDetailListRequest : PagedRequest
  14. {
  15. public string Id { get; set; }
  16. public string? OuterNo { get; set; }
  17. public string? Name { get; set; }
  18. public EAiCallOutState? AiCallOutState { get; set; }
  19. }
  20. public class AiCallOutDetailListRep
  21. {
  22. public string OuterNo { get; set; }
  23. public string Name { get; set; }
  24. public DateTime? CallOutTime { get; set; }
  25. /// <summary>
  26. /// 是否成功
  27. /// </summary>
  28. public bool? IsSuccess { get; set; }
  29. public EAiCallOutState AiCallOutState { get; set; }
  30. public string AiCallOutStateText => AiCallOutState.GetDescription();
  31. }
  32. public record AiCallOutListRequest : PagedRequest
  33. {
  34. public string TaskName { get; set; }
  35. public EAiCallOutTaskState? AiCallOutTaskState { get; set; }
  36. public DateTime? StartTime { get; set; }
  37. public DateTime? EndTime { get; set; }
  38. }
  39. public class AiCallOutListRep
  40. {
  41. public string Id { get; set; }
  42. public string TaskName { get; set; }
  43. public EAiCallOutTaskState AiCallOutTaskState { get; set; }
  44. public string AiCallOutTaskStateText => AiCallOutTaskState.GetDescription();
  45. /// <summary>
  46. /// 批次上报结果ID
  47. /// </summary>
  48. public string? BatchUid { get; set; }
  49. public string CallOutTemplateId { get; set; }
  50. public string CallOutTemplateName { get; set; }
  51. /// <summary>
  52. /// 应回访数量
  53. /// </summary>
  54. public int HasVisitCount { get; set; }
  55. /// <summary>
  56. /// 已回访成功数量
  57. /// </summary>
  58. public int VisitedCount { get; set; }
  59. /// <summary>
  60. /// 已回访失败数量
  61. /// </summary>
  62. public int VisitedFailCount { get; set; }
  63. /// <summary>
  64. /// 节日禁呼 0:否 1:是
  65. /// </summary>
  66. public int FestivalBan { get; set; }
  67. public DateTime BeginTime { get; set; }
  68. public DateTime EndTime { get; set; }
  69. public DateTime CreationTime { get; set; }
  70. /// <summary>
  71. /// 创建人
  72. /// </summary>
  73. public string? CreatorName { get; set; }
  74. /// <summary>
  75. /// 创建部门
  76. /// </summary>
  77. public string? CreatorOrgName { get; set; }
  78. }
  79. public class CallOutTemplateDto
  80. {
  81. public string TemplateName { get; set; }
  82. public string TemplateContent { get; set; }
  83. }
  84. public class CanUseCallOutTemplateListRep
  85. {
  86. public string Id { get; set; }
  87. public string TemplateName { get; set; }
  88. }
  89. public class UpdateCallOutTemplateDto : CallOutTemplateDto
  90. {
  91. public string Id { get; set; }
  92. }
  93. public record AiCallOutTemplateQueryRequest : PagedRequest
  94. {
  95. public string TemplateName { get; set; }
  96. public DateTime? StartTime { get; set; }
  97. public DateTime? EndTime { get; set; }
  98. }
  99. public record AiCallOutTemplateQueryRep
  100. {
  101. public string Id { get; set; }
  102. public string TemplateContent { get; set; }
  103. /// <summary>
  104. /// 模板名称
  105. /// </summary>
  106. public string TemplateName { get; set; }
  107. /// <summary>
  108. /// 外呼任务数
  109. /// </summary>
  110. public int CallOutTaskCount { get; set; }
  111. /// <summary>
  112. /// 创建时间
  113. /// </summary>
  114. public DateTime CreationTime { get; set; }
  115. /// <summary>
  116. /// 是否启用
  117. /// </summary>
  118. public bool IsEnable { get; set; }
  119. /// <summary>
  120. /// 创建人
  121. /// </summary>
  122. public string? CreatorName { get; set; }
  123. /// <summary>
  124. /// 创建部门
  125. /// </summary>
  126. public string? CreatorOrgName { get; set; }
  127. }
  128. public class AiVisitBackDto
  129. {
  130. public string BatchUid { get; set; }
  131. public string BatchName { get; set; }
  132. public string SceneUid { get; set; }
  133. public string SenceName { get; set; }
  134. public string TaskUid { get; set; }
  135. public string CalledNumber { get; set; }
  136. /// <summary>
  137. /// 任务状态( 1 :待执行、2 :暂停中、3 :执行中、4 :失效、5 :呼叫失败 、6:已结束(完成或取消))
  138. /// </summary>
  139. public int TaskStatus { get; set; }
  140. public int CallTimes { get; set; }
  141. public List<CallRecordDto> CallRecordList { get; set; }
  142. }
  143. public class CallRecordDto
  144. {
  145. public int CallNo { get; set; }
  146. /// <summary>
  147. /// 呼叫状态(1:呼叫中、2:完成、3:呼叫失败)
  148. /// </summary>
  149. public int CallStatus { get; set; }
  150. public string? RecordUrl { get; set; }
  151. /// <summary>
  152. /// 回访结果 (1成功、2:不涉及、3:失败)
  153. /// </summary>
  154. public int ReturnVisit { get; set; }
  155. public List<QuestionnaireResult> QuestionnaireResult { get; set; }
  156. /// <summary>
  157. /// 不满意原因
  158. /// </summary>
  159. public Dictionary<string, string> SceneVariable { get; set; }
  160. }
  161. public class QuestionnaireResult
  162. {
  163. public string QuestionId { get; set; }
  164. public string QuestionChoice { get; set; }
  165. public string QuestionResult { get; set; }
  166. }
  167. public record AiVisitListDto : PagedKeywordRequest
  168. {
  169. public EAiOrderVisitTaskState? AiOrderVisitTaskState { get; set; }
  170. }
  171. public record AiVisitDetailListDto : PagedKeywordRequest
  172. {
  173. public string Id { get; set; }
  174. public EAiOrderVisitState? AiOrderVisitState { get; set; }
  175. }
  176. public class AiOrderVisitDto
  177. {
  178. public string Id { get; set; }
  179. public string Name { get; set; }
  180. public DateTime BeginTime { get; set; }
  181. public DateTime EndTime { get; set; }
  182. public EAiOrderVisitTaskState TaskState { get; set; }
  183. public string TaskStateText => TaskState.GetDescription();
  184. /// <summary>
  185. /// 批次上报结果ID
  186. /// </summary>
  187. public string? BatchUid { get; set; }
  188. /// <summary>
  189. /// 节日禁呼 0:否 1:是
  190. /// </summary>
  191. public int FestivalBan { get; set; }
  192. /// <summary>
  193. /// 外呼规则类型 1:自定义 2::使用现有规则
  194. /// </summary>
  195. public int RuleType { get; set; }
  196. /// <summary>
  197. /// 现有外呼规则ID
  198. /// </summary>
  199. public string RuleUid { get; set; }
  200. /// <summary>
  201. /// 应回访数量
  202. /// </summary>
  203. public int HasVisitCount { get; set; }
  204. /// <summary>
  205. /// 已回访成功数量
  206. /// </summary>
  207. public int VisitedCount { get; set; }
  208. /// <summary>
  209. /// 已回访失败数量
  210. /// </summary>
  211. public int VisitedFailCount { get; set; }
  212. public DateTime CreationTime { get; set; }
  213. public string? CreatorName { get; set; }
  214. }
  215. public class AiOrderVisitDetailDto
  216. {
  217. /// <summary>
  218. /// 主表ID
  219. /// </summary>
  220. public string AiOrderVisitId { get; set; }
  221. /// <summary>
  222. /// 工单ID
  223. /// </summary>
  224. public string OrderId { get; set; }
  225. /// <summary>
  226. /// 工单号
  227. /// </summary>
  228. public string No { get; set; }
  229. /// <summary>
  230. /// 工单标题
  231. /// </summary>
  232. public string Title { get; set; }
  233. /// <summary>
  234. /// 姓名
  235. /// </summary>
  236. public string FromName { get; set; }
  237. /// <summary>
  238. /// 来电/信人性别
  239. /// </summary>
  240. public EGender FromGender { get; set; }
  241. /// <summary>
  242. /// 来电/信人性别
  243. /// </summary>
  244. public string FromGenderText => FromGender.GetDescription();
  245. /// <summary>
  246. /// 工单开始时间(受理/接办时间=流程开启时间)
  247. /// </summary>
  248. public DateTime? StartTime { get; set; }
  249. /// <summary>
  250. /// 归档时间(暂为流程结束时间,因流程结束自动归档)
  251. /// </summary>
  252. public DateTime? FiledTime { get; set; }
  253. /// <summary>
  254. /// 话务员评价
  255. /// </summary>
  256. public ESeatEvaluate? SeatEvaluate { get; set; }
  257. public string SeatEvaluateText => SeatEvaluate?.GetDescription() ?? string.Empty;
  258. /// <summary>
  259. /// 部门办件结果
  260. /// </summary>
  261. public string? OrgProcessingResults { get; set; }
  262. /// <summary>
  263. /// 是否联系
  264. /// </summary>
  265. public string? IsContact { get; set; }
  266. /// <summary>
  267. /// 处理结果
  268. /// </summary>
  269. public string? Volved { get; set; }
  270. /// <summary>
  271. /// 工单
  272. /// </summary>
  273. public OrderDto Order { get; set; }
  274. /// <summary>
  275. /// 工单回访主表ID
  276. /// </summary>
  277. public string OrderVisitId { get; set; }
  278. /// <summary>
  279. /// 工单
  280. /// </summary>
  281. public OrderVisitDto OrderVisit { get; set; }
  282. /// <summary>
  283. /// 智能回访录音地址
  284. /// </summary>
  285. public string? RecordUrl { get; set; }
  286. /// <summary>
  287. /// 外呼电话
  288. /// </summary>
  289. public string OuterNo { get; set; }
  290. public EAiOrderVisitState AiOrderVisitState { get; set; }
  291. public string AiOrderVisitStateText => AiOrderVisitState.GetDescription();
  292. /// <summary>
  293. /// 批此上传成功后任务ID
  294. /// </summary>
  295. public string? TaskUid { get; set; }
  296. /// <summary>
  297. /// 是否成功
  298. /// </summary>
  299. public bool? IsSuccess { get; set; }
  300. /// <summary>
  301. /// 是否成功
  302. /// </summary>
  303. public string? IsSuccessText { get; set; }
  304. /// <summary>
  305. /// 重呼次数
  306. /// </summary>
  307. public int CallTimes { get; set; }
  308. }
  309. public class CanAiVisitListDto
  310. {
  311. /// <summary>
  312. /// 工单标题
  313. /// </summary>
  314. public string Title { get; set; }
  315. /// <summary>
  316. /// 工单编号
  317. /// </summary>
  318. public string No { get; set; }
  319. /// <summary>
  320. /// 热点分类
  321. /// </summary>
  322. public string Hotspot { get; set; }
  323. /// <summary>
  324. /// 受理类型
  325. /// </summary>
  326. public string AcceptType { get; set; }
  327. }
  328. public class AddAiVisitDto
  329. {
  330. public string Name { get; set; }
  331. public DateTime BeginTime { get; set; }
  332. public DateTime EndTime { get; set; }
  333. /// <summary>
  334. /// 节日禁呼 0:否 1:是
  335. /// </summary>
  336. public int FestivalBan { get; set; }
  337. public List<AddAiOrderVisitDetailDto> AiOrderVisitDetails { get; set; }
  338. }
  339. public class CloseCalloutTaskReq
  340. {
  341. public string Id { get; set; }
  342. /// <summary>
  343. /// 1 :智能回访 2:批量外呼
  344. /// </summary>
  345. public int TypeId { get; set; }
  346. }
  347. public class AddAiCallOutRequest
  348. {
  349. public string TaskName { get; set; }
  350. public DateTime BeginTime { get; set; }
  351. public DateTime EndTime { get; set; }
  352. /// <summary>
  353. /// 模板ID
  354. /// </summary>
  355. public string CallOutTemplateId { get; set; }
  356. /// <summary>
  357. /// 节日禁呼 0:否 1:是
  358. /// </summary>
  359. public int FestivalBan { get; set; }
  360. public List<AddAiCallOutTaskDetailDto> AddAiCallOutTaskDetailDtos { get; set; }
  361. }
  362. public class AddAiCallOutTaskDetailDto
  363. {
  364. public string OuterNo { get; set; }
  365. public string Name { get; set; }
  366. }
  367. public class AddAiOrderVisitDetailDto
  368. {
  369. /// <summary>
  370. /// 工单ID
  371. /// </summary>
  372. public string OrderId { get; set; }
  373. /// <summary>
  374. /// 工单回访主表ID
  375. /// </summary>
  376. public string OrderVisitId { get; set; }
  377. /// <summary>
  378. /// 外呼电话
  379. /// </summary>
  380. public string OuterNo { get; set; }
  381. }
  382. }