private static ZeroConfirmSOIncomeJobResp CallRestfulService(List <SOIncomeInfo> lstSOIncome) { string baseUrl = System.Configuration.ConfigurationManager.AppSettings["InvoiceRestFulBaseUrl"]; string languageCode = System.Configuration.ConfigurationManager.AppSettings["LanguageCode"]; string companyCode = System.Configuration.ConfigurationManager.AppSettings["CompanyCode"]; ECCentral.Job.Utility.RestClient client = new ECCentral.Job.Utility.RestClient(baseUrl, languageCode); ECCentral.Job.Utility.RestServiceError error; string relativeUrl = "/SOIncome/BatchConfirmJob"; ZeroConfirmSOIncomeJobResp response = null; List <int> lstSOIncomeSysNo = new List <int>(); foreach (SOIncomeInfo item in lstSOIncome) { lstSOIncomeSysNo.Add(item.SysNo.Value); } var ar = client.Update <ZeroConfirmSOIncomeJobResp>(relativeUrl, lstSOIncomeSysNo, out response, out error); var messageBuilder = new StringBuilder(); if (error != null && error.Faults != null && error.Faults.Count > 0) { foreach (var errorItem in error.Faults) { messageBuilder.AppendFormat(" {0} <br/>", errorItem.ErrorDescription); } throw new Exception(messageBuilder.ToString()); } return(response); }
public static void DoWork(AutoResetEvent are) { //获取前一日已出库,未确认的SOIncomeNo OnShowInfo("开始获取数据"); var getData = AutoConfirm.GetConfirmData(Settings.InitialDate); if (getData != null && getData.Count > 0) { List <SOIncomeInfo> lstSOIncome = new List <SOIncomeInfo>(); getData.ForEach(x => { lstSOIncome.Add(new SOIncomeInfo { SysNo = x.SysNo }); }); OnShowInfo("开始呼叫服务,确认SOIncome记录"); ZeroConfirmSOIncomeJobResp response = new ZeroConfirmSOIncomeJobResp(); response = CallRestfulService(lstSOIncome); SendEmailForData(response); } else { OnShowInfo("没有需要确认的SOIncome记录"); } are.Set(); }
public ZeroConfirmSOIncomeJobResp BatchConfirmSOIncomeForJob(List <int> sysNoList) { var result = ObjectFactory <SOIncomeAppService> .Instance.BatchConfirm(sysNoList); ZeroConfirmSOIncomeJobResp resp = new ZeroConfirmSOIncomeJobResp(); resp.Result = new List <ZeroConfirmSOIncomeJobResultItem>(); foreach (var r in result.SuccessList) { resp.Result.Add(new ZeroConfirmSOIncomeJobResultItem() { SysNo = r.ID }); } foreach (var r in result.FaultList) { resp.Result.Add(new ZeroConfirmSOIncomeJobResultItem() { SysNo = r.FaultItem.ID, ErrorDescription = r.FaultException.Message }); } return(resp); }
private static void SendEmailForData(ZeroConfirmSOIncomeJobResp response) { if (response == null) { return; } DateTime nowTime = DateTime.Now; string emailModelPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Settings.EmailModel); string emailBody = ReadFile(emailModelPath); emailBody = emailBody.Replace("#DateTime#", nowTime.ToString("yyyy-MM-dd HH:mm:ss")); List <ConfirmEntity> emailList = new List <ConfirmEntity>(); response.Result.ForEach(x => { var s = AutoConfirm.GetEmailData(Convert.ToInt32(x.SysNo)); var confirmInfo = "确认成功"; if (x.ErrorDescription != null) { confirmInfo = x.ErrorDescription; } string confirmedID = Settings.UserLoginName; emailList.Add(new ConfirmEntity { SoSysNo = s.SoSysNo, PayTerms = s.PayTerms, OrderAmt = s.OrderAmt, IncomeAmt = s.IncomeAmt, PrepayAmt = s.PrepayAmt, PointPayAmt = s.PointPayAmt, GiftCardPayAmt = s.GiftCardPayAmt, ConfirmedDate = s.ConfirmedDate, ConfirmedInfo = confirmInfo, CofirmedID = confirmedID }); }); MailInfo mail = new MailInfo(); string fileName = "ZeroAutoConfirm" + nowTime.ToString(Settings.ShortDateFormat) + ".xls"; string filePath = new ExcelSend().WriteToFile(emailList, fileName, nowTime); mail.FromName = Settings.EmailFrom; mail.ToName = Settings.EmailAddress; mail.Subject = string.Format(Settings.EmailSubject, nowTime.ToString(Settings.ShortDateFormat)); mail.Body = emailBody; mail.IsHtmlType = false; mail.Attachments = new List <string>(); mail.Attachments.Add(filePath); mail.IsAsync = false; mail.IsInternal = true; try { MailHelper.SendEmail(mail); MailDA.SendEmail(mail.ToName, mail.Subject, mail.Body, 1); OnShowInfo("邮件发送成功"); } catch { MailDA.SendEmail(mail.ToName, mail.Subject, mail.Body, -1); OnShowInfo("邮件发送失败"); } }