This commit is contained in:
2025-12-06 17:06:17 +08:00
parent 9dd458ae8b
commit 63a768bd80
4 changed files with 164 additions and 78 deletions

View File

@@ -419,7 +419,7 @@
<PackageReference Include="LibVLCSharp.WinForms" Version="3.9.4" /> <PackageReference Include="LibVLCSharp.WinForms" Version="3.9.4" />
<PackageReference Include="NLog" Version="6.0.3" /> <PackageReference Include="NLog" Version="6.0.3" />
<PackageReference Include="NLog.Config" Version="4.7.15" /> <PackageReference Include="NLog.Config" Version="4.7.15" />
<PackageReference Include="ReaLTaiizor" Version="3.8.1.3" /> <PackageReference Include="ReaLTaiizor" Version="3.8.1.4" />
<PackageReference Include="VideoLAN.LibVLC.Windows" Version="3.0.21" /> <PackageReference Include="VideoLAN.LibVLC.Windows" Version="3.0.21" />
<PackageReference Include="RestSharp" Version="110.2.0" /> <PackageReference Include="RestSharp" Version="110.2.0" />
<PackageReference Include="CsvHelper" Version="33.1.0" /> <PackageReference Include="CsvHelper" Version="33.1.0" />

View File

@@ -61,9 +61,9 @@ namespace FATrace.OEMApp
txtRUInBagCode = new TextBox(); txtRUInBagCode = new TextBox();
label5 = new Label(); label5 = new Label();
tabPage2 = new TabPage(); tabPage2 = new TabPage();
btnStopHistoryPlay = new Button();
dataGridView1 = new DataGridView(); dataGridView1 = new DataGridView();
materialCard1 = new ReaLTaiizor.Controls.MaterialCard(); materialCard1 = new ReaLTaiizor.Controls.MaterialCard();
btnStopHistoryPlay = new Button();
label4 = new Label(); label4 = new Label();
txtSearchCode = new TextBox(); txtSearchCode = new TextBox();
btnHistoryVideoSearch = new Button(); btnHistoryVideoSearch = new Button();
@@ -72,13 +72,13 @@ namespace FATrace.OEMApp
label2 = new Label(); label2 = new Label();
label1 = new Label(); label1 = new Label();
PdtHistorySearchStart = new ReaLTaiizor.Controls.PoisonDateTime(); PdtHistorySearchStart = new ReaLTaiizor.Controls.PoisonDateTime();
btnPlayHistoryVideo = new Button();
videoView1 = new LibVLCSharp.WinForms.VideoView(); videoView1 = new LibVLCSharp.WinForms.VideoView();
tabPage3 = new TabPage(); tabPage3 = new TabPage();
metroProgressBar1 = new ReaLTaiizor.Controls.MetroProgressBar(); metroProgressBar1 = new ReaLTaiizor.Controls.MetroProgressBar();
DownloadProgressBar = new ProgressBar(); DownloadProgressBar = new ProgressBar();
btnStopLoadVideo = new Button(); btnStopLoadVideo = new Button();
btnNVRLogin = new Button(); btnNVRLogin = new Button();
imageList2 = new ImageList(components);
statusStrip1.SuspendLayout(); statusStrip1.SuspendLayout();
materialTabControl1.SuspendLayout(); materialTabControl1.SuspendLayout();
tabPage1.SuspendLayout(); tabPage1.SuspendLayout();
@@ -197,10 +197,11 @@ namespace FATrace.OEMApp
// //
// txtCsvSaveState // txtCsvSaveState
// //
txtCsvSaveState.Font = new Font("Microsoft YaHei UI", 10F, FontStyle.Bold);
txtCsvSaveState.Location = new Point(27, 264); txtCsvSaveState.Location = new Point(27, 264);
txtCsvSaveState.Name = "txtCsvSaveState"; txtCsvSaveState.Name = "txtCsvSaveState";
txtCsvSaveState.ReadOnly = true; txtCsvSaveState.ReadOnly = true;
txtCsvSaveState.Size = new Size(493, 32); txtCsvSaveState.Size = new Size(493, 24);
txtCsvSaveState.TabIndex = 15; txtCsvSaveState.TabIndex = 15;
// //
// label12 // label12
@@ -330,6 +331,7 @@ namespace FATrace.OEMApp
// //
txtRURawCode.Location = new Point(154, 177); txtRURawCode.Location = new Point(154, 177);
txtRURawCode.Name = "txtRURawCode"; txtRURawCode.Name = "txtRURawCode";
txtRURawCode.ReadOnly = true;
txtRURawCode.Size = new Size(387, 32); txtRURawCode.Size = new Size(387, 32);
txtRURawCode.TabIndex = 9; txtRURawCode.TabIndex = 9;
// //
@@ -339,12 +341,12 @@ namespace FATrace.OEMApp
gridRULog.AllowUserToDeleteRows = false; gridRULog.AllowUserToDeleteRows = false;
gridRULog.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; gridRULog.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
gridRULog.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; gridRULog.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
gridRULog.Location = new Point(585, 7); gridRULog.Location = new Point(576, 7);
gridRULog.Name = "gridRULog"; gridRULog.Name = "gridRULog";
gridRULog.ReadOnly = true; gridRULog.ReadOnly = true;
gridRULog.RowHeadersVisible = false; gridRULog.RowHeadersVisible = false;
gridRULog.SelectionMode = DataGridViewSelectionMode.FullRowSelect; gridRULog.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
gridRULog.Size = new Size(1281, 338); gridRULog.Size = new Size(1290, 338);
gridRULog.TabIndex = 8; gridRULog.TabIndex = 8;
// //
// btnRawStopLoadVideo // btnRawStopLoadVideo
@@ -381,6 +383,7 @@ namespace FATrace.OEMApp
// //
txtRURawName.Location = new Point(154, 123); txtRURawName.Location = new Point(154, 123);
txtRURawName.Name = "txtRURawName"; txtRURawName.Name = "txtRURawName";
txtRURawName.ReadOnly = true;
txtRURawName.Size = new Size(387, 32); txtRURawName.Size = new Size(387, 32);
txtRURawName.TabIndex = 3; txtRURawName.TabIndex = 3;
// //
@@ -398,6 +401,7 @@ namespace FATrace.OEMApp
// //
txtRUInBagCode.Location = new Point(154, 65); txtRUInBagCode.Location = new Point(154, 65);
txtRUInBagCode.Name = "txtRUInBagCode"; txtRUInBagCode.Name = "txtRUInBagCode";
txtRUInBagCode.ReadOnly = true;
txtRUInBagCode.Size = new Size(387, 32); txtRUInBagCode.Size = new Size(387, 32);
txtRUInBagCode.TabIndex = 1; txtRUInBagCode.TabIndex = 1;
// //
@@ -414,10 +418,8 @@ namespace FATrace.OEMApp
// //
// tabPage2 // tabPage2
// //
tabPage2.Controls.Add(btnStopHistoryPlay);
tabPage2.Controls.Add(dataGridView1); tabPage2.Controls.Add(dataGridView1);
tabPage2.Controls.Add(materialCard1); tabPage2.Controls.Add(materialCard1);
tabPage2.Controls.Add(btnPlayHistoryVideo);
tabPage2.Controls.Add(videoView1); tabPage2.Controls.Add(videoView1);
tabPage2.Font = new Font("Microsoft YaHei UI", 14.25F, FontStyle.Bold, GraphicsUnit.Point, 134); tabPage2.Font = new Font("Microsoft YaHei UI", 14.25F, FontStyle.Bold, GraphicsUnit.Point, 134);
tabPage2.ImageKey = "Load.png"; tabPage2.ImageKey = "Load.png";
@@ -429,27 +431,19 @@ namespace FATrace.OEMApp
tabPage2.Text = "录像历史数据"; tabPage2.Text = "录像历史数据";
tabPage2.UseVisualStyleBackColor = true; tabPage2.UseVisualStyleBackColor = true;
// //
// btnStopHistoryPlay
//
btnStopHistoryPlay.Location = new Point(628, 14);
btnStopHistoryPlay.Name = "btnStopHistoryPlay";
btnStopHistoryPlay.Size = new Size(116, 45);
btnStopHistoryPlay.TabIndex = 12;
btnStopHistoryPlay.Text = "停止播放";
btnStopHistoryPlay.UseVisualStyleBackColor = true;
btnStopHistoryPlay.Click += btnStopHistoryPlay_Click;
//
// dataGridView1 // dataGridView1
// //
dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridView1.Location = new Point(17, 328); dataGridView1.Location = new Point(17, 235);
dataGridView1.Name = "dataGridView1"; dataGridView1.Name = "dataGridView1";
dataGridView1.Size = new Size(483, 584); dataGridView1.ReadOnly = true;
dataGridView1.Size = new Size(835, 677);
dataGridView1.TabIndex = 11; dataGridView1.TabIndex = 11;
// //
// materialCard1 // materialCard1
// //
materialCard1.BackColor = Color.FromArgb(255, 255, 255); materialCard1.BackColor = Color.FromArgb(255, 255, 255);
materialCard1.Controls.Add(btnStopHistoryPlay);
materialCard1.Controls.Add(label4); materialCard1.Controls.Add(label4);
materialCard1.Controls.Add(txtSearchCode); materialCard1.Controls.Add(txtSearchCode);
materialCard1.Controls.Add(btnHistoryVideoSearch); materialCard1.Controls.Add(btnHistoryVideoSearch);
@@ -465,9 +459,20 @@ namespace FATrace.OEMApp
materialCard1.MouseState = ReaLTaiizor.Helper.MaterialDrawHelper.MaterialMouseState.HOVER; materialCard1.MouseState = ReaLTaiizor.Helper.MaterialDrawHelper.MaterialMouseState.HOVER;
materialCard1.Name = "materialCard1"; materialCard1.Name = "materialCard1";
materialCard1.Padding = new Padding(14); materialCard1.Padding = new Padding(14);
materialCard1.Size = new Size(483, 287); materialCard1.Size = new Size(836, 194);
materialCard1.TabIndex = 10; materialCard1.TabIndex = 10;
// //
// btnStopHistoryPlay
//
btnStopHistoryPlay.Location = new Point(642, 132);
btnStopHistoryPlay.Name = "btnStopHistoryPlay";
btnStopHistoryPlay.Size = new Size(116, 45);
btnStopHistoryPlay.TabIndex = 12;
btnStopHistoryPlay.Text = "停止播放";
btnStopHistoryPlay.UseVisualStyleBackColor = true;
btnStopHistoryPlay.Visible = false;
btnStopHistoryPlay.Click += btnStopHistoryPlay_Click;
//
// label4 // label4
// //
label4.AutoSize = true; label4.AutoSize = true;
@@ -488,7 +493,7 @@ namespace FATrace.OEMApp
// btnHistoryVideoSearch // btnHistoryVideoSearch
// //
btnHistoryVideoSearch.ForeColor = Color.DimGray; btnHistoryVideoSearch.ForeColor = Color.DimGray;
btnHistoryVideoSearch.Location = new Point(125, 214); btnHistoryVideoSearch.Location = new Point(295, 121);
btnHistoryVideoSearch.Name = "btnHistoryVideoSearch"; btnHistoryVideoSearch.Name = "btnHistoryVideoSearch";
btnHistoryVideoSearch.Size = new Size(210, 56); btnHistoryVideoSearch.Size = new Size(210, 56);
btnHistoryVideoSearch.TabIndex = 5; btnHistoryVideoSearch.TabIndex = 5;
@@ -500,7 +505,7 @@ namespace FATrace.OEMApp
// //
label3.AutoSize = true; label3.AutoSize = true;
label3.ForeColor = Color.Gray; label3.ForeColor = Color.Gray;
label3.Location = new Point(288, 117); label3.Location = new Point(647, 24);
label3.Name = "label3"; label3.Name = "label3";
label3.Size = new Size(88, 26); label3.Size = new Size(88, 26);
label3.TabIndex = 4; label3.TabIndex = 4;
@@ -509,7 +514,7 @@ namespace FATrace.OEMApp
// PdtHistorySearchEnd // PdtHistorySearchEnd
// //
PdtHistorySearchEnd.FontSize = ReaLTaiizor.Extension.Poison.PoisonDateTimeSize.Medium; PdtHistorySearchEnd.FontSize = ReaLTaiizor.Extension.Poison.PoisonDateTimeSize.Medium;
PdtHistorySearchEnd.Location = new Point(268, 155); PdtHistorySearchEnd.Location = new Point(627, 62);
PdtHistorySearchEnd.MinimumSize = new Size(0, 29); PdtHistorySearchEnd.MinimumSize = new Size(0, 29);
PdtHistorySearchEnd.Name = "PdtHistorySearchEnd"; PdtHistorySearchEnd.Name = "PdtHistorySearchEnd";
PdtHistorySearchEnd.Size = new Size(131, 32); PdtHistorySearchEnd.Size = new Size(131, 32);
@@ -519,7 +524,7 @@ namespace FATrace.OEMApp
// //
label2.AutoSize = true; label2.AutoSize = true;
label2.ForeColor = Color.Gray; label2.ForeColor = Color.Gray;
label2.Location = new Point(75, 116); label2.Location = new Point(501, 24);
label2.Name = "label2"; label2.Name = "label2";
label2.Size = new Size(88, 26); label2.Size = new Size(88, 26);
label2.TabIndex = 2; label2.TabIndex = 2;
@@ -539,29 +544,19 @@ namespace FATrace.OEMApp
// PdtHistorySearchStart // PdtHistorySearchStart
// //
PdtHistorySearchStart.FontSize = ReaLTaiizor.Extension.Poison.PoisonDateTimeSize.Medium; PdtHistorySearchStart.FontSize = ReaLTaiizor.Extension.Poison.PoisonDateTimeSize.Medium;
PdtHistorySearchStart.Location = new Point(55, 154); PdtHistorySearchStart.Location = new Point(481, 62);
PdtHistorySearchStart.MinimumSize = new Size(0, 29); PdtHistorySearchStart.MinimumSize = new Size(0, 29);
PdtHistorySearchStart.Name = "PdtHistorySearchStart"; PdtHistorySearchStart.Name = "PdtHistorySearchStart";
PdtHistorySearchStart.Size = new Size(131, 32); PdtHistorySearchStart.Size = new Size(131, 32);
PdtHistorySearchStart.TabIndex = 0; PdtHistorySearchStart.TabIndex = 0;
// //
// btnPlayHistoryVideo
//
btnPlayHistoryVideo.Location = new Point(506, 14);
btnPlayHistoryVideo.Name = "btnPlayHistoryVideo";
btnPlayHistoryVideo.Size = new Size(116, 45);
btnPlayHistoryVideo.TabIndex = 8;
btnPlayHistoryVideo.Text = "button1";
btnPlayHistoryVideo.UseVisualStyleBackColor = true;
btnPlayHistoryVideo.Click += btnPlayHistoryVideo_Click;
//
// videoView1 // videoView1
// //
videoView1.BackColor = Color.Black; videoView1.BackColor = Color.Black;
videoView1.Location = new Point(506, 65); videoView1.Location = new Point(858, 24);
videoView1.MediaPlayer = null; videoView1.MediaPlayer = null;
videoView1.Name = "videoView1"; videoView1.Name = "videoView1";
videoView1.Size = new Size(1394, 847); videoView1.Size = new Size(1042, 888);
videoView1.TabIndex = 7; videoView1.TabIndex = 7;
videoView1.Text = "videoView1"; videoView1.Text = "videoView1";
// //
@@ -629,6 +624,13 @@ namespace FATrace.OEMApp
btnNVRLogin.UseVisualStyleBackColor = true; btnNVRLogin.UseVisualStyleBackColor = true;
btnNVRLogin.Click += btnNVRLogin_Click; btnNVRLogin.Click += btnNVRLogin_Click;
// //
// imageList2
//
imageList2.ColorDepth = ColorDepth.Depth32Bit;
imageList2.ImageStream = (ImageListStreamer)resources.GetObject("imageList2.ImageStream");
imageList2.TransparentColor = Color.Transparent;
imageList2.Images.SetKeyName(0, "About.png");
//
// MainApp // MainApp
// //
AutoScaleDimensions = new SizeF(8F, 17F); AutoScaleDimensions = new SizeF(8F, 17F);
@@ -681,7 +683,6 @@ namespace FATrace.OEMApp
private ProgressBar DownloadProgressBar; private ProgressBar DownloadProgressBar;
private ReaLTaiizor.Controls.MetroProgressBar metroProgressBar1; private ReaLTaiizor.Controls.MetroProgressBar metroProgressBar1;
private LibVLCSharp.WinForms.VideoView videoView1; private LibVLCSharp.WinForms.VideoView videoView1;
private Button btnPlayHistoryVideo;
private ReaLTaiizor.Controls.MaterialCard materialCard1; private ReaLTaiizor.Controls.MaterialCard materialCard1;
private ReaLTaiizor.Controls.PoisonDateTime PdtHistorySearchStart; private ReaLTaiizor.Controls.PoisonDateTime PdtHistorySearchStart;
private Label label1; private Label label1;
@@ -719,5 +720,6 @@ namespace FATrace.OEMApp
private Label label9; private Label label9;
private Label label12; private Label label12;
private TextBox txtCsvSaveState; private TextBox txtCsvSaveState;
private ImageList imageList2;
} }
} }

