Пример #1
0
        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);
        }
Пример #2
0
        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();
        }
Пример #3
0
        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);
        }
Пример #4
0
        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("邮件发送失败");
            }
        }