using ESRI.ArcGIS.Controls;
using KGIS.Framework.DBOperator;
using KGIS.Framework.Maps;
using KGIS.Framework.Platform;
using KGIS.Framework.Utils;
using KGIS.Framework.Utils.Helper;
using KGIS.Framework.Utils.Interface;
using KGIS.Framework.Views;
using Kingo.PluginServiceInterface;
using Kingo.PluginServiceInterface.Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Windows;
using System.Windows.Controls;
using System.Xml;
using KUI.Windows;
using Kingo.Plugin.General.Helper;
namespace Kingo.Plugin.General.View
{
///
/// UCSHInfo.xaml 的交互逻辑
///
public partial class UCSHInfo : UserControl, IElementInfo
{
///
/// 数据源集合
///
private DataTable Data
{
get;
set;
}
private IHookHelper hookHelper { get; set; }
public NYYSInfo SHData { get; set; }
private TaskPackage CurrentTask { get; set; }
public List ListDdeleteWYSketck { get; set; }
public bool IsShow { get; set; }
public int ShowIndex { get; set; }
public bool ResetSize { get; set; }
public bool AllowEdit { get; set; }
public Guid ID { get; set; }
public DockStyle DockAreas { get; set; }
public System.Drawing.Size FloatSize { get; set; }
public int DockWidth { get; set; }
public int DockHeight { get; set; }
public DockStyle DefaultArea { get; set; }
public bool ShowCloseButton { get; set; }
public bool ShowAutoHideButton { get; set; }
public string Title { get; set; }
public UCSHInfo()
{
InitializeComponent();
this.Title = "审核结果";
List listSF = new List()
{
new KeyValue(){ Code="通过", Name="通过"},
new KeyValue(){ Code="不通过", Name="不通过"}
};
XmlDocument doc = new XmlDocument();
//SysAppPath.GetConfigPath() + SysAppPath.SystemConfigName;
string strPath = SysAppPath.GetCurrentAppPath() + @"工作空间DTBJK\DTBConfigs\LoadCustomConfig.xml";
if (System.IO.File.Exists(strPath))
{
doc.Load(strPath);
this.comBoxDLHCJG.ItemsSource = listSF;
this.comBoxDLHCJG.SelectedIndex = -1;
this.comBoxDLHCSM.ItemsSource = GetListHCSM("DLHCSM", doc);
this.comBoSXHCJG.ItemsSource = listSF;
this.comBoSXHCJG.SelectedIndex = -1;
this.comBoxSXHCSM.ItemsSource = GetListHCSM("SXHCSM", doc);
this.comBoxTXHCJG.ItemsSource = listSF;
this.comBoxTXHCJG.SelectedIndex = -1;
this.comBoxTXHCSM.ItemsSource = GetListHCSM("TXHCSM", doc);
this.comBoxDLHCJG.SelectedIndex = 0;
this.comBoSXHCJG.SelectedIndex = 0;
this.comBoxTXHCJG.SelectedIndex = 0;
}
}
///
/// 获取核查说明
///
/// DLHCSM:地类核查说明 SXHCSM:属性核查说明 TXHCSM:图形核查说明
///
public static List GetListHCSM(string name, XmlDocument doc)
{
List listHCSM = new List();
try
{
XmlNode xmlSysNode = doc.SelectSingleNode($"configuration/CustomConfig/{name}");
if (xmlSysNode.ChildNodes != null && xmlSysNode.ChildNodes.Count > 0)
{
foreach (XmlNode node in xmlSysNode.ChildNodes)
{
if (node.Attributes["Name"] == null)
{
continue;
}
string value = node.Attributes["Name"].Value;
listHCSM.Add(new KeyValue() { Code = value, Name = value });
}
}
return listHCSM;
}
catch (Exception ex)
{
LogAPI.Debug("获取核查说明失败:" + ex.Message);
throw ex;
}
}
private NYYSInfo nYYSInfo = null;
public void BindData(object obj)
{
if (obj is NYYSInfo)
{
hookHelper = new HookHelperClass
{
Hook = MapsManager.Instance.MapService.getAxMapControl().Object
};
nYYSInfo = obj as NYYSInfo;
if (nYYSInfo != null && nYYSInfo.WYRWTB != null && nYYSInfo.TaskPackages != null)
BindData(nYYSInfo.TaskPackages, nYYSInfo.WYRWTB.TBBSM, hookHelper);
}
}
public void SaveEdit()
{
bool ZTIsUploaded = false;
IRDBHelper rdbHelper = null;
try
{
if (nYYSInfo == null) return;
if (nYYSInfo.TaskPackages.State.Equals("已输出"))
{
MessageHelper.ShowTips("当前任务包为“已输出”状态,若要继续编辑,请右键任务包将其改为其他状态!");
return;
}
ProjectInfo projectInfo = MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo;
if (string.IsNullOrWhiteSpace(projectInfo.UserName))
{
MessageHelper.Show("未获取到当前用户信息,请先进行用户信息设置!");
return;
}
if (string.IsNullOrWhiteSpace(this.SHData.SHJG.DLHCJG))
{
MessageHelper.Show("请选择地类核查结果!");
return;
}
if (string.IsNullOrWhiteSpace(this.SHData.SHJG.SXHCJG))
{
MessageHelper.Show("请选择属性核查结果!");
return;
}
if (string.IsNullOrWhiteSpace(this.SHData.SHJG.TXHCJG))
{
MessageHelper.Show("请选择图形核查结果!");
return;
}
if (string.IsNullOrWhiteSpace(this.SHData.SHJG.SHRY))
{
this.SHData.SHJG.SHRY = projectInfo.UserName;
}
txtTBBSM.Focus();
this.ShowLoading("正在保存数据......", 0, 0);
System.Threading.Thread.Sleep(1000);
rdbHelper = RDBFactory.CreateDbHelper($"{nYYSInfo.TaskPackages.PackageTempPath}{(MapsManager.Instance.CurrProjectInfo as ProjectInfo).Pathpassword}", DatabaseType.SQLite);
//已上传状态
ZTIsUploaded = DTBDBLoadHelper.JudgeZTIsUploaded(rdbHelper, nYYSInfo.WYRWTB.TBBSM);
rdbHelper.BeginTransaction();
//审核结果保存
string excuteSQL = "insert into shjg(tbbsm,dlhcjg,dlhcsm,sxhcjg,sxhcsm,txhcjg,txhcsm,shsj,shry,shsm,shjb)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}')";
if (rdbHelper.TableIsExist("shjg"))
rdbHelper.ExecuteNonQueryWithException($"delete from shjg where tbbsm='{nYYSInfo.WYRWTB.TBBSM}'", CommandType.Text);
else
{
string CreatSql = "CREATE TABLE IF NOT EXISTS SHJG (Id INTEGER PRIMARY KEY, TBBSM TEXT,DLHCJG TEXT,DLHCSM TEXT,SXHCJG TEXT,SXHCSM TEXT,TXHCJG TEXT,TXHCSM TEXT,SHSJ TEXT,SHRY TEXT,SHSM TEXT,SHJB TEXT)";
rdbHelper.ExecuteNonQueryWithException(CreatSql);
}
rdbHelper.ExecuteNonQueryWithException(string.Format(excuteSQL, nYYSInfo.WYRWTB.TBBSM, this.SHData.SHJG.DLHCJG, this.SHData.SHJG.DLHCSM, this.SHData.SHJG.SXHCJG, this.SHData.SHJG.SXHCSM, this.SHData.SHJG.TXHCJG, this.SHData.SHJG.TXHCSM, DateTime.Now, projectInfo.UserName, this.SHData.SHJG.JGSM, this.SHData.SHJG.SHJB), CommandType.Text);
if (!ZTIsUploaded)
rdbHelper.ExecuteNonQueryWithException($"update wyrw set ZT='已完成' where tbbsm='{nYYSInfo.WYRWTB.TBBSM}'", CommandType.Text);
rdbHelper.Commit();
rdbHelper.DisConnect();
this.CloseLoading();
Platform.Instance.SendMsg(new NotifyMsgPackage() { Content = "已完成", MsgType = "RefreshTreeNodeState" });
}
catch (Exception ex)
{
if (rdbHelper != null)
{
rdbHelper.Rollback();
}
LogAPI.Debug("审核信息保存异常:" + ex);
this.CloseLoading();
MessageHelper.ShowError("保存失败:" + ex.Message);
}
finally
{
if (rdbHelper != null)
rdbHelper.DisConnect();
}
}
public void BindData(TaskPackage taskPackage, string bsm, IHookHelper hook)
{
IRDBHelper rdbHelper = null;
try
{
this.SHData = new NYYSInfo();
this.SHData.SHJG = new SHJGInfo();
this.SHData.SHBZ = new List();
if (taskPackage == null || string.IsNullOrWhiteSpace(bsm))
{
return;
}
if (ListDdeleteWYSketck == null)
{
ListDdeleteWYSketck = new List();
}
ListDdeleteWYSketck.Clear();
CurrentTask = taskPackage;
rdbHelper = RDBFactory.CreateDbHelper($"{taskPackage.PackageTempPath}{(MapsManager.Instance.CurrProjectInfo as ProjectInfo).Pathpassword}", DatabaseType.SQLite);
this.hookHelper = hook;
//审核结果
string excuteSQL = string.Format("select * from shjg where tbbsm='{0}' order by shsj desc", bsm);
if (!rdbHelper.TableIsExist("shjg"))
{
this.SHData.SHJG.TBBSM = nYYSInfo.WYRWTB.TBBSM;
this.DataContext = this.SHData;
return;
}
DataTable dataTable = rdbHelper.ExecuteDatatable("shjg", excuteSQL, true);
if (dataTable != null && dataTable.Rows.Count > 0)
{
this.SHData.SHJG = KGIS.Framework.Utils.Utility.TBToList.ConvertEntity(dataTable.Rows[0]);
}
else
{
this.SHData.SHJG = new SHJGInfo() { BSM = 1, TBBSM = bsm, SHRY = (KGIS.Framework.Maps.MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).UserName, SHSJ = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), SHJB = "县级" };//DLHCJG = "通过", TXHCJG = "通过", SXHCJG = "通过"
if (SysConfigsOprator.GetAppsetingValueByKey("ArearName").Equals("43"))
{
this.SHData.SHJG.DLHCJG = "通过";
this.SHData.SHJG.SXHCJG = "通过";
this.SHData.SHJG.TXHCJG = "通过";
}
}
Data = null;
this.DataContext = this.SHData;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (rdbHelper != null)
{
rdbHelper.DisConnect();
}
}
}
private void UserControl_SizeChanged(object sender, SizeChangedEventArgs e)
{
try
{
if (this.ActualWidth > 300)
{
txtWBGYY.MaxWidth = (int)this.ActualWidth - 80;
}
}
catch (Exception)
{
}
}
private void ComBoxDLHCJG_SelectedIndexChanged(object sender, RoutedEventArgs e)
{
try
{
KeyValue keyValue = comBoxDLHCJG.SelectedItem as KeyValue;
if (keyValue != null && keyValue.Name.Equals("不通过"))
{
layoutDLHCSM.Visibility = Visibility.Visible;
comBoxDLHCSM.SelectedIndex = 0;
}
else
{
layoutDLHCSM.Visibility = Visibility.Collapsed;
comBoxDLHCSM.SelectedIndex = -1;
if (this.SHData != null)
if (this.SHData.SHJG != null)
this.SHData.SHJG.DLHCSM = "";
}
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
}
private void ComBoxTXHCJG_SelectedIndexChanged(object sender, RoutedEventArgs e)
{
try
{
KeyValue keyValue = comBoxTXHCJG.SelectedItem as KeyValue;
if (keyValue != null && keyValue.Name.Equals("不通过"))
{
layoutTXHCSM.Visibility = Visibility.Visible;
comBoxTXHCSM.SelectedIndex = 0;
}
else
{
layoutTXHCSM.Visibility = Visibility.Collapsed;
comBoxTXHCSM.SelectedIndex = -1;
if (this.SHData != null)
if (this.SHData.SHJG != null)
this.SHData.SHJG.TXHCSM = "";
}
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
}
private void ComBoSXHCJG_SelectedIndexChanged(object sender, RoutedEventArgs e)
{
try
{
KeyValue keyValue = comBoSXHCJG.SelectedItem as KeyValue;
if (keyValue != null && keyValue.Name.Equals("不通过"))
{
layoutSXHCSM.Visibility = Visibility.Visible;
comBoxSXHCSM.SelectedIndex = 0;
}
else
{
layoutSXHCSM.Visibility = Visibility.Collapsed;
comBoxSXHCSM.SelectedIndex = -1;
if (this.SHData != null)
if (this.SHData.SHJG != null)
this.SHData.SHJG.SXHCSM = "";
}
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
}
private void ComBoxSXHCSM_SelectedIndexChanged(object sender, RoutedEventArgs e)
{
try
{
if (this.SHData.SHJG == null)
{
return;
}
if (this.comBoxSXHCSM.SelectedIndex > -1)
{
this.SHData.SHJG.SXHCSM = (this.comBoxSXHCSM.SelectedItem as KeyValue).Name;
}
else
{
this.SHData.SHJG.SXHCSM = string.Empty;
}
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
}
private void ComBoxDLHCSM_SelectedIndexChanged(object sender, RoutedEventArgs e)
{
try
{
if (this.SHData.SHJG == null)
{
return;
}
if (this.comBoxDLHCSM.SelectedIndex > -1)
{
this.SHData.SHJG.DLHCSM = (this.comBoxDLHCSM.SelectedItem as KeyValue).Name;
}
else
{
this.SHData.SHJG.DLHCSM = string.Empty;
}
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
}
private void ComBoxTXHCSM_SelectedIndexChanged(object sender, RoutedEventArgs e)
{
try
{
if (this.SHData.SHJG == null)
{
return;
}
if (this.comBoxTXHCSM.SelectedIndex > -1)
{
this.SHData.SHJG.TXHCSM = (this.comBoxTXHCSM.SelectedItem as KeyValue).Name;
}
else
{
this.SHData.SHJG.TXHCSM = string.Empty;
}
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
}
///
/// 失去焦点时,设置快捷键生效
///
///
///
private void TxtWBGYY_LostFocus(object sender, RoutedEventArgs e)
{
if ((KGIS.Framework.Maps.MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo) != null)
{
(KGIS.Framework.Maps.MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).EnableShortcut = true;
}
}
///
/// 获取焦点时,设置快捷键失效
///
///
///
private void TxtWBGYY_GotFocus(object sender, RoutedEventArgs e)
{
if ((KGIS.Framework.Maps.MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo) != null)
{
(KGIS.Framework.Maps.MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).EnableShortcut = false;
}
}
}
}