Example #1
0
        private static bool SaveGroupDelivery(Entity.券商 groupItem, DateTime date)
        {
            var saveResult = false;

            var data = DataHelper.QueryHisDelivery(date, date, groupItem);

            if (data != null)
            {
                if (data.Rows.Count > 0)
                {
                    DataHelper.StandardDeliveryDataTable(data, date);
                    using (var db = new DataComparisionDataset())
                    {
                        var oldData = db.交割单ds.Where(_ => _.交割日期 == date && _.组合号 == groupItem.称);
                        if (oldData.Count() > 0)
                        {
                            db.交割单ds.RemoveRange(oldData);
                            db.SaveChanges();
                        }
                    }
                    saveResult = DataHelper.WriteToDB(data, "交割单");
                }
                else
                {
                    saveResult = true;
                }
            }
            return(saveResult);
        }
Example #2
0
        public void RefreshCombInfo()
        {
            if (cmbGroup.Items.Count == 0 || cmbDate.Items.Count == 0)
            {
                try
                {
                    using (var db = new DataComparisionDataset())
                    {
                        var dtList = db.软件委托ds.Select(_ => _.成交日期).Distinct().ToList();
                        var gList  = db.软件委托ds.Select(_ => _.组合号).Distinct().ToList();

                        var date1  = dtList.OrderByDescending(_ => _).Select(_ => _.ToString("yyyy/MM/dd")).Take(10).ToList();
                        var group1 = gList.OrderBy(_ => _).ToList();

                        //var lst1 = db.交割单ds.ToList();
                        //var lst2 = db.软件委托ds.ToList();

                        //var group1 = lst1.Select(_ => _.组合号).Union(lst2.Select(_ => _.组合号)).Distinct().OrderBy(_ => _).ToList();
                        //var date1 = lst1.Select(_ => _.交割日期.ToString("yyyy/MM/dd")).Union(lst2.Select(_ => _.成交日期.ToString("yyyy/MM/dd"))).Distinct().OrderByDescending(_ => _).Take(10).ToList();
                        this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
                        {
                            cmbGroup.ItemsSource = group1;
                            cmbDate.ItemsSource  = date1;

                            ControlUtils.HideLoading(this.Loading);
                        }));
                    }
                }
                catch { }
            }
        }
Example #3
0
        private List <合计表> GetTotalData(DateTime?dtStart, DateTime?dtEnd)
        {
            DateTime   dt       = DateTime.Now;
            List <合计表> lstTotal = null;

            try
            {
                using (var dbDataset = new DataComparisionDataset())
                {
                    if (!dtStart.HasValue && !dtEnd.HasValue)
                    {
                        var dateNewest = dbDataset.交割单ds.Max(_ => _.交割日期);

                        dtStart = dateNewest;
                        dtEnd   = dateNewest;
                    }

                    lstTotal = dbDataset.合计表ds.Where(_ => _.日期 >= dtStart && _.日期 <= dtEnd).ToList();
                }
            }
            catch (Exception ex)
            {
                CommonUtils.Log("合计界面刷新失败:" + ex.Message);
            }

            //var cost = (DateTime.Now - dt).TotalSeconds;
            //CommonUtils.Log("合计查询总耗时" + cost);
            return(lstTotal);
        }
Example #4
0
        private void Button_Soft_Search_Click(object sender, RoutedEventArgs e)
        {
            List <Entity.软件委托> lstSoft = new List <Entity.软件委托>();

            using (var db = new DataComparisionDataset())
            {
                lstSoft = db.软件委托ds.ToList();
            }
        }
Example #5
0
        private void btnSubmit_Click(object sender, RoutedEventArgs e)
        {
            using (var db = new DataComparisionDataset())
            {
                //if (true)
                //{

                //}
                var lstData = db.交割单ds.ToList();
                this.dgDeliveryList.ItemsSource = lstData;
            }
        }
