using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Text; using ESRI.ArcGIS.Geodatabase; using Kingo.RuleCheck.XJRuleCheck; namespace Kingo.RuleCheck { /// /// 单图斑建库人工核查 /// public class RGJCCheck : RuleCheckBase_DTB { List ruleMethodNames = new List { "DDTC301","DDTC302","DDTC303","DDTC304","DL301","DL302","DL303","GD301","GD302","GD303","GD304","GD305","SX301","SX302","SX303","JSYD301","JSYD302","JSYD303","QT301","QT302","MS001","JW001","BB001","BB002","QT303","DDTC305","DDTC306","HCD001" }; public override List ExcuteCheck(string sourePath, IWorkspace workspace) { return this.StartCheck(sourePath, workspace, ruleMethodNames); } public override List ExcuteCheck(string sourePath, Dictionary workspace) { return this.StartCheck(sourePath, workspace, ruleMethodNames); } public override List ExcuteCheck(IWorkspace workspace, List layerNames, List dataSetNames) { return this.StartCheck(workspace, ruleMethodNames, layerNames, dataSetNames); } public override List ExcuteCheck(string tbbsm, string sourePath, Dictionary workspace) { return this.StartCheck(tbbsm, sourePath, workspace, ruleMethodNames); } /// /// 漏斗样式筛选,若已存在该错误则不再添加 /// /// private void AddErrors(List rstList) { rstList.ForEach(r => { if (AllRGError.FirstOrDefault(t => t.ErrorId == r.ErrorId && !r.ErrorId.StartsWith("规则检查失败")) == null) AllRGError.Add(r); }); } /// /// 临时用地图斑检查 /// /// /// public List DDTC301() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DDTCBZ='1301'"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "临时用地图斑上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "DDTC301"; rst.RuleName = "临时用地图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorId = "规则检查失败:" + ex.Message, ErrorTip = "临时用地图斑上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "DDTC301", RuleName = "临时用地图斑检查" }; rstList.Add(ruleEntity); } return rstList; } /// /// 光伏板区图斑检查 /// /// /// public List DDTC302() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DDTCBZ='1302'"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "光伏板区图斑上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "DDTC302"; rst.RuleName = "光伏板区图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorId = "规则检查失败:" + ex.Message, ErrorTip = "光伏板区图斑上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "DDTC302", RuleName = "光伏板区图斑检查" }; rstList.Add(ruleEntity); } return rstList; } /// /// 推土区图斑检查 /// /// public List DDTC303() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DDTCBZ='1303'"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "推土区图斑上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "DDTC303"; rst.RuleName = "推土区图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorId = "规则检查失败:" + ex.Message, ErrorTip = "推土区图斑上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "DDTC303", RuleName = "推土区图斑检查", }; rstList.Add(ruleEntity); } return rstList; } /// /// 拆除未尽区图斑检查 /// /// public List DDTC304() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DDTCBZ='1304'"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "拆除未尽区图斑上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "DDTC304"; rst.RuleName = "拆除未尽区图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorId = "规则检查失败:" + ex.Message, ErrorTip = "拆除未尽区图斑上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "DDTC304", RuleName = "拆除未尽区图斑检查", }; rstList.Add(ruleEntity); } return rstList; } /// /// 荒草特征图斑检查 /// /// public List DDTC305() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DDTCBZ in ('1306','1307')"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "荒草特征图斑上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "DDTC305"; rst.RuleName = "荒草特征图斑检查"; rst.RuleContent = "提取图斑“单独图层代码”字段标记为“1306”“1307”的图斑,纳入人工核查。"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorId = "规则检查失败:" + ex.Message, ErrorTip = "荒草特征图斑上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "DDTC305", RuleName = "荒草特征图斑检查", RuleContent = "提取图斑“单独图层代码”字段标记为“1306”“1307”的图斑,纳入人工核查。", }; rstList.Add(ruleEntity); } return rstList; } /// /// 翻土特征图斑检查 /// /// public List DDTC306() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DDTCBZ='1308'"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "翻土特征图斑上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "DDTC306"; rst.RuleName = "翻土特征图斑检查"; rst.RuleContent = "提取图斑“单独图层代码”字段标记为“1308”的图斑,纳入人工核查。"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorId = "规则检查失败:" + ex.Message, ErrorTip = "翻土特征图斑上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "DDTC306", RuleName = "翻土特征图斑检查", RuleContent = "提取图斑“单独图层代码”字段标记为“1308”的图斑,纳入人工核查。", }; rstList.Add(ruleEntity); } return rstList; } /// /// 荒草地图斑检查 /// /// public List HCD001() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DLBM='0404'"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "荒草地图斑上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "HCD001"; rst.RuleName = "荒草地图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorId = "规则检查失败:" + ex.Message, ErrorTip = "荒草地图斑上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "HCD001", RuleName = "荒草地图斑检查", }; rstList.Add(ruleEntity); } return rstList; } /// /// 路面范围图斑检查 /// /// public List DL301() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DDTCBZ='1305'"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "存在路面范围图斑上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "DL301"; rst.RuleName = "路面范围图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorId = "规则检查失败:" + ex.Message, ErrorTip = "存在路面范围图斑上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "DL301", RuleName = "路面范围图斑检查", }; rstList.Add(ruleEntity); } return rstList; } /// /// 一般道路图斑检查 /// /// public List DL302() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and (DDTCBZ NOT IN ('1301','1302','1303','1304','1305') OR DDTCBZ IS NULL) AND DLBM IN ('1001','1002','1003','1004','1004A','1006')"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "公路图斑和铁路图斑上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "DL302"; rst.RuleName = "一般道路图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorId = "规则检查失败:" + ex.Message, ErrorTip = "公路图斑和铁路图斑上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "DL302", RuleName = "一般道路图斑检查", }; rstList.Add(ruleEntity); } return rstList; } public List DL303() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and (DDTCBZ NOT IN ('1301','1302','1303','1304','1305') OR DDTCBZ IS NULL) AND DLBM IN ('1001A','1002A','1003A')"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "道路附属设施图斑上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "DL303"; rst.RuleName = "一般道路图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorId = "规则检查失败:" + ex.Message, ErrorTip = "道路附属设施图斑上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "DL303", RuleName = "一般道路图斑检查" }; rstList.Add(ruleEntity); } return rstList; } /// /// 耕地升级图斑检查 /// /// public List GD301() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX A LEFT JOIN (SELECT BGHTBBSM,SUM(TBBGMJ) AS BGMJ FROM DTBDLTBGXGC WHERE ((BGQDLBM='0102' OR BGQDLBM='0103') AND BGHDLBM='0101') OR (BGQDLBM='0103' AND BGHDLBM='0102') GROUP BY BGHTBBSM ) B ON A.BSM=B.BGHTBBSM WHERE A.TBBSM='{TBBSM}' and ((A.DDTCBZ NOT IN ('1301','1302','1303','1304','1306','1307','1308') OR DDTCBZ IS NULL) OR A.DDTCBZ IS NULL) AND A.ZZSXDM<>'WG' AND A.DLBM IN ({DLParams.gd_dlbms}) AND (B.BGMJ/A.TBMJ>0.3 OR B.BGMJ>2000)"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "发生耕地升级的图斑上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "GD301"; rst.RuleName = "耕地升级图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { ErrorId = "规则检查失败:" + ex.Message, CheckObject = "DTBDLTBGX", ErrorTip = "发生耕地升级的图斑上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "GD301", RuleName = "耕地升级图斑检查", }; rstList.Add(ruleEntity); } return rstList; } /// /// 耕地降级图斑检查 /// /// public List GD302() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX A LEFT JOIN (SELECT BGHTBBSM,SUM(TBBGMJ) AS BGMJ FROM DTBDLTBGXGC WHERE ((BGHDLBM='0102' OR BGHDLBM='0103') AND BGQDLBM='0101') OR (BGQDLBM='0102' AND BGHDLBM='0103') GROUP BY BGHTBBSM ) B ON A.BSM=B.BGHTBBSM WHERE A.TBBSM='{TBBSM}' and ((A.DDTCBZ NOT IN ('1301','1302','1303','1304','1306','1307','1308') OR DDTCBZ IS NULL) OR A.DDTCBZ IS NULL) AND A.ZZSXDM<>'WG' AND A.DLBM IN ({DLParams.gd_dlbms}) AND (B.BGMJ/A.TBMJ>0.3 OR B.BGMJ>2000)"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "发生耕地降低的图斑上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "GD302"; rst.RuleName = "耕地降级图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorId = "规则检查失败:" + ex.Message, ErrorTip = "发生耕地降低的图斑上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "GD302", RuleName = "耕地降级图斑检查", }; rstList.Add(ruleEntity); } return rstList; } /// /// 一般耕地图斑检查 /// /// public List GD303() { List rstList = new List(); try { string sql = $"SELECT * FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DLBM IN ({DLParams.gd_dlbms}) AND ZZSXDM<>'WG' "; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "一般耕地图斑上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "GD303"; rst.RuleName = "一般耕地图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorTip = "一般耕地图斑上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "GD303", RuleName = "一般耕地图斑检查", ErrorId = "规则检查失败:" + ex.Message, }; rstList.Add(ruleEntity); } return rstList; } /// /// 撂荒耕地上图检查 /// /// public List GD304() { List rstList = new List(); return rstList; try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DLBM IN ({DLParams.gd_dlbms}) AND ZZSXDM='WG' AND (DDTCBZ NOT IN ('1301','1302','1303','1304') OR DDTCBZ IS NULL) "; //待实现排除 不满足GD101规则图斑 DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "撂荒耕地上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "GD304"; rst.RuleName = "撂荒耕地上图检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { ErrorId = "规则检查失败:" + ex.Message, CheckObject = "DTBDLTBGX", ErrorTip = "撂荒耕地上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "GD304", RuleName = "撂荒耕地上图检查", }; rstList.Add(ruleEntity); } return rstList; } ///// ///// 荒草地上图检查 ///// ///// //public List GD305() //{ // List rstList = new List(); // try // { // string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and (DDTCBZ NOT IN ('1301','1302','1303','1304') OR DDTCBZ IS NULL) AND DLBM='0404' AND (ZZSXDM IS NULL OR ZZSXDM='') "; // //待实现排除 不满足GD102规则图斑 // DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); // if (dataTable != null) // { // rstList = new List(); // foreach (DataRow item in dataTable.Rows) // { // RuleEntity rst = new RuleEntity(); // rst.CheckObject = "DTBDLTBGX"; // rst.ErrorId = item["BSM"]?.ToString(); // rst.BGFWBSM = item["BSM"]?.ToString(); // rst.ErrorTip = "荒草地地上图情况待核查"; // rst.ErrorType = "三类错误(人工核查)"; // rst.RuleCode = "GD305"; // rst.RuleName = "荒草地上图检查"; // rstList.Add(rst); // } // } // AddErrors(rstList); // } // catch (Exception ex) // { // RuleEntity ruleEntity = new RuleEntity() // { // CheckObject = "DTBDLTBGX", // ErrorTip = "荒草地地上图情况待核查", // ErrorType = "三类错误(人工核查)", // RuleCode = "GD305", // RuleName = "荒草地上图检查", // ErrorId = "规则检查失败:" + ex.Message, // }; // rstList.Add(ruleEntity); // } // return rstList; //} public List SX301() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and (DDTCBZ NOT IN ('1301','1302','1303','1304','1306','1307','1308') OR DDTCBZ IS NULL) AND (DLBM LIKE '02%' OR DLBM in ('0301','0301K','0302','0302K','0305','0307','0307K','0403K','0404A','1104','1104A','1104K')) AND (ZZSXDM='' OR ZZSXDM IS NULL) AND TBXHDM NOT IN ('LQYD')"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "恢复属性为空的【园地/林地/草地/坑塘水面】地类上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "SX301"; rst.RuleName = "涉及标注恢复属性图斑上图检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorTip = "恢复属性为空的【园地/林地/草地/坑塘水面】地类上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "SX301", RuleName = "涉及标注恢复属性图斑上图检查", ErrorId = "规则检查失败:" + ex.Message, }; rstList.Add(ruleEntity); } return rstList; } public List SX302() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and (DDTCBZ NOT IN ('1301','1302','1303','1304','1306','1307','1308') OR DDTCBZ IS NULL) AND (DLBM LIKE '02%' OR DLBM in ('0301','0301K','0302','0302K','0305','0307','0307K','0403K','0404A','1104','1104A','1104K')) AND ZZSXDM='JKHF'"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "恢复属性为即可恢复的【园地/林地/草地/坑塘水面】上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "SX302"; rst.RuleName = "涉及标注恢复属性图斑属性检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { ErrorId = "规则检查失败:" + ex.Message, CheckObject = "DTBDLTBGX", ErrorTip = "恢复属性为即可恢复的【园地/林地/草地/坑塘水面】上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "SX302", RuleName = "涉及标注恢复属性图斑属性检查", }; rstList.Add(ruleEntity); } return rstList; } public List SX303() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and (DDTCBZ NOT IN ('1301','1302','1303','1304','1306','1307','1308') OR DDTCBZ IS NULL) AND (DLBM LIKE '02%' OR DLBM in ('0301','0301K','0302','0302K','0305','0307','0307K','0403K','0404A','1104','1104A','1104K')) AND ZZSXDM='GCHF' "; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "恢复属性为工程恢复的【园地/林地/草地/坑塘水面】上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "SX303"; rst.RuleName = "涉及标注恢复属性图斑属性检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorTip = "恢复属性为工程恢复的【园地/林地/草地/坑塘水面】上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "SX303", RuleName = "涉及标注恢复属性图斑属性检查", ErrorId = "规则检查失败:" + ex.Message, }; rstList.Add(ruleEntity); } return rstList; } /// /// 建设用地图斑上图检查(不包括空闲地) /// /// public List JSYD301() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DLBM IN ({DLParams.jsyd_dlbms}) AND DLBM<>'1201' AND (DDTCBZ NOT IN ('1301','1302','1303','1304','1305') OR DDTCBZ IS NULL) "; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "建设用地地类上图待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "JSYD301"; rst.RuleName = "建设用地图斑上图检查(不包括空闲地)"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { ErrorId = "规则检查失败:" + ex.Message, CheckObject = "DTBDLTBGX", ErrorTip = "建设用地地类上图待核查", ErrorType = "三类错误(人工核查)", RuleCode = "JSYD301", RuleName = "建设用地图斑上图检查(不包括空闲地)", }; rstList.Add(ruleEntity); } return rstList; } /// /// 空闲地图斑上图检查 /// /// public List JSYD302() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DLBM ='1201' AND (DDTCBZ NOT IN ('1301','1302','1303','1304') OR DDTCBZ IS NULL) "; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "空闲地上图待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "JSYD302"; rst.RuleName = "空闲地图斑上图检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { ErrorId = "规则检查失败:" + ex.Message, CheckObject = "DTBDLTBGX", ErrorTip = "空闲地上图待核查", ErrorType = "三类错误(人工核查)", RuleCode = "JSYD302", RuleName = "空闲地图斑上图检查" }; rstList.Add(ruleEntity); } return rstList; } /// /// 设施农用地图斑上图检查 /// /// public List JSYD303() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DLBM ='1202' AND (DDTCBZ NOT IN ('1301','1302','1303','1304') OR DDTCBZ IS NULL) "; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "设施农用地上图待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "JSYD303"; rst.RuleName = "设施农用地图斑上图检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { ErrorId = "规则检查失败:" + ex.Message, CheckObject = "DTBDLTBGX", ErrorTip = "设施农用地上图待核查", ErrorType = "三类错误(人工核查)", RuleCode = "JSYD303", RuleName = "设施农用地图斑上图检查", }; rstList.Add(ruleEntity); } return rstList; } /// /// 农用地变未利用地上图检查 /// /// public List QT301() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX A LEFT JOIN (SELECT BGHTBBSM,SUM(TBBGMJ) AS BGMJ FROM DTBDLTBGXGC WHERE BGQDLBM IN ({DLParams.nyd_dlbms}) AND BGHDLBM IN ({DLParams.wlyd_dlbms}) GROUP BY BGHTBBSM ) B ON A.BSM=B.BGHTBBSM WHERE A.TBBSM='{TBBSM}' and ((A.DDTCBZ NOT IN ('1301','1302','1303','1304') OR DDTCBZ IS NULL) OR A.DDTCBZ IS NULL) AND A.DLBM IN ({DLParams.wlyd_dlbms}) AND (B.BGMJ/A.TBMJ>0.3 OR B.BGMJ>=600)"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "农用地变未利用地上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "QT301"; rst.RuleName = "农用地变未利用地上图检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorTip = "农用地变未利用地上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "QT301", RuleName = "农用地变未利用地上图检查", ErrorId = "规则检查失败:" + ex.Message, }; rstList.Add(ruleEntity); } return rstList; } /// /// 湿地类图斑上图检查 /// /// public List QT302() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and (DDTCBZ NOT IN ('1301','1302','1303','1304') OR DDTCBZ IS NULL) AND DLBM IN ({DLParams.sd_dlbms}) "; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "湿地类图斑上图情况待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "QT302"; rst.RuleName = "湿地类图斑上图检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorTip = "湿地类图斑上图情况待核查", ErrorType = "三类错误(人工核查)", RuleCode = "QT302", RuleName = "湿地类图斑上图检查", ErrorId = "规则检查失败:" + ex.Message, }; rstList.Add(ruleEntity); } return rstList; } /// /// 申请灭失图斑检查 /// /// public List MS001() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DLBM IN ('9903')"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "申请灭失图斑检查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "MS001"; rst.RuleName = "申请灭失图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorTip = "申请灭失图斑检查", ErrorType = "三类错误(人工核查)", RuleCode = "MS001", RuleName = "申请灭失图斑检查", ErrorId = "规则检查失败:" + ex.Message, }; rstList.Add(ruleEntity); } return rstList; } /// /// 界线外图斑检查 /// /// public List JW001() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DLBM IN ('9902')"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "界线外图斑检查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "JW001"; rst.RuleName = "界线外图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorTip = "界线外图斑检查", ErrorType = "三类错误(人工核查)", RuleCode = "JW001", RuleName = "界线外图斑检查", ErrorId = "规则检查失败:" + ex.Message, }; rstList.Add(ruleEntity); } return rstList; } /// /// 相对于基础库不变图斑检查 /// /// public List BB001() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DLBM IN ('9904') and (DDTCBZ = '' or DDTCBZ is null) "; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "相对于基础库不变图斑检查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "BB001"; rst.RuleName = "相对于基础库不变图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorTip = "相对于基础库不变图斑检查", ErrorType = "三类错误(人工核查)", RuleCode = "BB001", RuleName = "相对于基础库不变图斑检查", ErrorId = "规则检查失败:" + ex.Message, }; rstList.Add(ruleEntity); } return rstList; } /// /// 补充材料图斑检查 /// /// public List BB002() { List rstList = new List(); try { string sql = $"SELECT BSM FROM DTBDLTBGX WHERE TBBSM='{TBBSM}' and DLBM IN ('9905')"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "DTBDLTBGX"; rst.ErrorId = item["BSM"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "补充材料图斑检查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "BB002"; rst.RuleName = "补充材料图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "DTBDLTBGX", ErrorTip = "补充材料图斑检查", ErrorType = "三类错误(人工核查)", RuleCode = "BB002", RuleName = "补充材料图斑检查", ErrorId = "规则检查失败:" + ex.Message, }; rstList.Add(ruleEntity); } return rstList; } /// /// 其他类图斑检查 /// /// public List QT303() { List rstList = new List(); try { string whereSql = string.Join("','", AllRGError.Select(x => x.ErrorId).ToArray()); string sql = string.IsNullOrEmpty(whereSql) ? $"SELECT BSM FROM DTBDLTBGX where TBBSM='{TBBSM}'" : $"SELECT BSM FROM DTBDLTBGX where TBBSM='{TBBSM}' and bsm not in ('{whereSql}')"; DataTable dataTable = Kingo.RuleCheck.CheckHelper.SQLiteDBOperate.Instance.ExceDataTable(SourcePath, sql); if (dataTable != null) { rstList = new List(); foreach (DataRow item in dataTable.Rows) { RuleEntity rst = new RuleEntity(); rst.CheckObject = "BGFW"; rst.ErrorId = item["bsm"]?.ToString(); rst.BGFWBSM = item["BSM"]?.ToString(); rst.ErrorTip = "其他类图斑待核查"; rst.ErrorType = "三类错误(人工核查)"; rst.RuleCode = "QT303"; rst.RuleName = "其他类图斑检查"; rstList.Add(rst); } } AddErrors(rstList); } catch (Exception ex) { RuleEntity ruleEntity = new RuleEntity() { CheckObject = "BGFW", ErrorTip = "其他类图斑待核查", ErrorType = "三类错误(人工核查)", RuleCode = "QT303", RuleName = "其他类图斑检查", ErrorId = "规则检查失败:" + ex.Message, }; rstList.Add(ruleEntity); } return rstList; } } }