Example #1
0
        public List <Dealer> LoadDealerInfo(List <Dealer> dealers)
        {
            dealers     = new List <Dealer>();
            _dealerId   = string.IsNullOrWhiteSpace(_dealerId) ? "" : _dealerId.Replace("'", "");
            _dealerName = string.IsNullOrWhiteSpace(_dealerName) ? "" : _dealerName.Replace("'", "");
            Dealer dealer = new Dealer();

            if (!string.IsNullOrWhiteSpace(_dealerId))
            {
                dealer.DealerId = _dealerId;
                DataTable table = ScoreManage.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable("SELECT * FROM DealerAccede WHERE \"CrmDealerId\"='" + _dealerId + "'");
                foreach (DataRow row in table.Rows)
                {
                    dealer.DealerAccount = row["DealerAccount"].ToString();
                    dealer.DealerName    = row["DealerName"].ToString();
                }
            }
            if (string.IsNullOrWhiteSpace(dealer.DealerName))
            {
                dealer.DealerName = _dealerName;
                DataTable table = ScoreManage.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable("SELECT * FROM DealerAccede WHERE \"DealerName\"='" + _dealerName + "'");
                foreach (DataRow row in table.Rows)
                {
                    dealer.DealerAccount = row["DealerAccount"].ToString();
                    dealer.DealerId      = row["CrmDealerId"].ToString();
                }
            }

            DataTable data = ScoreManage.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable("SELECT DISTINCT * FROM DealerData WHERE \"CrmDealerId\"='" + dealer.DealerId + "'");

            foreach (DataRow row in data.Rows)
            {
                dealer.DealerKind = row["DealerKind"].ToString();
                dealer.DealerType = row["DealerType"].ToString();
                dealer.DealerId   = row["CrmDealerId"].ToString();
                DealerData tmp = new DealerData()
                {
                    ObjectId       = row["ObjectID"].ToString(),
                    DealerDataType = row["Type"].ToString().ToLower() == "single" ? DealerDataType.Single : DealerDataType.Array,
                    Variable       = row["Name"].ToString(),
                    Values         = row["Value"] == null || row["Value"] == DBNull.Value ? "" : row["Value"]
                };
                if (tmp.DealerDataType == DealerDataType.Array)
                {
                    List <string> values     = new List <string>();
                    DataTable     valueTable = ScoreManage.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable("SELECT * FROM DealerDataArray WHERE \"DealerDataObjectID\"='" + tmp.ObjectId + "'");
                    foreach (DataRow valueItem in valueTable.Rows)
                    {
                        values.Add(valueItem["Value"].ToString());
                    }
                    tmp.Values = values;
                }
                dealer.DataList.Add(tmp);
            }
            data = ScoreManage.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable("SELECT * FROM in_cms.MV_H3_DEALER_OD_INFO_CN WHERE \"经销商名称\"='" + dealer.DealerName + "'");
            foreach (DataRow row in data.Rows)
            {
                foreach (DataColumn column in data.Columns)
                {
                    if (column.ColumnName == "经销商名称")
                    {
                        continue;
                    }
                    dealer.DataList.Add(new DealerData()
                    {
                        ObjectId = Guid.NewGuid().ToString(), DealerDataType = DealerDataType.Single, Variable = column.ColumnName, Values = row[column].ToString()
                    });
                }
            }
            dealers.Add(dealer);
            return(dealers);
        }
