using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Controls; using ESRI.ArcGIS.Geodatabase; using KGIS.Framework.Maps; using KGIS.Framework.Utils; using KGIS.Framework.Utils.Helper; using Kingo.PluginServiceInterface; using Kingo.PluginServiceInterface.Model; using KUI.Windows; using System; using System.Collections.Generic; using System.Windows; using System.Windows.Controls; namespace Kingo.Plugin.YJJK.View { /// /// FrmCZCBG.xaml 的交互逻辑 /// public partial class ViewCZC_TQ : UserControl, IWizardFramework { private IFeatureClass _CZCFc = null; private List _ComList { get; set; } public object Parameter { get; set; } private string m_strDescription = "此步骤将会提取城镇村更新层和更新过程层数据"; public string Description { get { return m_strDescription; } set { m_strDescription = value; } } private string m_strCaption = "城镇村数据提取"; public string Caption { get { return m_strCaption; } set { m_strCaption = value; } } private bool m_bIsFinalSuccess = false; public bool IsFinalSuccess { get { return m_bIsFinalSuccess; } set { m_bIsFinalSuccess = value; } } private bool m_IsSkip = false; public bool IsSkip { get { return m_IsSkip; } set { m_IsSkip = value; } } public ViewCZC_TQ() { InitializeComponent(); ProjectInfo prj = MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo; ckbXDM.IsChecked = prj.XZQDMChange; _ComList = new List(); } private EngineEditorClass m_EngineEditor; private void BtnOK_Click(object sender, RoutedEventArgs e) { try { ProjectInfo projectInfo = (MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo); IFeatureClass GXGCFC = MapsManager.Instance.MapService.GetFeatureClassByName("DLTBGXGC"); //地类图斑更新过程 IFeatureClass GXFC = MapsManager.Instance.MapService.GetFeatureClassByName("DLTBGX"); //地类图斑更新层 if (GXGCFC == null || GXFC == null || GXGCFC.FeatureCount(null) == 0 || GXFC.FeatureCount(null) == 0) { MessageHelper.Show("暂无地类图斑增量数据,请先进行地类图斑数据提取!"); return; } IFeatureLayer featureLayer_CZC = MapsManager.Instance.MapService.GetFeatureLayerByLayerName("城镇村等用地"); if (featureLayer_CZC == null) { MessageHelper.Show("未获取到工程下的基础城镇村等用地图层"); return; } _CZCFc = featureLayer_CZC.FeatureClass; if (_CZCFc == null || _CZCFc.FeatureCount(null) == 0) { MessageHelper.Show("未获取到工程下的基础城镇村等用地数据"); return; } if (_CZCFc != null && _CZCFc.FindField("XZQTZLX") == -1) { //添加字段 IFieldEdit _field = new FieldClass(); _field.Name_2 = "XZQTZLX"; _field.AliasName_2 = "行政区调整类型"; _field.Type_2 = esriFieldType.esriFieldTypeString; _field.Length_2 = 50; _CZCFc.AddField(_field as IField); } if (m_EngineEditor == null) { m_EngineEditor = new EngineEditorClass(); } if (m_EngineEditor.EditState != esriEngineEditState.esriEngineStateNotEditing) { MessageHelper.Show("请先关闭编辑。"); return; } if (string.IsNullOrWhiteSpace((MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).CODE)) { MessageHelper.Show("县行政区划代码不能为空,请在工程属性界面中填写6位县区划代码!"); return; } this.ShowLoading("正在进行城镇村范围变更...", 0, 0); //CZCDYDHelper helper = new CZCDYDHelper(); //helper.Implement(_CZCFc, ckbDelMinMJ.IsChecked == true, ckbXDM.IsChecked == true); //this.CloseLoading(); IDGParameter Parm = new IDGParameter(); //Parm.PrjInfo = MapsManager.Instance.CurrProjectInfo as ProjectInfo; ProjectInfo prjInfo = MapsManager.Instance.CurrProjectInfo as ProjectInfo; prjInfo.XZQDMChange = this.ckbXDM.IsChecked == true; Parm.StrProjInfo = System.IO.Path.Combine(prjInfo.ProjDir, prjInfo.ProjName + prjInfo.ProjSuffix); Parm.ExeCZC = true; ProcesHelper.Instance.ProgressHandle = (o) => { this.UpdateMsg(o.ToString()); }; string result = ProcesHelper.Instance.ExeGPForProces(Parm); this.CloseLoading(); if (result.Contains("Err")) { MessageHelper.ShowTips("城镇村范围变更失败,失败信息请查看系统日志!"); } else { MessageHelper.ShowTips("城镇村范围变更完成!"); } } catch (Exception ex) { throw ex; } finally { this.CloseLoading(); } } private void BtnCancel_Click(object sender, RoutedEventArgs e) { } public bool Execute() { try { this.ShowLoading("正在进行城镇村范围变更...", 0, 0); m_bIsFinalSuccess = true; } catch (Exception ex) { LogAPI.Debug("城镇村范围变更异常:" + ex); MessageHelper.ShowError($"城镇村范围变更错误:{ex.Message}"); return m_bIsFinalSuccess; } finally { this.CloseLoading(); } return m_bIsFinalSuccess; } public void Intializing(bool IsSkip = false) { if (IsSkip) { m_IsSkip = IsSkip; (Parameter as IDGParameter).ExeCZC = false; } else { (Parameter as IDGParameter).ExeCZC = true; } } public bool Validating() { try { IFeatureLayer featureLayer_CZC = MapsManager.Instance.MapService.GetFeatureLayerByLayerName("城镇村等用地"); if (featureLayer_CZC == null) { MessageHelper.Show("未获取到工程下的基础城镇村等用地图层"); return false; } _CZCFc = featureLayer_CZC.FeatureClass; if (_CZCFc == null || _CZCFc.FeatureCount(null) == 0) { MessageHelper.Show("未获取到工程下的基础城镇村等用地数据"); return false; } if (_CZCFc != null && _CZCFc.FindField("XZQTZLX") == -1) { //添加字段 IFieldEdit _field = new FieldClass(); _field.Name_2 = "XZQTZLX"; _field.AliasName_2 = "行政区调整类型"; _field.Type_2 = esriFieldType.esriFieldTypeString; _field.Length_2 = 50; _CZCFc.AddField(_field as IField); } if (m_EngineEditor == null) { m_EngineEditor = new EngineEditorClass(); } if (m_EngineEditor.EditState != esriEngineEditState.esriEngineStateNotEditing) { MessageHelper.Show("请先关闭编辑。"); return false; } if (string.IsNullOrWhiteSpace((MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).CODE)) { MessageHelper.Show("县行政区划代码不能为空,请在工程属性界面中填写6位县区划代码!"); return false; } ProjectInfo prj = MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo; prj.LessThan30Missing = LessThan30Missing.IsChecked == true; prj.Save(); } catch (Exception ex) { LogAPI.Debug("城镇村范围变更异常:" + ex); return false; } finally { this.CloseLoading(); } return true; } public void Back() { } } }