Files
WC-CZGKJ/SCADA/manager_log/LogRecord.cs
2026-05-23 13:54:15 +08:00

312 lines
9.9 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using ExternalDataSync;
using MesWork;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
/// <summary>
/// 报警类型
/// </summary>
public enum Log_Type
{
/// <summary>
/// 报警
/// </summary>
ZK_Alarm = 1,
/// <summary>
/// 登录
/// </summary>
ZK_Login = 2,
/// <summary>
/// 提示
/// </summary>
ZK_Tip = 3,
/// <summary>
/// MES处理信号
/// </summary>
ZK_MesHandler = 4,
/// <summary>
/// 配方下载
/// </summary>
ZK_DownloadRecipes = 5,
/// <summary>
/// 发动机上线
/// </summary>
ZK_OnLine = 6,
/// <summary>
/// 发动机下线
/// </summary>
ZK_OffLine = 7,
/// <summary>
/// MES请求接口的日志
/// </summary>
ZK_Interface_MesReq = 8,
/// <summary>
/// 1.AGV 请求进入
/// </summary>
AGV_To_MES_agvCallback = 9,
/// <summary>
/// 删除
/// 2025.11.25.0024.LLX
/// </summary>
ZK_Delete = 10,
/// <summary>
/// 未定义
/// </summary>
Undefined = 1000
}
public enum Log_FromAndTo
{
/// <summary>
/// PLC
/// </summary>
PLC = 3,
/// <summary>
/// AGV海康威视
/// </summary>
HK_AGV = 4,
/// <summary>
/// LES启明
/// </summary>
WMS = 5,
/// <summary>
/// AGV临工
/// </summary>
ZK = 10,
/// <summary>
/// 未定义
/// </summary>
Undefined = 1000
}
namespace LogRecord
{
/// <summary>
/// 日志处理
/// </summary>
public partial class LogRecord
{
/// <summary>
/// 构造
/// </summary>
public LogRecord()
{
InitializeComponent();
//this.Width = _Width;
//this.Height = _Height;
cb_Type.DataSource = Enum.GetNames(typeof(Log_Type));
cb_Type.Text = Log_Type.Undefined.ToString();
cb_From.DataSource = Enum.GetNames(typeof(Log_FromAndTo));
cb_From.Text = Log_FromAndTo.Undefined.ToString();
cb_To.DataSource = Enum.GetNames(typeof(Log_FromAndTo));
cb_To.Text = Log_FromAndTo.Undefined.ToString();
cb_StationName.Items.Add("");
foreach (var stationName in MesWorkForm.opNameList)
{
cb_StationName.Items.Add(stationName);
}
cb_StationName.SelectedIndex = 0;
var end = System.DateTime.Now.AddDays(1);
var start = end.AddDays(-3);
dtp_Start.Value = start;
dtp_End.Value = end;
}
/// <summary>
/// 钩子
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void LogRecord_Load(object sender, EventArgs e)
{
}
/// <summary>
///
/// </summary>
/// <param name="row"></param>
/// <param name="color"></param>
/// <param name="dgv"></param>
private void RowsColor(int row, Color color, DataGridView dgv)
{
var dt = (System.Data.DataTable)dgv.DataSource;
for (int i = 0; i < dt.Columns.Count; i++)
{
dgv.Rows[row].Cells[i].Style.BackColor = color;
}
}
public static bool Insert_ScanLog_EleCraft(Log_Type LogType,string stationName, string Log_Content)
{
bool success = false;
var sql =
$" INSERT INTO [记录_日志_扫码发送电子工艺]([Log_Station],[Log_Type],[Log_Time],[Log_Content])" +
$" VALUES('{stationName}','{LogType.ToString()}',getdate(),'{Log_Content}')";
success = DataLinkMesWork.SQLCommon.ExecuteSql(sql, MesWorkForm.ConnectionString, out string err2);
return success;
}
/// <summary>
/// 手动刷新
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Refresh_Click(object sender, EventArgs e)
{
try
{
var start = dtp_Start.Value;
var end = dtp_End.Value;
var stationName = cb_StationName.Text;
var type = (Log_Type)Enum.Parse(typeof(Log_Type), cb_Type.Text);
var taskID = txt_TaskID.Text;
var from = (Log_FromAndTo)Enum.Parse(typeof(Log_FromAndTo), cb_From.Text);
var to = (Log_FromAndTo)Enum.Parse(typeof(Log_FromAndTo), cb_To.Text);
var req = txt_Req.Text;
var rsp = txt_Rsp.Text;
var whereStr = "";
if (start != null & end != null)
{
whereStr = whereStr + $" AND [请求时间] >= '{start.ToString("G")}' AND [请求时间] < '{end.ToString("yyyy-MM-dd 23:59:59")}'";
}
if (!string.IsNullOrEmpty(stationName) && !string.IsNullOrEmpty(req))
{
whereStr = whereStr + $" AND ([工位号] = '{stationName}' OR [请求内容] like '%{req}%')";
}
else if (!string.IsNullOrEmpty(stationName))
{
whereStr = whereStr + $" AND [工位号] = '{stationName}'";
}
else if (!string.IsNullOrEmpty(req))
{
whereStr = whereStr + $" AND [请求内容] like '%{req}%'";
}
if (type != Log_Type.Undefined)
{
whereStr = whereStr + $" AND [日志类型] = '{type.ToString()}'";
}
if (!string.IsNullOrEmpty(taskID))
{
whereStr = whereStr + $" AND [TaskID] like '%{taskID}%'";
}
if (from != Log_FromAndTo.Undefined)
{
whereStr = whereStr + $" AND [请求FROM] like '%{from}%'";
}
if (to != Log_FromAndTo.Undefined)
{
whereStr = whereStr + $" AND [请求TO] like '%{to}%'";
}
if (!string.IsNullOrEmpty(rsp))
{
whereStr = whereStr + $" AND [响应内容] like '%{rsp}%'";
}
var sql =
$" SELECT " +
$" [工位号] '工位号'" +
$" ,[日志类型] '类型'" +
$" ,[请求时间] '请求时间'" +
$" ,[请求内容] '请求内容'" +
$" ,[响应时间] '响应时间'" +
$" ,[响应内容] '响应内容'" +
$" ,[请求CMD] 'CMD'" +
$" ,[请求FROM] 'FROM'" +
$" ,[请求TO] 'TO'" +
$" ,[TaskID] 'TaskID'" +
$" ,[AID] 'AID'" +
$" FROM [记录_日志_项目运行日志]" +
$" WHERE 1=1 {whereStr}" +
$" ORDER BY [请求时间] DESC";
DataLinkMesWork.SQLCommon.ExecuteDataTable(sql, MesWorkForm.ConnectionString, out DataTable dt, out string err2);
label_Count.Text = $"消息数量:{dt.Rows.Count}";
dgv_Log.DataSource = dt;
for (int i = 0; i < dt.Rows.Count; i++)
{
// Log_Type LogType = Log_Type.Undefined;
var LogTypeStr = "";
try
{
LogTypeStr = dt.Rows[i]["类型"].ToString();
// LogType = (Log_Type)Enum.Parse(typeof(Log_Type), LogTypeStr);
}
catch (Exception err)
{
MessageBox.Show($"填充日志类型,类型转换出错!{err.Message}");
break;
}
switch (LogTypeStr)
{
case "ZK_Alarm":
case "ZK_Delete":
RowsColor(i, MesWorkForm.color_Red, dgv_Log);
break;
case "ZK_Login":
RowsColor(i, MesWorkForm.color_Green, dgv_Log);
break;
case "ZK_Tip":
RowsColor(i, MesWorkForm.color_Yellow, dgv_Log);
break;
default:
RowsColor(i, MesWorkForm.color_Grey, dgv_Log);
break;
}
}
dgv_Log.ClearSelection();
//dgv_Log.CurrentCell = null;
//dgv_Log.Rows[0].Selected = false;
}
catch (Exception err)
{
MessageBox.Show($"点击查询按钮产生的未预知错误:【{err.Message }】------{err.StackTrace}");
}
}
private void dgv_Log_CellClick(object sender, DataGridViewCellEventArgs e)
{
try
{
var AID = dgv_Log.CurrentRow.Cells["AID"].Value.ToString();
var sql = $"SELECT [请求内容安全] FROM [记录_日志_项目运行日志] WHERE [AID] = '{AID}'";
DataLinkMesWork.SQLCommon.ExecuteDataTable(sql, MesWorkForm.ConnectionString, out DataTable dt, out string err2);
var reqStrSafe = dt.Rows[0][0].ToString();
var reqStr = dgv_Log.CurrentRow.Cells["请求内容"].Value.ToString();
txt_RequestContext_3.Text = reqStr;
txt_ResponseContext_3.Text = dgv_Log.CurrentRow.Cells["响应内容"].Value.ToString();
}
catch (Exception err)
{
}
}
}
}