AiDto.cs 15 KB

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