Example #2
0
        /// <summary>
        /// 读取经销商信息
        /// </summary>
        /// <param name="dealers">经销商列表</param>
        /// <returns>经销商列表</returns>
        static List <Dealer> LoadDealerInfo(List <Dealer> dealers)
        {
            string    logs  = "";
            DataTable table = ScoreManage.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable("SELECT * FROM DEALERACCEDE WHERE DISABLED = 0");

            foreach (DataRow row in table.Rows)
            {
                if (dealers.FirstOrDefault(x => x.DealerId == row["DealerId"].ToString()) == null)
                {
                    dealers.Add(new Dealer()
                    {
                        DealerId      = row["DealerId"].ToString(),
                        DealerAccount = row["DealerAccount"].ToString(),
                        DealerName    = row["DealerName"].ToString()
                    });
                }
                else
                {
                    logs += "[" + row["DealerId"] + "|" + row["DealerName"] + "],";
                }
            }
            logs += string.Format(@"从数据库中读取到已入网经销商{0}家,读取到结构中{1}家,其中重复项为{2}
", table.Rows.Count, dealers.Count, logs);
            table = ScoreManage.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable("SELECT * FROM DealerData");
            int count = 0;

            foreach (DataRow row in table.Rows)
            {
                var dealer = dealers.FirstOrDefault(x => x.DealerId == row["DealerId"].ToString());
                if (dealer != null)
                {
                    count++;
                    dealer.DealerType = row["DealerType"].ToString();
                    dealer.DealerKind = row["DealerKind"].ToString();
                    DealerData dealerData = new DealerData()
                    {
                        ObjectId       = row["ObjectID"].ToString(),
                        DealerDataType = row["Type"].ToString().ToLower() == "single" ? DealerDataType.Single : DealerDataType.Array,
                        Variable       = row["Name"].ToString(),
                        Values         = row["Value"] == null || row["Value"] == DBNull.Value ? "" : row["Value"],
                    };
                    if (dealerData.DealerDataType == DealerDataType.Array)
                    {
                        List <string> values     = new List <string>();
                        DataTable     valueTable = ScoreManage.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable("SELECT * FROM DealerDataArray WHERE \"DealerDataObjectID\"='" + dealerData.ObjectId + "'");
                        foreach (DataRow valueItem in valueTable.Rows)
                        {
                            values.Add(valueItem["Value"].ToString());
                        }
                        dealerData.Values = values;
                    }
                    dealer.DataList.Add(dealerData);
                }
            }
            var    noDataDealer = dealers.Where(x => x.DataList.Count <= 0);
            string noDataLog    = "";

            foreach (Dealer item in noDataDealer)
            {
                noDataLog += "[" + item.DealerId + "|" + item.DealerName + "],";
            }
            logs += string.Format(@"共有{0}家经销商读取到入网数据数据.有{1}家未读取到数据{{{2}}}
", count, noDataDealer.Count(), noDataLog);

            string      viewLog = "";
            List <View> views   = Config.Settings.GetViews("DataViews", "SelectStr");

            foreach (View view in views)
            {
                viewLog += string.Format(@"读取视图:{0},{1},{2},{3},{4}
", view.ViewName, view.DealerColumn, view.DealerName, view.DealerType, view.DealerKind);
                try
                {
                    Dictionary <string, bool> noDataDic = new Dictionary <string, bool>();
                    foreach (var item in dealers)
                    {
                        noDataDic.Add(item.DealerId, false);
                    }
                    table = ScoreManage.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable("SELECT * FROM " + view.ViewName);
                    if (table.Columns.Contains(view.DealerColumn) && table.Columns.Contains(view.DealerName) && table.Columns.Contains(view.DealerKind) && table.Columns.Contains(view.DealerType))
                    {
                        count = 0;
                        string noFindLog = "";
                        foreach (DataRow row in table.Rows)
                        {
                            try
                            {
                                Dealer dealer = dealers.FirstOrDefault(x => x.DealerId == row[view.DealerColumn].ToString());
                                if (dealer == null)
                                {
                                    count++;
                                    noFindLog += string.Format(@"        未找到经销商{0},新建
", row[view.DealerColumn]);
                                    dealer     = new Dealer()
                                    {
                                        DealerName = row[view.DealerName] + "", DealerAccount = "", DealerKind = row[view.DealerKind] + "", DealerId = row[view.DealerColumn] + "", DealerType = row[view.DealerType] + ""
                                    };
                                    dealers.Add(dealer);
                                }
                                else
                                {
                                    noDataDic[dealer.DealerId] = true;
                                }
                                foreach (DataColumn column in table.Columns)
                                {
                                    if (column.ColumnName == view.DealerColumn || column.ColumnName == view.DealerKind || column.ColumnName == view.DealerName || column.ColumnName == view.DealerType)
                                    {
                                        continue;
                                    }
                                    dealer.DataList.Add(new DealerData()
                                    {
                                        ObjectId = Guid.NewGuid().ToString(), DealerDataType = DealerDataType.Single, Variable = column.ColumnName, Values = row[column] + ""
                                    });
                                }
                            }
                            catch
                            {
                            }
                        }
                        noDataLog = "";
                        var noDataDealerKP = noDataDic.Where(x => x.Value == false);
                        foreach (var item in noDataDealerKP)
                        {
                            var d = dealers.FirstOrDefault(x => x.DealerId == item.Key);
                            noDataLog += "[" + d.DealerId + "|" + d.DealerName + "],";
                        }

                        viewLog += string.Format(@"    视图读取成功能,视图内共有{2}条数据,其中有{1}家匹配到业务数据,有{0}家未匹配到业务数据.
{6}
    有{3}条业务数据未匹配到入网经销商.有{4}条业务数据匹配到入网经销商.
{5}", noDataDealerKP.Count(), dealers.Count - noDataDealerKP.Count(), table.Rows.Count, count, table.Rows.Count - count, noDataLog, noFindLog);
                    }
                    else
                    {
                        viewLog += string.Format(@"    视图字段匹配失败:{0}|{1},{2}|{3},{4}|{5},{6}|{7}
", view.DealerColumn, table.Columns.Contains(view.DealerColumn), view.DealerName, table.Columns.Contains(view.DealerName), view.DealerKind, table.Columns.Contains(view.DealerKind), view.DealerType, table.Columns.Contains(view.DealerType));
                    }
                }
                catch (Exception ex)
                {
                    viewLog += string.Format(@"    视图{0}读取失败:{1}
", view.ViewName, ex.ToString());
                }
            }
            //Log.WriteLog(true, logs + viewLog, 0);
            return(dealers);
        }