Example #6
0
        private void Button_Save_Click(object sender, RoutedEventArgs e)
        {
            if (cbHisType.SelectedIndex != 0)
            {
                return;
            }

            var o  = cmbGroup.SelectedItem as 券商;
            var dt = ExportData;
            var sd = dpStart.SelectedDate.Value;
            var ed = dpEnd.SelectedDate.Value;

            bool saveResult = false;

            this.loading.ShowLoading();
            Dispatcher.RunAsync(() =>
            {
                try
                {
                    DataHelper.StandardDeliveryDataTable(dt);
                    using (var db = new DataComparisionDataset())
                    {
                        var oldData = db.交割单ds.Where(_ => _.交割日期 >= sd && _.交割日期 <= ed);
                        if (oldData.Count() > 0)
                        {
                            db.交割单ds.RemoveRange(oldData);
                            db.SaveChanges();
                        }
                    }
                    saveResult = DataHelper.WriteToDB(dt, "交割单");
                }
                catch (Exception ex)
                {
                    Dispatcher.ShowMsg("保存出错:" + ex.Message);
                }
            }, null, null,
                                () => {
                this.dgDelivery.ItemsSource = null;
                this.loading.HideLoading();
                if (saveResult)
                {
                    CommonUtils.ShowMsg("保存完毕!");
                }
                else
                {
                    CommonUtils.ShowMsg("保存失败!");
                }
            });
        }
