地铁二期项目正式开始

GetController.cs 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. using CallCenterApi.Interface.Controllers.Login;
  2. using Newtonsoft.Json;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Configuration;
  6. using System.Data;
  7. using System.Linq;
  8. using System.Net.NetworkInformation;
  9. using System.Runtime.InteropServices;
  10. using System.Text;
  11. using System.Web;
  12. using System.Web.Mvc;
  13. using YTSoft.BaseCallCenter.Model;
  14. using YTSoft.BaseCallCenter.MVCWeb.Commons;
  15. using YTSoft.BaseCallCenter.MVCWeb.Models;
  16. using YTSoft.Common;
  17. using YTSoft.DBUtility;
  18. namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
  19. {
  20. public class GetController : Controller
  21. {
  22. BLL.T_RiskLevel levelbll = new BLL.T_RiskLevel();
  23. BLL.T_Sys_UserAccount userBll = new BLL.T_Sys_UserAccount();
  24. [HttpGet]
  25. public string Data()
  26. {
  27. int returnres = 0;
  28. string returnmes = "";
  29. string beginsql = " select top 1 F_status from T_JobStatus where F_Name='Data' order by F_createtime desc";
  30. var beginres = DbHelperSQL.GetSingle(beginsql);
  31. string beginresult = "";
  32. if (beginres != null)
  33. {
  34. beginresult = DbHelperSQL.GetSingle(beginsql).ToString();
  35. }
  36. if (beginresult == "0")
  37. {
  38. string stimesql = " select top 1 F_createtime from T_JobStatus where F_Name='Data' order by F_createtime desc";
  39. var stimeres = DbHelperSQL.GetSingle(stimesql);
  40. if (stimeres!=null)
  41. {
  42. DateTime dtstime = stimeres.ToDateTime();
  43. TimeSpan ts = new TimeSpan(DateTime.Now.Ticks-dtstime.Ticks);
  44. if (ts.TotalMinutes>30)
  45. {
  46. }
  47. else
  48. {
  49. return "上一次定时还没结束";
  50. }
  51. }
  52. }
  53. List<T_RiskLevel> levellist = levelbll.GetModelList("F_level='自动' and F_isdelete=0 ");
  54. //查找工单中标签的风险等级是自动的工单,根据标签表中的设置判断是否达到了标准
  55. string beigintime = DateTime.Now.ToString("yyyyMMdd") + " 08:00:00";
  56. string sql = " select F_labelid,count(1) cnt,A.F_LabelName from T_Wo_WorkOrderBase A left join t_risklevel b on a.F_labelid = b.F_Id where a.F_labelid > 0 and b.F_level = '自动' and a.F_CREATEDATE >='" + beigintime + "' group by a.F_labelid,a.F_LabelName";
  57. DataTable dt = DbHelperSQL.Query(sql).Tables[0];
  58. if (dt != null && dt.Rows.Count > 0)
  59. {
  60. string insertsql = string.Format(" insert T_JobStatus (F_Name,F_status,F_begintime,F_createtime) values('{0}','{1}','{2}','{3}')", "Data", 0, DateTime.Now, DateTime.Now);
  61. DbHelperSQL.ExecuteSql(insertsql);
  62. try
  63. {
  64. foreach (DataRow item in dt.Rows)
  65. {
  66. List<ReturnResult> returnlist = new List<ReturnResult>();
  67. int labelid = Convert.ToInt32(item["F_labelid"].ToString());
  68. Model.T_RiskLevel levelmodel = levellist.Find(x => x.F_Id == labelid);
  69. if (!string.IsNullOrEmpty(levelmodel.F_AutoDesc))
  70. {
  71. List<AutoDesc> autodescmodel = JsonConvert.DeserializeObject<List<AutoDesc>>(levelmodel.F_AutoDesc);
  72. DateTime dtnow = DateTime.Now;
  73. foreach (AutoDesc i in autodescmodel)
  74. {
  75. DateTime finddate = dtnow.AddMinutes(-i.minutes);
  76. string findcountsql = " select count(1) from T_Wo_WorkOrderBase where F_labelid='" + labelid + "' and F_CREATEDATE>='" + beigintime + "' and F_CREATEDATE>='" + finddate + "' and F_CREATEDATE<'" + dtnow + "'";
  77. string returnbegintimesql = " select top 1 F_CREATEDATE from T_Wo_WorkOrderBase where F_labelid = '" + labelid + "' and F_CREATEDATE>= '" + beigintime + "' and F_CREATEDATE>= '" + finddate + "' and F_CREATEDATE<'" + dtnow + "' order by F_CREATEDATE asc";
  78. int count = Convert.ToInt32(DbHelperSQL.GetSingle(findcountsql).ToString());
  79. if (count >= i.total)
  80. {
  81. var rtime = DbHelperSQL.GetSingle(returnbegintimesql).ToString();
  82. ReturnResult rs = new ReturnResult();
  83. rs.total = count;
  84. rs.level = i.level;
  85. rs.begintime = rtime;
  86. returnlist.Add(rs);
  87. }
  88. }
  89. if (returnlist != null && returnlist.Count > 0)
  90. {
  91. int autolevel = 0;
  92. if (returnlist.Where(x => x.level == "一级").Count() > 0)
  93. {
  94. var autodes = autodescmodel.Find(x => x.level == "一级");
  95. DateTime finddate = dtnow.AddMinutes(-autodes.minutes);
  96. string updatesql = " update T_Wo_WorkOrderBase set F_Level='一级' where F_labelid='" + labelid + "' and F_CREATEDATE>='" + beigintime + "' and F_CREATEDATE>='" + finddate + "' and F_CREATEDATE<'" + dtnow + "'";
  97. autolevel = 1;
  98. returnres = DbHelperSQL.ExecuteSql(updatesql);
  99. }
  100. else if (returnlist.Where(x => x.level == "二级").Count() > 0)
  101. {
  102. var autodes = autodescmodel.Find(x => x.level == "二级");
  103. DateTime finddate = dtnow.AddMinutes(-autodes.minutes);
  104. string updatesql = " update T_Wo_WorkOrderBase set F_Level='二级' where F_level!='一级' and F_labelid='" + labelid + "' and F_CREATEDATE>='" + beigintime + "' and F_CREATEDATE>='" + finddate + "' and F_CREATEDATE<'" + dtnow + "'";
  105. autolevel = 2;
  106. returnres = DbHelperSQL.ExecuteSql(updatesql);
  107. }
  108. else if (returnlist.Where(x => x.level == "三级").Count() > 0)
  109. {
  110. var autodes = autodescmodel.Find(x => x.level == "三级");
  111. DateTime finddate = dtnow.AddMinutes(-autodes.minutes);
  112. string updatesql = " update T_Wo_WorkOrderBase set F_Level='三级' where F_level!='一级' and F_level!='二级' and F_labelid='" + labelid + "' and F_CREATEDATE>='" + beigintime + "' and F_CREATEDATE>='" + finddate + "' and F_CREATEDATE<'" + dtnow + "'";
  113. returnres = DbHelperSQL.ExecuteSql(updatesql);
  114. autolevel = 3;
  115. }
  116. else
  117. {
  118. }
  119. if (autolevel > 0)
  120. {
  121. ReturnResult re = new ReturnResult();
  122. switch (autolevel)
  123. {
  124. case 1:
  125. re = returnlist.Find(x => x.level == "一级");
  126. break;
  127. case 2:
  128. re = returnlist.Find(x => x.level == "二级");
  129. break;
  130. case 3:
  131. re = returnlist.Find(x => x.level == "三级");
  132. break;
  133. default:
  134. break;
  135. }
  136. #region 发消息提醒
  137. if (autolevel > 0)
  138. {
  139. var userlist = userBll.GetModelList("F_SeatFlag=1");
  140. if (userlist != null && userlist.Count > 0)
  141. {
  142. string findsql = " select isnull( min( F_Level ),0) from T_SendRecord where F_LabelId='" + labelid + "' and DateDiff(dd,F_createtime,getdate())=0 ";
  143. string findsql2 = " select count(1) from T_SendRecord where F_LabelId='" + labelid + "' and DateDiff(dd,F_createtime,getdate())=0 ";
  144. object findsqlres = DbHelperSQL.GetSingle(findsql);
  145. int find = 0;
  146. if (findsqlres != null)
  147. {
  148. find = Convert.ToInt32(DbHelperSQL.GetSingle(findsql).ToString());
  149. }
  150. var find2 = Convert.ToInt32(DbHelperSQL.GetSingle(findsql2).ToString());
  151. if (find2 == 0 || find > autolevel)
  152. {
  153. string content = "时间:" + re.begintime + "<br/> 舆情类型:" + item["F_LabelName"].ToString() + "<br/> 舆情级别:" + re.level + "<br/> 舆情事件数量:" + re.total;
  154. returnmes = "更新了" + returnres + "条数据;" + content;
  155. foreach (T_Sys_UserAccount us in userlist)
  156. {
  157. MsgHelper.AddInternalMessagesInfo("异常信息提示", content, us.F_UserCode, "8000");
  158. }
  159. string insql = String.Format("insert into T_SendRecord(F_Level,F_LabelId,F_CreateTime) values ('{0}','{1}',getdate())", autolevel, labelid);
  160. DbHelperSQL.ExecuteSql(insql);
  161. }
  162. }
  163. }
  164. #endregion
  165. }
  166. }
  167. }
  168. }
  169. string updatestatussql = " update T_JobStatus set F_status=1 where F_ID=(select max(F_ID) from T_JobStatus)";
  170. int a = DbHelperSQL.ExecuteSql(updatestatussql);
  171. return returnmes+"更新了状态"+a.ToString();
  172. }
  173. catch (Exception e)
  174. {
  175. string updatestatussql2 = " update T_JobStatus set F_status=1 where F_ID=(select max(F_ID) from T_JobStatus)";
  176. DbHelperSQL.ExecuteSql(updatestatussql2);
  177. return returnmes+e.ToString();
  178. }
  179. }
  180. returnmes = "没数据";
  181. return returnmes;
  182. }
  183. public class ReturnResult
  184. {
  185. public string level { get; set; }
  186. public int total { get; set; }
  187. public string begintime { get; set; }
  188. }
  189. }
  190. }