예제 #1
0
        /// <summary>
        /// 获取账套信息
        /// </summary>
        private void GetAccount()
        {
            string         sql        = string.Format("select FDBName,FacctName+'['+FDBName+']' as Name from [dbo].[t_ad_kdAccount_gl]");
            var            connString = new KISService().GetKISDBConn();
            var            getList    = getDataSet(sql, connString);
            List <Account> names      = new List <Account>();

            using (SqlConnection conn = new SqlConnection(connString))
            {
                conn.Open();
                SqlCommand objCommand = new SqlCommand(sql, conn);
                using (SqlDataReader objReader = objCommand.ExecuteReader())
                {
                    while (objReader.Read())
                    {
                        Account model = new Account();
                        model.Value = objReader["FDBName"].ToString();
                        model.Name  = objReader["Name"].ToString();
                        names.Add(model);
                    }
                    objReader.Close();
                }
            }
            ddlAccount.DataValueField = "Value";
            ddlAccount.DataTextField  = "Name";
            ddlAccount.DataSource     = names;
            ddlAccount.DataBind();
        }
예제 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GetAccount();
                var kISModel = new KISService().GetKIS();
                ddlAccount.Text     = kISModel.AccountName;
                txtFrom.Text        = kISModel.InvoiceFrom;
                txtTo.Text          = kISModel.InvoiceTo;
                txtpayableFrom.Text = kISModel.PayableFrom;
                txtpayableTo.Text   = kISModel.PayableTo;
                txtInvoiceDate.Text = kISModel.InvoiceDate;
                txtpayableDate.Text = kISModel.PayableDate;
                txtIP.Text          = kISModel.IP;
                txtUserId.Text      = kISModel.UserID;
                txtPwd.Text         = kISModel.Pwd;

                if (VAN_OA.JXC.SysObj.NewShowAll_textName("金蝶发票处理工具", Session["currentUserId"], "修改时间") == false)
                {
                    btnAdd.Visible         = false;
                    ddlAccount.Enabled     = false;
                    txtFrom.Enabled        = false;
                    txtTo.Enabled          = false;
                    txtpayableFrom.Enabled = false;
                    txtpayableTo.Enabled   = false;
                    txtInvoiceDate.Enabled = false;
                    txtpayableDate.Enabled = false;
                    Image1.Visible         = false;
                    ImageButton1.Visible   = false;
                    ImageButton2.Visible   = false;
                    ImageButton3.Visible   = false;
                }
                plConnString.Visible = VAN_OA.JXC.SysObj.NewShowAll_textName("金蝶发票处理工具", Session["currentUserId"], "可定义服务器");
            }
        }
예제 #3
0
 public void DoWork()
 {
     try
     {
         //获取选中的数据库连接
         string newConn = new KISService().GetKISDBConn().Replace("AcctCtl", ddlAccount.SelectedValue);
         KISService.ExeCommand("Invoice_Proc", newConn, Convert.ToDateTime(txtFrom.Text), Convert.ToDateTime(txtTo.Text));
         KISService.ExeCommand("Payable_Proc", newConn, Convert.ToDateTime(txtpayableFrom.Text), Convert.ToDateTime(txtpayableTo.Text));
         lblMessage.Text = string.Format("执行成功!!!时间:{0}", DateTime.Now.ToString());
         base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('执行成功!');</script>");
     }
     catch (Exception ex)
     {
         lblMessage.Text = "执行异常,请检查!错误信息:" + ex.Message;
         base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('运行时间 格式错误!');</script>");
     }
 }
예제 #4
0
        protected void btnQuery_Click(object sender, EventArgs e)
        {
            if (Check() == false)
            {
                return;
            }
            Save();
            //检查是否有重复的数据
            var kisServer    = new KISService();
            var invoicesList = kisServer.GetInvoiceErrorInfo(ddlAccount.SelectedValue);
            var payableList  = kisServer.GetPayaleErrorInfo(ddlAccount.SelectedValue);

            gvList.DataSource = invoicesList;
            gvList.DataBind();

            gvPayable.DataSource = payableList;
            gvPayable.DataBind();
        }
예제 #5
0
        protected void btnUpdate_Click(object sender, EventArgs e)
        {
            if (Check() == false)
            {
                return;
            }
            Save();
            //检查是否有重复的数据
            var kisServer    = new KISService();
            var invoicesList = kisServer.GetInvoiceErrorInfo(ddlAccount.SelectedValue);
            var payableList  = kisServer.GetPayaleErrorInfo(ddlAccount.SelectedValue);

            gvList.DataSource = invoicesList;
            gvList.DataBind();

            gvPayable.DataSource = payableList;
            gvPayable.DataBind();
            if (invoicesList.Count > 0 || payableList.Count > 0)
            {
                base.ClientScript.RegisterStartupScript(base.GetType(), null, "<script>alert('存在发票号重复数据,请检查!');</script>");
                return;
            }
            DoWork();
        }
