PagedKeywordRequest.cs 32 KB

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