public void Gain(OleDbConnection connection) { var reader = ADOSQLHelper.ExecuteReader(connection, string.Format("select XZCDM,XZCMC,TBBH,{0} from {1}", string.Join(",", AreaFields), TableName)); if (reader != null) { List = new List <TB>(); while (reader.Read()) { var val = new TB { XZCDM = reader[0].ToString(), XZCMC = reader[1].ToString(), TBBH = reader[2].ToString() }; var sum = .0; for (var i = 3; i < AreaFields.Length + 3; i++) { var a = .0; if (double.TryParse(reader[i].ToString(), out a)) { sum += a; } } val.MJ = sum; List.Add(val); } if (List.Count > 0) { DCDYTBManager.AddTB(TableName, List); } } }
public static void Program(string mdbfilePath, string[] ids) { var _connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", mdbfilePath); using (var connection = new OleDbConnection(_connectionString)) { connection.Open(); Console.WriteLine("开始检查"); #region 检查数据库是否存在要求的表 var tableStructure = new TableStructure(); Console.WriteLine(string.Format("开始检查{0}", tableStructure.Name)); tableStructure.Check(connection); if (tableStructure.Erros.Count == 0) { Console.WriteLine(string.Format("符合{0}", tableStructure.Name.Replace("检查", ""))); } else { QuestionManager.AddRange(tableStructure.Erros.Select(e => new Models.Question { Code = "2101", Name = "矢量图层完整", Project = Models.CheckProject.图层完整性, Description = e }).ToList()); Console.WriteLine("存在如下错误:"); foreach (var error in tableStructure.Erros) { Console.WriteLine(error); } } #endregion if (tableStructure.ExistTables.Contains(DCDYTB)) { DCDYTBManager.Init(connection); } var rule = new RuleManager() { IDS = ids }; rule.Program(connection); #region 检查图斑面积 Console.WriteLine("正在核对图斑面积一致性;"); try { DCDYTBManager.Program(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } Console.WriteLine("完成核对图斑面积一致性;"); #endregion connection.Close(); } }
public void Program() { QuestionManager.Clear(); LogManager.Init(); ParameterManager.Init(Folder); DCDYTBManager.Init(); ExcelParameterManager.Clear(); if (!Init()) { OutputMessage("00", "初始化失败,程序终止", ProgressResultTypeEnum.Fail); return; } OutputMessage("00", "成功初始化", ProgressResultTypeEnum.Pass); foreach (var id in _ruleIds) { var rule = _rules.FirstOrDefault(e => e.ID == id.ToString()); if (rule != null) { var sb = new StringBuilder(rule.RuleName); var result = ProgressResultTypeEnum.Pass; try { rule.Check(); } catch (AggregateException ae) { foreach (var exp in ae.InnerExceptions) { sb.Append(exp.Message + "\r\n"); } result = ProgressResultTypeEnum.Fail; } catch (Exception ex) { result = ProgressResultTypeEnum.Fail; sb.Append(ex.ToString()); } if (result != ProgressResultTypeEnum.Pass) { QuestionManager.Add(new Question { Code = rule.ID, Name = rule.RuleName, Description = sb.ToString() }); } if (OutputMessage(rule.ID, sb.ToString(), result) == true) { break; } } } _reportPath = QuestionManager.Save(ReportPath); //PDFHelper.Save(_reportPath, ReportPDFPath); //PdfHelper2.SavePdf(_reportPath, ReportPDFPath); PdfHelper2.Convert(_reportPath, ReportPDFPath); }
public void Gain(OleDbConnection connection) { var reader = ADOSQLHelper.ExecuteReader(connection, string.Format("select XZCDM,XZCMC,TBBH,{0} from {1}", string.Join(",", AreaFields), TableName)); if (reader != null) { List = new List <TB>(); while (reader.Read()) { var val = new TB { XZCDM = reader[0].ToString(), XZCMC = reader[1].ToString(), TBBH = reader[2].ToString() }; var sum = .0; for (var i = 3; i < AreaFields.Length + 3; i++) { var a = .0; if (double.TryParse(reader[i].ToString(), out a)) { sum += a / Denominator; } } val.MJ = sum; List.Add(val); } if (List.Count == 0) { //var info = string.Format("获取表【{0}】中的图斑面积时,图斑面积数据量为空", TableName); //LogManager.Log(info); //QuestionManager.Add(new Question { Code = "3201", Name = "检验图斑面积", TableName = TableName, Description = info }); } else { DCDYTBManager.AddTB(List); } } }
public void Check() { var tools = new List <GainAreaTool>() { new GainAreaTool { TableName = "CLZJD", AreaFields = new string[] { "JZZDMJ", "FSYDMJ" }, Denominator = 1 }, new GainAreaTool { TableName = "JYXJSYD", AreaFields = new string[] { "JSYDMJ" }, Denominator = 1 }, new GainAreaTool { TableName = "GGGL_GGFWSSYD", AreaFields = new string[] { "JSYDMJ" }, Denominator = 1 }, new GainAreaTool { TableName = "QTCLJSYD", AreaFields = new string[] { "JSYDMJ" }, Denominator = 1 } }; try { Parallel.ForEach(tools, tool => { tool.Gain(ParameterManager.Connection); }); DCDYTBManager.Program();//校验图斑的面积-(宅基地、经营性建设用地、公共管理和公共服务设施和其他存量建设用地)面积和<1平方米 }catch (AggregateException ae) { foreach (var exp in ae.InnerExceptions) { LogManager.LogRecord(exp.ToString()); } }catch (Exception ex) { LogManager.LogRecord(ex.ToString()); } }
public override void Check(OleDbConnection connection) { base.Check(connection); DCDYTBManager.Init(connection);//获取图斑编号、调查单元类型 }
public static void Program(string mdbfilePath, string[] ids) { var _connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", mdbfilePath); var info = string.Empty; using (var connection = new OleDbConnection(_connectionString)) { connection.Open(); LogManager.Log("开始检查"); #region 检查数据库是否存在要求的表 var tableStructure = new TableStructure(); LogManager.Log(string.Format("开始检查{0}", tableStructure.Name)); tableStructure.Check(connection); if (tableStructure.Erros.Count == 0) { info = string.Format("符合{0}", tableStructure.Name.Replace("检查", "")); LogManager.Log(info); } else { QuestionManager.AddRange(tableStructure.Erros.Select(e => new Models.Question { Code = "2101", Name = "矢量图层完整", Project = Models.CheckProject.图层完整性, Description = e }).ToList()); } #endregion if (tableStructure.ExistTables.Contains(DCDYTB)) { //DCDYTBManager.Init(connection); } else { LogManager.Record("不存在或者未找到表DCDYTB,未获取图斑相关信息"); } var rule = new RuleManager() { IDS = ids }; rule.Program(connection); #region 检查图斑面积 LogManager.Log("核对图斑面积"); var tbTools = new List <GainAreaTool>() { new GainAreaTool { TableName = "CLZJD", AreaFields = new string[] { "JZZDMJ", "FSYDMJ" }, Denominator = 10000 }, new GainAreaTool { TableName = "JYXJSYD", AreaFields = new string[] { "JSYDMJ" }, Denominator = 10000 }, new GainAreaTool { TableName = "GGGL_GGFWSSYD", AreaFields = new string[] { "JSYDMJ" }, Denominator = 10000 }, new GainAreaTool { TableName = "QTCLJSYD", AreaFields = new string[] { "JSYDMJ" }, Denominator = 10000 } }; try { Parallel.ForEach(tbTools, tool => { tool.Gain(connection); }); DCDYTBManager.Program(); } catch (AggregateException ae) { foreach (var exp in ae.InnerExceptions) { LogManager.Log(exp.ToString()); } }catch (Exception ex) { LogManager.Log(ex.ToString()); LogManager.Record(ex.ToString()); } Console.WriteLine("完成核对图斑面积一致性;"); #endregion connection.Close(); } }