No Description

SatisfactionClose.cs 7.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. using CallCenterApi.DB;
  2. using CallCenterApi.Model;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Net;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace CallCenter.QuartzService
  11. {
  12. public class SatisfactionClose : QuartzJob
  13. {
  14. public SatisfactionClose()
  15. {
  16. CronExpression = "0 0 0 * * ? *";
  17. DoWork += MyWork_DoWork;
  18. }
  19. private readonly CallCenterApi.BLL.T_Bus_WorkOrder workorder = new CallCenterApi.BLL.T_Bus_WorkOrder();
  20. private void MyWork_DoWork(object sender, EventArgs e)
  21. {
  22. //您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=XX9941050021122801070查看办结结果并进行评价,谢谢!
  23. string sql = "and F_WorkState in(6,7) and F_IsSms = 1 and F_IsDelete = 0 and(datediff(dd, (select top 1 RecvTime from T_SMS_RecvSMS where Content like '%您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999%' and F_Name = b.F_WorkOrderId order by RecvTime desc), GETDATE()) >= 15) and F_DealTime is not null";
  24. DataTable dt = new DataTable();
  25. int recordCount = 0;
  26. dt = CallCenterApi.BLL.PagerBLL.GetListPager(
  27. "T_Bus_WorkOrder b WITH(NOLOCK)",
  28. "F_WorkOrderId",
  29. "*",
  30. sql,
  31. "ORDER BY F_CreateTime DESC",
  32. 10000,
  33. 1,
  34. true,
  35. out recordCount);
  36. var now = DateTime.Now;
  37. //var modellist = workorder.GetModelList("F_WorkState =6 and F_IsSms =1 and F_IsDelete =0 and (datediff(hh,F_DealTime ,GETDATE() )>=15) and F_DealTime is not null");
  38. if (dt != null && dt.Rows .Count >0)
  39. {
  40. foreach (DataRow dr in dt.Rows)
  41. {
  42. CallCenterApi.Model.T_Bus_WorkOrder it = new CallCenterApi.Model.T_Bus_WorkOrder();
  43. it = workorder.GetModel(dr["F_WorkOrderId"].ToString());
  44. if (it !=null )
  45. {
  46. string Commentsql = "SELECT COUNT(1) FROM PublicComment WHERE WorkOrderId ='"+it .F_WorkOrderId +"' AND CreateTime >='"+it .F_DealTime +"'";
  47. var Comment = DbHelperSQL.GetSingle(Commentsql).ToString();
  48. if (int .Parse (Comment)>0)
  49. {
  50. continue;
  51. }
  52. else
  53. {
  54. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  55. keyValuePairs.Add("F_WorkState", 9);
  56. keyValuePairs.Add("F_IsSatisfie", 1);
  57. keyValuePairs.Add("F_IsClosed", 1);
  58. keyValuePairs.Add("F_CloseUser", "");
  59. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  60. keyValuePairs.Add("F_FinalOpinion", "15天自动满意");
  61. keyValuePairs.Add("F_IsStandard", 1);
  62. keyValuePairs.Add("F_StandardIDS", "");
  63. keyValuePairs.Add("F_ToBereply", 0);
  64. workorder.UpdateWorkOrder(it.F_Id, keyValuePairs);
  65. // workorder.Update(it);
  66. CallCenterApi.Model.T_Bus_Operation oper = new CallCenterApi.Model.T_Bus_Operation();
  67. oper.F_WorkOrderId = it.F_WorkOrderId;
  68. oper.F_State = 9;
  69. oper.F_Message = " 15天未评价自动结案了工单,结果:满意";
  70. oper.F_CreateUser = "8000";
  71. oper.F_CreateTime = DateTime.Now;
  72. oper.F_IsDelete = 0;
  73. new CallCenterApi.BLL.T_Bus_Operation().Add(oper);
  74. string strStm_Src_Dsc = "";
  75. if (dr["F_InfoSource"].ToString() == "2458")
  76. {
  77. strStm_Src_Dsc = "连线政府";
  78. }
  79. if (dr["F_InfoSource"].ToString() == "1")
  80. {
  81. strStm_Src_Dsc = "市长热线";
  82. }
  83. if (dr["F_InfoSource"].ToString() == "2")
  84. {
  85. strStm_Src_Dsc = "市长信箱";
  86. }
  87. if (dr["F_InfoSource"].ToString() == "4")
  88. {
  89. strStm_Src_Dsc = "人民网";
  90. }
  91. string strSql = string.Format(@"INSERT INTO PublicComment ( [WorkOrderId], [strStm_Src_Dsc], [strWrkOrder_Cst_Ssf_Cd], [strUdt_Psn_ID], [strSsf_Cst_Ass_CntDsc], [strRltv_InsID], [strInpt_Inst_Nm], [strHpCnt], [CreateTime])
  92. values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}') ;select @@IDENTITY ", dr["F_WorkOrderId"].ToString(), strStm_Src_Dsc, "非常满意", "", " 15天未评议自动评议工单", "", "", "", DateTime.Now);
  93. object objres = DbHelperSQL.GetSingle(strSql);
  94. Task.Run(() =>
  95. {
  96. casepy_info(it.F_WorkOrderId, "case_dxvisit_info");
  97. casepy_info(it.F_WorkOrderId, "case_dxvisit_detail_info");
  98. }).ContinueWith(p => {
  99. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  100. });
  101. Task.Run(() =>
  102. {
  103. case_info(it.F_WorkOrderId, "case_finish_info");
  104. if (it.F_InfoSource == 2580)
  105. {
  106. case_info(it.F_WorkOrderId, "FinishWorkOrder");
  107. }
  108. }).ContinueWith(p => {
  109. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  110. });
  111. }
  112. }
  113. }
  114. }
  115. }
  116. string url = "http://172.16.0.10/Affairs/";
  117. public void casepy_info(string workorderid, string parameter)
  118. {
  119. WebClient web = new WebClient();
  120. web.Encoding = Encoding.UTF8;
  121. string Dataurl = web.DownloadString(url + parameter + "?workorderid=" + workorderid + "&type=0");
  122. }
  123. public void case_info(string workorderid, string parameter)
  124. {
  125. WebClient web = new WebClient();
  126. web.Encoding = Encoding.UTF8;
  127. string Dataurl = web.DownloadString(url + parameter + "?workorderid=" + workorderid );
  128. }
  129. }
  130. }