예제 #6
0
        public void Execute()
        {
            try
            {
                var dt      = DateTime.Now;
                var content = DateTime.Now.ToString() + "do !\r\n";
                lock (Tclock)
                {
                    //增加金蝶发票处理工具

                    var kISModel    = new KISService().GetKIS();
                    var invoiceDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + kISModel.InvoiceDate);
                    var payableDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + kISModel.PayableDate);

                    if (DateTime.Now.Hour == invoiceDate.Hour && DateTime.Now.Minute == invoiceDate.Minute)
                    {
                        var invoiceJob = new Thread(delegate()
                        {
                            try
                            {
                                ServiceAppSetting.LoggerHander.Invoke(string.Format("Invoice_Proc-开始! - {0}", DateTime.Now), "");

                                var kisServer    = new KISService();
                                var invoicesList = kisServer.GetInvoiceErrorInfo(kISModel.AccountName);
                                if (invoicesList.Count > 0)
                                {
                                    ServiceAppSetting.LoggerHander.Invoke(string.Format("Invoice_Proc-存在重复发票号数据,JOB 停止!", DateTime.Now), "");
                                    return;
                                }

                                //获取选中的数据库连接
                                string newConn = new KISService().GetKISDBConn().Replace("AcctCtl", kISModel.AccountName);
                                KISService.ExeCommand("Invoice_Proc", newConn, Convert.ToDateTime(kISModel.InvoiceFrom), Convert.ToDateTime(kISModel.InvoiceTo));
                                ServiceAppSetting.LoggerHander.Invoke(string.Format("Invoice_Proc-结束! - {0}", DateTime.Now), "");
                            }
                            catch (Exception ex)
                            {
                                ServiceAppSetting.LoggerHander.Invoke(string.Format("Invoice_Proc-结束! - {0},执行异常,请检查!错误信息:{1}", DateTime.Now, ex.Message), "");
                            }
                        })
                        {
                            IsBackground = true
                        };
                        invoiceJob.Start();
                    }

                    if (DateTime.Now.Hour == payableDate.Hour && DateTime.Now.Minute == payableDate.Minute)
                    {
                        var payableJob = new Thread(delegate()
                        {
                            try
                            {
                                var kisServer   = new KISService();
                                var payableList = kisServer.GetPayaleErrorInfo(kISModel.AccountName);
                                if (payableList.Count > 0)
                                {
                                    ServiceAppSetting.LoggerHander.Invoke(string.Format("Payable_Proc-存在重复发票号数据,JOB 停止!", DateTime.Now), "");
                                    return;
                                }

                                ServiceAppSetting.LoggerHander.Invoke(string.Format("Payable_Proc-开始! - {0}", DateTime.Now), "");
                                //获取选中的数据库连接
                                string newConn = new KISService().GetKISDBConn().Replace("AcctCtl", kISModel.AccountName);
                                KISService.ExeCommand("Payable_Proc", newConn, Convert.ToDateTime(kISModel.PayableFrom), Convert.ToDateTime(kISModel.PayableTo));
                                ServiceAppSetting.LoggerHander.Invoke(string.Format("Payable_Proc-结束! - {0}", DateTime.Now), "");
                            }
                            catch (Exception ex)
                            {
                                ServiceAppSetting.LoggerHander.Invoke(string.Format("Payable_Proc-结束! - {0},执行异常,请检查!错误信息:{1}", DateTime.Now, ex.Message), "");
                            }
                        })
                        {
                            IsBackground = true
                        };
                        payableJob.Start();
                    }

                    try
                    {
                        //OA系统每天晚上23:55,准时发起,一个任务,就是点击缓存按钮的动作,这样我们可以获得 当天的数据的快速列表印象。
                        if (DateTime.Now.Hour == 19 && DateTime.Now.Minute == 45)
                        {
                            ServiceAppSetting.LoggerHander.Invoke(string.Format("执行-缓存! 1- {0}", DateTime.Now), "");
                            new JXC_REPORTService().CatchData();
                            ServiceAppSetting.LoggerHander.Invoke(string.Format("结束-缓存! 1- {0}", DateTime.Now), "");
                        }

                        //每天早上1,2,3点处理最高值
                        //  if (DateTime.Now.Hour ==10 && DateTime.Now.Minute == 40)
                        if (DateTime.Now.Hour == 2 && DateTime.Now.Minute == 00)
                        {
                            //ServiceAppSetting.LoggerHander.Invoke(string.Format("执行-最高金额! - {0}", DateTime.Now), "");
                            content += "执行最高金额";
                            CashFlowService cashFlowService = new CashFlowService();
                            //List<CashFlow> cashFlowList = cashFlowService.GetListArray(" and IsClose=0");
                            List <CashFlow> cashFlowList = cashFlowService.GetListArray("");

                            using (SqlConnection conn = DBHelp.getConn())
                            {
                                conn.Open();
                                SqlCommand objCommand = conn.CreateCommand();
                                try
                                {
                                    objCommand.Parameters.Clear();
                                    foreach (var model in cashFlowList)
                                    {
                                        cashFlowService.Update(model, objCommand);
                                    }
                                }
                                catch (Exception)
                                {
                                    content += "【异常】最高金额";
                                }
                            }
                            content += "结束-最高金额";
                        }
                        if (DateTime.Now.Hour == 23 && DateTime.Now.Minute == 0)
                        {
                            content += "开始-客户联系跟踪表";
                            int currentYear  = DateTime.Now.Year;
                            int currentMonth = DateTime.Now.Month;

                            int nextYear  = DateTime.Now.AddMonths(1).Year;
                            int nextMonth = DateTime.Now.AddMonths(1).Month;

                            int currentZhangQi = GetZhouQi(currentMonth);
                            int nextZhangQi    = GetZhouQi(nextMonth);
                            //if (currentZhangQi == nextZhangQi && currentYear == nextYear)
                            //{
                            //    return;
                            //}
                            List <GuestProBaseInfo> guestProBaseInfos = new GuestProBaseInfoService().GetListArray("GuestPro=1");

                            TB_GuestTrackService GuestTrackSer = new TB_GuestTrackService();
                            string sql = string.Format(" 1=1 and QuartNo='{1}' and YearNo='{0}'  ", currentYear, currentZhangQi);
                            sql += string.Format(@" and (TB_GuestTrack.id in (select allE_id from tb_EForm where proId in (
select pro_Id from A_ProInfo where pro_Type='客户联系跟踪表') and state='通过') or TB_GuestTrack.id not in (select allE_id from tb_EForm where proId in (
select pro_Id from A_ProInfo where pro_Type='客户联系跟踪表') ))");
                            List <TB_GuestTrack> GuestTracks = GuestTrackSer.GetListArray(sql);

                            using (SqlConnection conn = DBHelp.getConn())
                            {
                                conn.Open();
                                SqlTransaction tan        = conn.BeginTransaction();
                                SqlCommand     objCommand = conn.CreateCommand();
                                objCommand.Transaction = tan;

                                try
                                {
                                    objCommand.Parameters.Clear();
                                    foreach (var model in GuestTracks)
                                    { //客户属性 每个季度需要复制到下一季度,但有一个是需要 特别关注的,就是每年的四季度 如果某个客户的客户属性是 自我开拓,
                                      //来年的一季度,这个客户的客户属性 必须变成 原有资源!!!
                                      //if (currentZhangQi == 4)
                                      //{
                                      //    if (model.MyGuestProString == "自我开拓")
                                      //    {
                                      //        model.MyGuestPro = 2;
                                      //    }
                                      //}

                                        model.QuartNo    = nextZhangQi.ToString();
                                        model.YearNo     = nextYear.ToString();
                                        model.CreateTime = DateTime.Now;


                                        string secondUpdate = GuestTrackSer.UpdateToString(model, model.GuestId, nextYear.ToString(), nextZhangQi.ToString());
                                        if (model.MyGuestProString == "自我开拓")
                                        {
                                            //我们的系统在每个季度的最后一天的晚上12点会自动同步客户信息到下一个季度,我们定义
                                            //.  如该客户目前的属性是自我开拓,该客户从登记之日起,加上自我开拓的有效期月数数字对应的日期,
                                            //如小于(<) 新季度第一天,新季度的客户的属性变成 原有资源,否则 还是自我开拓
                                            if (DateTime.Now.Month == 3 || DateTime.Now.Month == 6 || DateTime.Now.Month == 9 || DateTime.Now.Month == 12)
                                            {
                                                if (DateTime.Now.Day == DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month) &&
                                                    model.Time.AddMonths(guestProBaseInfos[0].GuestMonth) < Convert.ToDateTime(nextYear + "-" + nextMonth + "-01"))
                                                {
                                                    model.MyGuestPro = 2;
                                                }
                                            }
                                        }
                                        string update = GuestTrackSer.AddToString(model);

                                        string updateSql = string.Format("if not exists(select id from TB_GuestTrack where guestId='{0}' and yearNo='{1}' and QuartNo='{2}')begin {3} end else begin {4} end",
                                                                         model.GuestId, nextYear.ToString(), nextZhangQi.ToString(), update, secondUpdate);
                                        objCommand.CommandText = updateSql;
                                        objCommand.ExecuteNonQuery();
                                    }

                                    tan.Commit();
                                    content += "结束-客户联系跟踪表";
                                    //ServiceAppSetting.LoggerHander.Invoke(string.Format("执行成功! - {0}", DateTime.Now), "");
                                }
                                catch (Exception)
                                {
                                    tan.Rollback();
                                    content += "【异常】账期执行失败";
                                    //ServiceAppSetting.LoggerHander.Invoke(string.Format("账期执行失败! - {0}", DateTime.Now), "Error");
                                }
                            }
                        }
                    }
                    catch (Exception)
                    {
                    }
                }



                var filepath =
                    HostingEnvironment.MapPath("~/Logs/");
                var filename = filepath + "Job_" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";
                File.AppendAllText(filename, content);
                if (
                    File.Exists(filepath + "Job_" +
                                DateTime.Now.AddMonths(-1).ToString() + ".txt"))
                {
                    File.Delete(filepath + "Job_" +
                                DateTime.Now.AddMonths(-1).ToString() + ".txt");
                }
            }
            catch (Exception ex)
            {
            }
        }
