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); }
/// <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); }