private static void SendUserMessage(DataRow dr, string strMsg) { Action send = (() => { //根据设备 编号取得对应小区的发送人 //string strPhone = "13476116775"; DevInfoBLL devinfo = new DevInfoBLL(); DataTable userDt = devinfo.GetUserByDev(dr["devID"].ToString()); if (userDt != null && userDt.Rows.Count > 0) { string strPhones = string.Empty; foreach (DataRow userDr in userDt.Rows) { strPhones += userDr["mobile"].ToString() + ","; } strPhones = strPhones.TrimEnd(','); Dictionary <string, object> resultDic = YunRongSDK.SendBatchSMS(strPhones, strMsg); SendMessageBLL msg = new SendMessageBLL(); SendMessageModel model = new SendMessageModel(); model.devID = Convert.ToInt32(dr["devID"].ToString()); model.alarmCode = dr["alarmCode"].ToString(); model.alarmState = Convert.ToInt32(dr["alarmState"]); model.content = strMsg; model.mobile = strPhones; if (resultDic != null && resultDic["statusCode"].ToString() == "0") { model.sendResult = "发送成功"; } else { model.sendResult = resultDic["statusMsg"].ToString(); } model.createTime = DateTime.Now; msg.Add(model); } }); Task.Factory.StartNew(send); }
public void SendAlarmMsg(DataRow dr) { AlarmSettingBLL setting = new AlarmSettingBLL(); SendMessageBLL msg = new SendMessageBLL(); //判断是否有发送短信记录 string alarmCode = dr["alarmCode"].ToString(); string devID = dr["devID"].ToString(); string strMsgWhere = string.Format(" alarmState<>1 and devID={0} and alarmCode='{1}'", devID, alarmCode); DataTable dtMsg = msg.GetList(strMsgWhere); if (dtMsg.Rows.Count == 0) { //当为异常信息时发送短信 if (dr["alarmState"].ToString() != "1") { //由设备名字,报警名字,报警信息 string stateName = string.Empty; #region 取得报警信息 switch (dr["alarmState"].ToString()) { case "-2": stateName = "过低"; break; case "2": stateName = "过高"; break; case "-1": stateName = "异常"; break; case "1": stateName = "正常"; break; default: stateName = "正常"; break; } #endregion string strMsg = string.Format("'{0}','{1}',{2}", dr["devName"].ToString(), dr["alarmName"].ToString(), stateName); //判断当前报警编码是否发送短信 if (setting.GetAlarmSettingSendMessage(alarmCode)) { #region 发送信息 SendUserMessage(dr, strMsg); #endregion } #region 增加工单记录 MainTenanceLogBLL maintenance = new MainTenanceLogBLL(); MainTenanceLogModel modelLog = new MainTenanceLogModel(); modelLog.settingID = 0; modelLog.devhouseID = Convert.ToInt32(devID); modelLog.orderCode = alarmCode + DateTime.Now.ToString("yyMMddHHmmssfff") + (Encoding.ASCII.GetBytes(alarmCode).Sum(k => k / new Random().NextDouble()) % 1000).ToString("000"); modelLog.orderContent = strMsg; modelLog.orderType = 1; modelLog.createTime = DateTime.Now; modelLog.status = 1; maintenance.Add(modelLog); #endregion } else { //将发送状态改为正常 msg.UpdateStatus(devID, alarmCode); } } }