PagedKeywordRequest.cs 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287
  1. using Hotline.Share.Dtos;
  2. using Hotline.Share.Enums.Order;
  3. using System.ComponentModel.DataAnnotations;
  4. using XF.Utility.EnumExtensions;
  5. namespace Hotline.Share.Requests;
  6. public record PagedKeywordRequest : PagedRequest
  7. {
  8. /// <summary>
  9. /// 开始时间
  10. /// </summary>
  11. public DateTime? StartTime { get; set; }
  12. /// <summary>
  13. /// 结束时间
  14. /// </summary>
  15. public DateTime? EndTime { get; set; }
  16. public string? Keyword { get; set; }
  17. /// <summary>
  18. /// 排序字段
  19. /// </summary>
  20. public string? SortField { get; set; }
  21. /// <summary>
  22. /// 排序规则 0 升序 1 降序
  23. /// </summary>
  24. public int? SortRule { get; set; }
  25. }
  26. public record PagedKeywordSonRequest : PagedRequest
  27. {
  28. /// <summary>
  29. /// 开始时间
  30. /// </summary>
  31. public DateTime? StartTime { get; set; }
  32. /// <summary>
  33. /// 结束时间
  34. /// </summary>
  35. public DateTime? EndTime { get; set; }
  36. public string? OrgName { get; set; }
  37. public string? OrgCode { get; set; }
  38. /// <summary>
  39. /// 1:办件结果 2:办件态度
  40. /// </summary>
  41. public int? TypeId { get; set; }
  42. public string? LineNum { get; set; }
  43. /// <summary>
  44. /// 来电/信人身份0:全部 ,1:市民,2:企业
  45. /// </summary>
  46. public int? TypeCode { get; set; }
  47. }
  48. public record VisitAndHotspotPagedKeywordRequest : PagedKeywordRequest
  49. {
  50. /// <summary>
  51. /// 热点名称
  52. /// </summary>
  53. public string? HotspotName { get; set; }
  54. /// <summary>
  55. /// 热点id
  56. /// </summary>
  57. public string? HotspotId { get; set; }
  58. /// <summary>
  59. /// 1:办件结果 2:办件态度
  60. /// </summary>
  61. public int TypeId { get; set; }
  62. /// <summary>
  63. /// 标题名称
  64. /// </summary>
  65. public string? TitleCode { get; set; }
  66. }
  67. public record ReportPagedRequest : PagedKeywordRequest
  68. {
  69. /// <summary>
  70. /// 来电/信人身份0:全部 ,1:市民,2:企业
  71. /// </summary>
  72. public int? TypeId { get; set; }
  73. }
  74. /// <summary>
  75. /// 验证了 startTime 和 endTime 不能为空;
  76. /// <inheritdoc cref="ReportRequiredPagedRequestValidator"/>
  77. /// </summary>
  78. public record ReportRequiredPagedRequest : PagedKeywordRequest
  79. {
  80. /// <summary>
  81. /// 来电/信人身份0:全部 ,1:市民,2:企业
  82. /// </summary>
  83. public int? TypeId { get; set; }
  84. }
  85. public record OrgDataListDetailRequest : PagedRequest
  86. {
  87. /// <summary>
  88. /// 开始时间
  89. /// </summary>
  90. public DateTime StartTime { get; set; }
  91. /// <summary>
  92. /// 结束时间
  93. /// </summary>
  94. public DateTime EndTime { get; set; }
  95. /// <summary>
  96. /// 部门Code
  97. /// </summary>
  98. public string OrgCode { get; set; }
  99. /// <summary>
  100. /// 工单编号
  101. /// </summary>
  102. public string? No { get; set; }
  103. /// <summary>
  104. /// 查询状态 1:业务已办超期 2:会签已办超期 3:业务待办超期 4:会签待办超期 5:小计
  105. /// </summary>
  106. public int QueryType { get; set; }
  107. /// <summary>
  108. /// 超期类型 1:系统中超期 2:申请延期超期
  109. /// </summary>
  110. public int ExpiredType { get; set; }
  111. /// <summary>
  112. /// 来电/信人身份0:全部 ,1:市民,2:企业
  113. /// </summary>
  114. public int? TypeId { get; set; }
  115. }
  116. /// <summary>
  117. /// 部门超期全部数据
  118. /// </summary>
  119. public record OrgDataListAllDetailRequest : PagedRequest
  120. {
  121. /// <summary>
  122. /// 开始时间
  123. /// </summary>
  124. public DateTime StartTime { get; set; }
  125. /// <summary>
  126. /// 结束时间
  127. /// </summary>
  128. public DateTime EndTime { get; set; }
  129. /// <summary>
  130. /// 部门Code
  131. /// </summary>
  132. public string OrgName { get; set; }
  133. /// <summary>
  134. /// 工单编号
  135. /// </summary>
  136. public string? No { get; set; }
  137. /// <summary>
  138. /// 超期类型 1:系统中超期 2:申请延期超期
  139. /// </summary>
  140. public int ExpiredType { get; set; }
  141. /// <summary>
  142. /// 工单状态(√)
  143. /// </summary>
  144. public List<EOrderStatus> Statuses { get; set; } = new();
  145. }
  146. public record PublishedPagedRequest : PagedKeywordRequest
  147. {
  148. /// <summary>
  149. /// 是否解决
  150. /// </summary>
  151. public bool? Resolve { get; set; }
  152. /// <summary>
  153. /// 工单编号
  154. /// </summary>
  155. public string? No { get; set; }
  156. /// <summary>
  157. /// 工单标题
  158. /// </summary>
  159. public string? Title { get; set; }
  160. /// <summary>
  161. /// 受理时间(工单创建时间)
  162. /// </summary>
  163. public DateTime? CreationTimeStart { get; set; }
  164. public DateTime? CreationTimeEnd { get; set; }
  165. /// <summary>
  166. /// 来电号码(×)
  167. /// </summary>
  168. public string? FromPhone { get; set; }
  169. /// <summary>
  170. /// 接办名称(综合查询使用)
  171. /// </summary>
  172. public string? ActualHandleOrgName { get; set; }
  173. /// <summary>
  174. /// 受理类型(√)
  175. /// </summary>
  176. public string? AcceptType { get; set; }
  177. /// <summary>
  178. /// 热点分类关键词
  179. /// </summary>
  180. public string? Hotspot { get; set; }
  181. /// <summary>
  182. /// 受理坐席名字或工号(×)
  183. /// </summary>
  184. public string? NameOrNo { get; set; }
  185. /// <summary>
  186. /// 发布人名称
  187. /// </summary>
  188. public string? PublishName { get; set; }
  189. /// <summary>
  190. /// 是否超期
  191. /// </summary>
  192. public bool? IsOverTime { get; set; }
  193. }
  194. public record HotspotSubtotalReportPagedRequest : ReportPagedRequest
  195. {
  196. public string Id { get; set; }
  197. }
  198. public record HotPortJoinOrgStatisticsRequest
  199. {
  200. public DateTime StartTime { get; set; }
  201. public DateTime EndTime { get; set; }
  202. }
  203. public record HotspotReportPagedRequest : ReportPagedRequest
  204. {
  205. public string Id { get; set; }
  206. /// <summary>
  207. /// 查询类型 年 3 月 2 日 1 自定义 0
  208. /// </summary>
  209. public int Type { get; set; }
  210. public DateTime? ChainStartTime { get; set; }
  211. public DateTime? ChainEndTime { get; set; }
  212. }
  213. public record QuerySeatRestRequest : ReportRequiredPagedRequest
  214. {
  215. public string? UserName { get; set; }
  216. public string? StaffNo { get; set; }
  217. }
  218. public record QuerySeatSwitchRequest : ReportRequiredPagedRequest
  219. {
  220. public string? UserName { get; set; }
  221. public string? CDPN { get; set; }
  222. }
  223. public record QueryVisitNoSatiisfiedRequest : ReportPagedRequest
  224. {
  225. public string? OrgName { get; set; }
  226. }
  227. public record BiQueryVisitNoSatisfiedDetailDto : ReportPagedRequest
  228. {
  229. /// <summary>
  230. /// 部门Code
  231. /// </summary>
  232. public string OrgCode { get; set; }
  233. /// <summary>
  234. /// 部门名称
  235. /// </summary>
  236. public string? VisitOrgName { get; set; }
  237. /// <summary>
  238. /// 不满意原因Key
  239. /// </summary>
  240. public string DissatisfiedKey { get; set; }
  241. }
  242. public record QueryOrderDelayDataListRequest : ReportPagedRequest
  243. {
  244. public string? OrgName { get; set; }
  245. }
  246. public record QueryOrderDelayDataDetailRequest : ReportRequiredPagedRequest
  247. {
  248. public string? OrgCode { get; set; }
  249. /// <summary>
  250. /// 查询类型 1已同意次数 2 未同意次数 3 审批中次数 4 小计
  251. /// </summary>
  252. public int? Type { get; set; }
  253. }
  254. public record QueryOrderReTransactRequest : ReportPagedRequest
  255. {
  256. public string? OrgName { get; set; }
  257. }
  258. public record QuerySecondaryHandlingRequest : ReportPagedRequest
  259. {
  260. public string? OrgName { get; set; }
  261. public string? OrgId { get; set; }
  262. /// <summary>
  263. /// 1 办件结果
  264. /// </summary>
  265. public int VisitTypeId { get; set; }
  266. public string? CDPN { get; set; }
  267. public string Header { get; set; }
  268. }
  269. public record QueryOrderReTransactDetailRequest : ReportPagedRequest
  270. {
  271. public string? OrgName { get; set; }
  272. public string? ErrorName { get; set; }
  273. public string? No { get; set; }
  274. }
  275. public record QuerySendOrderRequest
  276. {
  277. public string? UserName { get; set; }
  278. /// <summary>
  279. /// 开始时间
  280. /// </summary>
  281. public DateTime? StartTime { get; set; }
  282. /// <summary>
  283. /// 结束时间
  284. /// </summary>
  285. public DateTime? EndTime { get; set; }
  286. }
  287. public record QuerySendOrderDetailRequest : ReportPagedRequest
  288. {
  289. public string UserId { get; set; }
  290. public string TitleCode { get; set; }
  291. }
  292. public record QueryUnsignedOrdersRequest : ReportPagedRequest
  293. {
  294. /// <summary>
  295. /// 0 全部 1 本级 2 下级
  296. /// </summary>
  297. public int Level { get; set; }
  298. /// <summary>
  299. /// 0 未签收 1 签收
  300. /// </summary>
  301. public int Signed { get; set; }
  302. }
  303. public record QueryOrderSourceRequest : ReportPagedRequest
  304. {
  305. /// <summary>
  306. /// 来电/信人身份0:全部 ,1:市民,2:企业
  307. /// </summary>
  308. public int? TypeId { get; set; }
  309. /// <summary>
  310. /// 导出列名
  311. /// </summary>
  312. public List<string> AddColumnName { get; set; }
  313. }
  314. public record QueryOrderSourceDetailRequest : QueryOrderSourceRequest
  315. {
  316. /// <summary>
  317. /// 来电/信人身份0:全部 ,1:市民,2:企业
  318. /// </summary>
  319. public int? TypeId { get; set; }
  320. /// <summary>
  321. /// 点击时间
  322. /// </summary>
  323. public DateTime? Time { get; set; }
  324. /// <summary>
  325. /// 来源渠道(电话、网站、APP等)
  326. /// </summary>
  327. public string? SourceChannel { get; set; }
  328. }
  329. /// <summary>
  330. /// 分时统计
  331. /// </summary>
  332. public record TimeSharingPagedKeywordRequest : PagedKeywordRequest
  333. {
  334. /// <summary>
  335. /// 来电/信人身份0:全部 ,1:市民,2:企业
  336. /// </summary>
  337. public int? TypeId { get; set; }
  338. /// <summary>
  339. /// 导出列名
  340. /// </summary>
  341. public List<string> AddColumnName { get; set; }
  342. }
  343. public record OrgVisitDetailListReq: PagedKeywordRequest
  344. {
  345. /// <summary>
  346. /// 部门分类
  347. /// </summary>
  348. public EOrgVisitStatisticsType? OrgVisitStatisticsType { get; set; }
  349. /// <summary>
  350. /// AttitudeType = 1 是 办件结果
  351. /// AttitudeType = 2 是 办事态度
  352. /// </summary>
  353. public string? OrgProcessingResults { get; set; }
  354. /// <summary>
  355. /// 回访人
  356. /// </summary>
  357. public string? VisitUser { get; set; }
  358. /// <summary>
  359. /// 工单编号
  360. /// </summary>
  361. public string? No { get; set; }
  362. /// <summary>
  363. /// 工单标题
  364. /// </summary>
  365. public string? Title { get; set; }
  366. /// <summary>
  367. /// 回访部门
  368. /// </summary>
  369. public string OrgId { get; set; }
  370. /// <summary>
  371. /// 热点分类
  372. /// </summary>
  373. public string Hotspot { get; set; }
  374. /// <summary>
  375. /// 来源渠道(√)
  376. /// </summary>
  377. public string Channel { get; set; }
  378. /// <summary>
  379. /// 受理时间(工单创建时间)(√)
  380. /// </summary>
  381. public DateTime? CreationTimeStart { get; set; }
  382. public DateTime? CreationTimeEnd { get; set; }
  383. /// <summary>
  384. /// 办结时间(√)
  385. /// </summary>
  386. public DateTime? ActualHandleTimeStart { get; set; }
  387. public DateTime? ActualHandleTimeEnd { get; set; }
  388. /// <summary>
  389. /// 回访时间
  390. /// </summary>
  391. public DateTime? VisitTimeStart { get; set; }
  392. public DateTime? VisitTimeEnd { get; set; }
  393. /// <summary>
  394. /// 办件态度类型(1:办件结果; 2:办事态度)
  395. /// 默认 办件结果;
  396. /// </summary>
  397. public EAttitudeType AttitudeType { get; set; } = EAttitudeType.ProcessingResult;
  398. /// <summary>
  399. /// 来电主体
  400. /// </summary>
  401. public int TypeCode { get; set; }
  402. /// <summary>
  403. /// 排序字段
  404. /// </summary>
  405. public string? SortField { get; set; }
  406. /// <summary>
  407. /// 排序方式 // 0 升序 1 降序
  408. /// </summary>
  409. public int? SortRule { get; set; }
  410. }
  411. public record HotspotAndAreaStatisticsReq
  412. {
  413. public int HotspotLevel { get; set; }
  414. public DateTime StartTime { get; set; }
  415. public DateTime EndTime { get; set; }
  416. /// <summary>
  417. /// 导出列名
  418. /// </summary>
  419. public List<string> AddColumnName { get; set; } = new();
  420. }
  421. public record AcceptTypeStatisticsByDateDetailReq:PagedRequest
  422. {
  423. /// <summary>
  424. /// 日期
  425. /// </summary>
  426. public DateTime Date { get; set; }
  427. /// <summary>
  428. /// 工单编号
  429. /// </summary>
  430. public string No { get; set; }
  431. /// <summary>
  432. /// 工单标题
  433. /// </summary>
  434. public string Title { get; set; }
  435. /// <summary>
  436. /// 接办部门名称
  437. /// </summary>
  438. public string? ActualHandleOrgName { get; set; }
  439. /// <summary>
  440. /// 受理类型Code
  441. /// </summary>
  442. public string AcceptTypeCode { get; set; }
  443. }
  444. public class AcceptTypeStatisticsByDateReq
  445. {
  446. public DateTime StartTime { get; set; }
  447. public DateTime EndTime { get; set; }
  448. /// <summary>
  449. /// 0:全部 ,1:市民,2:企业
  450. /// </summary>
  451. public int? TypeId { get; set; }
  452. public string Gateway { get; set; }
  453. /// <summary>
  454. /// 导出列名
  455. /// </summary>
  456. public List<string> AddColumnName { get; set; } = new();
  457. }
  458. public class AcceptTypeStatisticsReq
  459. {
  460. public DateTime StartTime { get; set; }
  461. public DateTime EndTime { get; set; }
  462. /// <summary>
  463. /// 0:全部 ,1:市民,2:企业
  464. /// </summary>
  465. public int? TypeId { get; set; }
  466. public string Gateway { get; set; }
  467. }
  468. public record HotspotAndAreaStatisticsDetailReq:PagedRequest
  469. {
  470. public string? AreaCode { get; set; }
  471. public string HotspotId { get; set; }
  472. public DateTime StartTime { get; set; }
  473. public DateTime EndTime { get; set; }
  474. }
  475. public class HotspotAndAreaStatisticsDetailDto
  476. {
  477. public EExpiredStatus? CalculateExpiredState()
  478. {
  479. DateTime? dateTime = DateTime.Now;
  480. if (Status >= EOrderStatus.Filed)
  481. {
  482. dateTime = ActualHandleTime;
  483. }
  484. if (ExpiredTime.HasValue)
  485. {
  486. if (NearlyExpiredTimeOne.HasValue && dateTime < NearlyExpiredTimeOne)
  487. {
  488. return EExpiredStatus.Normal;
  489. }
  490. else if (!NearlyExpiredTimeOne.HasValue && dateTime < NearlyExpiredTime)
  491. {
  492. return EExpiredStatus.Normal;
  493. }
  494. else if (NearlyExpiredTimeOne.HasValue && dateTime > NearlyExpiredTimeOne && dateTime < NearlyExpiredTime)
  495. {
  496. return EExpiredStatus.GoingToExpiredOne;
  497. }
  498. else if (dateTime > NearlyExpiredTime && dateTime < ExpiredTime)
  499. {
  500. return EExpiredStatus.GoingToExpired;
  501. }
  502. else
  503. {
  504. return EExpiredStatus.Expired;
  505. }
  506. }
  507. return null;
  508. }
  509. public string Id { get; set; }
  510. /// <summary>
  511. /// 工单状态
  512. /// </summary>
  513. public EOrderStatus Status { get; set; }
  514. public string StatusText => Status.GetDescription();
  515. /// <summary>
  516. /// 来源渠道(电话、网站、APP等)
  517. /// </summary>
  518. public string? SourceChannel { get; set; }
  519. /// <summary>
  520. /// 过期状态
  521. /// </summary>
  522. public EExpiredStatus? ExpiredStatus => CalculateExpiredState();
  523. /// <summary>
  524. /// 过期状态
  525. /// </summary>
  526. public string ExpiredStatusText => ExpiredStatus?.GetDescription() ?? string.Empty;
  527. /// <summary>
  528. /// 当前节点
  529. /// </summary>
  530. public string? ActualHandleStepName { get; set; }
  531. /// <summary>
  532. /// 重办次数
  533. /// </summary>
  534. public int? ReTransactNum { get; set; }
  535. /// <summary>
  536. /// 紧急程度
  537. /// </summary>
  538. public bool IsUrgent { get; set; }
  539. public string IsUrgentText => IsUrgent ? "紧急" : "";
  540. /// <summary>
  541. /// 甄别状态
  542. /// </summary>
  543. public EScreenStatus? OrderScreenStatus { get; set; }
  544. public string OrderScreenStatusText => OrderScreenStatus?.GetDescription();
  545. /// <summary>
  546. /// 工单编号
  547. /// </summary>
  548. public string No { get; set; }
  549. /// <summary>
  550. /// 受理时间
  551. /// </summary>
  552. public DateTime CreationTime { get; set; }
  553. /// <summary>
  554. /// 标题
  555. /// </summary>
  556. public string Title { get; set; }
  557. /// <summary>
  558. /// 超期时间
  559. /// </summary>
  560. public DateTime? ExpiredTime { get; set; }
  561. /// <summary>
  562. /// 即将超期时间
  563. /// </summary>
  564. public DateTime? NearlyExpiredTime { get; set; }
  565. /// <summary>
  566. /// 即将超期时间第一级
  567. /// </summary>
  568. public DateTime? NearlyExpiredTimeOne { get; set; }
  569. /// <summary>
  570. /// 接办部门名称
  571. /// </summary>
  572. public string? ActualHandleOrgName { get; set; }
  573. /// <summary>
  574. /// 接办时间
  575. /// </summary>
  576. public DateTime? ActualHandleTime { get; set; }
  577. /// <summary>
  578. /// 办结时间
  579. /// </summary>
  580. public DateTime? FiledTime { get; set; }
  581. /// <summary>
  582. /// 受理类型
  583. /// </summary>
  584. public string? AcceptType { get; set; }
  585. /// <summary>
  586. /// 热点类型
  587. /// </summary>
  588. public string? HotspotName { get; set; }
  589. /// <summary>
  590. /// 受理人名称
  591. /// </summary>
  592. public string? AcceptorName { get; set; }
  593. }
  594. public class AcceptTypeStatisticsDto
  595. {
  596. /// <summary>
  597. /// 受理类型
  598. /// </summary>
  599. public string AcceptType { get; set; }
  600. /// <summary>
  601. /// 分类量
  602. /// </summary>
  603. public int SumCount { get; set; }
  604. /// <summary>
  605. /// 办结量
  606. /// </summary>
  607. public int CompletionCount { get; set; }
  608. /// <summary>
  609. /// 办结率
  610. /// </summary>
  611. public string CompletionRate => SumCount > 0 ? Math.Round((double)CompletionCount / (double)SumCount * 100, digits: 3)+"%" : 0.000+"%";
  612. /// <summary>
  613. /// 回访量
  614. /// </summary>
  615. public int VisitCount { get; set; }
  616. /// <summary>
  617. /// 回访率
  618. /// </summary>
  619. public string VisitRate => SumCount > 0 ? Math.Round((double)VisitCount / (double)SumCount *100, digits: 3)+"%" : 0.000+"%";
  620. /// <summary>
  621. /// 占比
  622. /// </summary>
  623. public string SumCountRate { get; set; }
  624. }
  625. public record HotspotAndAcceptTypeStatisticsReq
  626. {
  627. public int HotspotLevel { get; set; }
  628. public DateTime StartTime { get; set; }
  629. public DateTime EndTime { get; set; }
  630. /// <summary>
  631. /// 导出列名
  632. /// </summary>
  633. public List<string> AddColumnName { get; set; } = new();
  634. }
  635. public record HotspotAndAcceptTypeStatisticsDetailReq : PagedRequest
  636. {
  637. public string? AcceptTypeCode { get; set; }
  638. public string HotspotId { get; set; }
  639. public DateTime StartTime { get; set; }
  640. public DateTime EndTime { get; set; }
  641. }
  642. public record OrderScreenApplyPagedRequest : PagedKeywordRequest
  643. {
  644. /// <summary>
  645. /// 提起人
  646. /// </summary>
  647. public string ApplyUserName { get; set; }
  648. /// <summary>
  649. /// 部门名称
  650. /// </summary>
  651. public string ApplyOrgName { get; set; }
  652. }
  653. public record OrderScreenAuditPagedRequest : PagedKeywordRequest
  654. {
  655. /// <summary>
  656. /// 审批人
  657. /// </summary>
  658. public string AuditUserName { get; set; }
  659. /// <summary>
  660. /// 1 中心班长 2 中心领导
  661. /// </summary>
  662. public int? AuditType { get; set; }
  663. }
  664. public record OrderCenterAcceptPagedRequest : PagedKeywordRequest
  665. {
  666. /// <summary>
  667. /// 来电/信人身份0:全部 ,1:市民,2:企业
  668. /// </summary>
  669. public int? TypeCode { get; set; }
  670. }
  671. public record OrderDataInventoryReq : PagedRequest
  672. {
  673. /// <summary>
  674. /// 受理时间开始
  675. /// </summary>
  676. public DateTime StartTime { get; set; }
  677. /// <summary>
  678. /// 受理时间结束
  679. /// </summary>
  680. public DateTime EndTime { get; set; }
  681. /// <summary>
  682. /// 工单编号
  683. /// </summary>
  684. public string? No { get; set; }
  685. /// <summary>
  686. /// 标题
  687. /// </summary>
  688. public string? Title { get; set; }
  689. /// <summary>
  690. /// 工单状态
  691. /// </summary>
  692. public EOrderStatus? OrderStatus { get; set; }
  693. /// <summary>
  694. /// 来源渠道
  695. /// </summary>
  696. public string? Channel { get; set; }
  697. /// <summary>
  698. /// 转接来源
  699. /// </summary>
  700. public string? TransferPhone { get; set; }
  701. /// <summary>
  702. /// 当前节点
  703. /// </summary>
  704. public string? CurrentStepCode { get; set; }
  705. /// <summary>
  706. /// 甄别状态
  707. /// </summary>
  708. public EScreenStatus? ScreenStatus { get; set; }
  709. /// <summary>
  710. /// 超期状态
  711. /// </summary>
  712. public EExpiredStatusEx? ExpiredStatus { get; set; }
  713. /// <summary>
  714. /// 省编号
  715. /// </summary>
  716. public string? ProvinceNo { get; set; }
  717. /// <summary>
  718. /// 期满时间开始
  719. /// </summary>
  720. public DateTime? ExpiredTimeStart { get; set; }
  721. /// <summary>
  722. /// 期满时间结束
  723. /// </summary>
  724. public DateTime? ExpiredTimeEnd { get; set; }
  725. /// <summary>
  726. /// 一级部门
  727. /// </summary>
  728. public string? OrgLevelOneName { get; set; }
  729. /// <summary>
  730. /// 二级部门
  731. /// </summary>
  732. public string? OrgLevelTwoName { get; set; }
  733. /// <summary>
  734. /// 接办部门
  735. /// </summary>
  736. public string? CurrentHandleOrgId { get; set; }
  737. /// <summary>
  738. /// 办结时间开始
  739. /// </summary>
  740. public DateTime? FiledTimeStart { get; set; }
  741. /// <summary>
  742. /// 办结时间结束
  743. /// </summary>
  744. public DateTime? FiledTimeEnd { get; set; }
  745. /// <summary>
  746. /// 受理类型
  747. /// </summary>
  748. public string? AcceptType { get; set; }
  749. /// <summary>
  750. /// 热点分类
  751. /// </summary>
  752. public string? Hotspot { get; set; }
  753. /// <summary>
  754. /// 区域
  755. /// </summary>
  756. public string? AreaCode { get; set; }
  757. /// <summary>
  758. /// 受理人或工号
  759. /// </summary>
  760. public string? NameOrNo { get; set; }
  761. /// <summary>
  762. /// 来电人姓名
  763. /// </summary>
  764. public string? FromName { get; set; }
  765. /// <summary>
  766. /// 来电人姓名
  767. /// </summary>
  768. public string? FromPhone { get; set; }
  769. /// <summary>
  770. /// 联系电话
  771. /// </summary>
  772. public string? PhoneNo { get; set; }
  773. /// <summary>
  774. /// 来电主体
  775. /// </summary>
  776. public EIdentityType? IdentityType { get; set; }
  777. /// <summary>
  778. /// 来电/信人性别
  779. /// </summary>
  780. public EGender? FromGender { get; set; }
  781. /// <summary>
  782. /// 推送分类
  783. /// </summary>
  784. public string? PushTypeCode { get; set; }
  785. }
  786. public class OrderDataInventoryRep
  787. {
  788. /// <summary>
  789. /// 工单ID
  790. /// </summary>
  791. public string Id { get; set; }
  792. /// <summary>
  793. /// 工单状态
  794. /// </summary>
  795. public EOrderStatus? OrderStatus { get; set; }
  796. /// <summary>
  797. /// 工单状态
  798. /// </summary>
  799. public string OrderStatusText => OrderStatus.GetDescription();
  800. /// <summary>
  801. /// 过期状态
  802. /// </summary>
  803. public EExpiredStatusEx? ExpiredStatus => CalculateExpiredState();
  804. /// <summary>
  805. /// 过期状态
  806. /// </summary>
  807. public string ExpiredStatusText => ExpiredStatus?.GetDescription() ?? string.Empty;
  808. public DateTime? ActualHandleTime { get; set; }
  809. public DateTime? NearlyExpiredTime { get; set; }
  810. public EExpiredStatusEx? CalculateExpiredState()
  811. {
  812. DateTime? dateTime = DateTime.Now;
  813. if (OrderStatus >= EOrderStatus.Filed)
  814. {
  815. dateTime = FiledTime;
  816. }
  817. //ExpiredStatus
  818. if (ExpiredTime.HasValue)
  819. {
  820. if (dateTime < NearlyExpiredTime)
  821. {
  822. return EExpiredStatusEx.Normal;
  823. }
  824. else if (dateTime > NearlyExpiredTime && dateTime < ExpiredTime)
  825. {
  826. return EExpiredStatusEx.GoingToExpired;
  827. }
  828. else
  829. {
  830. return EExpiredStatusEx.Expired;
  831. }
  832. }
  833. return null;
  834. }
  835. /// <summary>
  836. /// 来源
  837. /// </summary>
  838. public string SourceChannel { get; set; }
  839. /// <summary>
  840. /// 转接号码
  841. /// </summary>
  842. public string TransferPhone { get; set; }
  843. /// <summary>
  844. /// 当前节点
  845. /// </summary>
  846. public string CurrentStepName { get; set; }
  847. /// <summary>
  848. /// 重办次数
  849. /// </summary>
  850. public int? ReTransactNum { get; set; }
  851. //甄别状态
  852. public EScreenStatus? OrderScreenStatus { get; set; }
  853. public string? OrderScreenStatusText => OrderScreenStatus?.GetDescription();
  854. /// <summary>
  855. /// 工单编号
  856. /// </summary>
  857. public string No { get; set; }
  858. /// <summary>
  859. /// 省编号
  860. /// </summary>
  861. public string ProvinceNo { get; set; }
  862. /// <summary>
  863. /// 创建时间
  864. /// </summary>
  865. public DateTime CreationTime { get; set; }
  866. /// <summary>
  867. /// 标题
  868. /// </summary>
  869. public string Title { get; set; }
  870. /// <summary>
  871. /// 期满时间
  872. /// </summary>
  873. public DateTime? ExpiredTime { get; set; }
  874. /// <summary>
  875. /// 一级部门
  876. /// </summary>
  877. public string? OrgLevelOneName { get; set; }
  878. /// <summary>
  879. /// 二级部门
  880. /// </summary>
  881. public string? OrgLevelTwoName { get; set; }
  882. /// <summary>
  883. /// 接办部门
  884. /// </summary>
  885. public string? CurrentHandleOrgName { get; set; }
  886. /// <summary>
  887. /// 办结时间
  888. /// </summary>
  889. public DateTime? FiledTime { get; set; }
  890. /// <summary>
  891. /// 受理类型
  892. /// </summary>
  893. public string AcceptType { get; set; }
  894. /// <summary>
  895. /// 热点类型
  896. /// </summary>
  897. public string HotspotName { get; set; }
  898. /// <summary>
  899. /// 热点全名
  900. /// </summary>
  901. public string HotspotSpliceName { get; set; }
  902. /// <summary>
  903. /// 区域名称
  904. /// </summary>
  905. public string AreaName { get; set; }
  906. /// <summary>
  907. /// 区域全名
  908. /// </summary>
  909. public string FullAreaName { get; set; }
  910. /// <summary>
  911. /// 受理人
  912. /// </summary>
  913. public string AcceptorName { get; set; }
  914. /// <summary>
  915. /// 来电人名称
  916. /// </summary>
  917. public string FromName { get; set; }
  918. /// <summary>
  919. /// 联系电话
  920. /// </summary>
  921. public string Contact { get; set; }
  922. /// <summary>
  923. /// 来电号码
  924. /// </summary>
  925. public string? FromPhone { get; set; }
  926. /// <summary>
  927. /// 地址
  928. /// </summary>
  929. public string? Address { get; set; }
  930. /// <summary>
  931. /// 来电/信人身份
  932. /// </summary>
  933. public EIdentityType? IdentityType { get; set; }
  934. public string? IdentityTypeText => IdentityType?.GetDescription();
  935. /// <summary>
  936. /// 来电/信人性别
  937. /// </summary>
  938. public EGender FromGender { get; set; }
  939. public string? FromGenderText => FromGender.GetDescription();
  940. //坐席评价
  941. public ESeatEvaluate? SeatEvaluate { get; set; }
  942. public string? SeatEvaluateText => SeatEvaluate?.GetDescription();
  943. //办理结果
  944. public string? OrgProcessingResults { get; set; }
  945. public string? PushType { get; set; }
  946. /// <summary>
  947. /// 受理内容
  948. /// </summary>
  949. public string? Content { get; set; }
  950. /// <summary>
  951. /// 承办意见
  952. /// </summary>
  953. public string? ActualOpinion { get; set; }
  954. /// <summary>
  955. /// 归档意见
  956. /// </summary>
  957. public string? FileOpinion { get; set; }
  958. }
  959. public class OrderVisitJudeStatisticsReq
  960. {
  961. /// <summary>
  962. /// 开始时间
  963. /// </summary>
  964. public DateTime? StartTime { get; set; }
  965. /// <summary>
  966. /// 结束时间
  967. /// </summary>
  968. public DateTime? EndTime { get; set; }
  969. }
  970. public class OrderVisitJudeStatisticsRep
  971. {
  972. /// <summary>
  973. /// 回访员
  974. /// </summary>
  975. public string EmpName { get; set; }
  976. public string EmpId { get; set; }
  977. /// <summary>
  978. /// 部门扭转总件
  979. /// </summary>
  980. public int OrgJudeCount { get; set; }
  981. /// <summary>
  982. /// 部门扭转待审批件
  983. /// </summary>
  984. public int OrgJudeApprovalingCount { get; set; }
  985. /// <summary>
  986. /// 部门扭转审批成功件
  987. /// </summary>
  988. public int OrgJudeSuccessCount { get; set; }
  989. /// <summary>
  990. /// 部门扭转审批失败件
  991. /// </summary>
  992. public int OrgJudeFailCount { get;set; }
  993. /// <summary>
  994. /// 坐席扭转总件
  995. /// </summary>
  996. public int SeatJudeCount { get; set; }
  997. /// <summary>
  998. /// 坐席扭转待审批件
  999. /// </summary>
  1000. public int SeatJudeApprovalingCount { get; set; }
  1001. /// <summary>
  1002. /// 坐席扭转审批成功件
  1003. /// </summary>
  1004. public int SeatJudeSuccessCount { get; set; }
  1005. /// <summary>
  1006. /// 坐席扭转审批失败件
  1007. /// </summary>
  1008. public int SeatJudeFailCount { get; set; }
  1009. }
  1010. public record OrderVisitJudeDetailReq: PagedRequest
  1011. {
  1012. }
  1013. public class OrderVisitJudeDetailRep
  1014. {
  1015. }