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;
///
/// 报警类型
///
public enum Log_Type
{
///
/// 报警
///
ZK_Alarm = 1,
///
/// 登录
///
ZK_Login = 2,
///
/// 提示
///
ZK_Tip = 3,
///
/// MES处理信号
///
ZK_MesHandler = 4,
///
/// 配方下载
///
ZK_DownloadRecipes = 5,
///
/// 发动机上线
///
ZK_OnLine = 6,
///
/// 发动机下线
///
ZK_OffLine = 7,
///
/// MES请求接口的日志
///
ZK_Interface_MesReq = 8,
///
/// 1.AGV 请求进入
///
AGV_To_MES_agvCallback = 9,
///
/// 删除
/// 2025.11.25.0024.LLX
///
ZK_Delete = 10,
///
/// 未定义
///
Undefined = 1000
}
public enum Log_FromAndTo
{
///
/// PLC
///
PLC = 3,
///
/// AGV(海康威视)
///
HK_AGV = 4,
///
/// LES(启明)
///
WMS = 5,
///
/// AGV(临工)
///
ZK = 10,
///
/// 未定义
///
Undefined = 1000
}
namespace LogRecord
{
///
/// 日志处理
///
public partial class LogRecord
{
///
/// 构造
///
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;
}
///
/// 钩子
///
///
///
private void LogRecord_Load(object sender, EventArgs e)
{
}
///
///
///
///
///
///
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;
}
///
/// 手动刷新
///
///
///
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)
{
}
}
}
}