异常情况兜底不中断信号流程

This commit is contained in:
XingCheng3
2026-05-12 15:55:42 +08:00
parent 2d5f260201
commit 24e1fa423a
3 changed files with 164 additions and 65 deletions

View File

@@ -38,14 +38,13 @@ namespace MesWork.Pages
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "发动机号", HeaderText = "发动机号", DataPropertyName = "发动机号", FillWeight = 100 });
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "机型号", HeaderText = "机型号", DataPropertyName = "机型号", FillWeight = 80 });
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "订单号", HeaderText = "订单号", DataPropertyName = "订单号", FillWeight = 80 });
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "称重类型", HeaderText = "称重类型", DataPropertyName = "称重类型", FillWeight = 70 });
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "托盘号", HeaderText = "托盘号", DataPropertyName = "托盘号", FillWeight = 60 });
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "进站重量", HeaderText = "进站重量(KG)", DataPropertyName = "进站重量", FillWeight = 80 });
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "离站重量", HeaderText = "离站重量(KG)", DataPropertyName = "离站重量", FillWeight = 80 });
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "加油量", HeaderText = "加油量", DataPropertyName = "加油量", FillWeight = 60 });
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "抽油量", HeaderText = "抽油量", DataPropertyName = "抽油量", FillWeight = 60 });
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "放油量", HeaderText = "放油量", DataPropertyName = "放油量", FillWeight = 70 });
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "残留量", HeaderText = "残留量", DataPropertyName = "残留量", FillWeight = 60 });
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "残油量上下限", HeaderText = "残油量上下限", DataPropertyName = "残油量上下限", FillWeight = 90 });
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "油密度", HeaderText = "油密度", DataPropertyName = "油密度", FillWeight = 60 });
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "合格标志", HeaderText = "合格", DataPropertyName = "合格标志", FillWeight = 50 });
dgv_Data.Columns.Add(new DataGridViewTextBoxColumn { Name = "操作员", HeaderText = "操作员", DataPropertyName = "操作员", FillWeight = 60 });
@@ -81,7 +80,11 @@ namespace MesWork.Pages
itemCountParam
};
SqlOperation.ExecuteStoredProcedure("称重记录_分页查询", parms, out DataTable dt, out string err);
if (dt != null) dgv_Data.DataSource = dt;
if (dt != null)
{
AddResidualOilLimitColumn(dt);
dgv_Data.DataSource = dt;
}
_pager.UpdateState(pageCountParam, itemCountParam);
}
catch (Exception ex)
@@ -90,6 +93,53 @@ namespace MesWork.Pages
}
}
/// <summary>
/// 将残油量上下限合并为报表显示列。
/// </summary>
private void AddResidualOilLimitColumn(DataTable dt)
{
if (!dt.Columns.Contains("残油量上下限"))
{
dt.Columns.Add("残油量上下限", typeof(string));
}
if (dt.Columns.Contains("残留量"))
{
dt.Columns["残油量上下限"].SetOrdinal(dt.Columns["残留量"].Ordinal + 1);
}
foreach (DataRow row in dt.Rows)
{
row["残油量上下限"] = $"{FormatLimit(row, "")}~{FormatLimit(row, "")}";
}
}
private string FormatLimit(DataRow row, string columnName)
{
if (!row.Table.Columns.Contains(columnName) || row[columnName] == DBNull.Value)
{
return "";
}
if (decimal.TryParse(row[columnName].ToString(), out decimal value))
{
return value.ToString("0.###");
}
return row[columnName].ToString();
}
private void RemoveHiddenExportColumns(DataTable dt)
{
string[] hiddenColumns = { "称重类型", "托盘号", "残油量上限", "残油量下限" };
foreach (string columnName in hiddenColumns)
{
if (dt.Columns.Contains(columnName))
{
dt.Columns.Remove(columnName);
}
}
}
/// <summary>
/// 导出 Excel重新查询全量数据后导出
/// </summary>
@@ -126,6 +176,8 @@ namespace MesWork.Pages
if (dt != null && dt.Rows.Count > 0)
{
AddResidualOilLimitColumn(dt);
RemoveHiddenExportColumns(dt);
bool exported = NPOITest.ExeclHelper.DataTableToExcel(dt, "称重记录", sfd.FileName);
if (exported)
{