StatisticsDto.cs 68 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143
  1. using Hotline.Share.Dtos.Order;
  2. using Hotline.Share.Dtos.Settings;
  3. using Hotline.Share.Enums.Order;
  4. using Hotline.Share.Enums.Snapshot;
  5. using Hotline.Share.Requests;
  6. using Hotline.Share.Tools;
  7. using Newtonsoft.Json;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.ComponentModel.DataAnnotations;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Text.Json.Serialization;
  14. using System.Threading.Tasks;
  15. using XF.Utility.EnumExtensions;
  16. using JsonIgnoreAttribute = System.Text.Json.Serialization.JsonIgnoreAttribute;
  17. namespace Hotline.Share.Dtos.Snapshot;
  18. public record RedPackStatisticsDetailsInDto : PagedRequest
  19. {
  20. [Required]
  21. public DateTime StartTime { get; set; }
  22. [Required]
  23. public DateTime EndTime { get; set; }
  24. /// <summary>
  25. /// 字段名称
  26. /// </summary>
  27. [Required]
  28. public string FieldName { get; set; }
  29. /// <summary>
  30. /// 行业Id
  31. /// </summary>
  32. [Required]
  33. public string? IndustryId { get; set; }
  34. /// <summary>
  35. /// 行业类型
  36. /// </summary>
  37. [Required]
  38. public int IndustryType { get; set; }
  39. }
  40. public class RedPackStatisticsDetailsOutDto
  41. {
  42. /// <summary>
  43. /// Id
  44. /// </summary>
  45. public string Id { get; set; }
  46. /// <summary>
  47. /// 过期状态
  48. /// </summary>
  49. public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne);
  50. /// <summary>
  51. /// 过期状态
  52. /// </summary>
  53. public string ExpiredStatusText => ExpiredStatus?.GetDescription();
  54. /// <summary>
  55. /// 受理编号
  56. /// </summary>
  57. public string No { get; set; }
  58. /// <summary>
  59. /// 信件状态
  60. /// </summary>
  61. public EOrderStatus Status { get; set; }
  62. /// <summary>
  63. /// 信件状态
  64. /// </summary>
  65. public string StatusTxt => Status.GetDescription();
  66. /// <summary>
  67. /// 来源
  68. /// </summary>
  69. public string SourceChannel { get; set; }
  70. /// <summary>
  71. /// 当前节点
  72. /// </summary>
  73. public string CurrentStepName { get; set; }
  74. /// <summary>
  75. /// 重办次数
  76. /// </summary>
  77. public int ReTransactNum { get; set; }
  78. /// <summary>
  79. /// 是否紧急
  80. /// </summary>
  81. public bool IsUrgent { get; set; }
  82. /// <summary>
  83. /// 是否紧急
  84. /// </summary>
  85. public string IsUrgentText => IsUrgent ? "紧急" : "-";
  86. /// <summary>
  87. /// 期满时间
  88. /// </summary>
  89. public DateTime? ExpiredTime { get; set; }
  90. /// <summary>
  91. /// 即将超期时间
  92. /// </summary>
  93. public DateTime? NearlyExpiredTime { get; set; }
  94. /// <summary>
  95. /// 即将超期时间第一级
  96. /// </summary>
  97. public DateTime? NearlyExpiredTimeOne { get; set; }
  98. /// <summary>
  99. /// 是否超期
  100. /// </summary>
  101. public bool IsExpired
  102. {
  103. get
  104. {
  105. if (ExpiredTime.HasValue)
  106. return DateTime.Now > ExpiredTime.Value;
  107. return false;
  108. }
  109. }
  110. /// <summary>
  111. /// 受理时间
  112. /// </summary>
  113. public DateTime CreationTime { get; set; }
  114. /// <summary>
  115. /// 标题
  116. /// </summary>
  117. public string Title { get; set; }
  118. /// <summary>
  119. /// 行业
  120. /// </summary>
  121. public string IndustryName { get; set; }
  122. /// <summary>
  123. /// 办理时长
  124. /// </summary>
  125. public double CreationTimeHandleDuration { get; set; }
  126. /// <summary>
  127. /// 区域
  128. /// </summary>
  129. public string County { get; set; }
  130. /// <summary>
  131. /// 电话
  132. /// </summary>
  133. public string Contact { get; set; }
  134. /// <summary>
  135. /// 受理期满时间
  136. /// </summary>
  137. public DateTime? AcceptExpiredTime { get; set; }
  138. /// <summary>
  139. /// 接办部门
  140. /// </summary>
  141. public string ActualHandleOrgName { get; set; }
  142. /// <summary>
  143. /// 接办时间
  144. /// </summary>
  145. public DateTime? ActualHandleTime { get; set; }
  146. /// <summary>
  147. /// 办结时间
  148. /// </summary>
  149. public DateTime? FiledTime { get; set; }
  150. /// <summary>
  151. /// 受理类型
  152. /// </summary>
  153. public string AcceptType { get; set; }
  154. /// <summary>
  155. /// 热点类型
  156. /// </summary>
  157. public string HotspotName { get; set; }
  158. /// <summary>
  159. /// 受理人
  160. /// </summary>
  161. public string AcceptorName { get; set; }
  162. /// <summary>
  163. /// 受理内容
  164. /// </summary>
  165. public string Content { get; set; }
  166. /// <summary>
  167. /// 办理结果
  168. /// </summary>
  169. public string FileOpinion { get; set; }
  170. }
  171. public class RedPackStatisticsInDto
  172. {
  173. public DateTime StartTime { get; set; }
  174. public DateTime EndTime { get; set; }
  175. }
  176. public class RedPackStatisticsOutDto
  177. {
  178. /// <summary>
  179. /// 行业类型
  180. /// </summary>
  181. [JsonIgnore]
  182. [Newtonsoft.Json.JsonIgnore]
  183. public string CaseName { get; set; }
  184. /// <summary>
  185. /// 行业类型Id
  186. /// </summary>
  187. [JsonIgnore]
  188. [Newtonsoft.Json.JsonIgnore]
  189. public string CaseId { get; set; }
  190. /// <summary>
  191. /// 行业Id
  192. /// </summary>
  193. [JsonIgnore]
  194. [Newtonsoft.Json.JsonIgnore]
  195. public string? Id { get; set; }
  196. /// <summary>
  197. /// 行业名字
  198. /// </summary>
  199. [JsonIgnore]
  200. [Newtonsoft.Json.JsonIgnore]
  201. public string Name { get; set; }
  202. /// <summary>
  203. /// 配置金额(后端逻辑用, 前端不显示)
  204. /// </summary>
  205. [JsonIgnore]
  206. [Newtonsoft.Json.JsonIgnore]
  207. public double? ShouldAmount { get; set; } = 0;
  208. /// <summary>
  209. /// 审批同意总金额
  210. /// </summary>
  211. public double? ApprovalAmount { get; set; } = 0;
  212. /// <summary>
  213. /// 审批同意总金额
  214. /// </summary>
  215. public string? ApprovalAmountTxt => ApprovalAmount?.ToString("f2");
  216. /// <summary>
  217. /// 审批同意总个数
  218. /// </summary>
  219. public int ApprovalCount { get; set; }
  220. /// <summary>
  221. /// 发送成功金额
  222. /// </summary>
  223. public double? SentAmount { get; set; } = 0;
  224. /// <summary>
  225. /// 发送成功金额
  226. /// </summary>
  227. public string? SentAmountTxt => SentAmount?.ToString("f2");
  228. /// <summary>
  229. /// 发送成功个数
  230. /// </summary>
  231. public int SentCount { get; set; }
  232. /// <summary>
  233. /// 发送失败金额
  234. /// </summary>
  235. public double SendFailAmount { get; set; } = 0;
  236. /// <summary>
  237. /// 发送失败金额
  238. /// </summary>
  239. public string? SendFailAmountTxt => SendFailAmount.ToString("f2");
  240. /// <summary>
  241. /// 发送失败个数
  242. /// </summary>
  243. public int SendFailCount { get; set; }
  244. /// <summary>
  245. /// 待发金额
  246. /// </summary>
  247. public double? PendingAmount { get; set; } = 0;
  248. /// <summary>
  249. /// 待发金额
  250. /// </summary>
  251. public string? PendingAmountTxt => PendingAmount?.ToString("f2");
  252. /// <summary>
  253. /// 待发个数
  254. /// </summary>
  255. public int PendingCount { get; set; }
  256. /// <summary>
  257. /// 补充红包金额
  258. /// </summary>
  259. public double? SupplementAmount { get; set; } = 0;
  260. /// <summary>
  261. /// 补充红包金额
  262. /// </summary>
  263. public string? SupplementAmountTxt => SupplementAmount?.ToString("f2");
  264. /// <summary>
  265. /// 补充红包数
  266. /// </summary>
  267. public int SupplementCount { get; set; }
  268. /// <summary>
  269. /// 行业类型名称
  270. /// </summary>
  271. public string? IndustryName { get; set; }
  272. /// <summary>
  273. /// 行业Id
  274. /// </summary>
  275. public string? IndustryId { get; set; }
  276. /// <summary>
  277. /// 行业类型
  278. /// </summary>
  279. public int IndustryType { get; set; }
  280. }
  281. /// <summary>
  282. /// 随手拍统计输出Dto
  283. /// </summary>
  284. public class SnapshotStatisticsOutDto
  285. {
  286. /// <summary>
  287. /// 随手拍来件数
  288. /// </summary>
  289. public int SSPLJS => WZSLFWNJS + SSPZ12345JS + SLFWNZJS;
  290. /// <summary>
  291. /// 未在受理范围内件数
  292. /// </summary>
  293. public int WZSLFWNJS { get; set; }
  294. /// <summary>
  295. /// 随手拍转12345件数
  296. /// </summary>
  297. public int SSPZ12345JS { get; set; }
  298. /// <summary>
  299. /// 受理范围内总件数
  300. /// </summary>
  301. public int SLFWNZJS { get; set; }
  302. /// <summary>
  303. /// 受理范围内派给各网格员件数
  304. /// </summary>
  305. public int SLFWNPGGWGYJS => SLFWNPGWGYSXSNHFJS + SLFWNPGWGYCGSXSHFJS + SLFWNPGWGYWHFJS;
  306. /// <summary>
  307. /// 受理范围内派给网格员四小时内回复件数
  308. /// </summary>
  309. public int SLFWNPGWGYSXSNHFJS { get; set; }
  310. /// <summary>
  311. /// 受理范围内派给网格员超过四小时回复件数
  312. /// </summary>
  313. public int SLFWNPGWGYCGSXSHFJS { get; set; }
  314. /// <summary>
  315. /// 受理范围内派给网格员未回复件数
  316. /// </summary>
  317. public int SLFWNPGWGYWHFJS { get; set; }
  318. /// <summary>
  319. /// 受理范围内按12345直派给各区县或部门件数
  320. /// </summary>
  321. public int SLFWNA12345ZPGGQXHBMJS => SLFWNA12345ZPGGBMJS + SLFWNA12345ZPGGQXJS;
  322. /// <summary>
  323. /// 受理范围内按12345直派给各部门件数
  324. /// </summary>
  325. public int SLFWNA12345ZPGGBMJS { get; set; }
  326. /// <summary>
  327. /// 受理范围内按12345直派给各区县件数
  328. /// </summary>
  329. public int SLFWNA12345ZPGGQXJS { get; set; }
  330. /// <summary>
  331. /// 受理范围内已办信件
  332. /// </summary>
  333. public int SLFWNYBXJ => ZXYB + BMYB;
  334. /// <summary>
  335. /// 中心已办
  336. /// </summary>
  337. public int ZXYB { get; set; }
  338. /// <summary>
  339. /// 部门已办
  340. /// </summary>
  341. public int BMYB { get; set; }
  342. /// <summary>
  343. /// 受理范围满意度
  344. /// </summary>
  345. public double SLFWMYD => SLFWNZJS == 0 ? 0 : (double)MYL / SLFWNZJS;
  346. /// <summary>
  347. /// 计算率
  348. /// </summary>
  349. /// <returns></returns>
  350. public string CalcRate(int Quantity, int Count)
  351. {
  352. if (Count != 0 && Quantity != 0)
  353. {
  354. return Math.Round((Quantity / (double)Count) * 100, 2) + "%";
  355. }
  356. return "0%";
  357. }
  358. /// <summary>
  359. /// 受理范围满意度
  360. /// </summary>
  361. public string SLFWMYDTxt => CalcRate(MYL, SLFWNZJS);
  362. /// <summary>
  363. /// 满意量
  364. /// </summary>
  365. public int MYL { get; set; }
  366. /// <summary>
  367. /// 不满意量
  368. /// </summary>
  369. public int BMYL { get; set; }
  370. /// <summary>
  371. /// 审核发放奖励个数
  372. /// </summary>
  373. public int SHFFJLGS => SPBTYHBGS + SPTYHBGS;
  374. /// <summary>
  375. /// 审批不同意红包个数
  376. /// </summary>
  377. public int SPBTYHBGS { get; set; }
  378. /// <summary>
  379. /// 审批同意红包个数
  380. /// </summary>
  381. public int SPTYHBGS { get; set; }
  382. /// <summary>
  383. /// 特殊红包审批统计
  384. /// </summary>
  385. public int TSHBSP { get; set; }
  386. /// <summary>
  387. /// 审批同意个数
  388. /// </summary>
  389. public int SPTYGS { get; set; }
  390. /// <summary>
  391. /// 已发金额
  392. /// </summary>
  393. public double? YFJE { get; set; }
  394. /// <summary>
  395. /// 局审核发放网格员奖励个数
  396. /// </summary>
  397. public int JSHFFWGJLGS { get; set; }
  398. /// <summary>
  399. /// 审批同意(网格员)红包个数
  400. /// </summary>
  401. public int SPTYWGYHBGS { get; set; }
  402. /// <summary>
  403. /// 审批不同意(网格员)红包个数
  404. /// </summary>
  405. public int SPBTYWGYHBGS { get; set; }
  406. /// <summary>
  407. /// 市民奖励总额
  408. /// </summary>
  409. public double? SMJLZE { get; set; }
  410. /// <summary>
  411. /// 市民已发放奖励总额
  412. /// </summary>
  413. public double? SMYFFJLZE { get; set; }
  414. /// <summary>
  415. /// 市民待发奖励总额
  416. /// </summary>
  417. public double? SMDFFJLZE { get; set; }
  418. /// <summary>
  419. /// 已发(个)
  420. /// </summary>
  421. public int YFG { get; set; }
  422. /// <summary>
  423. /// 无法联系(个)
  424. /// </summary>
  425. public int WFLXG { get; set; }
  426. /// <summary>
  427. /// 婉拒红包(个)
  428. /// </summary>
  429. public int WJHBG { get; set; }
  430. /// <summary>
  431. /// 网格员应发奖励金额
  432. /// </summary>
  433. public double? WGYYFJLJE { get; set; }
  434. /// <summary>
  435. /// 网格员已发放奖励总额
  436. /// </summary>
  437. public double? WGYYFFJLZE { get; set; }
  438. /// <summary>
  439. /// 网格员待发放奖励总额
  440. /// </summary>
  441. public double? WGYDFFJLZE { get; set; }
  442. /// <summary>
  443. /// 网格员扣款总额(已发)
  444. /// </summary>
  445. public float WGYKKZEYF { get; set; }
  446. /// <summary>
  447. /// 网格员扣款总额(待发)
  448. /// </summary>
  449. public float WGYKKZEDF { get; set; }
  450. /// <summary>
  451. /// 受理范围内多部门会签件件数
  452. /// </summary>
  453. public int SLFWNDBMHQJJS { get; set; }
  454. /// <summary>
  455. /// 受理范围内热线中心归档件数
  456. /// </summary>
  457. public int SLFWNRXZXGDJS { get; set; }
  458. /// <summary>
  459. /// 热线中心发起会签件件数
  460. /// </summary>
  461. public int RXZXFQHQJJS { get; set; }
  462. /// <summary>
  463. /// 安全隐患
  464. /// </summary>
  465. public int AQYH { get; set; }
  466. /// <summary>
  467. /// 已完成安全隐患整改
  468. /// </summary>
  469. public int YWCAQYHZG { get; set; }
  470. /// <summary>
  471. /// 申请延期工单件数
  472. /// </summary>
  473. public int SQYQGDJS { get; set; }
  474. /// <summary>
  475. /// 申请延期工单次数
  476. /// </summary>
  477. public int SQYQGDCS { get; set; }
  478. /// <summary>
  479. /// 超期件
  480. /// </summary>
  481. public int CQJ { get; set; }
  482. /// <summary>
  483. /// 二次办理件数
  484. /// </summary>
  485. public int ECBLJS => ECBLJSTHBM + ECBLJSHFBMYCB + ECBLJSTTDYYJBM;
  486. /// <summary>
  487. /// 二次办理件数-退回部门
  488. /// </summary>
  489. public int ECBLJSTHBM { get; set; }
  490. /// <summary>
  491. /// 二次办理件数-回访不满意重办
  492. /// </summary>
  493. public int ECBLJSHFBMYCB { get; set; }
  494. /// <summary>
  495. /// 二次办理件数-回访满意
  496. /// </summary>
  497. public int ECBLJSHFMY { get; set; }
  498. /// <summary>
  499. /// 二次办理件数-特提到原一级部门
  500. /// </summary>
  501. public int ECBLJSTTDYYJBM { get; set; }
  502. /// <summary>
  503. /// 二次办理工单满意率
  504. /// </summary>
  505. public double ECBLGDMYL => ECBLJS == 0 ? 0 : (ECBLJSHFMY / ECBLJS) * 100;
  506. /// <summary>
  507. /// 二次办理工单满意率
  508. /// </summary>
  509. public string ECBLGDMYLTxt => ECBLGDMYL.ToString("f4") + "%";
  510. /// <summary>
  511. /// 二次办理工单件数-退回部门回访满意
  512. /// </summary>
  513. public int ECBLGDJSTMBMHFMYD { get; set; }
  514. /// <summary>
  515. /// 二次办理工单满意率-退回部门
  516. /// </summary>
  517. public double ECBLGDMYLTHBM => ECBLJSTHBM == 0 ? 0 : (ECBLGDJSTMBMHFMYD / ECBLJSTHBM) * 100;
  518. /// <summary>
  519. /// 二次办理工单满意率-退回部门
  520. /// </summary>
  521. public string ECBLGDMYLTHBMTxt => ECBLGDMYLTHBM.ToString("f4") + "%";
  522. /// <summary>
  523. /// 二次办理工单满意率-回访不满意重办
  524. /// </summary>
  525. public double ECBLGDMYLHFBMYCB => ECBLJS == 0 ? 0 : (ECBLJSHFBMYCB / ECBLJS) * 100;
  526. /// <summary>
  527. /// 二次办理工单满意率-回访不满意重办
  528. /// </summary>
  529. public string ECBLGDMYLHFBMYCBTxt => ECBLGDMYLHFBMYCB.ToString("f4") + "%";
  530. /// <summary>
  531. /// 特提件数
  532. /// </summary>
  533. public int TTJS => TTDYYJBMJS + TTDPDZJS + QTTTJS;
  534. /// <summary>
  535. /// 特提到原一级部门件数
  536. /// </summary>
  537. public int TTDYYJBMJS { get; set; }
  538. /// <summary>
  539. /// 特提到派单组件数
  540. /// </summary>
  541. public int TTDPDZJS { get; set; }
  542. /// <summary>
  543. /// 其他特提件数
  544. /// </summary>
  545. public int QTTTJS { get; set; }
  546. }
  547. /// <summary>
  548. /// 随手拍统计输入Dto
  549. /// </summary>
  550. public class SnapshotStatisticsInDto
  551. {
  552. /// <summary>
  553. /// 开始时间
  554. /// </summary>
  555. [Required]
  556. public DateTime StartTime { get; set; }
  557. /// <summary>
  558. /// 结束时间
  559. /// </summary>
  560. [Required]
  561. public DateTime EndTime { get; set; }
  562. /// <summary>
  563. /// 行业Id
  564. /// </summary>
  565. public string? IndustryId { get; set; }
  566. }
  567. public record SnapshotStatisticsDetailInDto : PagedRequest
  568. {
  569. /// <summary>
  570. /// 开始时间
  571. /// </summary>
  572. [Required]
  573. public DateTime StartTime { get; set; }
  574. /// <summary>
  575. /// 结束时间
  576. /// </summary>
  577. [Required]
  578. public DateTime EndTime { get; set; }
  579. /// <summary>
  580. /// 字段名称
  581. /// </summary>
  582. [Required]
  583. public string FieldName { get; set; }
  584. }
  585. public class SnapshotStatisticsDetailOutDto
  586. {
  587. /// <summary>
  588. /// Id
  589. /// </summary>
  590. public string Id { get; set; }
  591. /// <summary>
  592. /// 过期状态
  593. /// </summary>
  594. public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne);
  595. /// <summary>
  596. /// 过期状态
  597. /// </summary>
  598. public string ExpiredStatusText => ExpiredStatus?.GetDescription();
  599. /// <summary>
  600. /// 受理编号
  601. /// </summary>
  602. public string No { get; set; }
  603. /// <summary>
  604. /// 信件状态
  605. /// </summary>
  606. public EOrderStatus Status { get; set; }
  607. /// <summary>
  608. /// 信件状态
  609. /// </summary>
  610. public string StatusTxt => Status.GetDescription();
  611. /// <summary>
  612. /// 来源
  613. /// </summary>
  614. public string SourceChannel { get; set; }
  615. /// <summary>
  616. /// 当前节点
  617. /// </summary>
  618. public string CurrentStepName { get; set; }
  619. /// <summary>
  620. /// 重办次数
  621. /// </summary>
  622. public int ReTransactNum { get; set; }
  623. /// <summary>
  624. /// 是否紧急
  625. /// </summary>
  626. public bool IsUrgent { get; set; }
  627. /// <summary>
  628. /// 是否紧急
  629. /// </summary>
  630. public string IsUrgentText => IsUrgent ? "紧急" : "-";
  631. /// <summary>
  632. /// 期满时间
  633. /// </summary>
  634. public DateTime? ExpiredTime { get; set; }
  635. /// <summary>
  636. /// 即将超期时间
  637. /// </summary>
  638. public DateTime? NearlyExpiredTime { get; set; }
  639. /// <summary>
  640. /// 即将超期时间第一级
  641. /// </summary>
  642. public DateTime? NearlyExpiredTimeOne { get; set; }
  643. /// <summary>
  644. /// 是否超期
  645. /// </summary>
  646. public bool IsExpired
  647. {
  648. get
  649. {
  650. if (ExpiredTime.HasValue)
  651. return DateTime.Now > ExpiredTime.Value;
  652. return false;
  653. }
  654. }
  655. /// <summary>
  656. /// 受理时间
  657. /// </summary>
  658. public DateTime CreationTime { get; set; }
  659. /// <summary>
  660. /// 标题
  661. /// </summary>
  662. public string Title { get; set; }
  663. /// <summary>
  664. /// 行业
  665. /// </summary>
  666. public string IndustryName { get; set; }
  667. /// <summary>
  668. /// 办理时长
  669. /// </summary>
  670. public double CreationTimeHandleDuration { get; set; }
  671. /// <summary>
  672. /// 区域
  673. /// </summary>
  674. public string County { get; set; }
  675. /// <summary>
  676. /// 电话
  677. /// </summary>
  678. public string Contact { get; set; }
  679. /// <summary>
  680. /// 网格员名称
  681. /// </summary>
  682. public string MemberName { get; set; }
  683. /// <summary>
  684. /// 网格员电话
  685. /// </summary>
  686. public string MemberMobile { get; set; }
  687. /// <summary>
  688. /// 网格员回复
  689. /// </summary>
  690. public string NetworkRemark { get; set; }
  691. /// <summary>
  692. /// 网格E通编号
  693. /// </summary>
  694. public string? NetworkENumber { get; set; }
  695. /// <summary>
  696. /// 受理期满时间
  697. /// </summary>
  698. public DateTime? AcceptExpiredTime { get; set; }
  699. /// <summary>
  700. /// 一级部门
  701. /// </summary>
  702. public string OrgLevelOneCode { get; set; }
  703. /// <summary>
  704. /// 一级部门名称
  705. /// </summary>
  706. public string? OrgLevelOneName { get; set; }
  707. /// <summary>
  708. /// 接办部门
  709. /// </summary>
  710. public string ActualHandleOrgName { get; set; }
  711. /// <summary>
  712. /// 接办时间
  713. /// </summary>
  714. public DateTime? ActualHandleTime { get; set; }
  715. /// <summary>
  716. /// 办结时间
  717. /// </summary>
  718. public DateTime? FiledTime { get; set; }
  719. /// <summary>
  720. /// 受理类型
  721. /// </summary>
  722. public string AcceptType { get; set; }
  723. /// <summary>
  724. /// 热点类型
  725. /// </summary>
  726. public string HotspotName { get; set; }
  727. /// <summary>
  728. /// 受理人
  729. /// </summary>
  730. public string AcceptorName { get; set; }
  731. /// <summary>
  732. /// 受理内容
  733. /// </summary>
  734. public string Content { get; set; }
  735. /// <summary>
  736. /// 办理结果
  737. /// </summary>
  738. public string FileOpinion { get; set; }
  739. }
  740. public class StatisticsDto
  741. {
  742. }
  743. public class HotspotStatisticsInDto
  744. {
  745. [Required]
  746. public DateTime StartTime { get; set; }
  747. [Required]
  748. public DateTime EndTime { get; set; }
  749. /// <summary>
  750. /// 分类Code
  751. /// </summary>
  752. public string? HotspotCode { get; set; }
  753. }
  754. public class HotspotStatisticsOutDto
  755. {
  756. public string HotspotCode { get; set; }
  757. public int SumCount { get; set; }
  758. public string HotspotName { get; set; }
  759. public bool HasChild { get; set; }
  760. }
  761. public record HotspotStatisticsDetailsInDto : PagedRequest
  762. {
  763. [Required]
  764. public DateTime StartTime { get; set; }
  765. [Required]
  766. public DateTime EndTime { get; set; }
  767. public string? HotspotCode { get; set; }
  768. }
  769. public class HotspotStatisticsDetailsOutDto
  770. {
  771. /// <summary>
  772. /// Id
  773. /// </summary>
  774. public string Id { get; set; }
  775. /// <summary>
  776. /// 过期状态
  777. /// </summary>
  778. public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne);
  779. /// <summary>
  780. /// 过期状态
  781. /// </summary>
  782. public string ExpiredStatusText => ExpiredStatus?.GetDescription();
  783. /// <summary>
  784. /// 受理编号
  785. /// </summary>
  786. public string No { get; set; }
  787. /// <summary>
  788. /// 信件状态
  789. /// </summary>
  790. public EOrderStatus Status { get; set; }
  791. /// <summary>
  792. /// 信件状态
  793. /// </summary>
  794. public string StatusTxt => Status.GetDescription();
  795. /// <summary>
  796. /// 来源
  797. /// </summary>
  798. public string SourceChannel { get; set; }
  799. /// <summary>
  800. /// 当前节点
  801. /// </summary>
  802. public string CurrentStepName { get; set; }
  803. /// <summary>
  804. /// 重办次数
  805. /// </summary>
  806. public int ReTransactNum { get; set; }
  807. /// <summary>
  808. /// 甄别状态
  809. /// </summary>
  810. public EScreenStatus? OrderScreenStatus { get; set; }
  811. /// <summary>
  812. /// 甄别状态
  813. /// </summary>
  814. public string? OrderScreenStatusText => OrderScreenStatus.HasValue && OrderScreenStatus != null ? OrderScreenStatus?.GetDescription() : "未甄别";
  815. /// <summary>
  816. /// 是否紧急
  817. /// </summary>
  818. public bool IsUrgent { get; set; }
  819. /// <summary>
  820. /// 是否紧急
  821. /// </summary>
  822. public string IsUrgentText => IsUrgent ? "紧急" : "-";
  823. /// <summary>
  824. /// 期满时间
  825. /// </summary>
  826. public DateTime? ExpiredTime { get; set; }
  827. /// <summary>
  828. /// 即将超期时间
  829. /// </summary>
  830. public DateTime? NearlyExpiredTime { get; set; }
  831. /// <summary>
  832. /// 即将超期时间第一级
  833. /// </summary>
  834. public DateTime? NearlyExpiredTimeOne { get; set; }
  835. /// <summary>
  836. /// 是否超期
  837. /// </summary>
  838. public bool IsExpired
  839. {
  840. get
  841. {
  842. if (ExpiredTime.HasValue)
  843. return DateTime.Now > ExpiredTime.Value;
  844. return false;
  845. }
  846. }
  847. /// <summary>
  848. /// 受理时间
  849. /// </summary>
  850. public DateTime CreationTime { get; set; }
  851. /// <summary>
  852. /// 标题
  853. /// </summary>
  854. public string Title { get; set; }
  855. /// <summary>
  856. /// 行业
  857. /// </summary>
  858. public string IndustryName { get; set; }
  859. /// <summary>
  860. /// 办理时长
  861. /// </summary>
  862. public double CreationTimeHandleDuration { get; set; }
  863. /// <summary>
  864. /// 区域
  865. /// </summary>
  866. public string County { get; set; }
  867. /// <summary>
  868. /// 电话
  869. /// </summary>
  870. public string Contact { get; set; }
  871. /// <summary>
  872. /// 受理期满时间
  873. /// </summary>
  874. public DateTime? AcceptExpiredTime { get; set; }
  875. /// <summary>
  876. /// 接办部门
  877. /// </summary>
  878. public string ActualHandleOrgName { get; set; }
  879. /// <summary>
  880. /// 接办时间
  881. /// </summary>
  882. public DateTime? ActualHandleTime { get; set; }
  883. /// <summary>
  884. /// 办结时间
  885. /// </summary>
  886. public DateTime? FiledTime { get; set; }
  887. /// <summary>
  888. /// 满意度
  889. /// </summary>
  890. public Kv? OrgProcessingResults { get; set; }
  891. /// <summary>
  892. /// 满意度
  893. /// </summary>
  894. public string? OrgProcessingResultsTxt => OrgProcessingResults != null ? OrgProcessingResults.Value : "";
  895. /// <summary>
  896. /// 受理类型
  897. /// </summary>
  898. public string AcceptType { get; set; }
  899. /// <summary>
  900. /// 热点类型
  901. /// </summary>
  902. public string HotspotName { get; set; }
  903. /// <summary>
  904. /// 受理人
  905. /// </summary>
  906. public string AcceptorName { get; set; }
  907. /// <summary>
  908. /// 受理内容
  909. /// </summary>
  910. public string Content { get; set; }
  911. /// <summary>
  912. /// 办理结果
  913. /// </summary>
  914. public string FileOpinion { get; set; }
  915. }
  916. public class SnapshotProcessingStatisticsInDto
  917. {
  918. [Required]
  919. public DateTime StartTime { get; set; }
  920. [Required]
  921. public DateTime EndTime { get; set; }
  922. /// <summary>
  923. /// 行业Id
  924. /// </summary>
  925. public string? IndustryId { get; set; }
  926. }
  927. public class SnapshotProcessingStatisticsOutDto
  928. {
  929. /// <summary>
  930. /// 部门Code
  931. /// </summary>
  932. public string OrgCode { get; set; }
  933. /// <summary>
  934. /// 部门名称
  935. /// </summary>
  936. public string OrgName { get; set; }
  937. /// <summary>
  938. /// 信件总量
  939. /// </summary>
  940. public int OrderCountNum => YbOrderCountNum + ZbOrderCountNum;
  941. /// <summary>
  942. /// 信件已办总量
  943. /// </summary>
  944. public int YbOrderCountNum { get; set; }
  945. /// <summary>
  946. /// 信件未办总量
  947. /// </summary>
  948. public int ZbOrderCountNum { get; set; }
  949. /// <summary>
  950. /// 按时办结
  951. /// </summary>
  952. public int CompleteOnTime { get; set; }
  953. /// <summary>
  954. /// 按时办结率
  955. /// </summary>
  956. public string CompleteOnTimeRate => CalcRate(YbOrderCountNum, CompleteOnTime);
  957. /// <summary>
  958. /// 办结率
  959. /// </summary>
  960. public string OrderCompletionRate => CalcRate(YbOrderCountNum, OrderCountNum);
  961. /// <summary>
  962. /// 20分钟内接件
  963. /// </summary>
  964. public int ReceiveIn20Minutes { get; set; }
  965. /// <summary>
  966. /// 20分钟后接件
  967. /// </summary>
  968. public int ReceiveOut20Minutes { get; set; }
  969. /// <summary>
  970. /// 工单及时响应率
  971. /// </summary>
  972. public string PromptResponse => CalcRate(ReceiveIn20Minutes, ReceiveIn20Minutes + ReceiveOut20Minutes);
  973. /// <summary>
  974. /// 退回件
  975. /// </summary>
  976. public int BackNum { get; set; }
  977. /// <summary>
  978. /// 办件总时长
  979. /// </summary>
  980. public double? TotalHandleDuration { get; set; }
  981. /// <summary>
  982. /// 3日内办结
  983. /// </summary>
  984. public int End3Day { get; set; }
  985. /// <summary>
  986. /// 3至5日办结
  987. /// </summary>
  988. public int End3To5Day { get; set; }
  989. /// <summary>
  990. /// 5至7日办结
  991. /// </summary>
  992. public int End5To7Day { get; set; }
  993. /// <summary>
  994. /// 7日外办结
  995. /// </summary>
  996. public int End7Day { get; set; }
  997. /// <summary>
  998. /// 按时办结个数
  999. /// </summary>
  1000. public int OnTimeCount { get; set; }
  1001. /// <summary>
  1002. /// 按时办结率
  1003. /// </summary>
  1004. public string CloseOnTimeRate => CalcRate(OnTimeCount, OrderCountNum);
  1005. /// <summary>
  1006. /// 满意量
  1007. /// </summary>
  1008. public int SatisfiedCount { get; set; }
  1009. /// <summary>
  1010. /// 不满意量
  1011. /// </summary>
  1012. public int NoSatisfiedCount { get; set; }
  1013. /// <summary>
  1014. /// 满意率
  1015. /// </summary>
  1016. public string SatisfiedRate => CalcRate(SatisfiedCount, SatisfiedCount + NoSatisfiedCount);
  1017. /// <summary>
  1018. /// 二次办理个数
  1019. /// </summary>
  1020. public int SecondNum { get; set; }
  1021. /// <summary>
  1022. /// 计算率
  1023. /// </summary>
  1024. /// <returns></returns>
  1025. public string CalcRate(int Quantity, int Count)
  1026. {
  1027. if (Count != 0 && Quantity != 0)
  1028. {
  1029. return Math.Round((Quantity / (double)Count) * 100, 2) + "%";
  1030. }
  1031. return "0%";
  1032. }
  1033. }
  1034. public record SnapshotProcessingStatisticsDetailsInDto : PagedRequest
  1035. {
  1036. /// <summary>
  1037. /// 开始时间
  1038. /// </summary>
  1039. [Required]
  1040. public DateTime StartTime { get; set; }
  1041. /// <summary>
  1042. /// 结束时间
  1043. /// </summary>
  1044. [Required]
  1045. public DateTime EndTime { get; set; }
  1046. /// <summary>
  1047. /// 字段名称
  1048. /// </summary>
  1049. [Required]
  1050. public string FieldName { get; set; }
  1051. /// <summary>
  1052. /// 部门Id
  1053. /// </summary>
  1054. [Required]
  1055. public string OrgId { get; set; }
  1056. /// <summary>
  1057. /// 行业Id
  1058. /// </summary>
  1059. public string? IndustryId { get; set; }
  1060. }
  1061. public class SnapshotProcessingStatisticsDetailsOutDto
  1062. {
  1063. /// <summary>
  1064. /// Id
  1065. /// </summary>
  1066. public string Id { get; set; }
  1067. /// <summary>
  1068. /// 过期状态
  1069. /// </summary>
  1070. public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne);
  1071. /// <summary>
  1072. /// 过期状态
  1073. /// </summary>
  1074. public string ExpiredStatusText => ExpiredStatus?.GetDescription();
  1075. /// <summary>
  1076. /// 受理编号
  1077. /// </summary>
  1078. public string No { get; set; }
  1079. /// <summary>
  1080. /// 信件状态
  1081. /// </summary>
  1082. public EOrderStatus Status { get; set; }
  1083. /// <summary>
  1084. /// 信件状态
  1085. /// </summary>
  1086. public string StatusTxt => Status.GetDescription();
  1087. /// <summary>
  1088. /// 来源
  1089. /// </summary>
  1090. public string SourceChannel { get; set; }
  1091. /// <summary>
  1092. /// 当前节点
  1093. /// </summary>
  1094. public string CurrentStepName { get; set; }
  1095. /// <summary>
  1096. /// 重办次数
  1097. /// </summary>
  1098. public int ReTransactNum { get; set; }
  1099. /// <summary>
  1100. /// 甄别状态
  1101. /// </summary>
  1102. public EScreenStatus? OrderScreenStatus { get; set; }
  1103. /// <summary>
  1104. /// 甄别状态
  1105. /// </summary>
  1106. public string? OrderScreenStatusText => OrderScreenStatus.HasValue && OrderScreenStatus != null ? OrderScreenStatus?.GetDescription() : "未甄别";
  1107. /// <summary>
  1108. /// 受理时间
  1109. /// </summary>
  1110. public DateTime CreationTime { get; set; }
  1111. /// <summary>
  1112. /// 期满时间
  1113. /// </summary>
  1114. public DateTime? ExpiredTime { get; set; }
  1115. /// <summary>
  1116. /// 即将超期时间
  1117. /// </summary>
  1118. public DateTime? NearlyExpiredTime { get; set; }
  1119. /// <summary>
  1120. /// 即将超期时间第一级
  1121. /// </summary>
  1122. public DateTime? NearlyExpiredTimeOne { get; set; }
  1123. /// <summary>
  1124. /// 接办部门
  1125. /// </summary>
  1126. public string ActualHandleOrgName { get; set; }
  1127. /// <summary>
  1128. /// 接办时间
  1129. /// </summary>
  1130. public DateTime? ActualHandleTime { get; set; }
  1131. /// <summary>
  1132. /// 办结时间
  1133. /// </summary>
  1134. public DateTime? FiledTime { get; set; }
  1135. /// <summary>
  1136. /// 受理类型
  1137. /// </summary>
  1138. public string AcceptType { get; set; }
  1139. /// <summary>
  1140. /// 热点类型
  1141. /// </summary>
  1142. public string HotspotName { get; set; }
  1143. }
  1144. public class GuiderWorkStatisticsOutDto
  1145. {
  1146. /// <summary>
  1147. /// 网格员姓名
  1148. /// </summary>
  1149. public string MemberName { get; set; }
  1150. /// <summary>
  1151. /// 网格员手机号
  1152. /// </summary>
  1153. public string MemberMobile { get; set; }
  1154. /// <summary>
  1155. /// 未回复
  1156. /// </summary>
  1157. public int UnReplyCount { get; set; }
  1158. /// <summary>
  1159. /// 4小时内回复
  1160. /// </summary>
  1161. public int ReplyIn4HourCount { get; set; }
  1162. /// <summary>
  1163. /// 4小时外回复
  1164. /// </summary>
  1165. public int ReplyOut4HourCount { get; set; }
  1166. }
  1167. public class GuiderWorkStatisticsInDto
  1168. {
  1169. [Required]
  1170. public DateTime StartTime { get; set; }
  1171. [Required]
  1172. public DateTime EndTime { get; set; }
  1173. }
  1174. public record GuiderWorkStatisticsDetailsInDto : PagedRequest
  1175. {
  1176. [Required]
  1177. public DateTime StartTime { get; set; }
  1178. [Required]
  1179. public DateTime EndTime { get; set; }
  1180. [Required]
  1181. public string MemberMobile { get; set; }
  1182. /// <summary>
  1183. /// 字段名称
  1184. /// </summary>
  1185. [Required]
  1186. public string FieldName { get; set; }
  1187. }
  1188. public class GuiderWorkStatisticsDetailsOutDto
  1189. {
  1190. /// <summary>
  1191. /// Id
  1192. /// </summary>
  1193. public string Id { get; set; }
  1194. /// <summary>
  1195. /// 过期状态
  1196. /// </summary>
  1197. public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne);
  1198. /// <summary>
  1199. /// 过期状态
  1200. /// </summary>
  1201. public string ExpiredStatusText => ExpiredStatus?.GetDescription();
  1202. /// <summary>
  1203. /// 受理编号
  1204. /// </summary>
  1205. public string No { get; set; }
  1206. /// <summary>
  1207. /// 信件状态
  1208. /// </summary>
  1209. public EOrderStatus Status { get; set; }
  1210. /// <summary>
  1211. /// 信件状态
  1212. /// </summary>
  1213. public string StatusTxt => Status.GetDescription();
  1214. /// <summary>
  1215. /// 来源
  1216. /// </summary>
  1217. public string SourceChannel { get; set; }
  1218. /// <summary>
  1219. /// 当前节点
  1220. /// </summary>
  1221. public string CurrentStepName { get; set; }
  1222. /// <summary>
  1223. /// 重办次数
  1224. /// </summary>
  1225. public int ReTransactNum { get; set; }
  1226. /// <summary>
  1227. /// 是否紧急
  1228. /// </summary>
  1229. public bool IsUrgent { get; set; }
  1230. /// <summary>
  1231. /// 是否紧急
  1232. /// </summary>
  1233. public string IsUrgentText => IsUrgent ? "紧急" : "-";
  1234. /// <summary>
  1235. /// 期满时间
  1236. /// </summary>
  1237. public DateTime? ExpiredTime { get; set; }
  1238. /// <summary>
  1239. /// 即将超期时间
  1240. /// </summary>
  1241. public DateTime? NearlyExpiredTime { get; set; }
  1242. /// <summary>
  1243. /// 即将超期时间第一级
  1244. /// </summary>
  1245. public DateTime? NearlyExpiredTimeOne { get; set; }
  1246. /// <summary>
  1247. /// 是否超期
  1248. /// </summary>
  1249. public bool IsExpired
  1250. {
  1251. get
  1252. {
  1253. if (ExpiredTime.HasValue)
  1254. return DateTime.Now > ExpiredTime.Value;
  1255. return false;
  1256. }
  1257. }
  1258. /// <summary>
  1259. /// 受理时间
  1260. /// </summary>
  1261. public DateTime CreationTime { get; set; }
  1262. /// <summary>
  1263. /// 标题
  1264. /// </summary>
  1265. public string Title { get; set; }
  1266. /// <summary>
  1267. /// 行业
  1268. /// </summary>
  1269. public string IndustryName { get; set; }
  1270. /// <summary>
  1271. /// 办理时长
  1272. /// </summary>
  1273. public double CreationTimeHandleDuration { get; set; }
  1274. /// <summary>
  1275. /// 区域
  1276. /// </summary>
  1277. public string County { get; set; }
  1278. /// <summary>
  1279. /// 电话
  1280. /// </summary>
  1281. public string Contact { get; set; }
  1282. /// <summary>
  1283. /// 网格员姓名
  1284. /// </summary>
  1285. public string MemberName { get; set; }
  1286. /// <summary>
  1287. /// 网格员手机号
  1288. /// </summary>
  1289. public string MemberMobile { get; set; }
  1290. /// <summary>
  1291. /// 网格员回复内容
  1292. /// </summary>
  1293. public string? NetworkRemark { get; set; }
  1294. /// <summary>
  1295. /// 受理期满时间
  1296. /// </summary>
  1297. public DateTime? AcceptExpiredTime { get; set; }
  1298. /// <summary>
  1299. /// 接办部门
  1300. /// </summary>
  1301. public string ActualHandleOrgName { get; set; }
  1302. /// <summary>
  1303. /// 接办时间
  1304. /// </summary>
  1305. public DateTime? ActualHandleTime { get; set; }
  1306. /// <summary>
  1307. /// 办结时间
  1308. /// </summary>
  1309. public DateTime? FiledTime { get; set; }
  1310. /// <summary>
  1311. /// 受理类型
  1312. /// </summary>
  1313. public string AcceptType { get; set; }
  1314. /// <summary>
  1315. /// 热点类型
  1316. /// </summary>
  1317. public string HotspotName { get; set; }
  1318. /// <summary>
  1319. /// 受理人
  1320. /// </summary>
  1321. public string AcceptorName { get; set; }
  1322. }
  1323. public class HotspotDataStatisticsOutDto
  1324. {
  1325. /// <summary>
  1326. /// 热点名字
  1327. /// </summary>
  1328. public string Name { get; set; }
  1329. /// <summary>
  1330. /// 热点工单数量
  1331. /// </summary>
  1332. public int OrderCount { get; set; }
  1333. }
  1334. public class HotspotDataStatisticsInDto
  1335. {
  1336. /// <summary>
  1337. /// 类型:
  1338. /// 0: 全部;
  1339. /// 1: 市民;
  1340. /// 2: 企业;
  1341. /// </summary>
  1342. [Required]
  1343. public int TypeId { get; set; }
  1344. [Required]
  1345. public DateTime StartTime { get; set; }
  1346. [Required]
  1347. public DateTime EndTime { get; set; }
  1348. }
  1349. public class GuiderWorkLogsOutDto
  1350. {
  1351. /// <summary>
  1352. /// Id
  1353. /// </summary>
  1354. public string Id { get; set; }
  1355. /// <summary>
  1356. /// title
  1357. /// </summary>
  1358. public string Title { get; set; }
  1359. /// <summary>
  1360. /// 受理编号
  1361. /// </summary>
  1362. public string No { get; set; }
  1363. /// <summary>
  1364. /// 信件状态
  1365. /// </summary>
  1366. public EOrderStatus Status { get; set; }
  1367. /// <summary>
  1368. /// 信件状态
  1369. /// </summary>
  1370. public string StatusTxt => Status.GetDescription();
  1371. /// <summary>
  1372. /// 受理时间
  1373. /// </summary>
  1374. public DateTime CreationTime { get; set; }
  1375. /// <summary>
  1376. /// 区域
  1377. /// </summary>
  1378. public string County { get; set; }
  1379. /// <summary>
  1380. /// 网格员回复内容
  1381. /// </summary>
  1382. public string? NetworkRemark { get; set; }
  1383. /// <summary>
  1384. /// 回复时间
  1385. /// </summary>
  1386. public DateTime? ReplyDate { get; set; }
  1387. /// <summary>
  1388. /// 网格员姓名
  1389. /// </summary>
  1390. public string? MemberName { get; set; }
  1391. /// <summary>
  1392. /// 网格员电话
  1393. /// </summary>
  1394. public string? MemberMobile { get; set; }
  1395. /// <summary>
  1396. /// 网格E通编号
  1397. /// </summary>
  1398. public string? NetworkENumber { get; set; }
  1399. /// <summary>
  1400. /// 网格员办理状态
  1401. /// </summary>
  1402. public EGuiderSystemReplyType? ReplyResultType { get; set; }
  1403. /// <summary>
  1404. /// 网格员办理状态
  1405. /// </summary>
  1406. public string ReplyResultTypeTxt => ReplyResultType == null ? "未知" : ReplyResultType.Value.GetDescription();
  1407. }
  1408. public record GuiderWorkLogsInDto : PagedRequest
  1409. {
  1410. /// <summary>
  1411. /// Id
  1412. /// </summary>
  1413. public string Id { get; set; }
  1414. /// <summary>
  1415. /// No
  1416. /// </summary>
  1417. public string? No { get; set; }
  1418. /// <summary>
  1419. /// 标题
  1420. /// </summary>
  1421. public string? Title { get; set; }
  1422. /// <summary>
  1423. /// 网格员姓名
  1424. /// </summary>
  1425. public string? MemberName { get; set; }
  1426. /// <summary>
  1427. /// 网格员电话
  1428. /// </summary>
  1429. public string? MemberMobile { get; set; }
  1430. /// <summary>
  1431. /// 编号
  1432. /// </summary>
  1433. public string? NetworkENumber { get; set; }
  1434. /// <summary>
  1435. /// 状态
  1436. /// </summary>
  1437. public EOrderStatus? Status { get; set; }
  1438. /// <summary>
  1439. /// 受理时间开始
  1440. /// </summary>
  1441. public DateTime? BeginCreationTime { get; set; }
  1442. /// <summary>
  1443. /// 受理时间结束
  1444. /// </summary>
  1445. public DateTime? EndCreationTime { get; set; }
  1446. }
  1447. public record DuplicateItemsInDto : PagedRequest
  1448. {
  1449. /// <summary>
  1450. /// 编号
  1451. /// </summary>
  1452. public string? No { get; set; }
  1453. /// <summary>
  1454. /// 标题
  1455. /// </summary>
  1456. public string? Title { get; set; }
  1457. /// <summary>
  1458. /// 来电号码
  1459. /// </summary>
  1460. public string? FromPhone { get; set; }
  1461. /// <summary>
  1462. /// 联系号码
  1463. /// </summary>
  1464. public string? Contact { get; set; }
  1465. /// <summary>
  1466. /// 来电人
  1467. /// </summary>
  1468. public string? FromName { get; set; }
  1469. /// <summary>
  1470. /// 受理时间
  1471. /// </summary>
  1472. public DateTime? BeginCreationTime { get; set; }
  1473. /// <summary>
  1474. /// 受理时间
  1475. /// </summary>
  1476. public DateTime? EndCreationTime { get; set; }
  1477. /// <summary>
  1478. /// 期满时间开始
  1479. /// </summary>
  1480. public DateTime? BeginExpiredTime { get; set; }
  1481. /// <summary>
  1482. /// 期满时间结束
  1483. /// </summary>
  1484. public DateTime? EndExpiredTime { get; set; }
  1485. /// <summary>
  1486. /// 接办部门
  1487. /// </summary>
  1488. public string? ActualHandleOrgName { get; set; }
  1489. /// <summary>
  1490. /// 受理类型
  1491. /// </summary>
  1492. public string? AcceptType { get; set; }
  1493. /// <summary>
  1494. /// 热点类型
  1495. /// </summary>
  1496. public string? HotspotName { get; set; }
  1497. /// <summary>
  1498. /// 受理人
  1499. /// </summary>
  1500. public string? AcceptorName { get; set; }
  1501. /// <summary>
  1502. /// 行业Id
  1503. /// </summary>
  1504. public string? IndustryId { get; set; }
  1505. }
  1506. public class DuplicateItemsOutDto
  1507. {
  1508. /// <summary>
  1509. /// Id
  1510. /// </summary>
  1511. public string Id { get; set; }
  1512. /// <summary>
  1513. /// No
  1514. /// </summary>
  1515. public string? No { get; set; }
  1516. /// <summary>
  1517. /// 类型
  1518. /// </summary>
  1519. public string? OrderSnapshotType { get; set; }
  1520. /// <summary>
  1521. /// 重复工单Id
  1522. /// </summary>
  1523. public List<string>? DuplicateIds { get; set; }
  1524. /// <summary>
  1525. /// 标题
  1526. /// </summary>
  1527. public string? Title { get; set; }
  1528. /// <summary>
  1529. /// 网格员姓名
  1530. /// </summary>
  1531. public string? MemberName { get; set; }
  1532. /// <summary>
  1533. /// 网格员电话
  1534. /// </summary>
  1535. public string? MemberMobile { get; set; }
  1536. /// <summary>
  1537. /// 编号
  1538. /// </summary>
  1539. public string? NetworkENumber { get; set; }
  1540. /// <summary>
  1541. /// 状态
  1542. /// </summary>
  1543. public EOrderStatus? Status { get; set; }
  1544. /// <summary>
  1545. /// 受理时间开始
  1546. /// </summary>
  1547. public DateTime? BeginCreationTime { get; set; }
  1548. /// <summary>
  1549. /// 受理时间结束
  1550. /// </summary>
  1551. public DateTime? EndCreationTime { get; set; }
  1552. /// <summary>
  1553. /// 行业
  1554. /// </summary>
  1555. public string IndustryName { get; set; }
  1556. /// <summary>
  1557. /// 接办部门
  1558. /// </summary>
  1559. public string ActualHandleOrgName { get; set; }
  1560. /// <summary>
  1561. /// 接办时间
  1562. /// </summary>
  1563. public DateTime? ActualHandleTime { get; set; }
  1564. /// <summary>
  1565. /// 办结时间
  1566. /// </summary>
  1567. public DateTime? FiledTime { get; set; }
  1568. /// <summary>
  1569. /// 受理类型
  1570. /// </summary>
  1571. public string AcceptType { get; set; }
  1572. /// <summary>
  1573. /// 受理人
  1574. /// </summary>
  1575. public string AcceptorName { get; set; }
  1576. }
  1577. public class CommunityStatisticsInDto
  1578. {
  1579. [Required]
  1580. public DateTime StartTime { get; set; }
  1581. [Required]
  1582. public DateTime EndTime { get; set; }
  1583. /// <summary>
  1584. /// 行业Id
  1585. /// </summary>
  1586. public string? IndustryId { get; set; }
  1587. public string? CommunityCode { get; set; }
  1588. }
  1589. public class CommunityStatisticsOutDto
  1590. {
  1591. public string CommunityCode { get; set; }
  1592. public int SumCount { get; set; }
  1593. public string CommunityName { get; set; }
  1594. public bool HasChild { get; set; }
  1595. public string CommunityFullName { get; set; }
  1596. }
  1597. public class CommunityStatisticsDetailsOutDto
  1598. {
  1599. /// <summary>
  1600. /// Id
  1601. /// </summary>
  1602. public string Id { get; set; }
  1603. /// <summary>
  1604. /// 过期状态
  1605. /// </summary>
  1606. public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne);
  1607. /// <summary>
  1608. /// 过期状态
  1609. /// </summary>
  1610. public string ExpiredStatusText => ExpiredStatus?.GetDescription();
  1611. /// <summary>
  1612. /// 受理编号
  1613. /// </summary>
  1614. public string No { get; set; }
  1615. /// <summary>
  1616. /// 信件状态
  1617. /// </summary>
  1618. public EOrderStatus Status { get; set; }
  1619. /// <summary>
  1620. /// 信件状态
  1621. /// </summary>
  1622. public string StatusTxt => Status.GetDescription();
  1623. /// <summary>
  1624. /// 来源
  1625. /// </summary>
  1626. public string SourceChannel { get; set; }
  1627. /// <summary>
  1628. /// 当前节点
  1629. /// </summary>
  1630. public string CurrentStepName { get; set; }
  1631. /// <summary>
  1632. /// 重办次数
  1633. /// </summary>
  1634. public int ReTransactNum { get; set; }
  1635. /// <summary>
  1636. /// 是否紧急
  1637. /// </summary>
  1638. public bool IsUrgent { get; set; }
  1639. /// <summary>
  1640. /// 是否紧急
  1641. /// </summary>
  1642. public string IsUrgentText => IsUrgent ? "紧急" : "-";
  1643. /// <summary>
  1644. /// 期满时间
  1645. /// </summary>
  1646. public DateTime? ExpiredTime { get; set; }
  1647. /// <summary>
  1648. /// 即将超期时间
  1649. /// </summary>
  1650. public DateTime? NearlyExpiredTime { get; set; }
  1651. /// <summary>
  1652. /// 即将超期时间第一级
  1653. /// </summary>
  1654. public DateTime? NearlyExpiredTimeOne { get; set; }
  1655. /// <summary>
  1656. /// 是否超期
  1657. /// </summary>
  1658. public bool IsExpired
  1659. {
  1660. get
  1661. {
  1662. if (ExpiredTime.HasValue)
  1663. return DateTime.Now > ExpiredTime.Value;
  1664. return false;
  1665. }
  1666. }
  1667. /// <summary>
  1668. /// 受理时间
  1669. /// </summary>
  1670. public DateTime CreationTime { get; set; }
  1671. /// <summary>
  1672. /// 标题
  1673. /// </summary>
  1674. public string Title { get; set; }
  1675. /// <summary>
  1676. /// 接办部门
  1677. /// </summary>
  1678. public string ActualHandleOrgName { get; set; }
  1679. /// <summary>
  1680. /// 接办时间
  1681. /// </summary>
  1682. public DateTime? ActualHandleTime { get; set; }
  1683. /// <summary>
  1684. /// 办结时间
  1685. /// </summary>
  1686. public DateTime? FiledTime { get; set; }
  1687. /// <summary>
  1688. /// 受理类型
  1689. /// </summary>
  1690. public string AcceptType { get; set; }
  1691. /// <summary>
  1692. /// 热点类型
  1693. /// </summary>
  1694. public string HotspotName { get; set; }
  1695. /// <summary>
  1696. /// 社区名称
  1697. /// </summary>
  1698. public string CommunityName { get; set; }
  1699. }
  1700. public record CommunityStatisticsDetailsInDto : PagedRequest
  1701. {
  1702. [Required]
  1703. public DateTime StartTime { get; set; }
  1704. [Required]
  1705. public DateTime EndTime { get; set; }
  1706. /// <summary>
  1707. /// 社区全称
  1708. /// </summary>
  1709. [Required]
  1710. public string CommunityFullName { get; set; }
  1711. /// <summary>
  1712. /// 行业Id
  1713. /// </summary>
  1714. public string? IndustryId { get; set; }
  1715. }
  1716. public class CountyRedPackStatisticsOutDto
  1717. {
  1718. /// <summary>
  1719. /// 区域
  1720. /// </summary>
  1721. public string? County { get; set; }
  1722. /// <summary>
  1723. /// 举报总数
  1724. /// </summary>
  1725. public int JuBaoZongShu { get; set; }
  1726. /// <summary>
  1727. /// 已办结数
  1728. /// </summary>
  1729. public int YiBanJieShu { get; set; }
  1730. /// <summary>
  1731. /// 办结率
  1732. /// </summary>
  1733. public string BanJieLv => CalcRate(YiBanJieShu, JuBaoZongShu);
  1734. /// <summary>
  1735. /// 市民审核通过数
  1736. /// </summary>
  1737. public int ShiMinShenHeTongGuoShu { get; set; }
  1738. /// <summary>
  1739. /// 市民总金额
  1740. /// </summary>
  1741. public double? ShiMinZongJinE { get; set; }
  1742. /// <summary>
  1743. /// 市民已领
  1744. /// </summary>
  1745. public double ShiMinYiLing { get; set; }
  1746. /// <summary>
  1747. /// 市民待领
  1748. /// </summary>
  1749. public double ShiMinDaiLing { get; set; }
  1750. /// <summary>
  1751. /// 市民待补领
  1752. /// </summary>
  1753. public double? ShiMinDaiBuLing { get; set; }
  1754. /// <summary>
  1755. /// 网格员总件数
  1756. /// </summary>
  1757. public int WangGeYuanZongJianShu { get; set; }
  1758. /// <summary>
  1759. /// 网格员审核通过数
  1760. /// </summary>
  1761. public int WangGeYuanShenHeTongGuoShu { get; set; }
  1762. /// <summary>
  1763. /// 网格员总金额
  1764. /// </summary>
  1765. public double? WangGeYuanZongJinE { get; set; }
  1766. /// <summary>
  1767. /// 网格员已领
  1768. /// </summary>
  1769. public double WangGeYuanYiLing { get; set; }
  1770. /// <summary>
  1771. /// 网格员待领
  1772. /// </summary>
  1773. public double WangGeYuanDaiLing { get; set; }
  1774. /// <summary>
  1775. /// 网格员待补领
  1776. /// </summary>
  1777. public double WangGeYuianDaiBuLing { get; set; } = 0;
  1778. /// <summary>
  1779. /// 计算率
  1780. /// </summary>
  1781. /// <returns></returns>
  1782. public string CalcRate(int Quantity, int Count)
  1783. {
  1784. if (Count != 0 && Quantity != 0)
  1785. {
  1786. return Math.Round((Quantity / (double)Count) * 100, 2) + "%";
  1787. }
  1788. return "0%";
  1789. }
  1790. }
  1791. public class CountyRedPackStatisticsInDto
  1792. {
  1793. [Required]
  1794. public DateTime StartTime { get; set; }
  1795. [Required]
  1796. public DateTime EndTime { get; set; }
  1797. /// <summary>
  1798. /// 行业Id
  1799. /// </summary>
  1800. public string? IndustryId { get; set; }
  1801. }
  1802. public class SnapshotDepartmentStatisticsOutDto
  1803. {
  1804. /// <summary>
  1805. /// 部门Code
  1806. /// </summary>
  1807. public string OrgCode { get; set; }
  1808. /// <summary>
  1809. /// 部门名称
  1810. /// </summary>
  1811. public string OrgName { get; set; }
  1812. /// <summary>
  1813. /// 信件总量
  1814. /// </summary>
  1815. public int OrderCountNum { get; set; }
  1816. /// <summary>
  1817. /// 按时办结个数
  1818. /// </summary>
  1819. public int OnTimeCount { get; set; }
  1820. /// <summary>
  1821. /// 工单及时率
  1822. /// </summary>
  1823. public string TimelinessRatio { get; set; } = "0.00";
  1824. /// <summary>
  1825. /// 4小时内
  1826. /// </summary>
  1827. public int ReceiveIn4Hour { get; set; }
  1828. /// <summary>
  1829. /// 超期办结
  1830. /// </summary>
  1831. public int TimeOutField { get; set; }
  1832. /// <summary>
  1833. /// 超期未办结
  1834. /// </summary>
  1835. public int TimeOutNoField { get; set; }
  1836. /// <summary>
  1837. /// 超期率
  1838. /// </summary>
  1839. public string TimeOutRate => CalcRate(TimeOutNoField + TimeOutField, OrderCountNum);
  1840. /// <summary>
  1841. /// 超期量
  1842. /// </summary>
  1843. public int TimeOutCount => TimeOutField + TimeOutNoField;
  1844. /// <summary>
  1845. /// 按时办结率
  1846. /// </summary>
  1847. public string CloseOnTimeRate => CalcRate(OnTimeCount, OrderCountNum);
  1848. /// <summary>
  1849. /// 满意工单
  1850. /// </summary>
  1851. public int SatisfiedCount { get; set; }
  1852. /// <summary>
  1853. /// 回访满意率
  1854. /// </summary>
  1855. public string SatisfiedRate => CalcRate(SatisfiedCount, SatisfiedCount + NoSatisfiedCount);
  1856. /// <summary>
  1857. /// 不满意量
  1858. /// </summary>
  1859. public int NoSatisfiedCount { get; set; }
  1860. /// <summary>
  1861. /// 一次办结工单
  1862. /// </summary>
  1863. public int FirstFiledOrderCount { get; set; }
  1864. /// <summary>
  1865. /// 一次办结率
  1866. /// </summary>
  1867. public string FirstFiledOrderRate => CalcRate(FirstFiledOrderCount, OrderCountNum);
  1868. /// <summary>
  1869. /// 二次办理个数
  1870. /// </summary>
  1871. public int SecondNum { get; set; }
  1872. /// <summary>
  1873. /// 二次办理满意率
  1874. /// </summary>
  1875. public int SecondSatisfied { get; set; }
  1876. /// <summary>
  1877. /// 二次办理率
  1878. /// </summary>
  1879. public string SecondRate => CalcRate(SecondNum, OrderCountNum);
  1880. /// <summary>
  1881. /// 计算率
  1882. /// </summary>
  1883. /// <returns></returns>
  1884. public string CalcRate(int Quantity, int Count)
  1885. {
  1886. if (Count != 0 && Quantity != 0)
  1887. {
  1888. return Math.Round((Quantity / (double)Count) * 100, 2) + "%";
  1889. }
  1890. return "0%";
  1891. }
  1892. }
  1893. public class SnapshotDepartmentStatisticsInDto
  1894. {
  1895. [Required]
  1896. public DateTime StartTime { get; set; }
  1897. [Required]
  1898. public DateTime EndTime { get; set; }
  1899. }
  1900. public class SnapshotDepartmentAveTimeStatisticsOutDto
  1901. {
  1902. public string OrgCode { get; set; }
  1903. public object OrgName { get; set; }
  1904. /// <summary>
  1905. /// 工单数
  1906. /// </summary>
  1907. public int OrderCountNum { get; set; }
  1908. /// <summary>
  1909. /// 总秒数
  1910. /// </summary>
  1911. public double? TotalSeconds { get; set; }
  1912. /// <summary>
  1913. /// 总分钟数
  1914. /// </summary>
  1915. public string TotalMinutes => TotalSeconds == null ? "0" : ((double)TotalSeconds / 60).ToString("f0");
  1916. /// <summary>
  1917. /// 平均分钟数
  1918. /// </summary>
  1919. public string AvgMinutes => OrderCountNum == 0 ? "0" : (double.Parse(TotalMinutes) / OrderCountNum).ToString("f2");
  1920. /// <summary>
  1921. /// 平均小时数
  1922. /// </summary>
  1923. public string AvgHours => OrderCountNum == 0 ? "0" : (double.Parse(TotalMinutes) / 60 / OrderCountNum).ToString("f2");
  1924. }
  1925. public class SnapshotDepartmentAveTimeStatisticsInDto
  1926. {
  1927. [Required]
  1928. public DateTime StartTime { get; set; }
  1929. [Required]
  1930. public DateTime EndTime { get; set; }
  1931. }
  1932. public record SnapshotDepartmentAveTimeStatisticsDetailsInDto : PagedRequest
  1933. {
  1934. [Required]
  1935. public DateTime StartTime { get; set; }
  1936. [Required]
  1937. public DateTime EndTime { get; set; }
  1938. /// <summary>
  1939. /// 部门编号
  1940. /// </summary>
  1941. [Required]
  1942. public string OrgCode { get; set; }
  1943. }
  1944. public class SnapshotDepartmentAveTimeStatisticsDetailsOutDto
  1945. {
  1946. /// <summary>
  1947. /// Id
  1948. /// </summary>
  1949. public string Id { get; set; }
  1950. /// <summary>
  1951. /// 过期状态
  1952. /// </summary>
  1953. public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne);
  1954. /// <summary>
  1955. /// 过期状态
  1956. /// </summary>
  1957. public string ExpiredStatusText => ExpiredStatus?.GetDescription();
  1958. /// <summary>
  1959. /// 受理编号
  1960. /// </summary>
  1961. public string No { get; set; }
  1962. /// <summary>
  1963. /// 信件状态
  1964. /// </summary>
  1965. public EOrderStatus Status { get; set; }
  1966. /// <summary>
  1967. /// 信件状态
  1968. /// </summary>
  1969. public string StatusTxt => Status.GetDescription();
  1970. /// <summary>
  1971. /// 来源
  1972. /// </summary>
  1973. public string SourceChannel { get; set; }
  1974. /// <summary>
  1975. /// 当前节点
  1976. /// </summary>
  1977. public string CurrentStepName { get; set; }
  1978. /// <summary>
  1979. /// 重办次数
  1980. /// </summary>
  1981. public int ReTransactNum { get; set; }
  1982. /// <summary>
  1983. /// 是否紧急
  1984. /// </summary>
  1985. public bool IsUrgent { get; set; }
  1986. /// <summary>
  1987. /// 是否紧急
  1988. /// </summary>
  1989. public string IsUrgentText => IsUrgent ? "紧急" : "-";
  1990. /// <summary>
  1991. /// 期满时间
  1992. /// </summary>
  1993. public DateTime? ExpiredTime { get; set; }
  1994. /// <summary>
  1995. /// 即将超期时间
  1996. /// </summary>
  1997. public DateTime? NearlyExpiredTime { get; set; }
  1998. /// <summary>
  1999. /// 即将超期时间第一级
  2000. /// </summary>
  2001. public DateTime? NearlyExpiredTimeOne { get; set; }
  2002. /// <summary>
  2003. /// 是否超期
  2004. /// </summary>
  2005. public bool IsExpired
  2006. {
  2007. get
  2008. {
  2009. if (ExpiredTime.HasValue)
  2010. return DateTime.Now > ExpiredTime.Value;
  2011. return false;
  2012. }
  2013. }
  2014. /// <summary>
  2015. /// 受理时间
  2016. /// </summary>
  2017. public DateTime CreationTime { get; set; }
  2018. /// <summary>
  2019. /// 标题
  2020. /// </summary>
  2021. public string Title { get; set; }
  2022. /// <summary>
  2023. /// 办理时长(秒)
  2024. /// </summary>
  2025. public double? AllDuration { get; set; }
  2026. /// <summary>
  2027. /// 办理时长(分)
  2028. /// </summary>
  2029. public string TotalMinutes => AllDuration == null ? "0" : ((double)AllDuration / 60).ToString("f0");
  2030. /// <summary>
  2031. /// 办理时长(时)
  2032. /// </summary>
  2033. public string TotalHours => AllDuration == null ? "0" : ((double)AllDuration / 60 / 60).ToString("f2");
  2034. /// <summary>
  2035. /// 接办部门
  2036. /// </summary>
  2037. public string ActualHandleOrgName { get; set; }
  2038. /// <summary>
  2039. /// 接办时间
  2040. /// </summary>
  2041. public DateTime? ActualHandleTime { get; set; }
  2042. /// <summary>
  2043. /// 办结时间
  2044. /// </summary>
  2045. public DateTime? FiledTime { get; set; }
  2046. /// <summary>
  2047. /// 受理类型
  2048. /// </summary>
  2049. public string AcceptType { get; set; }
  2050. /// <summary>
  2051. /// 热点类型
  2052. /// </summary>
  2053. public string HotspotName { get; set; }
  2054. }
  2055. public class CompliantStatisticsInDto
  2056. {
  2057. [Required]
  2058. public DateTime StartTime { get; set; }
  2059. [Required]
  2060. public DateTime EndTime { get; set; }
  2061. }
  2062. public class CompliantStatisticsOutDto
  2063. {
  2064. public string OrgCode { get; set; }
  2065. /// <summary>
  2066. /// 部门名称
  2067. /// </summary>
  2068. public string OrgName { get; set; }
  2069. /// <summary>
  2070. /// 工单总数
  2071. /// </summary>
  2072. public int OrderCountNum => First + Second + Third + Not;
  2073. /// <summary>
  2074. /// 首次
  2075. /// </summary>
  2076. public int First { get; set; }
  2077. /// <summary>
  2078. /// 二次
  2079. /// </summary>
  2080. public int Second { get; set; }
  2081. /// <summary>
  2082. /// 三次及以上
  2083. /// </summary>
  2084. public int Third { get; set; }
  2085. /// <summary>
  2086. /// 不合规
  2087. /// </summary>
  2088. public int Not { get; set; }
  2089. }
  2090. public record CompliantStatisticsDetailsInDto : PagedRequest
  2091. {
  2092. [Required]
  2093. public DateTime StartTime { get; set; }
  2094. [Required]
  2095. public DateTime EndTime { get; set; }
  2096. /// <summary>
  2097. /// 字段名称
  2098. /// </summary>
  2099. [Required]
  2100. public string FieldName { get; set; }
  2101. /// <summary>
  2102. /// 部门编号
  2103. /// </summary>
  2104. public string? OrgCode { get; set; }
  2105. }
  2106. public class CompliantStatisticsDetailsOutDto
  2107. {
  2108. /// <summary>
  2109. /// Id
  2110. /// </summary>
  2111. public string Id { get; set; }
  2112. /// <summary>
  2113. /// 过期状态
  2114. /// </summary>
  2115. public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne);
  2116. /// <summary>
  2117. /// 过期状态
  2118. /// </summary>
  2119. public string ExpiredStatusText => ExpiredStatus?.GetDescription();
  2120. /// <summary>
  2121. /// 受理编号
  2122. /// </summary>
  2123. public string No { get; set; }
  2124. /// <summary>
  2125. /// 信件状态
  2126. /// </summary>
  2127. public EOrderStatus Status { get; set; }
  2128. /// <summary>
  2129. /// 信件状态
  2130. /// </summary>
  2131. public string StatusTxt => Status.GetDescription();
  2132. /// <summary>
  2133. /// 来源
  2134. /// </summary>
  2135. public string SourceChannel { get; set; }
  2136. /// <summary>
  2137. /// 当前节点
  2138. /// </summary>
  2139. public string CurrentStepName { get; set; }
  2140. /// <summary>
  2141. /// 重办次数
  2142. /// </summary>
  2143. public int ReTransactNum { get; set; }
  2144. /// <summary>
  2145. /// 是否紧急
  2146. /// </summary>
  2147. public bool IsUrgent { get; set; }
  2148. /// <summary>
  2149. /// 是否紧急
  2150. /// </summary>
  2151. public string IsUrgentText => IsUrgent ? "紧急" : "-";
  2152. /// <summary>
  2153. /// 期满时间
  2154. /// </summary>
  2155. public DateTime? ExpiredTime { get; set; }
  2156. /// <summary>
  2157. /// 即将超期时间
  2158. /// </summary>
  2159. public DateTime? NearlyExpiredTime { get; set; }
  2160. /// <summary>
  2161. /// 即将超期时间第一级
  2162. /// </summary>
  2163. public DateTime? NearlyExpiredTimeOne { get; set; }
  2164. /// <summary>
  2165. /// 是否超期
  2166. /// </summary>
  2167. public bool IsExpired
  2168. {
  2169. get
  2170. {
  2171. if (ExpiredTime.HasValue)
  2172. return DateTime.Now > ExpiredTime.Value;
  2173. return false;
  2174. }
  2175. }
  2176. /// <summary>
  2177. /// 受理时间
  2178. /// </summary>
  2179. public DateTime CreationTime { get; set; }
  2180. /// <summary>
  2181. /// 标题
  2182. /// </summary>
  2183. public string Title { get; set; }
  2184. /// <summary>
  2185. /// 接办部门
  2186. /// </summary>
  2187. public string ActualHandleOrgName { get; set; }
  2188. /// <summary>
  2189. /// 接办时间
  2190. /// </summary>
  2191. public DateTime? ActualHandleTime { get; set; }
  2192. /// <summary>
  2193. /// 办结时间
  2194. /// </summary>
  2195. public DateTime? FiledTime { get; set; }
  2196. /// <summary>
  2197. /// 受理类型
  2198. /// </summary>
  2199. public string AcceptType { get; set; }
  2200. /// <summary>
  2201. /// 热点类型
  2202. /// </summary>
  2203. public string HotspotName { get; set; }
  2204. }
  2205. public class ReTransactStatisticsInDto
  2206. {
  2207. [Required]
  2208. public DateTime StartTime { get; set; }
  2209. [Required]
  2210. public DateTime EndTime { get; set; }
  2211. }
  2212. public class ReTransactStatisticsOutDto
  2213. {
  2214. /// <summary>
  2215. /// 表头
  2216. /// </summary>
  2217. public IList<SystemDicDataOutDto> Headers { get; set; }
  2218. /// <summary>
  2219. /// 数据
  2220. /// </summary>
  2221. public List<Dictionary<string, object>> Data { get; set; }
  2222. }
  2223. public class ReTransactStatisticsDetailsOutDto
  2224. {
  2225. /// <summary>
  2226. /// Id
  2227. /// </summary>
  2228. public string Id { get; set; }
  2229. /// <summary>
  2230. /// No
  2231. /// </summary>
  2232. public string? No { get; set; }
  2233. /// <summary>
  2234. /// 过期状态
  2235. /// </summary>
  2236. public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne);
  2237. /// <summary>
  2238. /// 过期状态
  2239. /// </summary>
  2240. public string ExpiredStatusText => ExpiredStatus?.GetDescription();
  2241. /// <summary>
  2242. /// 状态
  2243. /// </summary>
  2244. public EOrderStatus Status { get; set; }
  2245. /// <summary>
  2246. /// 来源
  2247. /// </summary>
  2248. public string SourceChannel { get; set; }
  2249. /// <summary>
  2250. /// 当前节点
  2251. /// </summary>
  2252. public string CurrentStepName { get; set; }
  2253. /// <summary>
  2254. /// 重办次数
  2255. /// </summary>
  2256. public int ReTransactNum { get; set; }
  2257. /// <summary>
  2258. /// 是否紧急
  2259. /// </summary>
  2260. public bool IsUrgent { get; set; }
  2261. /// <summary>
  2262. /// 是否紧急
  2263. /// </summary>
  2264. public string IsUrgentText => IsUrgent ? "紧急" : "-";
  2265. /// <summary>
  2266. /// 期满时间
  2267. /// </summary>
  2268. public DateTime? ExpiredTime { get; set; }
  2269. /// <summary>
  2270. /// 即将超期时间
  2271. /// </summary>
  2272. public DateTime? NearlyExpiredTime { get; set; }
  2273. /// <summary>
  2274. /// 即将超期时间第一级
  2275. /// </summary>
  2276. public DateTime? NearlyExpiredTimeOne { get; set; }
  2277. /// <summary>
  2278. /// 是否超期
  2279. /// </summary>
  2280. public bool IsExpired
  2281. {
  2282. get
  2283. {
  2284. if (ExpiredTime.HasValue)
  2285. return DateTime.Now > ExpiredTime.Value;
  2286. return false;
  2287. }
  2288. }
  2289. /// <summary>
  2290. /// 受理时间
  2291. /// </summary>
  2292. public DateTime CreationTime { get; set; }
  2293. /// <summary>
  2294. /// 标题
  2295. /// </summary>
  2296. public string? Title { get; set; }
  2297. /// <summary>
  2298. /// 被重办部门
  2299. /// </summary>
  2300. public string? ReTransactOrgName { get; set; }
  2301. /// <summary>
  2302. /// 被重办一级部门
  2303. /// </summary>
  2304. public string? ReTransactOneOrgName { get; set; }
  2305. /// <summary>
  2306. /// 重办时间
  2307. /// </summary>
  2308. public DateTime? ReTransactTime { get; set; }
  2309. /// <summary>
  2310. /// 重办操作人
  2311. /// </summary>
  2312. public string? ReTransactHandlerName { get; set; }
  2313. /// <summary>
  2314. /// 重办理由
  2315. /// </summary>
  2316. public string ReTransactContent { get; set; }
  2317. /// <summary>
  2318. /// 受理时间开始
  2319. /// </summary>
  2320. public DateTime? BeginCreationTime { get; set; }
  2321. /// <summary>
  2322. /// 受理时间结束
  2323. /// </summary>
  2324. public DateTime? EndCreationTime { get; set; }
  2325. /// <summary>
  2326. /// 行业
  2327. /// </summary>
  2328. public string IndustryName { get; set; }
  2329. /// <summary>
  2330. /// 接办部门
  2331. /// </summary>
  2332. public string ActualHandleOrgName { get; set; }
  2333. /// <summary>
  2334. /// 接办时间
  2335. /// </summary>
  2336. public DateTime? ActualHandleTime { get; set; }
  2337. /// <summary>
  2338. /// 办结时间
  2339. /// </summary>
  2340. public DateTime? FiledTime { get; set; }
  2341. /// <summary>
  2342. /// 受理类型
  2343. /// </summary>
  2344. public string AcceptType { get; set; }
  2345. /// <summary>
  2346. /// 受理人
  2347. /// </summary>
  2348. public string AcceptorName { get; set; }
  2349. }
  2350. public record ReTransactStatisticsDetailsInDto : PagedRequest
  2351. {
  2352. [Required]
  2353. public DateTime StartTime { get; set; }
  2354. [Required]
  2355. public DateTime EndTime { get; set; }
  2356. /// <summary>
  2357. /// 字段名称
  2358. /// </summary>
  2359. public string? FieldName { get; set; }
  2360. /// <summary>
  2361. /// 部门Code
  2362. /// </summary>
  2363. [Required]
  2364. public string OrgCode { get; set; }
  2365. }
  2366. public class IndustryStatisticsOutDto
  2367. {
  2368. /// <summary>
  2369. /// 表头
  2370. /// </summary>
  2371. public IList<SystemDicDataOutDto> Headers { get; set; }
  2372. /// <summary>
  2373. /// 数据
  2374. /// </summary>
  2375. public List<Dictionary<string, object>> Data { get; set; }
  2376. }
  2377. public class IndustryStatisticsInDto
  2378. {
  2379. [Required]
  2380. public DateTime StartTime { get; set; }
  2381. [Required]
  2382. public DateTime EndTime { get; set; }
  2383. }
  2384. public record IndustryStatisticsDetailsInDto : PagedRequest
  2385. {
  2386. [Required]
  2387. public DateTime StartTime { get; set; }
  2388. [Required]
  2389. public DateTime EndTime { get; set; }
  2390. /// <summary>
  2391. /// 字段名称
  2392. /// </summary>
  2393. [Required]
  2394. public string FieldName { get; set; }
  2395. /// <summary>
  2396. /// 行业Id
  2397. /// </summary>
  2398. [Required]
  2399. public string IndustryId { get; set; }
  2400. }
  2401. public class IndustryStatisticsDetailsOutDto
  2402. {
  2403. /// <summary>
  2404. /// Id
  2405. /// </summary>
  2406. public string Id { get; set; }
  2407. /// <summary>
  2408. /// 过期状态
  2409. /// </summary>
  2410. public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne);
  2411. /// <summary>
  2412. /// 过期状态
  2413. /// </summary>
  2414. public string ExpiredStatusText => ExpiredStatus?.GetDescription();
  2415. /// <summary>
  2416. /// 受理编号
  2417. /// </summary>
  2418. public string No { get; set; }
  2419. /// <summary>
  2420. /// 信件状态
  2421. /// </summary>
  2422. public EOrderStatus Status { get; set; }
  2423. /// <summary>
  2424. /// 信件状态
  2425. /// </summary>
  2426. public string StatusTxt => Status.GetDescription();
  2427. /// <summary>
  2428. /// 来源
  2429. /// </summary>
  2430. public string SourceChannel { get; set; }
  2431. /// <summary>
  2432. /// 当前节点
  2433. /// </summary>
  2434. public string CurrentStepName { get; set; }
  2435. /// <summary>
  2436. /// 重办次数
  2437. /// </summary>
  2438. public int ReTransactNum { get; set; }
  2439. /// <summary>
  2440. /// 是否紧急
  2441. /// </summary>
  2442. public bool IsUrgent { get; set; }
  2443. /// <summary>
  2444. /// 是否紧急
  2445. /// </summary>
  2446. public string IsUrgentText => IsUrgent ? "紧急" : "-";
  2447. /// <summary>
  2448. /// 期满时间
  2449. /// </summary>
  2450. public DateTime? ExpiredTime { get; set; }
  2451. /// <summary>
  2452. /// 即将超期时间
  2453. /// </summary>
  2454. public DateTime? NearlyExpiredTime { get; set; }
  2455. /// <summary>
  2456. /// 即将超期时间第一级
  2457. /// </summary>
  2458. public DateTime? NearlyExpiredTimeOne { get; set; }
  2459. /// <summary>
  2460. /// 是否超期
  2461. /// </summary>
  2462. public bool IsExpired
  2463. {
  2464. get
  2465. {
  2466. if (ExpiredTime.HasValue)
  2467. return DateTime.Now > ExpiredTime.Value;
  2468. return false;
  2469. }
  2470. }
  2471. /// <summary>
  2472. /// 受理时间
  2473. /// </summary>
  2474. public DateTime CreationTime { get; set; }
  2475. /// <summary>
  2476. /// 标题
  2477. /// </summary>
  2478. public string Title { get; set; }
  2479. /// <summary>
  2480. /// 行业
  2481. /// </summary>
  2482. public string IndustryName { get; set; }
  2483. /// <summary>
  2484. /// 办理时长
  2485. /// </summary>
  2486. public double? AllDuration { get; set; }
  2487. /// <summary>
  2488. /// 办理时长(时)
  2489. /// </summary>
  2490. public string TotalHours => AllDuration == null ? "0" : ((double)AllDuration / 60 / 60).ToString("f2");
  2491. /// <summary>
  2492. /// 区域
  2493. /// </summary>
  2494. public string County { get; set; }
  2495. /// <summary>
  2496. /// 电话
  2497. /// </summary>
  2498. public string Contact { get; set; }
  2499. /// <summary>
  2500. /// 受理期满时间
  2501. /// </summary>
  2502. public DateTime? AcceptExpiredTime { get; set; }
  2503. /// <summary>
  2504. /// 接办部门
  2505. /// </summary>
  2506. public string ActualHandleOrgName { get; set; }
  2507. /// <summary>
  2508. /// 一级部门
  2509. /// </summary>
  2510. public string? OrgLevelOneName { get; set; }
  2511. /// <summary>
  2512. /// 接办时间
  2513. /// </summary>
  2514. public DateTime? ActualHandleTime { get; set; }
  2515. /// <summary>
  2516. /// 办结时间
  2517. /// </summary>
  2518. public DateTime? FiledTime { get; set; }
  2519. /// <summary>
  2520. /// 受理类型
  2521. /// </summary>
  2522. public string AcceptType { get; set; }
  2523. /// <summary>
  2524. /// 热点类型
  2525. /// </summary>
  2526. public string HotspotName { get; set; }
  2527. /// <summary>
  2528. /// 受理人
  2529. /// </summary>
  2530. public string AcceptorName { get; set; }
  2531. /// <summary>
  2532. /// 受理内容
  2533. /// </summary>
  2534. public string Content { get; set; }
  2535. /// <summary>
  2536. /// 办理结果
  2537. /// </summary>
  2538. public string FileOpinion { get; set; }
  2539. }
  2540. public class SnapshotCountyPointsStatisticsInDto
  2541. {
  2542. [Required]
  2543. public DateTime StartTime { get; set; }
  2544. [Required]
  2545. public DateTime EndTime { get; set; }
  2546. }
  2547. public class SnapshotCountyPointsStatisticsOutDto
  2548. {
  2549. /// <summary>
  2550. /// 区域名称
  2551. /// </summary>
  2552. public string CountyName { get; set; }
  2553. /// <summary>
  2554. /// 积分
  2555. /// </summary>
  2556. public long Points { get; set; }
  2557. /// <summary>
  2558. /// 兑换积分
  2559. /// </summary>
  2560. public long ExchangePoints { get; set; }
  2561. }