Beispiel #1
0
        private static void SendHd(int ledger, long log_id, AlarmType alarmType, HdType hdType, string content, int module_id)
        {
            SysPro pro;

            NCSys.Pro.TryGetValue(ledger, out pro);
            if (pro == null)
            {
                return;
            }
            DataProcessBLL         bll  = new DataProcessBLL(ledger, Config.Uid);
            v2_alarm_logHandVModel hand = bll.GetAlarmHand(log_id, hdType.ToString());

            hand.Content = content;

            if (hand.ErrCode == 1)
            {
                int sendSpan = CommFunc.ConvertDBNullToInt32(IniHepler.GetConfig(Config.lpFileName, "Alarm", "SendSpan"));

                if (hand.HdTime.AddMinutes(sendSpan) > DateTime.Now)
                {
                    return;
                }
                else
                {
                    hand.Aid = 0;/*新增一条记录*/
                }
            }
            DataTable     dtSource   = bll.GetSendInfo(module_id);
            List <string> mpReceipts = new List <string>();
            List <string> emReceipts = new List <string>();

            string coName = "", moduleName = "";

            foreach (DataRow drCrm in dtSource.Rows)
            {
                if (!string.IsNullOrEmpty(CommFunc.ConvertDBNullToString(drCrm["MPhone"])))
                {
                    mpReceipts.Add(CommFunc.ConvertDBNullToString(drCrm["MPhone"]));
                }
                if (!string.IsNullOrEmpty(CommFunc.ConvertDBNullToString(drCrm["Email"])))
                {
                    emReceipts.Add(CommFunc.ConvertDBNullToString(drCrm["Email"]));
                }
                coName     = CommFunc.ConvertDBNullToString(drCrm["CoName"]);
                moduleName = CommFunc.ConvertDBNullToString(drCrm["ModuleName"]);
            }
            bool   sue = false;
            string msg = "";

            try
            {
                if (hdType == HdType.AL_Sms)
                {
                    if (mpReceipts.Count > 0)
                    {
                        if (alarmType == AlarmType.Al_Use)
                        {/*感知万物演示用*/
                            string ccc = JsonHelper.Serialize(new { moduleName = moduleName });
                            if (!string.IsNullOrEmpty(pro.Sms.ComSmsConfig.ComSms))
                            {
                                sue = pro.Sms.SendMessage(mpReceipts, ccc, out msg);
                            }
                            else if (!string.IsNullOrEmpty(SmsFun.AliSmsConfig.AliAppKey))
                            {
                                sue = pro.Sms.SmsMessage(mpReceipts, ccc, out msg, "SMS_137657141");
                            }
                            else
                            {
                                msg = "没有发现短信接口";
                            }
                        }
                        else
                        {
                            msg = "感知演示,暂不开放";
                        }
                    }
                    else
                    {
                        msg = "无手机号码";
                    }
                }
                else if (hdType == HdType.AL_Email)
                {
                    if (mpReceipts.Count > 0)
                    {
                        StringBuilder mailcont1 = new StringBuilder();
                        mailcont1.Append("你好:" + coName);
                        mailcont1.Append("<br>");
                        mailcont1.Append("告警内容:" + hand.Content);
                        mailcont1.Append("<br>");
                        mailcont1.Append("告警时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo));
                        pro.Email.SendMail("告警通知", mailcont1.ToString(), "", emReceipts, null, null);
                        sue = true;
                    }
                    else
                    {
                        msg = "无邮箱地址";
                    }
                }
                hand.ErrCode = sue == true ? 1 : -1;
            }
            catch (Exception ex)
            {
                hand.ErrCode = -1;
                msg          = ex.Message;
            }
            hand.ErrTxt = msg;

            bll.UpAlarmHand(hand);
        }