Exemple #1
0
        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);
        }
Exemple #2
0
        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);
                }
            }
        }