예제 #7
0
파일: Job1.cs 프로젝트: liankong110/VAN_OA
        public void Execute(IJobExecutionContext context)
        {
            lock (Tclock)
            {
                //模拟运行该任务需要15秒
                //增加金蝶发票处理工具

                var kISModel    = new KISService().GetKIS();
                var invoiceDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + kISModel.InvoiceDate);
                var payableDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + kISModel.PayableDate);

                if (DateTime.Now.Hour == invoiceDate.Hour && DateTime.Now.Minute == invoiceDate.Minute)
                {
                    var invoiceJob = new Thread(delegate()
                    {
                        try
                        {
                            _logger.InfoFormat(string.Format("Invoice_Proc-开始! - {0}", DateTime.Now), "");

                            var kisServer    = new KISService();
                            var invoicesList = kisServer.GetInvoiceErrorInfo(kISModel.AccountName);
                            if (invoicesList.Count > 0)
                            {
                                _logger.InfoFormat(string.Format("Invoice_Proc-存在重复发票号数据,JOB 停止!", DateTime.Now), "");
                                return;
                            }

                            //获取选中的数据库连接
                            string newConn = new KISService().GetKISDBConn().Replace("AcctCtl", kISModel.AccountName);
                            KISService.ExeCommand("Invoice_Proc", newConn, Convert.ToDateTime(kISModel.InvoiceFrom), Convert.ToDateTime(kISModel.InvoiceTo));
                            _logger.InfoFormat(string.Format("Invoice_Proc-结束! - {0}", DateTime.Now), "");
                        }
                        catch (Exception ex)
                        {
                            _logger.InfoFormat(string.Format("Invoice_Proc-结束! - {0},执行异常,请检查!错误信息:{1}", DateTime.Now, ex.Message), "");
                        }
                    })
                    {
                        IsBackground = true
                    };
                    invoiceJob.Start();
                }

                if (DateTime.Now.Hour == payableDate.Hour && DateTime.Now.Minute == payableDate.Minute)
                {
                    var payableJob = new Thread(delegate()
                    {
                        try
                        {
                            var kisServer   = new KISService();
                            var payableList = kisServer.GetPayaleErrorInfo(kISModel.AccountName);
                            if (payableList.Count > 0)
                            {
                                _logger.InfoFormat(string.Format("Payable_Proc-存在重复发票号数据,JOB 停止!", DateTime.Now), "");
                                return;
                            }

                            _logger.InfoFormat(string.Format("Payable_Proc-开始! - {0}", DateTime.Now), "");
                            //获取选中的数据库连接
                            string newConn = new KISService().GetKISDBConn().Replace("AcctCtl", kISModel.AccountName);
                            KISService.ExeCommand("Payable_Proc", newConn, Convert.ToDateTime(kISModel.PayableFrom), Convert.ToDateTime(kISModel.PayableTo));
                            _logger.InfoFormat(string.Format("Payable_Proc-结束! - {0}", DateTime.Now), "");
                        }
                        catch (Exception ex)
                        {
                            _logger.InfoFormat(string.Format("Payable_Proc-结束! - {0},执行异常,请检查!错误信息:{1}", DateTime.Now, ex.Message), "");
                        }
                    })
                    {
                        IsBackground = true
                    };
                    payableJob.Start();
                }

                _logger.InfoFormat("第1个Job:" + DateTime.Now.ToString());

                //new Job2().Execute(context);
            }
        }