zoukankan      html  css  js  c++  java
  • 用Timer定时发送短信,调用webserver发短信

       protected override void OnStart(string[] args)
            {
                atimer = new System.Timers.Timer(10000);
                atimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent);
                atimer.Interval = 1000;
                atimer.Enabled = true;
                Console.ReadLine();
            }

            protected override void OnStop()
            {
                // TODO: 在此处添加代码以执行停止服务所需的关闭操作。
            }
            private void OnTimedEvent(object source, ElapsedEventArgs e)
            {
                atimer.Enabled = false;  //Add by equn 防止该过程被多次执行
                try
                {
                    WFIT.BLL.SendMessageTime bllsendtime = new WFIT.BLL.SendMessageTime();
                    DataTable dt = bllsendtime.GetSendMesTime().Tables[0];
                    DateTime dttest = DateTime.Now;
                    if (dt.Rows.Count > 0)
                    {
                        DateTime SendTime = Convert.ToDateTime(dt.Rows[0]["SendTime"].ToString());
                        DateTime dtnow = DateTime.Now;


                        if (dtnow.ToString("yyyy-MM-dd hh:mm") == SendTime.ToString("yyyy-MM-dd hh:mm"))
                        {
                            foreach (DataRow dr in dt.Rows)
                            {
                                int ApplicationTypeID = Convert.ToInt32(dr["ApplicationTypeID"].ToString());

                                SendMessage(ApplicationTypeID);
                            }

                        }
                        System.TimeSpan ts = SendTime.Subtract(dtnow);
                        if (ts.TotalSeconds > 0)
                        {
                            atimer.Interval = ts.TotalSeconds * 1000;
                        }
                        else
                        {
                            atimer.Interval = 60000;
                        }
                    }
                    else
                    {
                        atimer.Interval = 60000;
                    }
                }
                finally
                {
                    atimer.Enabled = true;
                }

            }
            private DataTable CreateDT()
            {
                DataTable dt = null;
                dt = new DataTable();
                dt.Columns.Add("ReceivePerson", System.Type.GetType("System.String"));
                dt.Columns.Add("PhoneNumber", System.Type.GetType("System.String"));
                return dt;
            }
            private void AddDTRow(string ReceivePerson, string PhoneNumber, ref DataTable dt)
            {
                DataRow dr = null;
                dr = dt.NewRow();
                dr[0] = ReceivePerson;
                dr[1] = PhoneNumber;
                dt.Rows.Add(dr);
            }
            public void SendMessage(int TypeID)
            {
                try
                {
                    //string strbody = "Staff Web短信提醒"+TypeID.ToString();
                    //string telphone = "13760538565";
                    //DataTable dtSentPhone = CreateDT();
                    //AddDTRow("011960", telphone, ref dtSentPhone);
                    //AddDTRow("011960", "13750307426", ref dtSentPhone);
                    //DataSet dtset = new DataSet();
                    //dtset.Tables.Add(dtSentPhone);
                    //SMSServiceApply.SMSServicesSoapClient ss = new WinService.SMSServiceApply.SMSServicesSoapClient();
                    //ss.SendSMSMessageByDefaultAccount(strbody, "", dtset);

                    WFIT.BLL.ApplicationFormAccount bll = new WFIT.BLL.ApplicationFormAccount();
                    DataTable dt = bll.GetHRAlertTable(TypeID);
                    DataTable dtdistinct = dt.DefaultView.ToTable(true, new string[] { "AgentAccount" });

                    if (dtdistinct.Rows.Count > 0)
                    {
                        foreach (DataRow dr in dtdistinct.Rows)
                        {
                            DataRow[] drAccAll = dt.Select("AgentAccount='" + dr["AgentAccount"].ToString() + "'", "IsAgent,ATypeID");
                            int flag1 = 0;
                            int flag2 = 0;
                            string strbody = "[Staff Web提醒]";
                            foreach (DataRow drow in drAccAll)
                            {
                                if (flag1 == 0 && drow["IsAgent"].ToString() == "0")
                                {
                                    strbody += "等待您审批的申请单:";
                                    flag1 = 1;
                                }
                                if (flag2 == 0 && drow["IsAgent"].ToString() == "1")
                                {
                                    strbody += "您可代理审批的申请单:";
                                    flag2 = 1;
                                }
                                strbody += drow["ATypeName"].ToString() + ":" + drow["ACount"].ToString() + "条,";
                            }
                            strbody += "请访问http://staff.wwtt.hk 登录进入个人信息中心审批";

                            WFIT.BLL.WFEmpInfo bllWFE = new WFIT.BLL.WFEmpInfo();
                            WFIT.Model.WFEmpInfo modelWFE = new WFIT.Model.WFEmpInfo();
                            modelWFE = bllWFE.GetModel(dr["AgentAccount"].ToString());
                            if (modelWFE == null || modelWFE.Telphone == null || modelWFE.Telphone == "")
                            {
                                continue;
                            }

                            string telphone = modelWFE.Telphone;
                            //*********lxl添加**********
                            DataTable dtSentPhone = CreateDT();
                            AddDTRow(dr["AgentAccount"].ToString(), telphone, ref dtSentPhone);
                            //AddDTRow("011960", "13750307426", ref dtSentPhone);
                            DataSet dtset = new DataSet();
                            dtset.Tables.Add(dtSentPhone);

                            //************

                            SMSServiceApply.SMSServicesSoapClient ss = new WinService.SMSServiceApply.SMSServicesSoapClient();
                            ss.SendSMSMessageByDefaultAccount(strbody, "", dtset);
                        }
                    }
                }
                catch //(Exception ex)
                {
                    //
                }
            }
            public void start(string[] args)
            {
                this.OnStart(args);
            }
            public void stop()
            {
                this.OnStop();
            }

  • 相关阅读:
    记周日一次故障意外
    每周一坑-【3月第1周】
    关于计划任务的一个小需求-优化篇
    400篇博客的一个里程碑
    关于计划任务的一个小需求-实现篇
    关于计划任务的一个小需求
    微服务优雅停机研究
    NSUInteger设为负数
    Mac上运行第一个Flutter项目
    Vue filtersfilter、computed、methods、watch对比
  • 原文地址:https://www.cnblogs.com/lgxll/p/2730749.html
Copyright © 2011-2022 走看看