You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
296 lines
12 KiB
296 lines
12 KiB
using ESRI.ArcGIS.Geometry; |
|
using KGIS.Framework.AE; |
|
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.Plugin.MapView.Common; |
|
using Kingo.Plugin.MapView.Interface; |
|
using Kingo.PluginServiceInterface; |
|
using System; |
|
using System.Collections.Generic; |
|
using System.ComponentModel; |
|
using System.Data; |
|
using System.Drawing; |
|
using System.IO; |
|
using System.Linq; |
|
using System.Text; |
|
using System.Threading.Tasks; |
|
using System.Windows; |
|
using System.Windows.Controls; |
|
using System.Windows.Data; |
|
using System.Windows.Documents; |
|
using System.Windows.Input; |
|
using System.Windows.Media; |
|
using System.Windows.Media.Imaging; |
|
using System.Windows.Navigation; |
|
using System.Windows.Shapes; |
|
|
|
namespace Kingo.Plugin.MapView.Views.LookPhoto |
|
{ |
|
/// <summary> |
|
/// UCLookPhoto.xaml 的交互逻辑 |
|
/// </summary> |
|
public partial class UCLookPhoto : UserControl, IDockPanel2, INotifyPropertyChanged |
|
{ |
|
public bool showDetail { get; set; } |
|
|
|
private int m_DataIndex { get; set; } |
|
private int m_DataCount { get; set; } |
|
|
|
public Action<bool> RowNext; |
|
|
|
ProjectInfo info = (MapsManager.Instance.CurrProjectInfo as ProjectInfo); |
|
|
|
string hcjgPath = string.Empty; |
|
|
|
string tbybh = string.Empty; |
|
|
|
public UCLookPhoto() |
|
{ |
|
DevExpress.Xpf.Core.ThemeManager.SetTheme(this, DevExpress.Xpf.Core.Theme.Office2013LightGray); |
|
InitializeComponent(); |
|
|
|
this.DockAreas = DockStyle.DockRight; |
|
this.FloatSize = new System.Drawing.Size(520, 800); |
|
this.DefaultArea = DockStyle.DockRight; |
|
this.ShowCloseButton = true; |
|
this.ShowAutoHideButton = false; |
|
this.DockWidth = 520; |
|
this.Title = "举证信息"; |
|
|
|
hcjgPath = info.ProjDir + "//jz_hcjg.sqlite"; |
|
ucImgXZZP.ChangedPointSymbol = ChangedPointSymbol; |
|
} |
|
|
|
private void ChangedPointSymbol(string fjmc) |
|
{ |
|
EnvironmentVariables.Instance.cameraPoint.ChangedPointSymbol(fjmc); |
|
} |
|
|
|
Dictionary<string, string> lstFj = null; |
|
List<string> lstTBYBH = null; |
|
|
|
public void InitData(DataRow drSelect) |
|
{ |
|
try |
|
{ |
|
tbybh = drSelect["JCBH"].ToString(); |
|
|
|
lblJCBH.Content = tbybh; |
|
lblWYBZ.Content = drSelect["BZ"].ToString(); |
|
lblBGDL.Content = drSelect["BGDL"].ToString(); |
|
DataTable dt = SQLiteDBOperate.Instance.ExceDataTable(info.DBPath, string.Format("select TBYBH,FJMC,XZB,YZB,Longitude,Latitude,PSJD,FJLX from FJ where TBYBH='{0}'", tbybh)); |
|
|
|
DataTable dtHCJG = SQLiteDBOperate.Instance.ExceDataTable(hcjgPath, string.Format("select * from JZHCJG where TBYBH='{0}'", tbybh)); |
|
if (dtHCJG != null && dtHCJG.Rows.Count > 0) |
|
{ |
|
txtHCJG.Text = dtHCJG.Rows[0]["HCJG"].ToString(); |
|
} |
|
else |
|
{ |
|
txtHCJG.Text = ""; |
|
} |
|
|
|
DataTable dtCheck = SQLiteDBOperate.Instance.ExceDataTable(hcjgPath, string.Format("select * from JZZP where TBYBH='{0}'", tbybh)); |
|
|
|
if (dt != null && dt.Rows.Count > 0) |
|
{ |
|
List<ImageView.AttachEntity> lstAttach = new List<ImageView.AttachEntity>(); |
|
ImageView.AttachEntity entity = null; |
|
lstFj = new Dictionary<string, string>(); |
|
lstTBYBH = new List<string>(); |
|
foreach (DataRow dr in dt.Rows) |
|
{ |
|
entity = new ImageView.AttachEntity(); |
|
if (lstFj.ContainsKey(dr["FJMC"].ToString())) |
|
{ |
|
continue; |
|
} |
|
|
|
lstFj.Add(dr["FJMC"].ToString(), ""); |
|
|
|
if (dtCheck != null && dtCheck.Rows.Count > 0) |
|
{ |
|
DataRow[] drSet = dtCheck.Select(string.Format(" FJMC='{0}' ", dr["FJMC"].ToString())); |
|
if (drSet != null && drSet.Length > 0) |
|
{ |
|
entity.isCheck = true; |
|
} |
|
} |
|
|
|
if (!lstTBYBH.Contains(dr["TBYBH"].ToString())) |
|
lstTBYBH.Add(dr["TBYBH"].ToString()); |
|
entity.FJMC = dr["FJMC"].ToString(); |
|
entity.AttachLocationPath = info.ProjDir + "\\Picture\\" + dr["FJMC"].ToString(); |
|
double xzb, yzb; |
|
if (double.TryParse(dr["Longitude"].ToString(), out xzb) && double.TryParse(dr["Latitude"].ToString(), out yzb)) |
|
{ |
|
IPoint mapPointC = new PointClass() { X = xzb, Y = yzb }; |
|
if (mapPointC.X != 0) |
|
{ |
|
ISpatialReferenceFactory NewSpatialReference = new SpatialReferenceEnvironmentClass(); |
|
mapPointC.SpatialReference = NewSpatialReference.CreateGeographicCoordinateSystem(4490); |
|
//创建图层 |
|
ISpatialReference spatiaReference = GeoDBAPI.CreteSpatialReference(info.PrjFileStr); |
|
mapPointC.Project(spatiaReference); |
|
entity.X = mapPointC.X; |
|
entity.Y = mapPointC.Y; |
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(NewSpatialReference); |
|
NewSpatialReference = null; |
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(mapPointC); |
|
mapPointC = null; |
|
} |
|
else |
|
{ |
|
continue; |
|
} |
|
} |
|
else |
|
{ |
|
if (dr["XZB"] != DBNull.Value) |
|
{ |
|
entity.X = Convert.ToDouble(dr["XZB"]); |
|
} |
|
if (dr["YZB"] != DBNull.Value) |
|
{ |
|
entity.Y = Convert.ToDouble(dr["YZB"]); |
|
} |
|
} |
|
if (dr["PSJD"] != DBNull.Value) |
|
{ |
|
entity.Angle = Convert.ToDouble(dr["PSJD"]); |
|
} |
|
if (dr["FJLX"].ToString() != "V") |
|
lstAttach.Add(entity); |
|
} |
|
|
|
ExportPic(lstTBYBH, info.DBPath); |
|
|
|
EnvironmentVariables.Instance.cameraPoint.AddCameraPoint((object)lstAttach as List<object>); |
|
|
|
ucImgXZZP.InitData(lstAttach, true, false); |
|
} |
|
} |
|
catch (Exception ex) |
|
{ |
|
LogAPI.Debug("举证信息加载异常:" + ex.Message); |
|
} |
|
|
|
} |
|
|
|
private void ExportPic(List<string> lstPic, string dbPath) |
|
{ |
|
try |
|
{ |
|
if (lstPic.Count > 0) |
|
{ |
|
string picPath = string.Empty; |
|
string picturePath = info.ProjDir + "\\Picture"; |
|
if (!Directory.Exists(picturePath)) |
|
{ |
|
Directory.CreateDirectory(picturePath); |
|
} |
|
foreach (string tbybh in lstPic) |
|
{ |
|
DataTable tmDt = SQLiteDBOperate.Instance.ExceDataTable(dbPath, "select FJ,FJMC from FJ where TBYBH='" + tbybh + "'"); |
|
if (tmDt != null && tmDt.Rows.Count > 0) |
|
{ |
|
foreach (DataRow tmpDr in tmDt.Rows) |
|
{ |
|
if (tmpDr != null && tmpDr["FJ"] != System.DBNull.Value) |
|
{ |
|
picPath = info.ProjDir + "\\Picture\\" + tmpDr["FJMC"].ToString(); |
|
if (!File.Exists(picPath)) |
|
{ |
|
File.WriteAllBytes(info.ProjDir + "\\Picture" + "\\" + tmpDr["FJMC"].ToString(), (tmpDr["FJ"] as byte[])); |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
catch (Exception ex) |
|
{ |
|
LogAPI.Debug("举证照片写入本地异常:" + ex.Message); |
|
} |
|
} |
|
|
|
|
|
private void BtnSave_Click(object sender, RoutedEventArgs e) |
|
{ |
|
SaveData(); |
|
} |
|
|
|
private void BtnPrev_Click(object sender, RoutedEventArgs e) |
|
{ |
|
SaveData(); |
|
if (RowNext != null) |
|
RowNext(false); |
|
} |
|
|
|
private void BtnNext_Click(object sender, RoutedEventArgs e) |
|
{ |
|
SaveData(); |
|
if (RowNext != null) |
|
RowNext(true); |
|
} |
|
|
|
private void SaveData() |
|
{ |
|
if (!File.Exists(hcjgPath)) |
|
{ |
|
string sqlitePath = AppDomain.CurrentDomain.BaseDirectory + "Plugins\\Kingo.Plugin.DataLoad\\Resources\\model.sqlite"; |
|
File.Copy(sqlitePath, hcjgPath); |
|
SQLiteDBOperate.Instance.NoQuerySQLAttach("Create table JZHCJG (TBYBH varchar(50),HCJG varchar(200))", "", hcjgPath); |
|
SQLiteDBOperate.Instance.NoQuerySQLAttach("Create table JZZP (TBYBH varchar(50),FJMC varchar(200))", "", hcjgPath); |
|
} |
|
List<string> lstSql = new List<string>(); |
|
lstSql.Add(string.Format("delete from JZHCJG where TBYBH='{0}';", tbybh)); |
|
lstSql.Add(string.Format("delete from JZZP where TBYBH='{0}';", tbybh)); |
|
lstSql.Add(string.Format("Insert into JZHCJG (TBYBH,HCJG) values ('{0}','{1}');", tbybh, txtHCJG.Text.Trim())); |
|
foreach (ImageView.AttachEntity entity in ucImgXZZP.GetAttachEntityList()) |
|
{ |
|
if (entity.isCheck) |
|
lstSql.Add(string.Format("insert into JZZP (TBYBH,FJMC) values ('{0}','{1}');", tbybh, entity.FJMC)); |
|
} |
|
SQLiteDBOperate.Instance.ExecuteNoQueryList(hcjgPath, lstSql); |
|
} |
|
|
|
|
|
public bool IsShowInMap { 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 event EventHandler CloseViewHandler; |
|
public event PropertyChangedEventHandler PropertyChanged; |
|
|
|
public void ClosePanel() |
|
{ |
|
showDetail = false; |
|
Platform.Instance.CloseView(this); |
|
} |
|
|
|
public void ClosePanelInvoke() |
|
{ |
|
CloseViewHandler?.Invoke(this, null); |
|
} |
|
|
|
public void ShowPanel() |
|
{ |
|
showDetail = true; |
|
Platform.Instance.OpenView(this, false); |
|
} |
|
} |
|
}
|
|
|