| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- using CallCenterApi.Interface.Controllers.Login;
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.Configuration;
- using System.Data;
- using System.Linq;
- using System.Net.NetworkInformation;
- using System.Runtime.InteropServices;
- using System.Text;
- using System.Web;
- using System.Web.Mvc;
- using YTSoft.BaseCallCenter.Model;
- using YTSoft.BaseCallCenter.MVCWeb.Commons;
- using YTSoft.BaseCallCenter.MVCWeb.Models;
- using YTSoft.Common;
- using YTSoft.DBUtility;
- namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
- {
- public class GetController : Controller
- {
- BLL.T_RiskLevel levelbll = new BLL.T_RiskLevel();
- BLL.T_Sys_UserAccount userBll = new BLL.T_Sys_UserAccount();
- [HttpGet]
- public string Data()
- {
- int returnres = 0;
- string returnmes = "";
- string beginsql = " select top 1 F_status from T_JobStatus where F_Name='Data' order by F_createtime desc";
- var beginres = DbHelperSQL.GetSingle(beginsql);
- string beginresult = "";
- if (beginres != null)
- {
- beginresult = DbHelperSQL.GetSingle(beginsql).ToString();
- }
- if (beginresult == "0")
- {
- string stimesql = " select top 1 F_createtime from T_JobStatus where F_Name='Data' order by F_createtime desc";
- var stimeres = DbHelperSQL.GetSingle(stimesql);
- if (stimeres!=null)
- {
- DateTime dtstime = stimeres.ToDateTime();
- TimeSpan ts = new TimeSpan(DateTime.Now.Ticks-dtstime.Ticks);
- if (ts.TotalMinutes>30)
- {
- }
- else
- {
- return "上一次定时还没结束";
- }
- }
-
- }
- List<T_RiskLevel> levellist = levelbll.GetModelList("F_level='自动' and F_isdelete=0 ");
- //查找工单中标签的风险等级是自动的工单,根据标签表中的设置判断是否达到了标准
- string beigintime = DateTime.Now.ToString("yyyyMMdd") + " 08:00:00";
- 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";
- DataTable dt = DbHelperSQL.Query(sql).Tables[0];
- if (dt != null && dt.Rows.Count > 0)
- {
- 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);
- DbHelperSQL.ExecuteSql(insertsql);
-
- try
- {
- foreach (DataRow item in dt.Rows)
- {
- List<ReturnResult> returnlist = new List<ReturnResult>();
- int labelid = Convert.ToInt32(item["F_labelid"].ToString());
- Model.T_RiskLevel levelmodel = levellist.Find(x => x.F_Id == labelid);
- if (!string.IsNullOrEmpty(levelmodel.F_AutoDesc))
- {
- List<AutoDesc> autodescmodel = JsonConvert.DeserializeObject<List<AutoDesc>>(levelmodel.F_AutoDesc);
- DateTime dtnow = DateTime.Now;
- foreach (AutoDesc i in autodescmodel)
- {
- DateTime finddate = dtnow.AddMinutes(-i.minutes);
- 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 + "'";
- 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";
- int count = Convert.ToInt32(DbHelperSQL.GetSingle(findcountsql).ToString());
- if (count >= i.total)
- {
- var rtime = DbHelperSQL.GetSingle(returnbegintimesql).ToString();
- ReturnResult rs = new ReturnResult();
- rs.total = count;
- rs.level = i.level;
- rs.begintime = rtime;
- returnlist.Add(rs);
- }
- }
- if (returnlist != null && returnlist.Count > 0)
- {
- int autolevel = 0;
- if (returnlist.Where(x => x.level == "一级").Count() > 0)
- {
- var autodes = autodescmodel.Find(x => x.level == "一级");
- DateTime finddate = dtnow.AddMinutes(-autodes.minutes);
- 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 + "'";
- autolevel = 1;
- returnres = DbHelperSQL.ExecuteSql(updatesql);
- }
- else if (returnlist.Where(x => x.level == "二级").Count() > 0)
- {
- var autodes = autodescmodel.Find(x => x.level == "二级");
- DateTime finddate = dtnow.AddMinutes(-autodes.minutes);
- 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 + "'";
- autolevel = 2;
- returnres = DbHelperSQL.ExecuteSql(updatesql);
- }
- else if (returnlist.Where(x => x.level == "三级").Count() > 0)
- {
- var autodes = autodescmodel.Find(x => x.level == "三级");
- DateTime finddate = dtnow.AddMinutes(-autodes.minutes);
- 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 + "'";
- returnres = DbHelperSQL.ExecuteSql(updatesql);
- autolevel = 3;
- }
- else
- {
- }
- if (autolevel > 0)
- {
- ReturnResult re = new ReturnResult();
- switch (autolevel)
- {
- case 1:
- re = returnlist.Find(x => x.level == "一级");
- break;
- case 2:
- re = returnlist.Find(x => x.level == "二级");
- break;
- case 3:
- re = returnlist.Find(x => x.level == "三级");
- break;
- default:
- break;
- }
- #region 发消息提醒
- if (autolevel > 0)
- {
- var userlist = userBll.GetModelList("F_SeatFlag=1");
- if (userlist != null && userlist.Count > 0)
- {
- string findsql = " select isnull( min( F_Level ),0) from T_SendRecord where F_LabelId='" + labelid + "' and DateDiff(dd,F_createtime,getdate())=0 ";
- string findsql2 = " select count(1) from T_SendRecord where F_LabelId='" + labelid + "' and DateDiff(dd,F_createtime,getdate())=0 ";
- object findsqlres = DbHelperSQL.GetSingle(findsql);
- int find = 0;
- if (findsqlres != null)
- {
- find = Convert.ToInt32(DbHelperSQL.GetSingle(findsql).ToString());
- }
- var find2 = Convert.ToInt32(DbHelperSQL.GetSingle(findsql2).ToString());
- if (find2 == 0 || find > autolevel)
- {
- string content = "时间:" + re.begintime + "<br/> 舆情类型:" + item["F_LabelName"].ToString() + "<br/> 舆情级别:" + re.level + "<br/> 舆情事件数量:" + re.total;
- returnmes = "更新了" + returnres + "条数据;" + content;
- foreach (T_Sys_UserAccount us in userlist)
- {
- MsgHelper.AddInternalMessagesInfo("异常信息提示", content, us.F_UserCode, "8000");
- }
- string insql = String.Format("insert into T_SendRecord(F_Level,F_LabelId,F_CreateTime) values ('{0}','{1}',getdate())", autolevel, labelid);
- DbHelperSQL.ExecuteSql(insql);
- }
- }
- }
- #endregion
- }
- }
- }
- }
- string updatestatussql = " update T_JobStatus set F_status=1 where F_ID=(select max(F_ID) from T_JobStatus)";
- int a = DbHelperSQL.ExecuteSql(updatestatussql);
- return returnmes+"更新了状态"+a.ToString();
-
- }
-
-
- catch (Exception e)
- {
- string updatestatussql2 = " update T_JobStatus set F_status=1 where F_ID=(select max(F_ID) from T_JobStatus)";
- DbHelperSQL.ExecuteSql(updatestatussql2);
- return returnmes+e.ToString();
- }
- }
- returnmes = "没数据";
- return returnmes;
- }
- public class ReturnResult
- {
- public string level { get; set; }
- public int total { get; set; }
- public string begintime { get; set; }
-
- }
-
- }
- }
|