Example #7
0
        private bool SaveAsSoftwareData(DataTable dt, DataComparisionDataset db, Dictionary <string, string> pageConfig, bool isSaveFromPage, out string msg)
        {
            msg = string.Empty;
            try
            {
                var fileName = dt.TableName.GetFileName();
                var date     = fileName.GetDate();
                var group    = fileName.GetGroupName();
                if (date == DateTime.MinValue)
                {
                    msg = string.Format("软件委托文件名中必须包含交易日期,文件{0}未符合条件。", fileName);
                    return(false);
                }

                var dict    = (isSaveFromPage || string.IsNullOrEmpty(group)) ? pageConfig : CommonUtils.GetConfig(group + "软件委托").FromJson <Dictionary <string, string> >();
                var lstSoft = GetSoftList(date, dt, dict);
                if (lstSoft.Count == 0)
                {
                    msg = "符合条件的数据条数为0,将跳过此文件:" + fileName;
                    return(false);
                }

                var groupList  = lstSoft.Select(_ => _.组合号).Distinct().ToList();
                var formatData = db.软件委托ds.Where(_ => _.成交日期 == date && groupList.Contains(_.组合号));
                if (formatData.Count() > 0)
                {
                    if (isSaveFromPage && MessageBox.Show("已存在对应软件委托数据,是否删除并保存?", "Save", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
                    {
                        return(false);
                    }
                    db.软件委托ds.RemoveRange(formatData);
                }

                db.软件委托ds.AddRange(lstSoft);
                db.SaveChanges();
                if (isSaveFromPage)
                {
                    CommonUtils.SetConfig(group + "软件委托", dict.ToJson());
                }
            }
            catch (Exception ex)
            {
                CommonUtils.Log(string.Format("软件委托导入失败, 关联文件名{0}!", dt.TableName), ex);
                msg = "保存软件委托失败,详情请查看日志!";
                return(false);
            }
            return(true);
        }
Example #8
0
        private bool SaveAsDeliveryData(DataTable dt, DataComparisionDataset db, Dictionary <string, string> pageConfig, bool isSaveFromPage, out string msg)
        {
            msg = string.Empty;
            try
            {
                var fileName = dt.TableName.GetFileName();
                var group    = fileName.GetGroupName();
                var date     = fileName.GetDate();
                if (date == DateTime.MinValue || string.IsNullOrEmpty(group))
                {
                    msg = string.Format("交割单文件名中必须同时包含组合号及交易日期,文件{0}未符合条件。", fileName);
                    return(false);
                }

                var dict = isSaveFromPage ? pageConfig : CommonUtils.GetConfig(group + "交割单").FromJson <Dictionary <string, string> >();
                var list = GetDeliveryList(dt, group, dict);
                if (list.Count == 0)
                {
                    msg = "符合条件的数据条数为0,交割单默认保存条件为发生金额大于0,将跳过此文件:" + fileName;
                    return(false);
                }

                var groupList  = list.Select(_ => _.组合号).ToList();
                var formatData = db.交割单ds.Where(_ => _.交割日期 == date && groupList.Contains(_.组合号));
                if (formatData.Count() > 0)
                {
                    if (isSaveFromPage && MessageBox.Show("已存在对应交割单数据,是否删除旧数据并保存?", "交割单保存", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
                    {
                        return(false);
                    }
                    db.交割单ds.RemoveRange(formatData);
                }

                db.交割单ds.AddRange(list);
                db.SaveChanges();
                if (isSaveFromPage)
                {
                    CommonUtils.SetConfig(group + "交割单", dict.ToJson());
                }
            }
            catch (Exception ex)
            {
                CommonUtils.Log(string.Format("交割单导入失败, 关联文件名{0}!", dt.TableName), ex);
                msg = "保存交割单失败,详情请查看日志!";
                return(false);
            }
            return(true);
        }
Example #9
0
        private void Button_Delete_Click(object sender, RoutedEventArgs e)
        {
            var o = (sender as Button).DataContext as 券商;

            using (var db = new DataComparisionDataset())
            {
                var item = db.券商ds.FirstOrDefault(_ => _.称 == o.称);
                if (item != null)
                {
                    db.券商ds.Remove(item);
                    db.SaveChanges();
                    Init();
                    MessageBox.Show("删除成功!");
                }
            }
        }
Example #10
0
 public void Init()
 {
     try
     {
         using (var db = new DataComparisionDataset())
         {
             var groups = CommonUtils.DictGroup.Values.Where(_ => _.启用 == true).ToList();
             if (groups != null && groups.Count > 0)
             {
                 cmbGroup.ItemsSource       = groups;
                 cmbGroup.DisplayMemberPath = "名称";
             }
         }
     }
     catch { }
 }
Example #11
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                using (var db = new DataComparisionDataset())
                {
                    if (IsCreateNew)
                    {
                        var item = SetEntityFromPage(Entity);

                        db.软件委托ds.Add(item);
                        db.SaveChanges();
                    }
                    else
                    {
                        var list = db.软件委托ds.Where(_ => _.组合号 == Entity.组合号 && _.成交日期 == Entity.成交日期).ToList();
                        if (list.Count > 0)
                        {
                            var item = list.FirstOrDefault(_ => _.IsSame(Entity));
                            if (item != null)
                            {
                                SetEntityFromPage(item);
                                db.SaveChanges();
                            }
                            else
                            {
                                CommonUtils.ShowMsg("未找到数据对应项");
                            }
                        }
                        else
                        {
                            CommonUtils.ShowMsg("未找到数据对应项");
                        }
                    }
                }
                if (OnEditComplete != null)
                {
                    OnEditComplete.Invoke();
                }
                this.Close();
            }
            catch (Exception ex)
            {
                CommonUtils.ShowMsg("保存失败!" + ex.Message);
            }
        }
Example #12
0
        private void CalculateAsync(DateTime dtStart, DateTime dtEnd, string groupName = null)
        {
            ControlUtils.ShowLoading(this.loading);
            Task t = new Task(() =>
            {
                try
                {
                    using (var db = new DataComparisionDataset())
                    {
                        var lstTotalExists = db.合计表ds.Where(_ => _.日期 >= dtStart && _.日期 <= dtEnd);
                        var lstDeli        = db.交割单ds.Where(_ => _.交割日期 >= dtStart && _.交割日期 <= dtEnd).OrderBy(_ => _.组合号).ThenBy(_ => _.SortSequence).ToList();
                        var lstSoft        = db.软件委托ds.Where(_ => _.成交日期 >= dtStart && _.成交日期 <= dtEnd).OrderBy(_ => _.组合号).ThenBy(_ => _.SortSequence).ToList();

                        if (!string.IsNullOrEmpty(groupName))
                        {
                            lstTotalExists = lstTotalExists.Where(_ => _.账户 == groupName);
                            lstDeli        = lstDeli.Where(_ => _.组合号 == groupName).ToList();
                            lstSoft        = lstSoft.Where(_ => _.组合号 == groupName).ToList();
                        }

                        var list = Entity.EntityCompareUtil.CompareData(lstDeli, lstSoft);

                        db.合计表ds.RemoveRange(lstTotalExists);
                        db.合计表ds.AddRange(list);
                        db.SaveChanges();

                        Dispatcher.HideLoading(this.loading);
                        Dispatcher.RunAsync(null, () => { RefreshPage(); });
                    }
                }
                catch (Exception ex)
                {
                    CommonUtils.Log(DateTime.Now.ToShortTimeString() + " 计算合并信息时出错 ", ex);
                    Dispatcher.ShowMsg("运行异常,计算合并信息时出错,详情请查看日志!");
                    Dispatcher.HideLoading(this.loading);
                }
            });

            t.Start();

            //var thread = new Thread(new ThreadStart(() =>
            //{

            //}));
            //thread.Start();
        }
Example #13
0
        private void SelectCancelRateInfo()
        {
            var dtStart = dpDateStart.SelectedDate.Value;
            var dtEnd   = dpDateEnd.SelectedDate.Value;

            try
            {
                var list = new List <TraderOrderCancelRate>();
                using (var db = new DataComparisionDataset())
                {
                    var orders = db.软件委托ds.Where(_ => _.成交日期 >= dtStart && _.成交日期 <= dtEnd);
                    foreach (var item in orders)
                    {
                        if (list.Exists(_ => _.Trader == item.交易员))
                        {
                            var rateItem = list.First(_ => _.Trader == item.交易员);

                            rateItem.OrderTotalCount++;
                            if (item.撤单数量 > 0)
                            {
                                rateItem.OrderCancelCount++;
                            }
                        }
                        else
                        {
                            var rateItem = new TraderOrderCancelRate()
                            {
                                StartDate        = dtStart,
                                EndDate          = dtEnd,
                                OrderCancelCount = item.撤单数量 > 0 ? 1 : 0,
                                OrderTotalCount  = 1,
                                Trader           = item.交易员
                            };
                            list.Add(rateItem);
                        }
                    }
                }

                this.dgCancelRate.ItemsSource = list;
            }
            catch (Exception ex)
            {
                MessageBox.Show("SelectCancelRateInfo Exception:" + ex.Message);
            }
        }
Example #14
0
 private void Init()
 {
     //if (DataAdapter.DataHelper.IsExistsAAS)
     //{
     //    btnAASImport.IsEnabled = true;
     //}
     try
     {
         using (var db = new DataComparisionDataset())
         {
             var list = db.券商ds.ToList();
             this.dgGroup.ItemsSource = list;
         }
     }
     catch (Exception)
     {
     }
 }
Example #15
0
        void OrderCancelRate_Loaded(object sender, RoutedEventArgs e)
        {
            this.dpDateStart.SelectedDate = DateTime.Today.AddDays(-1);
            this.dpDateEnd.SelectedDate   = DateTime.Today.AddDays(-1);
            try
            {
                using (var db = new DataComparisionDataset())
                {
                    var dates = db.软件委托ds.Select(_ => _.成交日期).Max();
                    this.dpDateStart.SelectedDate = dates;
                    this.dpDateEnd.SelectedDate   = dates;
                }
            }
            catch (Exception)
            {
            }

            SelectCancelRateInfo();
        }
Example #16
0
        //static bool? _isExists = null;
        ///// <summary>
        ///// 是否存在本机AAS数据库
        ///// </summary>
        //public static bool IsExistsAAS
        //{
        //    get
        //    {
        //        if (_isExists == null)
        //        {
        //            try
        //            {
        //                using (var conn = new SqlConnection("Data Source=.\\SQLEXPRESS;Initial Catalog=AAS;Integrated Security=True;"))
        //                {
        //                    conn.Open();
        //                    if (conn.State == ConnectionState.Open)
        //                    {
        //                        conn.Close();
        //                        _isExists = true;
        //                    }
        //                    else
        //                    {
        //                        _isExists = false;
        //                    }
        //                }
        //            }
        //            catch
        //            {
        //                _isExists = false;
        //            }
        //        }

        //        return _isExists == true;
        //    }
        //}
        #endregion

        public static bool ImportGroupFromAAS(bool isCover)
        {
            bool isImportSuccess = false;

            var           dt         = new DataTable();
            string        cmd        = "SELECT [名称] ,[启用] ,[交易服务器] ,[版本号] ,[营业部代码] ,[登录帐号] ,[交易帐号] ,[交易密码] ,[通讯密码] FROM [AAS].[dbo].[券商帐户]";
            List <string> groupNames = new List <string>();

            using (var adapter = new SqlDataAdapter(cmd, "Data Source=.\\SQLEXPRESS;Initial Catalog=AAS;Integrated Security=True;"))
            {
                adapter.Fill(dt);
                dt.Columns.Add("IP");
                dt.Columns.Add("Port");
                for (int i = dt.Rows.Count - 1; i > -1; i--)
                {
                    var item   = dt.Rows[i];
                    var ipInfo = item["交易服务器"].ToString().Split(':');
                    item["IP"]   = ipInfo[1];
                    item["Port"] = ipInfo[2];

                    if (isCover)
                    {
                        groupNames.Add(item["名称"].ToString());
                    }
                    else
                    {
                        dt.Rows.RemoveAt(i);
                    }
                }
            }

            using (var db = new DataComparisionDataset())
            {
                var old = db.券商ds.Where(_ => groupNames.Contains(_.称)).ToList();
                db.券商ds.RemoveRange(old);
                db.SaveChanges();
            }


            isImportSuccess = WriteToDB(dt, "券商");
            return(isImportSuccess);
        }
Example #17
0
        private void Button_Save_Click(object sender, RoutedEventArgs e)
        {
            if (Validate())
            {
                try
                {
                    券商            o       = GetPageEntity();
                    StringBuilder ErrInfo = new StringBuilder(256);
                    //int clientID = TdxApi.Logon(o.IP, o.Port, o.版本号, o.营业部代码, o.登录帐号, o.交易帐号, o.TradePsw, o.CommunicatePsw, ErrInfo);
                    //if (clientID > -1)
                    //{

                    //    TdxApi.Logoff(clientID);
                    //}
                    //else
                    //{
                    //    MessageBox.Show("登录验证失败, 错误信息:" + ErrInfo.ToString());
                    //}
                    using (var db = new DataComparisionDataset())
                    {
                        var oldEntity = db.券商ds.FirstOrDefault(_ => _.称 == o.称);
                        if (oldEntity != null)
                        {
                            db.券商ds.Remove(oldEntity);
                        }


                        db.券商ds.Add(o);
                        db.SaveChanges();
                        MessageBox.Show("保存完毕", "组合号编辑");
                        this.Close();
                    }
                }
                catch (Exception ex)
                {
                    CommonUtils.ShowMsg(ex.Message);
                }
            }
        }
Example #18
0
        private void Button_DeliveryNotMatched_SetSpecal_Click(object sender, RoutedEventArgs e)
        {
            var item = (sender as Button).DataContext as 交割单;

            if (item != null)
            {
                var result = MessageBox.Show("确认强制保留此交割单吗?", "交割单编辑", MessageBoxButton.OKCancel);
                if (result == MessageBoxResult.OK)
                {
                    using (var db = new DataComparisionDataset())
                    {
                        var lst      = db.交割单ds.ToList();
                        var editItem = lst.FirstOrDefault(_ => EntityCompareUtil.IsSame(item, _));
                        if (editItem != null)
                        {
                            editItem.备注 = "强制保留";
                            db.SaveChanges();
                        }
                    }
                    RefreshWindow(false);
                }
            }
        }
Example #19
0
        private void Button_Soft_Delete_Click(object sender, RoutedEventArgs e)
        {
            var item = (sender as Button).DataContext as 软件委托;

            if (item != null)
            {
                var result = MessageBox.Show("确认删除此委托吗?", "委托删除", MessageBoxButton.OKCancel);
                if (result == MessageBoxResult.OK)
                {
                    using (var db = new DataComparisionDataset())
                    {
                        var lst        = db.软件委托ds.ToList();
                        var deleteItem = lst.FirstOrDefault(_ => EntityCompareUtil.IsSame(item, _));
                        if (deleteItem != null)
                        {
                            db.软件委托ds.Remove(deleteItem);
                            db.SaveChanges();
                        }
                    }
                    RefreshWindow(false);
                }
            }
        }
Example #20
0
        public static void StandardDeliveryDataTable(DataTable dt, DateTime?importDate = null)
        {
            DateTime st = DateTime.Today;
            DateTime et = DateTime.MinValue;

            //1.修正列名
            StandardColumnName(dt);

            //2. 修正数据列
            for (int i = dt.Columns.Count - 1; i > -1; i--)
            {
                if (!DataHelper.DeliveryCol.Contains(dt.Columns[i].ColumnName))
                {
                    dt.Columns.RemoveAt(i);
                }
            }
            for (int i = DataHelper.DeliveryCol.Length - 1; i > -1; i--)
            {
                if (!dt.Columns.Contains(DataHelper.DeliveryCol[i]))
                {
                    dt.Columns.Add(DataHelper.DeliveryCol[i]);
                }
            }
            dt.Columns.Add("OrderID");
            dt.Columns.Add("SortSequence");


            //3. 修正数据类型,已对应当前数据库,将数字列进行转换
            List <string> colDec = new List <string>()
            {
                "成交数量", "成交价格", "成交金额", "发生金额", "手续费", "印花税", "过户费", "其他费"
            };
            List <string> groupList = new List <string>();

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                var groupName = dt.Rows[i]["组合号"].ToString();
                if (!groupList.Contains(groupName))
                {
                    groupList.Add(groupName);
                }

                var date = CommonUtils.GetDate(dt.Rows[i]["交割日期"]);
                if (date == DateTime.MinValue && importDate != null)
                {
                    date = importDate.Value;
                }
                if (st > date)
                {
                    st = date;
                }
                if (et < date)
                {
                    et = date;
                }

                dt.Rows[i]["OrderID"]      = Guid.NewGuid().ToString();
                dt.Rows[i]["SortSequence"] = i;
                dt.Rows[i]["证券代码"]         = dt.Rows[i]["证券代码"].ToString().FixStockCode();
                dt.Rows[i]["交割日期"]         = date;

                foreach (var colName in colDec)
                {
                    dt.Rows[i][colName] = CommonUtils.GetDecimal(dt.Rows[i][colName]);
                }
            }

            //4.保存数据库
            using (var db = new DataComparisionDataset())
            {
                var oldData = db.交割单ds.Where(_ => _.交割日期 >= st && _.交割日期 < et && groupList.Contains(_.组合号));

                db.交割单ds.RemoveRange(oldData);
                db.SaveChanges();
            }
        }
Example #21
0
        private void SaveOneTable(DataTable dt, Dictionary <string, string> deliConfig, Dictionary <string, string> softConfig)
        {
            string msg;
            bool   isSuccess = true;
            bool   isDeli    = cboDataType.SelectedIndex == 0;

            Task.Run(() => {
                using (DataComparisionDataset db = new DataComparisionDataset())
                {
                    if (isDeli)
                    {
                        isSuccess = SaveAsDeliveryData(dt, db, deliConfig, true, out msg);
                    }
                    else
                    {
                        isSuccess = SaveAsSoftwareData(dt, db, softConfig, true, out msg);
                    }
                }

                this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
                {
                    MessageBox.Show(isSuccess ? "保存完毕!" : msg);
                    if (isSuccess && !isDeli)
                    {
                        if (OnImportComplete != null)
                        {
                            //批量的软件委托,或者单独一个。
                            var listGroupName = new List <string>();
                            foreach (DataRow row in dt.Rows)
                            {
                                var groupName = row["组合号"].ToString();
                                if (!string.IsNullOrEmpty(groupName) && !listGroupName.Contains(groupName))
                                {
                                    listGroupName.Add(groupName.ToUpper());
                                }
                            }
                            OnImportComplete.Invoke(listGroupName, this.dpDate.SelectedDate.Value);
                        }

                        List <string> groupNames = new List <string>();
                        foreach (DataRow row in dt.Rows)
                        {
                            var group = (row["组合号"] + "").ToUpper();
                            if (!groupNames.Contains(group))
                            {
                                groupNames.Add(group);
                            }
                        }
                        if (cbNeedAutoSearchDel.IsChecked == true)
                        {
                            AutoSaveDelivery(groupNames, this.dpDate.SelectedDate.Value);
                        }
                    }
                    if (NotMatchConfigData.Contains(dt))
                    {
                        NotMatchConfigData.Remove(dt);
                        listBoxNotMatched.ItemsSource = NotMatchConfigData.Select(_ => _.TableName.GetFileName());
                    }

                    SelectedTable = null;
                    ControlUtils.HideLoading(this.loading);
                    dgImportData.ItemsSource = null;

                    if (OnDBChangeComplete != null)
                    {
                        OnDBChangeComplete.Invoke();
                    }
                }));
            });
        }
