Пример #1
0
 private static void SendSMS(DataRow dr)
 {
     try
     {
         if (dr["RECEIVERUSERID"] != null && dr["MESSAGEBODY"] != null)
         {
             SMSService.MessageEntity[] entity = new SMSService.MessageEntity[1];
             entity[0]                    = new SMSService.MessageEntity();
             entity[0].ACCOUNTID          = Config.Account;
             entity[0].MOBILE             = dr["RECEIVERUSERID"].ToString();
             entity[0].SENDMESSAGE        = dr["MESSAGEBODY"].ToString();
             entity[0].SENDTIME           = DateTime.Now;
             entity[0].REMARK             = "新平台短信提醒";
             entity[0].OWNERID            = "";
             entity[0].OWNERNAME          = dr["RECEIVERNAME"].ToString();
             entity[0].OWNERCOMPANYID     = "";
             entity[0].OWNERDEPARTMENTID  = "";
             entity[0].OWNERPOSTID        = "";
             entity[0].CREATEUSERID       = "";
             entity[0].CREATEUSERNAME     = "******";
             entity[0].CREATECOMPANYID    = "bac05c76-0f5b-40ae-b73b-8be541ed35ed";
             entity[0].CREATEDEPARTMENTID = "";
             entity[0].CREATEPOSTID       = "";
             entity[0].CREATEDATE         = DateTime.Now;
             entity[0].SMSTYPE            = 0;
             T_FLOW_SMSRECORD ent = new T_FLOW_SMSRECORD();
             ent.SMSRECORD   = Guid.NewGuid().ToString();
             ent.SENDTIME    = DateTime.Now;
             ent.MOBILE      = dr["RECEIVERUSERID"].ToString();
             ent.COMPANYID   = "系统发送短信提醒";
             ent.BATCHNUMBER = string.Format("{0}_{1}", DateTime.Now.ToString("yyyyMMddHHmm"), entity.Length);
             ent.ACCOUNT     = Config.Account;
             ent.OWNERNAME   = dr["RECEIVERNAME"].ToString();
             ent.SENDSTATUS  = 1;//已发送
             ent.OWNERID     = "";
             ent.TASKCOUNT   = 1;
             ent.SENDMESSAGE = dr["MESSAGEBODY"].ToString();
             dal.AddSMSRecord(ent);//插入发送记录
             try
             {
                 //调用短信接口服务
                 string strMsg = client.SendMsg(entity);//调试不发送
                 Log.WriteLog("调用短信接口结束,返回信息SendSMS():" + strMsg + dr["RECEIVERNAME"].ToString());
             }
             catch (Exception ex)
             {
                 Log.WriteLog("调用短信接口结束(异常消息),返回信息SendSMS():" + ex.ToString() + DateTime.Now.ToString());
             }
         }
     }
     catch (Exception ex)
     {
         Log.WriteLog("调用短信SendSMS(),返回信息:" + ex.ToString());
     }
 }
