Aucune description

ZhengWuDuiJie.cs 8.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. using CallCenter.Utility;
  2. using CallCenterApi.DB;
  3. using Newtonsoft.Json;
  4. using Newtonsoft.Json.Linq;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Data;
  8. using System.IO;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. namespace CallCenter.QuartzService
  13. {
  14. public class ZhengWuDuiJie : QuartzJob
  15. {
  16. public ZhengWuDuiJie()
  17. {
  18. CronExpression = "0 0/5 * * * ?";
  19. DoWork += submit_dept_crnt_status;
  20. }
  21. public class Push
  22. {
  23. public string code { set; get; }
  24. public string message { set; get; }
  25. public body body { set; get; }
  26. }
  27. public class body
  28. {
  29. public errorObjs[] errorObjs { set; get; }
  30. }
  31. public class errorObjs
  32. {
  33. public string resturl { set; get; }
  34. public string errorid { set; get; }
  35. public string errormsg { set; get; }
  36. }
  37. public class paras
  38. {
  39. public string AREA_CODE { set; get; }
  40. public string CRNT_SEATNUM { set; get; }
  41. public string CRNT_TELNUM { set; get; }
  42. public string TDY_NUM { set; get; }
  43. public string TDY_TELNUM { set; get; }
  44. public string TDY_ZWNUM { set; get; }
  45. public string TDY_WZNUM { set; get; }
  46. public string TDY_WXNUM { set; get; }
  47. public string TDY_APNUM { set; get; }
  48. public string TDY_OTNUM { set; get; }
  49. public string TDY_TELRATE { set; get; }
  50. }
  51. /// <summary>
  52. /// 实时服务信息上报接口
  53. /// </summary>
  54. /// <param name="sender"></param>
  55. /// <param name="e"></param>
  56. private void submit_dept_crnt_status(object sender, EventArgs e)
  57. {
  58. string token = GetToken();
  59. paras paras = new paras();
  60. paras.AREA_CODE = "410500";
  61. string ZX = " select top 1 Checkin from rep_service WITH(NOLOCK) ";
  62. paras. CRNT_SEATNUM = DbHelperSQL.GetSingle(ZX).ToString ();
  63. string TH = "select top 1 Conversation from rep_service WITH(NOLOCK) ";
  64. paras.CRNT_TELNUM = DbHelperSQL.GetSingle(TH).ToString();
  65. string GDCount = "select COUNT(1) from T_Bus_WorkOrder WITH(NOLOCK) where datediff(day , F_CreateTime , getdate())= 0 ";
  66. paras.TDY_NUM = DbHelperSQL.GetSingle(GDCount).ToString();
  67. string ldCount = "SELECT COUNT(1) FROM T_Call_CallRecords WITH(NOLOCK) WHERE datediff(day , BeginTime , getdate())= 0 ";
  68. paras.TDY_TELNUM = DbHelperSQL.GetSingle(ldCount).ToString();
  69. string DHCount = "SELECT COUNT(1) FROM T_Bus_WorkOrder WITH(NOLOCK) WHERE F_InfoSource = 1 AND datediff(day , F_CreateTime , getdate())= 0 ";
  70. paras.TDY_ZWNUM = DbHelperSQL.GetSingle(DHCount).ToString();
  71. //暂时不知
  72. string WZCount = "SELECT COUNT(1) FROM T_Bus_WorkOrder WITH(NOLOCK) WHERE F_InfoSource in(4,7,2459) AND datediff(day , F_CreateTime , getdate())= 0 ";
  73. paras.TDY_WZNUM = DbHelperSQL.GetSingle(WZCount).ToString();
  74. string WXCount = "SELECT COUNT(1) FROM T_Bus_WorkOrder WITH(NOLOCK) WHERE F_InfoSource =5 AND datediff(day , F_CreateTime , getdate())= 0 ";
  75. paras.TDY_WXNUM = DbHelperSQL.GetSingle(WXCount).ToString();
  76. string APPCount = "SELECT COUNT(1) FROM T_Bus_WorkOrder WITH(NOLOCK) WHERE F_InfoSource in (2527,2458 )AND datediff(day , F_CreateTime , getdate())= 0 ";
  77. paras.TDY_APNUM = DbHelperSQL.GetSingle(APPCount).ToString();
  78. string WBCount = "SELECT COUNT(1) FROM T_Bus_WorkOrder WITH(NOLOCK) WHERE F_InfoSource =3 AND datediff(day , F_CreateTime , getdate())= 0 ";
  79. paras.TDY_OTNUM = DbHelperSQL.GetSingle(WBCount).ToString();
  80. string jt = "SELECT COUNT(1) FROM T_Call_CallRecords WITH(NOLOCK) WHERE datediff(day , BeginTime , getdate())= 0 AND CallState =1 ";
  81. var jtl = DbHelperSQL.GetSingle(jt);
  82. string TDY_TELRATE = "0";
  83. try
  84. {
  85. if (int .Parse (ldCount)>0)
  86. {
  87. TDY_TELRATE = string.Format("{0:f2}",float .Parse (jt)/ float.Parse(ldCount));
  88. }
  89. }
  90. catch
  91. {
  92. }
  93. paras.TDY_TELRATE = TDY_TELRATE;
  94. //Dictionary<string, object> values = new Dictionary<string, object>();
  95. //values.Add("access_token", token);
  96. //values.Add("paras", paras);
  97. //var jsonParam = JsonConvert.SerializeObject(values);
  98. //序列化参数
  99. string jsonParam = "access_token=" + token + "&paras=" + paras.ToJson();
  100. var responseString = HttpMethods.HttpPost("http://59.227.104.19:8000/share/submit_dept_crnt_status", jsonParam);
  101. //Push jo =JsonConvert.DeserializeObject<Push>(responseString);
  102. // if (jo .code =="0")
  103. //{
  104. // string strSql = string.Format(@"INSERT INTO T_Sys_PushMsg ( [WorkOrderId], [Conent], [CreatTime], [Code], [Message], [Title], [ErrorObjs], [Remarks])
  105. // values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}') ;select @@IDENTITY ", "", jsonParam, DateTime.Now, jo.code, jo.message , "实时服务信息上报接口", "", "");
  106. // object objres = DbHelperSQL.GetSingle(strSql);
  107. //}
  108. // else
  109. //{
  110. // string error = "";
  111. // if (jo .body .errorObjs !=null && jo.body.errorObjs.Length >0)
  112. // {
  113. // foreach (var it in jo.body.errorObjs)
  114. // {
  115. // if (!string .IsNullOrEmpty (it.resturl ))
  116. // {
  117. // error += " 推送接口名称:" + it.resturl;
  118. // }
  119. // if (!string.IsNullOrEmpty(it.resturl))
  120. // {
  121. // error += " 推送标识:" + it.errorid;
  122. // }
  123. // if (!string.IsNullOrEmpty(it.resturl))
  124. // {
  125. // error += " 推送失败原因:" + it.errormsg;
  126. // }
  127. // }
  128. // }
  129. // string strSql = string.Format(@"INSERT INTO T_Sys_PushMsg ( [WorkOrderId], [Conent], [CreatTime], [Code], [Message], [Title], [ErrorObjs], [Remarks])
  130. // values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}') ;select @@IDENTITY ", "", jsonParam, DateTime.Now, jo.code, jo.message, "实时服务信息上报接口", error, "");
  131. // object objres = DbHelperSQL.GetSingle(strSql);
  132. //}
  133. }
  134. private string GetToken()
  135. {
  136. //Dictionary<string, object> values = new Dictionary<string, object>();
  137. //values.Add("client_id", "d620caf2-d00f-41a9-ae99-c6dfd435875e");
  138. //values.Add("client_secret", "4f75914e-d517-4325-ac64-c321377b12f0");
  139. //values.Add("grant_type", "client_credentials");
  140. //var jsonParam = JsonConvert.SerializeObject(values);
  141. string jsonParam = "client_id=d620caf2-d00f-41a9-ae99-c6dfd435875e&client_secret=4f75914e-d517-4325-ac64-c321377b12f0&grant_type=client_credentials";
  142. var responseString = HttpMethods.HttpPost("http://59.227.104.17/epoint-sso-web/rest/oauth2/token", jsonParam);
  143. Token jo = JsonConvert.DeserializeObject<Token>(responseString);
  144. if (jo.status.code == "1")
  145. {
  146. if (!string.IsNullOrEmpty(jo.custom.access_token))
  147. return jo.custom.access_token;
  148. else
  149. return "";
  150. }
  151. else
  152. return "";
  153. }
  154. public class Token
  155. {
  156. public List<Controls> controls { set; get; }
  157. public Custom custom { set; get; }
  158. public Status status { set; get; }
  159. }
  160. public class Controls
  161. {
  162. }
  163. public class Custom
  164. {
  165. public string access_token { set; get; }
  166. public string refresh_token { set; get; }
  167. public string jsessionid { set; get; }
  168. public string expires_in { set; get; }
  169. }
  170. public class Status
  171. {
  172. public string code { set; get; }
  173. }
  174. }
  175. }