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.
259 lines
10 KiB
259 lines
10 KiB
using ESRI.ArcGIS.Controls; |
|
using KGIS.Framework.DBOperator; |
|
using KGIS.Framework.Maps; |
|
using KGIS.Framework.Utils; |
|
using KGIS.Framework.Views; |
|
using Kingo.Plugin.General.Helper; |
|
using Kingo.PluginServiceInterface; |
|
//using KGIS.Framework.Utils.Models; |
|
using Kingo.PluginServiceInterface.Model; |
|
using System; |
|
using System.Collections.Generic; |
|
using System.Data; |
|
using System.Windows; |
|
using System.Windows.Controls; |
|
//using KGIS.Plugin.SH.View; |
|
|
|
namespace Kingo.Plugin.General.View |
|
{ |
|
/// <summary> |
|
/// UCWyspInfo.xaml 的交互逻辑 |
|
/// </summary> |
|
public partial class UCWyspInfo : UserControl, IElementInfo |
|
{ |
|
public IHookHelper hookHelper { get; set; } |
|
private IRDBHelper rdbHelper = null; |
|
private TaskPackage TaskPackage { get; set; } |
|
private UCVideo VideoForm { 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 string Bsm { get; set; } |
|
|
|
List<PhotoInfo> list { get; set; } |
|
|
|
public UCWyspInfo() |
|
{ |
|
InitializeComponent(); |
|
this.Title = "外业视频"; |
|
} |
|
|
|
private void PayVideo_Click(object sender, RoutedEventArgs e) |
|
{ |
|
try |
|
{ |
|
if (VideoForm == null) |
|
{ |
|
VideoForm = new UCVideo(); |
|
} |
|
VideoForm.Title = "视频播放"; |
|
VideoForm.Height = 450; |
|
VideoForm.Width = 800; |
|
VideoForm.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen; |
|
VideoForm.Closed += VideoForm_Closed; |
|
VideoForm.VideoPath = ((Kingo.Plugin.General.View.WyhcfjInfo)((System.Windows.FrameworkElement)sender).DataContext).FjPath; |
|
if (!string.IsNullOrEmpty(VideoForm.VideoPath)) |
|
{ |
|
VideoForm.PlayVideo(); |
|
VideoForm.ShowInMainWindow(false); |
|
} |
|
} |
|
catch (Exception ee) |
|
{ |
|
LogAPI.Debug("PayVideo_Click ERROR:" + ee.ToString()); |
|
} |
|
|
|
} |
|
|
|
private void VideoForm_Closed(object sender, EventArgs e) |
|
{ |
|
if (VideoForm != null) |
|
{ |
|
VideoForm = null; |
|
} |
|
} |
|
|
|
private void cboxVideo_Click(object sender, RoutedEventArgs e) |
|
{ |
|
try |
|
{ |
|
WyhcfjInfo videoObj = (Kingo.Plugin.General.View.WyhcfjInfo)((System.Windows.FrameworkElement)sender).DataContext; |
|
if (TaskPackage == null) |
|
{ |
|
throw new Exception("相关附件获取任务包异常。"); |
|
} |
|
rdbHelper = RDBFactory.CreateDbHelper($"{TaskPackage.PackageTempPath}{(MapsManager.Instance.CurrProjectInfo as ProjectInfo).Pathpassword}", DatabaseType.SQLite); |
|
object obj = rdbHelper.ExecuteScalar($"select bsm from fjgx where wytbbsm = '{videoObj.Tbbsm}' and tbbsm ='{videoObj.Bsm}' and fjarg = '{videoObj.Arg}'", CommandType.Text); |
|
if (((System.Windows.Controls.Primitives.ToggleButton)e.Source).IsChecked == true) |
|
{ |
|
videoObj.Sfxz = 1; |
|
if (obj == null) |
|
{ |
|
rdbHelper.ExecuteNonQuery($"insert into fjgx (wytbbsm,fjarg,tbbsm) values ('{videoObj.Tbbsm}','{videoObj.Arg}','{videoObj.Bsm}')", CommandType.Text); |
|
} |
|
} |
|
else |
|
{ |
|
videoObj.Sfxz = 0; |
|
if (obj != null && !string.IsNullOrEmpty(obj.ToString())) |
|
{ |
|
rdbHelper.ExecuteNonQuery($"delete from fjgx where wytbbsm = '{videoObj.Tbbsm}' and tbbsm ='{videoObj.Bsm}' and fjarg = '{videoObj.Arg}'", CommandType.Text); |
|
} |
|
} |
|
} |
|
catch (Exception ee) |
|
{ |
|
LogAPI.Debug("cboxVideo_Click ERROR :" + ee.ToString()); |
|
throw ee; |
|
} |
|
finally |
|
{ |
|
if (rdbHelper.State == ConnectionState.Open) |
|
{ |
|
rdbHelper.DisConnect(); |
|
} |
|
rdbHelper.Clear(); |
|
rdbHelper = null; |
|
} |
|
} |
|
|
|
public void BindData(object obj) |
|
{ |
|
if (obj == null) |
|
{ |
|
this.dgdVideo.ItemsSource = null; |
|
return; |
|
} |
|
IRDBHelper rdbHelper = null; |
|
try |
|
{ |
|
NYYSInfo nYYSInfo = obj as NYYSInfo; |
|
if (nYYSInfo == null || nYYSInfo.TaskPackages == null) return; |
|
TaskPackage = nYYSInfo.TaskPackages; |
|
string strSql = "select BSM,HCLX,HCJLBSM,DKID,FJMC,FJLX,MODE,SEQUENCE,SUBTYPE,ARG,ARG2,ARG3,ARG4,LENGTH,POINTS_JSON,HCRY,GROUP_INDEX,GROUPCODE,SUBTASKID,CHECK_CODE,UserDelete,0 as IsChecked,CJSJ from wyhcfj where HCJLBSM='{0}' and (UserDelete=0 or UserDelete is null) and mode in (5)"; |
|
rdbHelper = RDBFactory.CreateDbHelper($"{nYYSInfo.TaskPackages.PackageTempPath}{(MapsManager.Instance.CurrProjectInfo as ProjectInfo).Pathpassword}", DatabaseType.SQLite); |
|
DataTable dataTable = rdbHelper.ExecuteDatatable("wyhcfj", string.Format(strSql, nYYSInfo.WYRWTB.TBBSM), true); |
|
if (dataTable != null && dataTable.Rows.Count > 0) |
|
{ |
|
string videoPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(nYYSInfo.TaskPackages.PackageTempPath), "Video"); |
|
if (!System.IO.Directory.Exists(videoPath)) |
|
{ |
|
System.IO.Directory.CreateDirectory(videoPath); |
|
} |
|
DataTable dt = rdbHelper.ExecuteDatatable("fjgx", $"select fjarg from fjgx where WYTBBSM='{nYYSInfo.DTBDLTBGX.TBBSM}' and tbbsm = '{nYYSInfo.DTBDLTBGX.BSM}'", true); |
|
list = JKTBTaskHelper.ToList<PhotoInfo>(dataTable); |
|
foreach (var item in list) |
|
{ |
|
try |
|
{ |
|
item.ImagePath = System.IO.Path.Combine(videoPath, item.FJMC.ToString().Trim()); |
|
if (!System.IO.File.Exists(item.ImagePath)) |
|
{ |
|
item.FJ = item.ARG4; |
|
System.IO.File.WriteAllBytes(item.ImagePath, item.ARG4); |
|
} |
|
if (dt != null && dt.Rows.Count > 0) |
|
{ |
|
foreach (DataRow row in dt.Rows) |
|
{ |
|
if (item.ARG == row["fjarg"].ToString()) |
|
{ |
|
item.SFXZ = 1; |
|
break; |
|
} |
|
else |
|
{ |
|
item.SFXZ = 0; |
|
} |
|
} |
|
} |
|
else |
|
{ |
|
item.SFXZ = 0; |
|
} |
|
} |
|
catch (Exception ex) |
|
{ |
|
LogAPI.Debug(item.FJMC.ToString().Trim() + "视频下载失败:" + ex.Message); |
|
} |
|
} |
|
if (list != null && list.Count > 0) |
|
{ |
|
List<WyhcfjInfo> fjList = new List<WyhcfjInfo>(); |
|
foreach (var item in list) |
|
{ |
|
fjList.Add(new WyhcfjInfo(item.BSM.ToString(), item.BSM.ToString(), item.HCJLBSM, item.FJMC, item.ImagePath, item.ARG, item.HCRY, item.PSSJ, item.SFXZ)); |
|
} |
|
this.dgdVideo.ItemsSource = fjList; |
|
} |
|
else |
|
{ |
|
this.dgdVideo.ItemsSource = null; |
|
} |
|
} |
|
else |
|
{ |
|
this.dgdVideo.ItemsSource = null; |
|
} |
|
} |
|
catch (Exception ee) |
|
{ |
|
LogAPI.Debug("外业视频BindData ERROR:" + ee.Message); |
|
LogAPI.Debug(ee.Source); |
|
} |
|
finally |
|
{ |
|
if (rdbHelper != null && rdbHelper.State == ConnectionState.Open) |
|
{ |
|
rdbHelper.DisConnect(); |
|
} |
|
rdbHelper = null; |
|
} |
|
} |
|
|
|
public void SaveEdit() |
|
{ |
|
|
|
} |
|
} |
|
|
|
public class WyhcfjInfo |
|
{ |
|
public WyhcfjInfo() { } |
|
|
|
public WyhcfjInfo(string id, string bsm, string tbbsm, string fjmc, string fjpath, string arg, string hcry, string hcsj, int isSelected) |
|
{ |
|
this.Id = id; |
|
this.Bsm = bsm; |
|
this.Tbbsm = tbbsm; |
|
this.Fjmc = fjmc; |
|
this.FjPath = fjpath; |
|
this.Arg = arg; |
|
this.Hcry = hcry; |
|
this.Hcsj = hcsj; |
|
this.Sfxz = isSelected; |
|
} |
|
|
|
public string Id { get; set; } |
|
public string Bsm { get; set; } |
|
public string Tbbsm { get; set; } |
|
public string Fjmc { get; set; } |
|
public string Arg { get; set; } |
|
public string FjPath { get; set; } |
|
public string Hcry { get; set; } |
|
public string Hcsj { get; set; } |
|
public int Sfxz { get; set; } |
|
} |
|
|
|
}
|
|
|