Пример #2
0
        /// <summary>
        /// 发送短信
        /// </summary>
        /// <param name="dr"></param>
        private static void SendDoTaskSMS()
        {
            try
            {
                DataTable dt = dal.GetSMSDoTask();
                if (dt.Rows.Count > 0)
                {
                    Log.WriteLog("查询到得代办数据总数:" + dt.Rows.Count);
                    SMSService.MessageEntity[] entity = null;
                    string[] strUser = new string[dt.Rows.Count];
                    IDictionary <string, string> dict = new Dictionary <string, string>();
                    Hashtable has = new Hashtable();
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        strUser[i] = dt.Rows[i]["RECEIVEUSERID"].ToString();
                        has.Add(dt.Rows[i]["RECEIVEUSERID"].ToString(), dt.Rows[i]["TASKCOUNT"].ToString());
                    }
                    if (strUser != null)
                    {
                        //EMPLOYEESTATE 员工状态 0:试用期、1:在职、2:离职、3:离职中 4:未入职
                        PersonnelService.EmployeeContactWays[] List = Client.GetEmployeeToEngine(strUser);
                        var employeeOnDuty = from emp in List where emp.EMPLOYEESTATE == "1" || emp.EMPLOYEESTATE == "3" select emp;
                        if (employeeOnDuty != null && employeeOnDuty.Count() > 0)
                        {
                            Log.WriteLog("真实发送短信数据总数:" + dt.Rows.Count);
                            entity = new SMSService.MessageEntity[employeeOnDuty.Count()];
                            int i = 0;
                            foreach (var employee in employeeOnDuty)
                            {
                                string taskCount = has[employee.EMPLOYEEID].ToString();
                                string sendMsg   = string.Format("温馨提醒:截止{0}您还有{1}条待办任务未处理,请及时处理,谢谢!【协同办公系统】", DateTime.Now.ToString("HH时mm分"), taskCount);

                                dict.Add(employee.EMPLOYEEID, taskCount);
                                entity[i]                    = new SMSService.MessageEntity();
                                entity[i].ACCOUNTID          = employee.EMPLOYEEID;
                                entity[i].MOBILE             = employee.TELPHONE;
                                entity[i].SENDMESSAGE        = sendMsg;
                                entity[i].SENDTIME           = DateTime.Now;
                                entity[i].REMARK             = "引擎发送待办短信";
                                entity[i].OWNERID            = employee.EMPLOYEEID;
                                entity[i].OWNERNAME          = employee.EMPLOYEENAME;
                                entity[i].OWNERCOMPANYID     = employee.COMPANYID;
                                entity[i].OWNERDEPARTMENTID  = employee.DEPARTMENTID;
                                entity[i].OWNERPOSTID        = employee.POSTID;
                                entity[i].CREATEUSERID       = "";
                                entity[i].CREATEUSERNAME     = "******";
                                entity[i].CREATECOMPANYID    = "bac05c76-0f5b-40ae-b73b-8be541ed35ed";
                                entity[i].CREATEDEPARTMENTID = employee.DEPARTMENTID;
                                entity[i].CREATEPOSTID       = employee.POSTID;
                                entity[i].CREATEDATE         = DateTime.Now;
                                entity[i].SMSTYPE            = 0;
                                i++;
                            }
                        }

                        #region 插入短信发送的记录
                        if (entity != null)
                        {
                            for (int i = 0; i < entity.Length; i++)
                            {
                                if (entity[i] != null)
                                {
                                    string           account = entity[i].ACCOUNTID;
                                    T_FLOW_SMSRECORD ent     = new T_FLOW_SMSRECORD();
                                    ent.SMSRECORD   = Guid.NewGuid().ToString();
                                    ent.SENDTIME    = entity[i].SENDTIME;
                                    ent.MOBILE      = entity[i].MOBILE;
                                    ent.COMPANYID   = entity[i].CREATECOMPANYID;
                                    ent.BATCHNUMBER = string.Format("{0}_{1}", DateTime.Now.ToString("yyyyMMddHHmm"), entity.Length);
                                    ent.ACCOUNT     = entity[i].ACCOUNTID;
                                    ent.OWNERNAME   = entity[i].OWNERNAME;
                                    ent.SENDSTATUS  = 1;//已发送
                                    ent.OWNERID     = entity[i].OWNERID;
                                    ent.TASKCOUNT   = Convert.ToInt32(dict[account]);
                                    ent.SENDMESSAGE = entity[i].SENDMESSAGE;
                                    dal.AddSMSRecord(ent);//插入发送记录
                                }
                            }
                        }
                        #endregion
                        try
                        {
                            Log.WriteLog("调用短信接口开始:" + DateTime.Now.ToString());
                            //调用短信接口服务
                            string strMsg = client.SendMsg(entity);//调试不发送

                            Log.WriteLog("调用短信接口结束,返回信息:" + strMsg + DateTime.Now.ToString());
                        }
                        catch (Exception ex)
                        {
                            Log.WriteLog("调用短信接口结束(异常消息),返回信息:" + ex.ToString() + DateTime.Now.ToString());
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log.WriteLog("调用短信SendDoTaskSMS(),返回信息:" + ex.ToString() + DateTime.Now.ToString());
            }
        }