Example #22
0
        private void Button_FileImport_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog()
            {
                CheckFileExists = true, Multiselect = false, Filter = "文本文件|*.txt"
            };

            if (true == dialog.ShowDialog())
            {
                try
                {
                    var arr = File.ReadAllLines(dialog.FileName);

                    List <Entity.券商> listImport = new List <券商>();
                    foreach (var item in arr)
                    {
                        if (item.StartsWith("名称") || string.IsNullOrWhiteSpace(item))
                        {
                            continue;
                        }
                        var info = item.Split(new[] { ',', '\t' });
                        var o    = new Entity.券商()
                        {
                            称     = info[0],
                            启用    = bool.Parse(info[1]),
                            交易服务器 = info[2],
                            IP    = info[3],
                            Port  = short.Parse(info[4]),
                            版本号   = info[5],
                            营业部代码 = short.Parse(info[6]),
                            登录帐号  = info[7],
                            交易帐号  = info[8],
                            交易密码  = info[9],
                        };
                        if (info.Length >= 11)
                        {
                            o.通讯密码 = info[10];
                        }
                        listImport.Add(o);
                    }
                    if (listImport.Count > 0)
                    {
                        using (var db = new DataComparisionDataset())
                        {
                            var listName = listImport.Select(_ => _.称);
                            var old      = db.券商ds.Where(_ => listName.Contains(_.称)).ToList();
                            if (old.Count > 0)
                            {
                                db.券商ds.RemoveRange(old);
                            }
                            db.券商ds.AddRange(listImport);
                            db.SaveChanges();
                            MessageBox.Show(string.Format("导入完成,导入{0}个券商信息,覆盖{1}个,新增{2}个!", listImport.Count, old.Count, listImport.Count - old.Count));
                        }

                        Init();
                    }
                    else
                    {
                        MessageBox.Show("导入失败!");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
Example #23
0
        private void SaveMatchedTables(Dictionary <string, string> deliPageConfig, Dictionary <string, string> softPageConfig)
        {
            StringBuilder sb = new StringBuilder(64);

            try
            {
                int successCount = 0;
                using (var db = new DataComparisionDataset())
                {
                    //foreach (DataTable dt in MatchConfigData)
                    //{
                    //    bool isSuccess = false;
                    //    string msg;
                    //    var saveAsDeli = dt.TableName.GetImportType();
                    //    if (saveAsDeli == ImportDataType.软件委托)
                    //        isSuccess = SaveAsSoftwareData(dt, db, softPageConfig, false, out msg);
                    //    else if (saveAsDeli == ImportDataType.交割单)
                    //        isSuccess = SaveAsDeliveryData(dt, db, deliPageConfig, false, out msg);
                    //    else
                    //        msg = "未能从文件名中识别出导入数据类型,将跳过此文件:" + dt.TableName;

                    //    if (isSuccess)
                    //        successCount++;
                    //    else
                    //    {
                    //        if (!string.IsNullOrEmpty(msg)) sb.AppendLine(msg);
                    //        NotMatchConfigData.Add(dt);
                    //    }
                    //}
                    for (int i = 0; i < MatchConfigData.Count; i++)
                    {
                        DataTable dt = MatchConfigData[i];
                        this.Dispatcher.RunAsync(() => { this.loading.ShowLoading(string.Format("正在存储第{0}个文件,总计{1}个文件\r\n当前文件名:{2}", i, MatchConfigData.Count, dt.TableName.GetFileName())); });

                        bool   isSuccess = false;
                        string msg;
                        var    saveAsDeli = dt.TableName.GetImportType();
                        if (saveAsDeli == ImportDataType.软件委托)
                        {
                            isSuccess = SaveAsSoftwareData(dt, db, softPageConfig, false, out msg);
                        }
                        else if (saveAsDeli == ImportDataType.交割单)
                        {
                            isSuccess = SaveAsDeliveryData(dt, db, deliPageConfig, false, out msg);
                        }
                        else
                        {
                            msg = "未能从文件名中识别出导入数据类型,将跳过此文件:" + dt.TableName;
                        }

                        if (isSuccess)
                        {
                            successCount++;
                        }
                        else
                        {
                            if (!string.IsNullOrEmpty(msg))
                            {
                                sb.AppendLine(msg);
                            }
                            NotMatchConfigData.Add(dt);
                        }
                    }
                    CommonUtils.Log("保存记录:" + sb.ToString());
                }

                var message = string.Format("批量保存{0}个文件,成功{1}个,失败{2}个。", MatchConfigData.Count, successCount, MatchConfigData.Count - successCount);
                if (successCount < MatchConfigData.Count)
                {
                    message += "失败文件将转入单独保存列表,详细信息请查看日志中的保存记录。";
                }

                this.Dispatcher.ShowMsg(message);
            }
            catch (Exception ex)
            {
                CommonUtils.Log("存入数据库时出现异常!", ex);
                this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() => { CommonUtils.ShowMsg("保存失败,详情请检查日志!"); }));
            }
        }
Example #24
0
        private void LoadData(string groupID, DateTime date)
        {
            List <Entity.交割单>  lstDelivery = null;
            List <Entity.软件委托> lstSoft     = null;

            var delMatched     = new List <交割单>();
            var delNotMatched  = new List <交割单>();
            var softMatched    = new List <软件委托>();
            var softNotMatched = new List <软件委托>();

            try
            {
                using (var db = new DataComparisionDataset())
                {
                    lstDelivery = db.交割单ds.Where(_ => _.组合号 == groupID && _.交割日期 == date).OrderBy(_ => _.SortSequence).ToList();
                    lstSoft     = db.软件委托ds.Where(_ => _.组合号 == groupID && _.成交日期 == date).OrderBy(_ => _.SortSequence).ToList();
                    if (lstDelivery.Count == 0 && lstSoft.Count != 0)
                    {
                        var groupItem = CommonUtils.DictGroup[groupID];
                        if (groupItem != null)
                        {
                            var dt = DataHelper.QueryHisData(date, date, groupItem);
                            if (dt != null)
                            {
                                DataHelper.StandardDeliveryDataTable(dt, date);
                                var isSaveSuccess = DataHelper.WriteToDB(dt, "交割单");
                                if (isSaveSuccess)
                                {
                                    lstDelivery = db.交割单ds.Where(_ => _.组合号 == groupID && _.交割日期 == date).OrderBy(_ => _.SortSequence).ToList();
                                }
                            }
                        }
                        else
                        {
                            this.Dispatcher.ShowMsg("该组合号对应券商信息未添加!");
                        }
                    }

                    if (lstDelivery.Count > 0)
                    {
                        EntityCompareUtil.CompareData(lstDelivery, lstSoft, delMatched, softMatched, delNotMatched, softNotMatched);
                    }
                }
            }
            catch (Exception ex)
            {
                this.Dispatcher.ShowMsg(ex.Message);
            }


            this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() =>
            {
                dgMatchedDelivery.ItemsSource = delMatched;
                dgNotMatchedDelivery.ItemsSource = delNotMatched;

                dgMatchedSoft.ItemsSource = softMatched;
                dgSoftwareLost.ItemsSource = softNotMatched;

                dgDelivery.ItemsSource = lstDelivery;
                dgSoftware.ItemsSource = lstSoft;
                ControlUtils.HideLoading(this.Loading);
            }));
        }