View File

@@ -29,14 +29,13 @@ namespace FATrace.OEMApp
// 历史表列头中文映射 // 历史表列头中文映射
private readonly Dictionary<string, string> _historyHeaderMap = new Dictionary<string, string> private readonly Dictionary<string, string> _historyHeaderMap = new Dictionary<string, string>
{ {
{ nameof(VideoAction.Id), "编号" }, { nameof(OEMRawUse.InBagCode), "内袋二维码" },
{ nameof(VideoAction.Code), "条码" }, { nameof(OEMRawUse.RawName), "原料名称" },
{ nameof(VideoAction.User), "用户" }, { nameof(OEMRawUse.RawCode), "原料条码" },
{ nameof(VideoAction.VideoFilePath), "视频路径" }, { nameof(OEMRawUse.VideoFilePath), "视频路径" },
{ nameof(VideoAction.VideoName), "视频名称" }, { nameof(OEMRawUse.VideoName), "视频名称" },
{ nameof(VideoAction.StartTime), "开始时间" }, { nameof(OEMRawUse.User), "用户" },
{ nameof(VideoAction.EndTime), "结束时间" }, { nameof(OEMRawUse.CreateTime), "创建时间" }
{ nameof(VideoAction.CreateTime), "创建时间" }
}; };
private int _lvLogMaxItems = 1000; private int _lvLogMaxItems = 1000;
@@ -101,6 +100,7 @@ namespace FATrace.OEMApp
private PLCDataService PLCDataService { get; set; } private PLCDataService PLCDataService { get; set; }
private TimeClearDataService TimeClearService { get; set; } private TimeClearDataService TimeClearService { get; set; }
private System.Windows.Forms.Timer _statusTimer; private System.Windows.Forms.Timer _statusTimer;
/// <summary> /// <summary>
/// 主窗体加载: /// 主窗体加载:
@@ -175,8 +175,7 @@ namespace FATrace.OEMApp
_ = UpdateNasStatusAsync(); _ = UpdateNasStatusAsync();
_ = UpdateNvrStatusAsync(); _ = UpdateNvrStatusAsync();
StartStatusTimer(); StartStatusTimer();
//materialListView1.DataBindings
try try
{ {
var systemName = Program.SystemName; var systemName = Program.SystemName;
@@ -211,11 +210,18 @@ namespace FATrace.OEMApp
//解析Code条码数据内包条码数据 //解析Code条码数据内包条码数据
CurParsedCodeInfo = NVRCom.ParseCodeFull(Code); CurParsedCodeInfo = NVRCom.ParseCodeFull(Code);
BeginInvoke(new Action(() =>
{
txtRUInBagCode.Text = CurParsedCodeInfo.Code;
txtRURawName.Text= CurParsedCodeInfo.RawName;
txtRURawCode.Text = CurParsedCodeInfo.RawCode;
}));
var taskId = DownloadTaskWorker.Instance.Enqueue( var taskId = DownloadTaskWorker.Instance.Enqueue(
CurParsedCodeInfo, CurParsedCodeInfo,
user: CurUserName, user: CurUserName,
start: DateTime.Now, start: DateTime.Now.AddDays(-2),
end: DateTime.Now.AddSeconds(DownloadTaskWorker.VideoTime+2) end: DateTime.Now.AddDays(-2).AddSeconds(DownloadTaskWorker.VideoTime + 2)
); );
//MessageBox.Show($"[Test] 已入队下载任务Id={taskId}"); //MessageBox.Show($"[Test] 已入队下载任务Id={taskId}");
@@ -412,20 +418,8 @@ namespace FATrace.OEMApp
} }
#endregion #endregion
/// <summary>
/// 测试手动播放
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnPlayHistoryVideo_Click(object sender, EventArgs e)
{
string path = "D:\\Downtest_Channel2025-09-12 102454.mp4";
_mediaPlayer.Play(new Media(_libVLC, path));
}
/// <summary> /// <summary>
/// 停止播放当前的视频文件 /// 停止播放当前的视频文件
/// </summary> /// </summary>
@@ -455,7 +449,7 @@ namespace FATrace.OEMApp
/// 采用 BindingList + BindingSource使数据变化自动触发 UI 刷新 /// 采用 BindingList + BindingSource使数据变化自动触发 UI 刷新
/// </summary> /// </summary>
private BindingSource historyBindingSource { get; set; } private BindingSource historyBindingSource { get; set; }
private BindingList<VideoAction> historyVideoBindingList { get; set; } private BindingList<OEMRawUse> historyVideoBindingList { get; set; }
/// <summary> /// <summary>
@@ -464,7 +458,7 @@ namespace FATrace.OEMApp
private void InitHistoryGridBinding() private void InitHistoryGridBinding()
{ {
historyBindingSource = new BindingSource(); historyBindingSource = new BindingSource();
historyVideoBindingList = new BindingList<VideoAction>(); historyVideoBindingList = new BindingList<OEMRawUse>();
historyBindingSource.DataSource = historyVideoBindingList; historyBindingSource.DataSource = historyVideoBindingList;
// 绑定到 WinForms 原生 DataGridView // 绑定到 WinForms 原生 DataGridView
dataGridView1.AutoGenerateColumns = true; dataGridView1.AutoGenerateColumns = true;
@@ -482,12 +476,20 @@ namespace FATrace.OEMApp
private void btnHistoryVideoSearch_Click(object sender, EventArgs e) private void btnHistoryVideoSearch_Click(object sender, EventArgs e)
{ {
var query = FSqlContext.FDb.Select<VideoAction>(); var query = FSqlContext.FDb.Select<OEMRawUse>();
if (!string.IsNullOrEmpty(txtSearchCode.Text.Trim())) if (!string.IsNullOrEmpty(txtSearchCode.Text.Trim()))
{ {
query = query.Where(a => a.Code!.Contains(txtSearchCode.Text.Trim())); var kw = txtSearchCode.Text.Trim();
query = query.Where(a => (a.InBagCode != null && a.InBagCode.Contains(kw))
|| (a.RawCode != null && a.RawCode.Contains(kw))
|| (a.RawName != null && a.RawName.Contains(kw)));
} }
query.Where(a => a.CreateTime >= PdtHistorySearchStart.Value && a.CreateTime <= PdtHistorySearchEnd.Value); // 日期范围起始日00:00:00到结束日次日00:00:00不含覆盖整天
var startDate = PdtHistorySearchStart.Value.Date;
var endDate = PdtHistorySearchEnd.Value.Date;
if (endDate < startDate) endDate = startDate;
var endExclusive = endDate.AddDays(1);
query = query.Where(a => a.CreateTime >= startDate && a.CreateTime < endExclusive);
// 拉取结果并刷新绑定列表 // 拉取结果并刷新绑定列表
var resultList = query.ToList(); var resultList = query.ToList();
@@ -526,9 +528,9 @@ namespace FATrace.OEMApp
try try
{ {
var row = dataGridView1.Rows[e.RowIndex]; var row = dataGridView1.Rows[e.RowIndex];
if (row?.DataBoundItem is VideoAction va) if (row?.DataBoundItem is OEMRawUse item)
{ {
var path = va.VideoFilePath; var path = item.VideoFilePath;
if (string.IsNullOrWhiteSpace(path)) if (string.IsNullOrWhiteSpace(path))
{ {
MessageBox.Show("该记录没有可播放的视频路径。", "播放提示", MessageBoxButtons.OK, MessageBoxIcon.Information); MessageBox.Show("该记录没有可播放的视频路径。", "播放提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
@@ -557,18 +559,62 @@ namespace FATrace.OEMApp
{ {
if (dataGridView1 == null || dataGridView1.Columns.Count == 0) return; if (dataGridView1 == null || dataGridView1.Columns.Count == 0) return;
var allowedProps = new HashSet<string>
{
nameof(OEMRawUse.InBagCode),
nameof(OEMRawUse.RawName),
nameof(OEMRawUse.RawCode),
nameof(OEMRawUse.VideoFilePath),
nameof(OEMRawUse.VideoName),
nameof(OEMRawUse.User),
nameof(OEMRawUse.CreateTime)
};
foreach (DataGridViewColumn col in dataGridView1.Columns) foreach (DataGridViewColumn col in dataGridView1.Columns)
{ {
var propName = col.DataPropertyName; var propName = col.DataPropertyName;
// 设置列头中文 // 设置列头中文
if (!string.IsNullOrWhiteSpace(propName) && _historyHeaderMap.TryGetValue(propName, out var headerText)) if (!string.IsNullOrWhiteSpace(propName) && _historyHeaderMap.TryGetValue(propName, out var headerText))
{ {
col.HeaderText = headerText; col.HeaderText = headerText;
} }
switch (col.Name)
{
case "InBagCode":
col.Width = 400;
break;
case "RawName":
col.Width = 200;
break;
case "RawCode":
col.Width = 200;
break;
case "VideoFilePath":
col.Width = 490;
break;
case "VideoName":
col.Width = 450;
break;
case "User":
col.Width = 100;
break;
case "CreateTime":
col.Width = 200;
break;
default:
break;
}
// 隐藏 Id 列 // 隐藏 Id 列
if (propName == nameof(VideoAction.Id)) if (propName == nameof(OEMRawUse.Id))
{
col.Visible = false;
continue;
}
// 仅显示指定字段,其他隐藏
if (!allowedProps.Contains(propName))
{ {
col.Visible = false; col.Visible = false;
continue; continue;
@@ -585,7 +631,7 @@ namespace FATrace.OEMApp
//} //}
// 时间列格式化 // 时间列格式化
if (propName is nameof(VideoAction.StartTime) or nameof(VideoAction.EndTime) or nameof(VideoAction.CreateTime)) if (propName is nameof(OEMRawUse.CreateTime))
{ {
col.DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss"; col.DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss";
col.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; col.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
@@ -610,11 +656,13 @@ namespace FATrace.OEMApp
/// <param name="e"></param> /// <param name="e"></param>
private void btnTestAction_Click(object sender, EventArgs e) private void btnTestAction_Click(object sender, EventArgs e)
{ {
if (CurParsedCodeInfo==null) return ;
var taskId = DownloadTaskWorker.Instance.Enqueue( var taskId = DownloadTaskWorker.Instance.Enqueue(
CurParsedCodeInfo, CurParsedCodeInfo,
user: CurUserName, user: CurUserName,
start: DateTime.Now, start: DateTime.Now.AddDays(-2),
end: DateTime.Now.AddSeconds(DownloadTaskWorker.VideoTime) end: DateTime.Now.AddDays(-2).AddSeconds(DownloadTaskWorker.VideoTime)
); );
//MessageBox.Show($"[Test] 已入队下载任务Id={taskId}"); //MessageBox.Show($"[Test] 已入队下载任务Id={taskId}");
} }
@@ -947,7 +995,7 @@ namespace FATrace.OEMApp
} }
else else
{ {
DownloadProgressBarMain.Value = 0; BeginInvoke(new Action(() => DownloadProgressBarMain.Value = 0));
} }
_lastProgressLogged = -1; _lastProgressLogged = -1;
} }
@@ -1044,7 +1092,7 @@ namespace FATrace.OEMApp
else else
{ {
try { BeginInvoke(new Action(() => DownloadFileName.Text = name ?? string.Empty)); } catch { } try { BeginInvoke(new Action(() => DownloadFileName.Text = name ?? string.Empty)); } catch { }
} }
} }
catch { } catch { }

View File

@@ -128,7 +128,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAaCEAAAJNU0Z0AUkBTAIBAQgB SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAaCEAAAJNU0Z0AUkBTAIBAQgB
AAGIAQEBiAEBARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAATADAAEBAQABIAYAATD/ AAG4AQEBuAEBARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAATADAAEBAQABIAYAATD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AFIAAdsBlgESAf8B2wGWARIB/wQAAxIBGANJAYgB AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AFIAAdsBlgESAf8B2wGWARIB/wQAAxIBGANJAYgB
2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wQAAdsB 2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wQAAdsB
lgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8UAAHbAZYB lgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8UAAHbAZYB
@@ -271,6 +271,42 @@
/gHHAfEBwAGDAewBAwHPAfwBxwHxAv8B7wHzAd8B+AHHAfEBwAGDAewBcwHzAfABhwHwAd4BuQHsAXMB /gHHAfEBwAGDAewBAwHPAfwBxwHxAv8B7wHzAd8B+AHHAfEBwAGDAewBcwHzAfABhwHwAd4BuQHsAXMB
4QHgAQMB4AG+Ab0B7wHzAeABwQGAAQABvgG9AeABAwHwAWMB8AEHAZ4BvQHwAQcB+AE/AfABDwHBAYEC 4QHgAQMB4AG+Ab0B7wHzAeABwQGAAQABvgG9AeABAwHwAWMB8AEHAZ4BvQHwAQcB+AE/AfABDwHBAYEC
/wH+AR8B8QHHAuME/wH9Ad8C/ws= /wH+AR8B8QHHAuME/wH9Ad8C/ws=
</value>
</data>
<metadata name="imageList2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>257, 17</value>
</metadata>
<data name="imageList2.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA/gUAAAJNU0Z0AUkBTAMBAQAB
EAEAARABAAEQAQABEAEABP8BIQEACP8BQgFNATYHAAE2AwABKAMAAUADAAEQAwABAQEAASAGAAEQKgAB
2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/5AAB2wGWARIB/wHbAZYBEgH/AdsB
lgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf/YAAHbAZYB
EgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B
2wGWARIB/wHbAZYBEgH/AdsBlgESAf/QAAHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsB
lgESAf8IAAHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/8wAAdsB
lgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wwAAdsBlgESAf8B2wGWARIB/wHbAZYB
EgH/AdsBlgESAf8B2wGWARIB/8gAAdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB
/wHbAZYBEgH/CAAB2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B
2wGWARIB/8QAAdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/CAAB
2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/8QAAdsB
lgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wwAAW0BYAFHAagB2wGWARIB/wHbAZYB
EgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf/EAAHbAZYBEgH/AdsBlgESAf8B2wGWARIB
/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wMGAQgIAAHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYB
EgH/AdsBlgESAf8B2wGWARIB/8QAAdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB
/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsB
lgESAf8B2wGWARIB/wHbAZYBEgH/xAADEgEYAdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B
2wGWARIB/wHbAZYBEgH/BAABggFtAUMBvwHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsB
lgESAf/MAAHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wgAAdsB
lgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/9AAAdsBlgESAf8B2wGWARIB/wHbAZYB
EgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AUsBSAFBAXgB2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B
2wGWARIB/9gAAdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsB
lgESAf8B2wGWARIB/wHbAZYBEgH/4AADEgEYAdsBlgESAf8B2wGWARIB/wHbAZYBEgH/AdsBlgESAf8B
2wGWARIB//8A1QABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGAFwAD/wEAAfwBHwYAAfAB
BwYAAeABAwYAAcEBgQYAAsEGAAGBAYAGAAGBAYAGAAGDAYAGAAGAAcAGAAGABwABgAGBBgABwAHBBgAB
4AEDBgAB8AEHBgAB+AEfBgAC/wYACw==
</value> </value>
</data> </data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />