OrderBiDto.cs 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827
  1. using Hotline.Settings;
  2. using Hotline.Share.Dtos.CallCenter;
  3. using Hotline.Share.Dtos.Settings;
  4. using Hotline.Share.Enums.Order;
  5. using Hotline.Share.Requests;
  6. using Microsoft.VisualBasic;
  7. using System.Data;
  8. using XF.Utility.EnumExtensions;
  9. namespace Hotline.Share.Dtos.Order
  10. {
  11. public class OrderBiOrgDataListVo
  12. {
  13. public string OrgName { get; set; }
  14. public string OrgId { get; set; }
  15. /// <summary>
  16. /// 业务已办超期
  17. /// </summary>
  18. public int HandlerExtendedNum { get; set; }
  19. /// <summary>
  20. /// 会签已办超期
  21. /// </summary>
  22. public int CounterHandlerExtendedNum { get; set; }
  23. /// <summary>
  24. /// 业务待办超期
  25. /// </summary>
  26. public int NoHandlerExtendedNum { get; set; }
  27. /// <summary>
  28. /// 会签待办超期
  29. /// </summary>
  30. public int CounterNoHandlerExtendedNum { get; set; }
  31. public int Subtotal => HandlerExtendedNum + CounterHandlerExtendedNum + NoHandlerExtendedNum + CounterNoHandlerExtendedNum;
  32. //public int Subtotal { get; set; }
  33. }
  34. public class OrderBiCentreDataListVo
  35. {
  36. /// <summary>
  37. /// 用户名
  38. /// </summary>
  39. public string UserName { get; set; }
  40. /// <summary>
  41. /// 用户ID
  42. /// </summary>
  43. public string UserId { get; set; }
  44. /// <summary>
  45. /// 中心归档件
  46. /// </summary>
  47. public int CentreArchive { get; set; }
  48. /// <summary>
  49. /// 转办信件
  50. /// </summary>
  51. public int CentreCareOf { get; set; }
  52. /// <summary>
  53. /// 待转办
  54. /// </summary>
  55. public int NoCentreCareOf { get; set; }
  56. /// <summary>
  57. /// 无效件
  58. /// </summary>
  59. public int Invalid { get; set; }
  60. /// <summary>
  61. /// 重复件
  62. /// </summary>
  63. public int Repeat { get; set; }
  64. /// <summary>
  65. /// 所有信件
  66. /// </summary>
  67. //public int Subtotal => CentreArchive + CentreCareOf + NoCentreCareOf + Invalid + Repeat;
  68. public int Subtotal { get; set; }
  69. }
  70. public class OrderVolumeDataListVo
  71. {
  72. /// <summary>
  73. /// 用户ID
  74. /// </summary>
  75. public string UserId { get; set; }
  76. /// <summary>
  77. /// 用户名
  78. /// </summary>
  79. public string UserName { get; set; }
  80. /// <summary>
  81. /// 中心归档量
  82. /// </summary>
  83. public int VisitCenter { get; set; }
  84. /// <summary>
  85. /// 部门归档量
  86. /// </summary>
  87. public int VisitOrg { get; set; }
  88. /// <summary>
  89. /// 中心归档发布量
  90. /// </summary>
  91. public int PublishCenter { get; set; }
  92. /// <summary>
  93. /// 部门归档发布量
  94. /// </summary>
  95. public int PublishOrg { get; set; }
  96. /// <summary>
  97. /// 公开发布量
  98. /// </summary>
  99. public int PublishOpen { get; set; }
  100. /// <summary>
  101. /// 中心派单量
  102. /// </summary>
  103. public int DispatchCenter { get; set; }
  104. /// <summary>
  105. /// 部门派单量
  106. /// </summary>
  107. public int DispatchOrg { get; set; }
  108. /// <summary>
  109. /// 重办信件量
  110. /// </summary>
  111. public int ReTransact { get; set; }
  112. /// <summary>
  113. /// 总量
  114. /// </summary>
  115. public int Subtotal { get; set; }
  116. }
  117. public class OrderBiSpecialListVo
  118. {
  119. public string Cause { get; set; }
  120. public int OrderNum { get; set; }
  121. public DateTime MaxSpecialTime { get; set; }
  122. }
  123. public class HotspotDataLsitVo
  124. {
  125. public string Name { get; set; }
  126. public string Id { get; set; }
  127. public int Num { get; set; }
  128. public bool Sublevel { get; set; }
  129. public List<HotspotDataLsitVo> Children { get; set; }
  130. public int ChainNum { get; set; }
  131. public string ChainRate { get; set; }
  132. }
  133. public class AcceptTypeTop10Volod
  134. {
  135. /// <summary>
  136. /// 热点名称
  137. /// </summary>
  138. public string Name { get; set; }
  139. /// <summary>
  140. /// 受理类型ID
  141. /// </summary>
  142. public string Id { get; set; }
  143. /// <summary>
  144. /// 受理类型名称
  145. /// </summary>
  146. public string AcceptName { get; set; }
  147. /// <summary>
  148. /// 数量
  149. /// </summary>
  150. public int Num { get; set; }
  151. }
  152. public class AcceptTypeTop10Vo
  153. {
  154. /// <summary>
  155. /// 热点名称
  156. /// </summary>
  157. public string Name { get; set; }
  158. /// <summary>
  159. /// 有效受理
  160. /// </summary>
  161. public int ValidAccept { get; set; }
  162. /// <summary>
  163. /// 咨询
  164. /// </summary>
  165. public int Consult { get; set; }
  166. /// <summary>
  167. /// 举报
  168. /// </summary>
  169. public int Report { get; set; }
  170. /// <summary>
  171. /// 投诉
  172. /// </summary>
  173. public int Complaint { get; set; }
  174. /// <summary>
  175. /// 求助
  176. /// </summary>
  177. public int SeekHelp { get; set; }
  178. /// <summary>
  179. /// 建议
  180. /// </summary>
  181. public int Suggest { get; set; }
  182. /// <summary>
  183. /// 意见
  184. /// </summary>
  185. public int Opinion { get; set; }
  186. /// <summary>
  187. /// 其他
  188. /// </summary>
  189. public int Rests { get; set; }
  190. /// <summary>
  191. /// 惠民帮助
  192. /// </summary>
  193. public int BenefitThePeople { get; set; }
  194. /// <summary>
  195. /// 表扬
  196. /// </summary>
  197. public int Praise { get; set; }
  198. }
  199. public class BiOrderDelayDataDto
  200. {
  201. /// <summary>
  202. /// 部门名称
  203. /// </summary>
  204. public string OrgName { get; set; }
  205. /// <summary>
  206. /// 部门code
  207. /// </summary>
  208. public string OrgCode { get; set; }
  209. /// <summary>
  210. /// 小计
  211. /// </summary>
  212. public int AllTotal => PassTotal + NoPassTotal + ExaminingTotal + WithdrawTotal;
  213. /// <summary>
  214. /// 已同意次数
  215. /// </summary>
  216. public int PassTotal { get; set; }
  217. /// <summary>
  218. /// 未同意次数
  219. /// </summary>
  220. public int NoPassTotal { get; set; }
  221. /// <summary>
  222. /// 审批中次数
  223. /// </summary>
  224. public int ExaminingTotal { get; set; }
  225. /// <summary>
  226. /// 撤销次数
  227. /// </summary>
  228. public int WithdrawTotal { get; set; }
  229. }
  230. public class VisitMeasureStatisticsDto
  231. {
  232. /// <summary>
  233. /// 智能回访量
  234. /// </summary>
  235. public int AiVisitCount { get; set; }
  236. /// <summary>
  237. /// 智能回访满意量
  238. /// </summary>
  239. public int AiVisitSatisfiedCount { get; set; }
  240. /// <summary>
  241. /// 智能回访不满意量
  242. /// </summary>
  243. public int AiVisitNoSatisfiedCount { get; set; }
  244. /// <summary>
  245. /// 智能回访失败量
  246. /// </summary>
  247. public int AIVisitFailCount { get; set; }
  248. public List<VisitMeasureStatisticsModelDto> VisitMeasureStatisticsModelList { get; set; }
  249. }
  250. public class VisitMeasureStatisticsModelDto
  251. {
  252. /// <summary>
  253. /// 回访员
  254. /// </summary>
  255. public string VisitName { get; set; }
  256. /// <summary>
  257. /// 电话回访
  258. /// </summary>
  259. public int CallVisitCount { get; set; }
  260. /// <summary>
  261. /// 人工回访
  262. /// </summary>
  263. public int ArtificialVisitCount { get; set; }
  264. /// <summary>
  265. /// 总回访量
  266. /// </summary>
  267. public int SumCount { get; set; }
  268. }
  269. /// <summary>
  270. /// 坐席满意度明细表
  271. /// </summary>
  272. public class SeatSatisfactionStatisticsListDetailDto
  273. {
  274. /// <summary>
  275. /// 用户名
  276. /// </summary>
  277. public string UserName { get; set; }
  278. /// <summary>
  279. /// id
  280. /// </summary>
  281. public string UserId { get; set; }
  282. /// <summary>
  283. /// 默认满意
  284. /// </summary>
  285. public int DefaultSatisfied { get; set; }
  286. public int DefaultSatisfiedKey { get; set; } = 0;
  287. public string DefaultSatisfiedRate => CalcRate(DefaultSatisfied);
  288. /// <summary>
  289. /// 非常不满意
  290. /// </summary>
  291. public int VeryNoSatisfied { get; set; }
  292. public int VeryNoSatisfiedKey { get; set; } = 1;
  293. public string VeryNoSatisfiedRate => CalcRate(VeryNoSatisfied);
  294. /// <summary>
  295. /// 不满意
  296. /// </summary>
  297. public int NoSatisfied { get; set; }
  298. public int NoSatisfiedKey { get; set; } = 2;
  299. public string NoSatisfiedRate => CalcRate(NoSatisfied);
  300. /// <summary>
  301. /// 一般
  302. /// </summary>
  303. public int Normal { get; set; }
  304. public int NormalKey { get; set; } = 3;
  305. public string NormalRate => CalcRate(Normal);
  306. /// <summary>
  307. /// 满意
  308. /// </summary>
  309. public int Satisfied { get; set; }
  310. public int SatisfiedKey { get; set; } = 4;
  311. public string SatisfiedRate => CalcRate(Satisfied);
  312. /// <summary>
  313. /// 非常满意
  314. /// </summary>
  315. public int VerySatisfied { get; set; }
  316. public int VerySatisfiedKey { get; set; } = 5;
  317. public string VerySatisfiedRate => CalcRate(VerySatisfied);
  318. /// <summary>
  319. /// 未接通
  320. /// </summary>
  321. public int NoConnect { get; set; }
  322. public int NoConnectKey { get; set; } = 6;
  323. public string NoConnectRate => CalcRate(NoConnect);
  324. /// <summary>
  325. /// 未做评价
  326. /// </summary>
  327. public int NoEvaluate { get; set; }
  328. public int NoEvaluateKey { get; set; } = 7;
  329. public string NoEvaluateRate => CalcRate(NoEvaluate);
  330. /// <summary>
  331. /// 小计
  332. /// </summary>
  333. public int Count => DefaultSatisfied + NoSatisfied + Satisfied + VerySatisfied + NoConnect + NoEvaluate;
  334. /// <summary>
  335. /// 总满意率
  336. /// </summary>
  337. public string CountRate => CalcRate(DefaultSatisfied + Satisfied + VerySatisfied + NoConnect + NoEvaluate);
  338. public string CalcRate(int num)
  339. {
  340. int counNum = DefaultSatisfied + NoSatisfied + Satisfied + VerySatisfied + NoConnect + NoEvaluate;
  341. if (num == 0 || counNum == 0)
  342. {
  343. return "0.000%";
  344. }
  345. return Math.Round((num / (double)counNum) * 100, 2) + "%";
  346. }
  347. }
  348. /// <summary>
  349. /// 坐席满意度
  350. /// </summary>
  351. public class SeatSatisfactionStatisticsDto
  352. {
  353. public ESeatEvaluate? SeatEvaluate { get; set; }
  354. public string? SeatSatisfactionName => SeatEvaluate?.GetDescription();
  355. /// <summary>
  356. /// 数量
  357. /// </summary>
  358. public int Count { get; set; }
  359. }
  360. /// <summary>
  361. /// 满意度
  362. /// </summary>
  363. public class SeatSatisfactionStatisticsEvaluateDto
  364. {
  365. /// <summary>
  366. /// 满意
  367. /// </summary>
  368. public int Satisfied { get; set; }
  369. /// <summary>
  370. /// 不满意
  371. /// </summary>
  372. public int NoSatisfied { get; set; }
  373. /// <summary>
  374. /// 满意率
  375. /// </summary>
  376. public double SatisfactionRate => CalcVerySatisfiedRate();
  377. public double CalcVerySatisfiedRate()
  378. {
  379. if (Satisfied == 0 || (Satisfied + NoSatisfied) == 0)
  380. {
  381. return 0.000;
  382. }
  383. return Math.Round((Satisfied / (double)(Satisfied + NoSatisfied)) * 100, 2);
  384. }
  385. }
  386. public class VisitAndOrgSatisfactionStatisticsResultDto
  387. {
  388. public List<VisitAndOrgSatisfactionStatisticsDto> DataList { get; set; }
  389. public VisitAndOrgSatisfactionStatisticsDto CountySumModel { get; set; }
  390. public VisitAndOrgSatisfactionStatisticsDto CitySumModel { get; set; }
  391. public VisitAndOrgSatisfactionStatisticsDto SumModel { get; set; }
  392. }
  393. public class OrgVisitDetailListResp
  394. {
  395. /// <summary>
  396. /// 回访子ID
  397. /// </summary>
  398. public string Id { get; set; }
  399. /// <summary>
  400. /// 工单ID
  401. /// </summary>
  402. public string OrderId { get; set; }
  403. /// <summary>
  404. /// 回访ID
  405. /// </summary>
  406. public string VisitId { get; set; }
  407. /// <summary>
  408. /// 工单编号
  409. /// </summary>
  410. public string No { get; set; }
  411. /// <summary>
  412. /// 重办次数
  413. /// </summary>
  414. public int? ReTransactNum { get; set; }
  415. /// <summary>
  416. /// 甄别状态
  417. /// </summary>
  418. public EScreenStatus? OrderScreenStatus { get; set; }
  419. public string? OrderScreenStatusText => OrderScreenStatus.HasValue && OrderScreenStatus != null ? OrderScreenStatus?.GetDescription() : "未甄别";
  420. /// <summary>
  421. /// 回访内容
  422. /// </summary>
  423. public string VisitContent { get; set; }
  424. /// <summary>
  425. /// 热点全称
  426. /// </summary>
  427. public string HotspotSpliceName { get; set; }
  428. /// <summary>
  429. /// 一级部门
  430. /// </summary>
  431. public string OrgLevelOneName { get; set; }
  432. /// <summary>
  433. /// 办结部门
  434. /// </summary>
  435. public string CurrentHandleOrgName { get; set; }
  436. /// <summary>
  437. /// 受理时间
  438. /// </summary>
  439. public DateTime CreationTime { get; set; }
  440. /// <summary>
  441. /// 工单标题
  442. /// </summary>
  443. public string Title { get; set; }
  444. /// <summary>
  445. /// 回访人
  446. /// </summary>
  447. public string VisitUser { get; set; }
  448. /// <summary>
  449. /// 回访部门
  450. /// </summary>
  451. public string VisitOrgName { get; set; }
  452. /// <summary>
  453. /// 回访方式
  454. /// </summary>
  455. public EVisitType? VisitType { get; set; }
  456. public string? VisitTypeText => VisitType?.GetDescription();
  457. /// <summary>
  458. /// 回访时间
  459. /// </summary>
  460. public DateTime? VisitTime { get; set; }
  461. /// <summary>
  462. /// 满意度
  463. /// 如果入参 EAttitudeType = 1 是 办件结果
  464. /// 如果入参 EAttitudeType = 2 是 办事态度
  465. /// </summary>
  466. public string OrgProcessingResults { get; set; }
  467. /// <summary>
  468. /// 受理内容
  469. /// </summary>
  470. public string Content { get; set; }
  471. /// <summary>
  472. /// 承办意见
  473. /// </summary>
  474. public string FileOpinion { get; set; }
  475. /// <summary>
  476. /// 办结时间
  477. /// </summary>
  478. public DateTime? FiledTime { get; set; }
  479. /// <summary>
  480. /// 接办部门
  481. /// </summary>
  482. public string ActualHandleOrgName { get; set; }
  483. /// <summary>
  484. /// 是否省工单(空为全部 true为省工单 false为市工单)
  485. /// </summary>
  486. public bool IsProvinceOrder { get; set; }
  487. public string IsProvinceText => IsProvinceOrder ? "省工单" : "市工单";
  488. /// <summary>
  489. /// 工单标签(自贡)
  490. /// </summary>
  491. public string? OrderTag { get; set; }
  492. /// <summary>
  493. /// 来源渠道
  494. /// </summary>
  495. public string? SourceChannel { get; set; }
  496. /// <summary>
  497. /// 受理类型
  498. /// </summary>
  499. public string? AcceptType { get; set; }
  500. /// <summary>
  501. /// 不满意原因
  502. /// </summary>
  503. public string OrgNoSatisfiedReasonText { get; set; }
  504. /// <summary>
  505. /// 不满意原因字符串
  506. /// </summary>
  507. //public string OrgNoSatisfiedReasonText => OrgNoSatisfiedReason != null ? string.Join(',', OrgNoSatisfiedReason.Select(d => d.Value)) : "";
  508. /// <summary>
  509. /// 市
  510. /// </summary>
  511. public string? City { get; set; }
  512. /// <summary>
  513. /// 区/县
  514. /// </summary>
  515. public string? County { get; set; }
  516. /// <summary>
  517. ///
  518. /// </summary>
  519. public string? Area => string.IsNullOrEmpty(County) == false ? County : City;
  520. }
  521. public class VisitAndOrgSatisfactionStatisticsDto
  522. {
  523. public string OrgName { get; set; }
  524. public string OrgCode { get; set; }
  525. public EOrgType? OrgType { get; set; }
  526. public string OrgTypeText => OrgType?.GetDescription();
  527. /// <summary>
  528. /// 总数
  529. /// </summary>
  530. public int TotalSumCount { get; set; }
  531. /// <summary>
  532. /// 总满意度
  533. /// </summary>
  534. //public double TotalSumRate => Math.Round(VerySatisfiedRate + SatisfiedRate + RegardedAsSatisfiedRate+ DefaultSatisfiedRate, 2) ;
  535. public double TotalSumRate => CalcTotalSumRate();
  536. public double CalcTotalSumRate()
  537. {
  538. //if ((VerySatisfiedCount + SatisfiedCount + RegardedAsSatisfiedCount + DefaultSatisfiedCount + NoSatisfiedCount) == 0)
  539. // return 0;
  540. // return Math.Round(((double)VerySatisfiedCount + SatisfiedCount + RegardedAsSatisfiedCount + DefaultSatisfiedCount) / (VerySatisfiedCount + SatisfiedCount + RegardedAsSatisfiedCount + DefaultSatisfiedCount + NoSatisfiedCount) * 100, 2);
  541. if (TotalSumCount - NoSatisfiedCount <= 0)
  542. return 0;
  543. return Math.Round((((double)TotalSumCount - NoSatisfiedCount) / TotalSumCount) * 100, 2);
  544. }
  545. public string TotalSumRateText => TotalSumRate + "%";
  546. /// <summary>
  547. /// 非常满意数
  548. /// </summary>
  549. public int VerySatisfiedCount { get; set; }
  550. /// <summary>
  551. /// 非常满意Key
  552. /// </summary>
  553. public string VerySatisfiedKey => "5";
  554. /// <summary>
  555. /// 非常满意率
  556. /// </summary>
  557. public double VerySatisfiedRate => CalcVerySatisfiedRate();
  558. public double CalcVerySatisfiedRate()
  559. {
  560. if (VerySatisfiedCount == 0 || TotalSumCount == 0)
  561. {
  562. return 0;
  563. }
  564. return Math.Round((VerySatisfiedCount / (double)TotalSumCount) * 100, 2);
  565. }
  566. public string VerySatisfiedRateText => VerySatisfiedRate + "%";
  567. /// <summary>
  568. /// 满意数
  569. /// </summary>
  570. public int SatisfiedCount { get; set; }
  571. /// <summary>
  572. /// 满意Key
  573. /// </summary>
  574. public string SatisfiedKey => "4";
  575. /// <summary>
  576. /// 满意率
  577. /// </summary>
  578. public double SatisfiedRate => CalcSatisfiedRate();
  579. public double CalcSatisfiedRate()
  580. {
  581. if (SatisfiedCount == 0 || TotalSumCount == 0)
  582. {
  583. return 0;
  584. }
  585. return Math.Round((SatisfiedCount / (double)TotalSumCount) * 100, 2);
  586. }
  587. public string SatisfiedRateText => SatisfiedRate + "%";
  588. /// <summary>
  589. /// 视为满意数
  590. /// </summary>
  591. public int RegardedAsSatisfiedCount { get; set; }
  592. /// <summary>
  593. /// 视为满意Key
  594. /// </summary>
  595. public string RegardedAsSatisfiedKey => "-1";
  596. /// <summary>
  597. /// 视为满意率
  598. /// </summary>
  599. public double RegardedAsSatisfiedRate => CalcRegardedAsSatisfiedRate();
  600. public double CalcRegardedAsSatisfiedRate()
  601. {
  602. if (RegardedAsSatisfiedCount == 0 || TotalSumCount == 0)
  603. {
  604. return 0;
  605. }
  606. return Math.Round((RegardedAsSatisfiedCount / (double)TotalSumCount) * 100, 2);
  607. }
  608. public string RegardedAsSatisfiedRateText => RegardedAsSatisfiedRate + "%";
  609. /// <summary>
  610. /// 默认满意数
  611. /// </summary>
  612. public int DefaultSatisfiedCount { get; set; }
  613. /// <summary>
  614. /// 默认满意Key
  615. /// </summary>
  616. public string DefaultSatisfiedKey => "0";
  617. /// <summary>
  618. /// 默认满意率
  619. /// </summary>
  620. public double DefaultSatisfiedRate => CalcDefaultSatisfiedRate();
  621. public double CalcDefaultSatisfiedRate()
  622. {
  623. if (DefaultSatisfiedCount == 0 || TotalSumCount == 0)
  624. {
  625. return 0;
  626. }
  627. return Math.Round((DefaultSatisfiedCount / (double)TotalSumCount) * 100, 2);
  628. }
  629. public string DefaultSatisfiedRateText => DefaultSatisfiedRate + "%";
  630. /// <summary>
  631. /// 不满意数
  632. /// </summary>
  633. public int NoSatisfiedCount { get; set; }
  634. /// <summary>
  635. /// 不满意Key
  636. /// </summary>
  637. public string NoSatisfiedKey => "2";
  638. /// <summary>
  639. /// 不满意率
  640. /// </summary>
  641. public double NoSatisfiedRate => CalcNoSatisfiedRate();
  642. public double CalcNoSatisfiedRate()
  643. {
  644. if (NoSatisfiedCount == 0 || TotalSumCount == 0)
  645. {
  646. return 0;
  647. }
  648. return Math.Round((NoSatisfiedCount / (double)TotalSumCount) * 100, 2);
  649. }
  650. public string NoSatisfiedRateText => NoSatisfiedRate + "%";
  651. /// <summary>
  652. /// 未做评价数
  653. /// </summary>
  654. public int NoEvaluateCount { get; set; }
  655. /// <summary>
  656. /// 未做评价Key
  657. /// </summary>
  658. public string NoEvaluateKey => "7";
  659. /// <summary>
  660. /// 未做评价率
  661. /// </summary>
  662. public double NoEvaluateRate => CalcNoEvaluateRate();
  663. public double CalcNoEvaluateRate()
  664. {
  665. if (NoEvaluateCount == 0 || TotalSumCount == 0)
  666. {
  667. return 0;
  668. }
  669. return Math.Round((NoEvaluateCount / (double)TotalSumCount) * 100, 2);
  670. }
  671. public string NoEvaluateRateText => NoEvaluateRate + "%";
  672. /// <summary>
  673. /// 未接通数
  674. /// </summary>
  675. public int NoPutThroughCount { get; set; }
  676. /// <summary>
  677. /// 未接通Key
  678. /// </summary>
  679. public string NoPutThroughKey => "6";
  680. /// <summary>
  681. /// 未接通率
  682. /// </summary>
  683. public double NoPutThroughRate => CalcNoPutThroughRate();
  684. public double CalcNoPutThroughRate()
  685. {
  686. if (NoPutThroughCount == 0 || TotalSumCount == 0)
  687. {
  688. return 0;
  689. }
  690. return Math.Round((NoPutThroughCount / (double)TotalSumCount) * 100, 2);
  691. }
  692. public string NoPutThroughRateText => NoPutThroughRate + "%";
  693. /// <summary>
  694. /// 一般数
  695. /// </summary>
  696. public int NormalCount { get; set; }
  697. /// <summary>
  698. /// 一般Key
  699. /// </summary>
  700. public string NormalKey => "3";
  701. /// <summary>
  702. /// 一般率
  703. /// </summary>
  704. public double NormalRate => CalcNormalRate();
  705. public double CalcNormalRate()
  706. {
  707. if (NormalCount == 0 || TotalSumCount == 0)
  708. {
  709. return 0.000;
  710. }
  711. return Math.Round((NormalCount / (double)TotalSumCount) * 100, 3);
  712. }
  713. public string NormalRateText => NormalRate + "%";
  714. /// <summary>
  715. /// 非常不满意数
  716. /// </summary>
  717. public int VeryNoSatisfiedCount { get; set; }
  718. /// <summary>
  719. /// 非常不满意数Key
  720. /// </summary>
  721. public string VeryNoSatisfiedKey => "1";
  722. /// <summary>
  723. /// 非常不满意率
  724. /// </summary>
  725. public double VeryNoSatisfiedRate => CalcVeryNoSatisfiedRate();
  726. public double CalcVeryNoSatisfiedRate()
  727. {
  728. if (VeryNoSatisfiedCount == 0 || TotalSumCount == 0)
  729. {
  730. return 0.000;
  731. }
  732. return Math.Round((VeryNoSatisfiedCount / (double)TotalSumCount) * 100, 3);
  733. }
  734. public string VeryNoSatisfiedRateText => VeryNoSatisfiedRate + "%";
  735. }
  736. public class BiOrderSendVo
  737. {
  738. public string UserId { get; set; }
  739. public string UserName { get; set; }
  740. public string StepName { get; set; }
  741. /// <summary>
  742. /// 派单量
  743. /// </summary>
  744. public int SendOrderNum { get; set; }
  745. /// <summary>
  746. /// 待派单量
  747. /// </summary>
  748. public int NoSendOrderNum { get; set; }
  749. /// <summary>
  750. /// 重办量
  751. /// </summary>
  752. public int ReSendOrderNum { get; set; }
  753. //public string AccuracyRate { get; set; }
  754. public string AccuracyRate => GetAccuracyRateRate();
  755. public string GetAccuracyRateRate()
  756. {
  757. if (ReSendOrderNum == 0)
  758. {
  759. return "100%";
  760. }
  761. if (SendOrderNum > 0 && ReSendOrderNum > 0)
  762. {
  763. return Math.Round(((SendOrderNum - ReSendOrderNum) / (double)SendOrderNum) * 100, 2).ToString() + "%";
  764. }
  765. return "0%";
  766. }
  767. }
  768. public class OrderReTransactVo
  769. {
  770. /// <summary>
  771. /// 时间
  772. /// </summary>
  773. public string Time { get; set; }
  774. /// <summary>
  775. /// 部门名称
  776. /// </summary>
  777. public string OrgName { get; set; }
  778. /// <summary>
  779. /// 部门id
  780. /// </summary>
  781. public string OrgId { get; set; }
  782. /// <summary>
  783. /// 次数
  784. /// </summary>
  785. public int Num { get; set; }
  786. }
  787. public class SecondaryHandlingVo
  788. {
  789. /// <summary>
  790. /// 部门名称
  791. /// </summary>
  792. public string OrgName { get; set; }
  793. /// <summary>
  794. /// 部门id
  795. /// </summary>
  796. public string OrgId { get; set; }
  797. /// <summary>
  798. /// 次数
  799. /// </summary>
  800. public int Num { get; set; }
  801. }
  802. public class SecondaryHandlingSatisfactionVo
  803. {
  804. /// <summary>
  805. /// 部门名称
  806. /// </summary>
  807. public string OrgName { get; set; }
  808. /// <summary>
  809. /// 部门id
  810. /// </summary>
  811. public string OrgId { get; set; }
  812. /// <summary>
  813. /// 部门类型
  814. /// </summary>
  815. public EOrgType OrgType { get; set; }
  816. public string OrgTypeText => OrgType.GetDescription();
  817. /// <summary>
  818. /// 总数
  819. /// </summary>
  820. public int TotalSumCount { get; set; }
  821. /// <summary>
  822. /// 总满意度
  823. /// </summary>
  824. public double TotalSumRate => Math.Round(VerySatisfiedRate + SatisfiedRate + RegardedAsSatisfiedRate + DefaultSatisfiedRate, 2);
  825. public string TotalSumRateText => TotalSumRate + "%";
  826. /// <summary>
  827. /// 非常满意数
  828. /// </summary>
  829. public int VerySatisfiedCount { get; set; }
  830. /// <summary>
  831. /// 非常满意率
  832. /// </summary>
  833. public double VerySatisfiedRate => CalcVerySatisfiedRate();
  834. public double CalcVerySatisfiedRate()
  835. {
  836. if (VerySatisfiedCount == 0 || TotalSumCount == 0)
  837. {
  838. return 0.000;
  839. }
  840. return Math.Round((VerySatisfiedCount / (double)TotalSumCount) * 100, 2);
  841. }
  842. public string VerySatisfiedRateText => VerySatisfiedRate + "%";
  843. /// <summary>
  844. /// 满意数
  845. /// </summary>
  846. public int SatisfiedCount { get; set; }
  847. /// <summary>
  848. /// 满意率
  849. /// </summary>
  850. public double SatisfiedRate => CalcSatisfiedRate();
  851. public double CalcSatisfiedRate()
  852. {
  853. if (SatisfiedCount == 0 || TotalSumCount == 0)
  854. {
  855. return 0.000;
  856. }
  857. return Math.Round((SatisfiedCount / (double)TotalSumCount) * 100, 3);
  858. }
  859. public string SatisfiedRateText => SatisfiedRate + "%";
  860. /// <summary>
  861. /// 视为满意数
  862. /// </summary>
  863. public int RegardedAsSatisfiedCount { get; set; }
  864. /// <summary>
  865. /// 视为满意率
  866. /// </summary>
  867. public double RegardedAsSatisfiedRate => CalcRegardedAsSatisfiedRate();
  868. public double CalcRegardedAsSatisfiedRate()
  869. {
  870. if (RegardedAsSatisfiedCount == 0 || TotalSumCount == 0)
  871. {
  872. return 0.000;
  873. }
  874. return Math.Round((RegardedAsSatisfiedCount / (double)TotalSumCount) * 100, 3);
  875. }
  876. public string RegardedAsSatisfiedRateText => RegardedAsSatisfiedRate + "%";
  877. /// <summary>
  878. /// 默认满意数
  879. /// </summary>
  880. public int DefaultSatisfiedCount { get; set; }
  881. /// <summary>
  882. /// 默认满意率
  883. /// </summary>
  884. public double DefaultSatisfiedRate => CalcDefaultSatisfiedRate();
  885. public double CalcDefaultSatisfiedRate()
  886. {
  887. if (DefaultSatisfiedCount == 0 || TotalSumCount == 0)
  888. {
  889. return 0.000;
  890. }
  891. return Math.Round((DefaultSatisfiedCount / (double)TotalSumCount) * 100, 3);
  892. }
  893. public string DefaultSatisfiedRateText => DefaultSatisfiedRate + "%";
  894. /// <summary>
  895. /// 不满意数
  896. /// </summary>
  897. public int NoSatisfiedCount { get; set; }
  898. /// <summary>
  899. /// 不满意率
  900. /// </summary>
  901. public double NoSatisfiedRate => CalcNoSatisfiedRate();
  902. public double CalcNoSatisfiedRate()
  903. {
  904. if (NoSatisfiedCount == 0 || TotalSumCount == 0)
  905. {
  906. return 0.000;
  907. }
  908. return Math.Round((NoSatisfiedCount / (double)TotalSumCount) * 100, 3);
  909. }
  910. public string NoSatisfiedRateText => NoSatisfiedRate + "%";
  911. /// <summary>
  912. /// 未做评价数
  913. /// </summary>
  914. public int NoEvaluateCount { get; set; }
  915. /// <summary>
  916. /// 未做评价率
  917. /// </summary>
  918. public double NoEvaluateRate => CalcNoEvaluateRate();
  919. public double CalcNoEvaluateRate()
  920. {
  921. if (NoEvaluateCount == 0 || TotalSumCount == 0)
  922. {
  923. return 0.000;
  924. }
  925. return Math.Round((NoEvaluateCount / (double)TotalSumCount) * 100, 3);
  926. }
  927. public string NoEvaluateRateText => NoEvaluateRate + "%";
  928. /// <summary>
  929. /// 未接通数
  930. /// </summary>
  931. public int NoPutThroughCount { get; set; }
  932. /// <summary>
  933. /// 未接通率
  934. /// </summary>
  935. public double NoPutThroughRate => CalcNoPutThroughRate();
  936. public double CalcNoPutThroughRate()
  937. {
  938. if (NoPutThroughCount == 0 || TotalSumCount == 0)
  939. {
  940. return 0.000;
  941. }
  942. return Math.Round((NoPutThroughCount / (double)TotalSumCount) * 100, 3);
  943. }
  944. public string NoPutThroughRateText => NoPutThroughRate + "%";
  945. /// <summary>
  946. /// 一般数
  947. /// </summary>
  948. public int NormalCount { get; set; }
  949. /// <summary>
  950. /// 一般率
  951. /// </summary>
  952. public double NormalRate => CalcNormalRate();
  953. public double CalcNormalRate()
  954. {
  955. if (NormalCount == 0 || TotalSumCount == 0)
  956. {
  957. return 0.000;
  958. }
  959. return Math.Round((NormalCount / (double)TotalSumCount) * 100, 3);
  960. }
  961. public string NormalRateText => NormalRate + "%";
  962. /// <summary>
  963. /// 非常不满意数
  964. /// </summary>
  965. public int VeryNoSatisfiedCount { get; set; }
  966. /// <summary>
  967. /// 非常不满意率
  968. /// </summary>
  969. public double VeryNoSatisfiedRate => CalcVeryNoSatisfiedRate();
  970. public double CalcVeryNoSatisfiedRate()
  971. {
  972. if (VeryNoSatisfiedCount == 0 || TotalSumCount == 0)
  973. {
  974. return 0.000;
  975. }
  976. return Math.Round((VeryNoSatisfiedCount / (double)TotalSumCount) * 100, 3);
  977. }
  978. public string VeryNoSatisfiedRateText => VeryNoSatisfiedRate + "%";
  979. }
  980. public class OrderSourceVo
  981. {
  982. /// <summary>
  983. /// 信件来源
  984. /// </summary>
  985. public string Source { get; set; }
  986. /// <summary>
  987. /// 数量
  988. /// </summary>
  989. public int Num { get; set; }
  990. /// <summary>
  991. /// 总数
  992. /// </summary>
  993. public int TotalSumCount { get; set; }
  994. /// <summary>
  995. /// 占比
  996. /// </summary>
  997. public double Rate => GetRate();
  998. public double GetRate()
  999. {
  1000. if (Num == 0 || TotalSumCount == 0)
  1001. {
  1002. return 0.000;
  1003. }
  1004. return Math.Round((Num / (double)TotalSumCount) * 100, 2);
  1005. }
  1006. public string RateText => GetRate() + "%";
  1007. }
  1008. public class VisitAndHotspotSatisfactionStatisticsDto
  1009. {
  1010. public string HotspotId { get; set; }
  1011. public string HotspotName { get; set; }
  1012. /// <summary>
  1013. /// 总数
  1014. /// </summary>
  1015. public int TotalSumCount { get; set; }
  1016. /// <summary>
  1017. /// 总满意度
  1018. /// </summary>
  1019. public double TotalSumRate => Math.Round(VerySatisfiedRate + SatisfiedRate + RegardedAsSatisfiedRate + DefaultSatisfiedRate, 2);
  1020. public string TotalSumRateText => TotalSumRate + "%";
  1021. /// <summary>
  1022. /// 非常满意数
  1023. /// </summary>
  1024. public int VerySatisfiedCount { get; set; }
  1025. /// <summary>
  1026. /// 非常满意Key
  1027. /// </summary>
  1028. public string VerySatisfiedKey => "5";
  1029. /// <summary>
  1030. /// 非常满意率
  1031. /// </summary>
  1032. public double VerySatisfiedRate => CalcVerySatisfiedRate();
  1033. public double CalcVerySatisfiedRate()
  1034. {
  1035. if (VerySatisfiedCount == 0 || TotalSumCount == 0)
  1036. {
  1037. return 0;
  1038. }
  1039. return Math.Round((VerySatisfiedCount / (double)TotalSumCount) * 100, 2);
  1040. }
  1041. public string VerySatisfiedRateText => VerySatisfiedRate + "%";
  1042. /// <summary>
  1043. /// 满意数
  1044. /// </summary>
  1045. public int SatisfiedCount { get; set; }
  1046. /// <summary>
  1047. /// 满意Key
  1048. /// </summary>
  1049. public string SatisfiedKey => "4";
  1050. /// <summary>
  1051. /// 满意率
  1052. /// </summary>
  1053. public double SatisfiedRate => CalcSatisfiedRate();
  1054. public double CalcSatisfiedRate()
  1055. {
  1056. if (SatisfiedCount == 0 || TotalSumCount == 0)
  1057. {
  1058. return 0;
  1059. }
  1060. return Math.Round((SatisfiedCount / (double)TotalSumCount) * 100, 2);
  1061. }
  1062. public string SatisfiedRateText => SatisfiedRate + "%";
  1063. /// <summary>
  1064. /// 视为满意数
  1065. /// </summary>
  1066. public int RegardedAsSatisfiedCount { get; set; }
  1067. /// <summary>
  1068. /// 视为满意Key
  1069. /// </summary>
  1070. public string RegardedAsSatisfiedKey => "-1";
  1071. /// <summary>
  1072. /// 视为满意率
  1073. /// </summary>
  1074. public double RegardedAsSatisfiedRate => CalcRegardedAsSatisfiedRate();
  1075. public double CalcRegardedAsSatisfiedRate()
  1076. {
  1077. if (RegardedAsSatisfiedCount == 0 || TotalSumCount == 0)
  1078. {
  1079. return 0;
  1080. }
  1081. return Math.Round((RegardedAsSatisfiedCount / (double)TotalSumCount) * 100, 2);
  1082. }
  1083. public string RegardedAsSatisfiedRateText => RegardedAsSatisfiedRate + "%";
  1084. /// <summary>
  1085. /// 默认满意数
  1086. /// </summary>
  1087. public int DefaultSatisfiedCount { get; set; }
  1088. /// <summary>
  1089. /// 默认满意Key
  1090. /// </summary>
  1091. public string DefaultSatisfiedKey => "0";
  1092. /// <summary>
  1093. /// 默认满意率
  1094. /// </summary>
  1095. public double DefaultSatisfiedRate => CalcDefaultSatisfiedRate();
  1096. public double CalcDefaultSatisfiedRate()
  1097. {
  1098. if (DefaultSatisfiedCount == 0 || TotalSumCount == 0)
  1099. {
  1100. return 0;
  1101. }
  1102. return Math.Round((DefaultSatisfiedCount / (double)TotalSumCount) * 100, 2);
  1103. }
  1104. public string DefaultSatisfiedRateText => DefaultSatisfiedRate + "%";
  1105. /// <summary>
  1106. /// 不满意数
  1107. /// </summary>
  1108. public int NoSatisfiedCount { get; set; }
  1109. /// <summary>
  1110. /// 不满意Key
  1111. /// </summary>
  1112. public string NoSatisfiedKey => "2";
  1113. /// <summary>
  1114. /// 不满意率
  1115. /// </summary>
  1116. public double NoSatisfiedRate => CalcNoSatisfiedRate();
  1117. public double CalcNoSatisfiedRate()
  1118. {
  1119. if (NoSatisfiedCount == 0 || TotalSumCount == 0)
  1120. {
  1121. return 0;
  1122. }
  1123. return Math.Round((NoSatisfiedCount / (double)TotalSumCount) * 100, 2);
  1124. }
  1125. public string NoSatisfiedRateText => NoSatisfiedRate + "%";
  1126. /// <summary>
  1127. /// 未做评价数
  1128. /// </summary>
  1129. public int NoEvaluateCount { get; set; }
  1130. /// <summary>
  1131. /// 未做评价Key
  1132. /// </summary>
  1133. public string NoEvaluateKey => "7";
  1134. /// <summary>
  1135. /// 未做评价率
  1136. /// </summary>
  1137. public double NoEvaluateRate => CalcNoEvaluateRate();
  1138. public double CalcNoEvaluateRate()
  1139. {
  1140. if (NoEvaluateCount == 0 || TotalSumCount == 0)
  1141. {
  1142. return 0;
  1143. }
  1144. return Math.Round((NoEvaluateCount / (double)TotalSumCount) * 100, 2);
  1145. }
  1146. public string NoEvaluateRateText => NoEvaluateRate + "%";
  1147. /// <summary>
  1148. /// 未接通数
  1149. /// </summary>
  1150. public int NoPutThroughCount { get; set; }
  1151. /// <summary>
  1152. /// 未接通Key
  1153. /// </summary>
  1154. public string NoPutThroughKey => "6";
  1155. /// <summary>
  1156. /// 未接通率
  1157. /// </summary>
  1158. public double NoPutThroughRate => CalcNoPutThroughRate();
  1159. public double CalcNoPutThroughRate()
  1160. {
  1161. if (NoPutThroughCount == 0 || TotalSumCount == 0)
  1162. {
  1163. return 0;
  1164. }
  1165. return Math.Round((NoPutThroughCount / (double)TotalSumCount) * 100, 2);
  1166. }
  1167. public string NoPutThroughRateText => NoPutThroughRate + "%";
  1168. }
  1169. public class OrderSourceHeaderVo
  1170. {
  1171. /// <summary>
  1172. /// 日期
  1173. /// </summary>
  1174. public string? Time { get; set; }
  1175. /// <summary>
  1176. /// 日期(不显示)
  1177. /// </summary>
  1178. public string? TimeSort { get; set; }
  1179. /// <summary>
  1180. /// 小计
  1181. /// </summary>
  1182. public int? Subtotal => Phone + Web + Rests + Created + WeChat + App + WisdomYB + Platform + Platform12328 + MayorAndNetizens + MediaYB + Platform12345 + Interaction + ServiceYB + CityTransfer + Platform110 + NoService + Iyb;
  1183. /// <summary>
  1184. /// 电话
  1185. /// </summary>
  1186. public int? Phone { get; set; }
  1187. /// <summary>
  1188. /// 因特网
  1189. /// </summary>
  1190. public int? Web { get; set; }
  1191. /// <summary>
  1192. /// 其他
  1193. /// </summary>
  1194. public int? Rests { get; set; }
  1195. /// <summary>
  1196. /// 自建
  1197. /// </summary>
  1198. public int? Created { get; set; }
  1199. /// <summary>
  1200. /// 微信
  1201. /// </summary>
  1202. public int? WeChat { get; set; }
  1203. /// <summary>
  1204. /// APP
  1205. /// </summary>
  1206. public int? App { get; set; }
  1207. /// <summary>
  1208. /// 智慧宜宾
  1209. /// </summary>
  1210. public int? WisdomYB { get; set; }
  1211. /// <summary>
  1212. /// 综治平台
  1213. /// </summary>
  1214. public int? Platform { get; set; }
  1215. /// <summary>
  1216. /// 省12328平台
  1217. /// </summary>
  1218. public int? Platform12328 { get; set; }
  1219. /// <summary>
  1220. /// 市长和网民
  1221. /// </summary>
  1222. public int? MayorAndNetizens { get; set; }
  1223. /// <summary>
  1224. /// 宜宾融媒体
  1225. /// </summary>
  1226. public int? MediaYB { get; set; }
  1227. /// <summary>
  1228. /// 省12345平台
  1229. /// </summary>
  1230. public int? Platform12345 { get; set; }
  1231. /// <summary>
  1232. /// 省政民互动
  1233. /// </summary>
  1234. public int? Interaction { get; set; }
  1235. /// <summary>
  1236. /// 宜办事
  1237. /// </summary>
  1238. public int? ServiceYB { get; set; }
  1239. /// <summary>
  1240. /// 市州互转
  1241. /// </summary>
  1242. public int? CityTransfer { get; set; }
  1243. /// <summary>
  1244. /// 宜宾110平台
  1245. /// </summary>
  1246. public int? Platform110 { get; set; }
  1247. /// <summary>
  1248. /// 办不成事反映窗口
  1249. /// </summary>
  1250. public int? NoService { get; set; }
  1251. // <summary>
  1252. /// i宜宾
  1253. /// </summary>
  1254. public int? Iyb { get; set; }
  1255. }
  1256. public class OrderScreenApplyVo
  1257. {
  1258. /// <summary>
  1259. /// 提起时间
  1260. /// </summary>
  1261. public string ApplyTime { get; set; }
  1262. /// <summary>
  1263. /// 提起人
  1264. /// </summary>
  1265. public string ApplyUserName { get; set; }
  1266. /// <summary>
  1267. /// 部门名称
  1268. /// </summary>
  1269. public string ApplyOrgName { get; set; }
  1270. /// <summary>
  1271. /// 数量
  1272. /// </summary>
  1273. public int ApplyNum { get; set; }
  1274. }
  1275. public class OrderScreenAuditVo
  1276. {
  1277. /// <summary>
  1278. /// 审批人
  1279. /// </summary>
  1280. public string AuditName { get; set; }
  1281. /// <summary>
  1282. /// 节点名称
  1283. /// </summary>
  1284. public string StepName { get; set; }
  1285. /// <summary>
  1286. /// 审批数量
  1287. /// </summary>
  1288. public int AuditNum { get; set; }
  1289. /// <summary>
  1290. /// 审批不同意数量
  1291. /// </summary>
  1292. public int AuditNoNum { get; set; }
  1293. /// <summary>
  1294. /// 退回数量
  1295. /// </summary>
  1296. public int AuditBackNum { get; set; }
  1297. /// <summary>
  1298. /// 小计
  1299. /// </summary>
  1300. public int Total => AuditNum + AuditNoNum + AuditBackNum;
  1301. }
  1302. public class OrderCenterAcceptVo : OrderCenterBaseVo
  1303. {
  1304. /// <summary>
  1305. /// 日期
  1306. /// </summary>
  1307. public string Time { get; set; }
  1308. }
  1309. public class OrderCenterAcceptUserVo : OrderCenterBaseVo
  1310. {
  1311. /// <summary>
  1312. /// 值班坐席
  1313. /// </summary>
  1314. public string AcceptUserName { get; set; }
  1315. }
  1316. public class OrderCenterAcceptHourVo : OrderCenterBaseVo
  1317. {
  1318. /// <summary>
  1319. /// 时间段
  1320. /// </summary>
  1321. public string Hour { get; set; }
  1322. }
  1323. public class OrderCenterBaseVo
  1324. {
  1325. /// <summary>
  1326. /// 受理总件
  1327. /// </summary>
  1328. public int AcceptNum { get; set; }
  1329. /// <summary>
  1330. /// 有效件
  1331. /// </summary>
  1332. public int ValidNum { get; set; }
  1333. /// <summary>
  1334. /// 重复件
  1335. /// </summary>
  1336. public int RepetitionNum { get; set; }
  1337. /// <summary>
  1338. /// 无效件
  1339. /// </summary>
  1340. public int InvalidNum { get; set; }
  1341. /// <summary>
  1342. /// 已办件
  1343. /// </summary>
  1344. public int HandleNum { get; set; }
  1345. /// <summary>
  1346. /// 待办件
  1347. /// </summary>
  1348. public int NoHandleNum { get; set; }
  1349. /// <summary>
  1350. /// 退回件
  1351. /// </summary>
  1352. public int BackNum { get; set; }
  1353. /// <summary>
  1354. /// 值班坐席
  1355. /// </summary>
  1356. public int DutyDeskNum { get; set; }
  1357. }
  1358. public class ExtendedSendBackVo
  1359. {
  1360. /// <summary>
  1361. /// 部门Id
  1362. /// </summary>
  1363. public string OrgId { get; set; }
  1364. /// <summary>
  1365. /// 部门名称
  1366. /// </summary>
  1367. public string OrgName { get; set; }
  1368. /// <summary>
  1369. /// 总量
  1370. /// </summary>
  1371. public int TotalNum { get; set; }
  1372. /// <summary>
  1373. /// 通过量
  1374. /// </summary>
  1375. public int PassNum { get; set; }
  1376. /// <summary>
  1377. /// 不通过量
  1378. /// </summary>
  1379. public int NoPassNum { get; set; }
  1380. /// <summary>
  1381. /// 不通过量
  1382. /// </summary>
  1383. public int AuditNum { get; set; }
  1384. }
  1385. public class OnlineMassLineReportRes
  1386. {
  1387. /// <summary>
  1388. /// 受理渠道
  1389. /// </summary>
  1390. public string SourceChannel { get; set; }
  1391. /// <summary>
  1392. /// 数量
  1393. /// </summary>
  1394. public int SumCount { get; set; }
  1395. /// <summary>
  1396. /// 上期数量
  1397. /// </summary>
  1398. public int PreviousCount { get; set; }
  1399. /// <summary>
  1400. /// 环比
  1401. /// </summary>
  1402. public double Chain => PreviousCount == 0 ? 0 : Math.Round((SumCount / (double)PreviousCount) * 100, 2);
  1403. }
  1404. public class AreaSubordinateReportRes
  1405. {
  1406. /// <summary>
  1407. /// 区域名称
  1408. /// </summary>
  1409. public string AreaName { get; set; }
  1410. /// <summary>
  1411. /// 分类统计
  1412. /// </summary>
  1413. public int SumCount { get; set; }
  1414. }
  1415. public class OrgSendBackAuditListVo
  1416. {
  1417. public string OrgId { get; set; }
  1418. public string OrgName { get; set; }
  1419. public int Num { get; set; }
  1420. }
  1421. public class SeatSendBackStatisticsVo
  1422. {
  1423. /// <summary>
  1424. /// 用户Id
  1425. /// </summary>
  1426. public string UserId { get; set; }
  1427. /// <summary>
  1428. /// 姓名
  1429. /// </summary>
  1430. public string UserName { get; set; }
  1431. /// <summary>
  1432. /// 派单件总量件数
  1433. /// </summary>
  1434. public int SendOrderNum { get; set; }
  1435. /// <summary>
  1436. /// 派单件退办总量件数
  1437. /// </summary>
  1438. public int SendOrderBackNum { get; set; }
  1439. public string SendOrderBackRate => GetSendOrderBackRate();
  1440. public string GetSendOrderBackRate()
  1441. {
  1442. if (SendOrderNum == 0 || SendOrderBackNum == 0)
  1443. {
  1444. return "0.000%";
  1445. }
  1446. return Math.Round((SendOrderBackNum / (double)SendOrderNum) * 100, 2) + "%";
  1447. }
  1448. /// <summary>
  1449. /// 派单件退办总量次数
  1450. /// </summary>
  1451. public int SendOrderBackNumber { get; set; }
  1452. /// <summary>
  1453. /// 中心归档件总量
  1454. /// </summary>
  1455. public int CentreFileNum { get; set; }
  1456. /// <summary>
  1457. /// 中心归档件退回件数
  1458. /// </summary>
  1459. public int CentreFileBackNum { get; set; }
  1460. public string CentreFileBackRate => GetCentreFileBackRate();
  1461. public string GetCentreFileBackRate()
  1462. {
  1463. if (CentreFileNum == 0 || CentreFileBackNum == 0)
  1464. {
  1465. return "0.000%";
  1466. }
  1467. return Math.Round((CentreFileBackNum / (double)CentreFileNum) * 100, 2) + "%";
  1468. }
  1469. /// <summary>
  1470. /// 中心归档件退回次数
  1471. /// </summary>
  1472. public int CentreFileBackNumber { get; set; }
  1473. }
  1474. }