using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using HslCommunication.LogNet;
using MainForm.ClassFile;
using MainForm.ClassFile.ProjectClass;
using Newtonsoft.Json;
namespace MainForm
{
public delegate void AlarmMessageHandler(LogType logType, string message);
public partial class Form_Alarm : Form
{
#region 变量
//
public event AlarmMessageHandler MessageEvent;
//
public static DataTable dt = new DataTable();
public static DataSet sourceData = null;
///
/// 查询条件
///
private string StartDate = string.Empty;
private string EndDate = string.Empty;
private string DataBaseName = string.Empty;
private string TableName = string.Empty;
private string Item = string.Empty;
private string EquipmentCode = string.Empty;
private string SendStatus = string.Empty;
private string QuerySQL = string.Empty;
// 数据库连接字符串
private string ConnString = string.Empty;
// 页面dv控件样式
bool ViewFirstColumn = false;
int ColumnWidth0 = 120;
int ColumnWidth1 = 120;
int ColumnWidth2 = 120;
int ColumnWidth3 = 120;
int ColumnWidth4 = 120;
int ColumnWidth5 = 120;
//
private Dictionary DicProcess = new Dictionary();
private Dictionary DicCheckOne = new Dictionary();
private Dictionary DicAlarm = new Dictionary();
ILogNet logNet = new LogNetDateTime(GlobalContext.WorkLogDir, GenerateMode.ByEveryDay);
#endregion 变量
public Form_Alarm()
{
InitializeComponent();
dateTimePicker1.Value = DateTime.Now.AddDays(-1);
dateTimePicker2.Value = DateTime.Now;
//增加label到字典
DicProcess.Add("装胶圈", new LabelTextBox { LabelObj = label1, TextBoxObj = total1 });
DicProcess.Add("电性能测试", new LabelTextBox { LabelObj = label2, TextBoxObj = total2 });
DicProcess.Add("导通性测试", new LabelTextBox { LabelObj = label3, TextBoxObj = total3 });
DicProcess.Add("气密测试", new LabelTextBox { LabelObj = label4, TextBoxObj = total4 });
DicProcess.Add("激光标记", new LabelTextBox { LabelObj = label5, TextBoxObj = total5 });
DicProcess.Add("CCD检测", new LabelTextBox { LabelObj = label6, TextBoxObj = total6 });
//DicProcess.Add("", new LabelTextBox { LabelObj = label7, TextBoxObj = total7 });
//DicProcess.Add("装胶圈", new LabelTextBox { LabelObj = label8, TextBoxObj = total8 });
//DicProcess.Add("装绝缘体", new LabelTextBox { LabelObj = label9, TextBoxObj = total9 });
//DicProcess.Add("CCD检测", new LabelTextBox { LabelObj = label10, TextBoxObj = total10 });
//DicProcess.Add("电性能测试", new LabelTextBox { LabelObj = label11, TextBoxObj = total11 });
//DicProcess.Add("激光标记", new LabelTextBox { LabelObj = label12, TextBoxObj = total12 });
//增加label到字典
DicCheckOne.Add("装胶圈", new LabelTextBox { LabelObj = label1, TextBoxObj = total1 });
DicCheckOne.Add("电性能测试", new LabelTextBox { LabelObj = label2, TextBoxObj = total2 });
DicCheckOne.Add("导通性测试", new LabelTextBox { LabelObj = label3, TextBoxObj = total3 });
DicCheckOne.Add("气密测试", new LabelTextBox { LabelObj = label4, TextBoxObj = total4 });
//DicCheckOne.Add("激光标记", new LabelTextBox { LabelObj = label5, TextBoxObj = total5 });
DicCheckOne.Add("CCD检测", new LabelTextBox { LabelObj = label6, TextBoxObj = total6 });
//DicCheckOne.Add("", new LabelTextBox { LabelObj = label7, TextBoxObj = total7 });
//增加label到字典
DicAlarm.Add(GlobalContext.LineCode, new LabelTextBox { LabelObj = label1, TextBoxObj = total1 });
InitDBName();
if (dataBaseName.Items.Count > 0)
{
dataBaseName.SelectedIndex = dataBaseName.Items.Count - 1;
}
dataTableName.SelectedIndex = 0;
equipment.SelectedIndex = 0;
station.SelectedIndex = 0;
comboBoxSendStatus.SelectedIndex = 0;
ResetTotal();
//设置变量的初始值
StartDate = dateTimePicker1.Value.AddDays(0).ToString("yyyy-MM-dd");
EndDate = dateTimePicker2.Value.AddDays(1).ToString("yyyy-MM-dd");
TableName = "ProcessData";
EquipmentCode = equipment.Text;
SendStatus = comboBoxSendStatus.Text;
Item = station.Text;
ResetTotal();
}
private void Form_Alarm_Load(object sender, EventArgs e)
{
}
public void InitDBName()
{
dataBaseName.Items.Clear();
foreach (string dirName in GetDirName())
{
dataBaseName.Items.Add("DB" + dirName);
}
if (dataBaseName.Items.Count > 0)
{
dataBaseName.SelectedIndex = dataBaseName.Items.Count - 1;
UpdateConnString();
}
}
private void UpdateConnString()
{
DataBaseName = dataBaseName.Items[dataBaseName.SelectedIndex].ToString();
ConnString =
@"server= " + GlobalContext.Server +
";database= " + DataBaseName +
";uid=" + GlobalContext.User +
";pwd=" + GlobalContext.PassWord;
}
///
/// 查询按钮
///
private void BeginQuery_Click(object sender, EventArgs e)
{
try
{
ResetTotal();
string ziduan = string.Empty;
DataSet ds = new DataSet();
DataTable dtTemp;
switch (TableName)
{
case "ProcessData":
ProcessData processData = new ProcessData();
processData.Equipment_code = EquipmentCode;
processData.Testitem = Item;
QuerySQL = processData.ToStringQuery(StartDate, EndDate, SendStatus);
ziduan = "测试项目";
ds = SQLHelper.Query(QuerySQL, null, ConnString);
dtTemp = new DataTable();
//新定义一个table
foreach (DataColumn dc in ds.Tables["ds"].Columns)
{
//if (dc.ColumnName != "加工数据")
//{
// DataColumn dataColumn = new DataColumn(dc.ColumnName, dc.DataType);
// dtTemp.Columns.Add(dataColumn);
//}
//else
//{
// DataColumn dataColumn;
// dataColumn = new DataColumn("加工数据", typeof(string));
// dtTemp.Columns.Add(dataColumn);
// dataColumn = new DataColumn("参数名称", typeof(string));
// dtTemp.Columns.Add(dataColumn);
// dataColumn = new DataColumn("参数值", typeof(string));
// dtTemp.Columns.Add(dataColumn);
// dataColumn = new DataColumn("参数单位", typeof(string));
// dtTemp.Columns.Add(dataColumn);
// if (ds.Tables["ds"].Rows.Count > 0)
// {
// var data = ds.Tables["ds"].Rows[0]["加工数据"];
// List dataObj = JsonConvert.DeserializeObject>(data.ToString());
// if (dataObj != null)
// {
// for (int i = 0; i < dataObj.Count; i++)
// {
// dataColumn = new DataColumn(dataObj[i].Parameter_name, typeof(string));
// dtTemp.Columns.Add(dataColumn);
// }
// }
// }
//}
DataColumn dataColumn = new DataColumn(dc.ColumnName, dc.DataType);
dtTemp.Columns.Add(dataColumn);
}
//复制到新的table中
foreach (DataRow dr in ds.Tables["ds"].Rows)
{
List items = new List();
items = JsonConvert.DeserializeObject>(dr["加工数据"].ToString());
if (items == null)
{
DataRow dataRow = dtTemp.NewRow();
dataRow["主键"] = dr["主键"];
dataRow["设备编号"] = dr["设备编号"];
dataRow["测试项目"] = dr["测试项目"];
dataRow["车间订单号"] = dr["车间订单号"];
dataRow["产品型号"] = dr["产品型号"];
dataRow["产品序列号"] = dr["产品序列号"];
dataRow["MES接口数据"] = dr["MES接口数据"];
dataRow["Iot接口数据"] = dr["Iot接口数据"];
dataRow["员工ID"] = dr["员工ID"];
dataRow["测试时间"] = dr["测试时间"];
dataRow["MES上传状态"] = dr["MES上传状态"];
dataRow["Iot上传状态"] = dr["Iot上传状态"];
dataRow["加工数据"] = dr["加工数据"];
//dataRow["参数名称"] = "";
//dataRow["参数值"] = "";
//dataRow["参数单位"] = "";
dtTemp.Rows.Add(dataRow);
}
else
{
DataRow dataRow = dtTemp.NewRow();
dataRow["主键"] = dr["主键"];
dataRow["设备编号"] = dr["设备编号"];
dataRow["车间订单号"] = dr["车间订单号"];
dataRow["批次号"] = dr["批次号"];
dataRow["产品序列号"] = dr["产品序列号"];
dataRow["测试项目"] = dr["测试项目"];
dataRow["员工ID"] = dr["员工ID"];
dataRow["测试时间"] = dr["测试时间"];
dataRow["上传状态"] = dr["上传状态"];
dataRow["加工数据"] = dr["加工数据"];
//dataRow["参数名称"] = t.Parameter_name;
//dataRow["参数值"] = t.Parameter_value;
//dataRow["参数单位"] = t.Parameter_unit;
foreach (var t in items)
{
if (!dtTemp.Columns.Contains(t.Parameter_name))
{
DataColumn dataColumn = new DataColumn(t.Parameter_name, typeof(string));
dtTemp.Columns.Add(dataColumn);
}
dataRow[t.Parameter_name] = t.Parameter_value + " " + t.Parameter_unit;
}
dtTemp.Rows.Add(dataRow);
}
}
dataGridView.DataSource = dtTemp;
dataGridView.Columns[0].Visible = ViewFirstColumn;
dataGridView.Columns[6].Visible = ViewFirstColumn;
break;
case "OneCheckData":
OneCheckData oneCheckData = new OneCheckData();
oneCheckData.Equipment_code = EquipmentCode;
oneCheckData.Procedure_name = Item;
QuerySQL = oneCheckData.ToStringQuery(StartDate, EndDate, SendStatus);
ziduan = "工序名称";
ds = SQLHelper.Query(QuerySQL, null, ConnString);
dtTemp = new DataTable();
//新定义一个table
foreach (DataColumn dc in ds.Tables["ds"].Columns)
{
//if (dc.ColumnName != "点检数据")
//{
// DataColumn dataColumn = new DataColumn(dc.ColumnName, dc.DataType);
// dtTemp.Columns.Add(dataColumn);
//}
//else
//{
// DataColumn dataColumn;
// dataColumn = new DataColumn("点检数据", typeof(string));
// dtTemp.Columns.Add(dataColumn);
// dataColumn = new DataColumn("点检名称", typeof(string));
// dtTemp.Columns.Add(dataColumn);
// dataColumn = new DataColumn("点检内容", typeof(string));
// dtTemp.Columns.Add(dataColumn);
// dataColumn = new DataColumn("点检结果", typeof(string));
// dtTemp.Columns.Add(dataColumn);
//}
DataColumn dataColumn = new DataColumn(dc.ColumnName, dc.DataType);
dtTemp.Columns.Add(dataColumn);
}
//复制到新的table中
foreach (DataRow dr in ds.Tables["ds"].Rows)
{
List items = new List();
items = JsonConvert.DeserializeObject>(dr["点检数据"].ToString());
if (items == null)
{
DataRow dataRow = dtTemp.NewRow();
dataRow["主键"] = dr["主键"];
dataRow["产线编号"] = dr["产线编号"];
dataRow["产线名称"] = dr["产线名称"];
dataRow["设备编号"] = dr["设备编号"];
dataRow["设备名称"] = dr["设备名称"];
dataRow["车间订单号"] = dr["车间订单号"];
dataRow["工序编号"] = dr["工序编号"];
dataRow["工序名称"] = dr["工序名称"];
dataRow["员工ID"] = dr["员工ID"];
dataRow["员工姓名"] = dr["员工姓名"];
dataRow["点检时间"] = dr["点检时间"];
dataRow["上传状态"] = dr["上传状态"];
dataRow["点检数据"] = dr["点检数据"];
//dataRow["点检名称"] = "";
//dataRow["点检内容"] = "";
//dataRow["点检结果"] = "";
dtTemp.Rows.Add(dataRow);
}
else
{
DataRow dataRow = dtTemp.NewRow();
dataRow["主键"] = dr["主键"];
dataRow["产线编号"] = dr["产线编号"];
dataRow["产线名称"] = dr["产线名称"];
dataRow["设备编号"] = dr["设备编号"];
dataRow["设备名称"] = dr["设备名称"];
dataRow["车间订单号"] = dr["车间订单号"];
dataRow["工序编号"] = dr["工序编号"];
dataRow["工序名称"] = dr["工序名称"];
dataRow["员工ID"] = dr["员工ID"];
dataRow["员工姓名"] = dr["员工姓名"];
dataRow["点检时间"] = dr["点检时间"];
dataRow["上传状态"] = dr["上传状态"];
dataRow["点检数据"] = dr["点检数据"];
//dataRow["点检名称"] = t.Onecheck_name;
//dataRow["点检内容"] = t.Onecheck_content;
//dataRow["点检结果"] = t.Onecheck_result;
foreach (var t in items)
{
if (!dtTemp.Columns.Contains(t.Onecheck_name))
{
DataColumn dataColumn = new DataColumn(t.Onecheck_name, typeof(string));
dtTemp.Columns.Add(dataColumn);
}
dataRow[t.Onecheck_name] = t.Onecheck_result;
}
dtTemp.Rows.Add(dataRow);
}
}
dataGridView.DataSource = dtTemp;
dataGridView.Columns[0].Visible = ViewFirstColumn;
dataGridView.Columns[8].Visible = ViewFirstColumn;
break;
//case "WorkingData":
WorkingData workingData = new WorkingData();
workingData.Equipment_code = EquipmentCode;
QuerySQL = workingData.ToStringQuery(StartDate, EndDate);
ziduan = "设备编号";
ds = SQLHelper.Query(QuerySQL, null, ConnString);
dataGridView.DataSource = ds.Tables["ds"];
dataGridView.Columns[0].Visible = ViewFirstColumn;
break;
case "LineWorkingData":
LineWorkingData_ThisTime lineWorkingData = new LineWorkingData_ThisTime();
lineWorkingData.LineName = GlobalContext.LineCode;
QuerySQL = lineWorkingData.ToStringQuery(StartDate, EndDate);
ziduan = "线体名称";
ds = SQLHelper.Query(QuerySQL, null, ConnString);
dataGridView.DataSource = ds.Tables["ds"];
dataGridView.Columns[0].Visible = ViewFirstColumn;
break;
case "AlarmData":
AlarmData alarmData = new AlarmData();
//alarmData.LineName = GlobalContext.LineCode;
QuerySQL = alarmData.ToStringQuery(StartDate, EndDate);
ziduan = "报警类型";
ds = SQLHelper.Query(QuerySQL, null, ConnString);
dataGridView.DataSource = ds.Tables["ds"];
dataGridView.Columns[0].Visible = ViewFirstColumn;
break;
default:
break;
}
dataGridView.Columns[0].Width = ColumnWidth0;
dataGridView.Columns[1].Width = ColumnWidth1;
dataGridView.Columns[2].Width = ColumnWidth2;
dataGridView.Columns[3].Width = ColumnWidth3;
dataGridView.Columns[4].Width = ColumnWidth4;
dataGridView.Columns[5].Width = ColumnWidth5;
//统计
var queryResults =
from p in ds.Tables[0].AsEnumerable()
orderby p.Field(ziduan) descending
group p by p.Field(ziduan) into g
select new
{
Item = g.Key,
Total = g.Count()
};
var temp = queryResults.ToList();
//如果是单机和整线就不显示统计
switch (TableName)
{
case "ProcessData":
foreach (var t in DicProcess)
{
t.Value.LabelObj.Visible = true;
t.Value.LabelObj.Text = t.Key;
t.Value.TextBoxObj.Visible = true;
foreach (var item in temp)
{
string eCode = item.Item.Trim();
string total = item.Total.ToString();
if (eCode == t.Key)
{
t.Value.TextBoxObj.Text = total;
}
}
}
break;
case "OneCheckData":
foreach (var t in DicCheckOne)
{
t.Value.LabelObj.Visible = true;
t.Value.LabelObj.Text = t.Key;
t.Value.TextBoxObj.Visible = true;
foreach (var item in temp)
{
string eCode = item.Item.Trim();
string total = item.Total.ToString();
if (eCode == t.Key)
{
t.Value.TextBoxObj.Text = total;
}
}
}
break;
case "WorkingData":
ResetTotal();
break;
case "LineWorkingData":
ResetTotal();
break;
case "AlarmData":
foreach (var t in DicAlarm)
{
t.Value.LabelObj.Visible = true;
t.Value.LabelObj.Text = t.Key;
t.Value.TextBoxObj.Visible = true;
foreach (var item in temp)
{
string eCode = item.Item.Trim();
string total = item.Total.ToString();
if (eCode == t.Key)
{
t.Value.TextBoxObj.Text = total;
}
}
}
break;
default:
break;
}
}
catch (Exception ex)
{
string str = ex.StackTrace;
logNet.WriteError("软件发生致命异常!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message);
MessageBox.Show(ex.Message.ToString());
}
}
///
/// 获取字典名称
///
///
public List GetDirName()
{
List dirNames = new List();
try
{
DirectoryInfo mainDir = new DirectoryInfo(SQLHelper.DBDir);
DirectoryInfo[] dirs = mainDir.GetDirectories();
foreach (var dir in dirs)
{
dirNames.Add(dir.Name);
}
}
catch (Exception ex)
{
string str = ex.StackTrace;
logNet.WriteError("软件发生致命异常!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message);
MessageBox.Show(ex.Message.ToString());
}
return dirNames;
}
///
/// 统计初始化
///
private void ResetTotal()
{
total1.Text = "0";
total2.Text = "0";
total3.Text = "0";
total4.Text = "0";
total5.Text = "0";
total6.Text = "0";
total7.Text = "0";
total8.Text = "0";
total9.Text = "0";
total10.Text = "0";
total11.Text = "0";
total12.Text = "0";
total13.Text = "0";
total14.Text = "0";
total15.Text = "0";
total16.Text = "0";
total1.Visible = false;
total2.Visible = false;
total3.Visible = false;
total4.Visible = false;
total5.Visible = false;
total6.Visible = false;
total7.Visible = false;
total8.Visible = false;
total9.Visible = false;
total10.Visible = false;
total11.Visible = false;
total12.Visible = false;
total13.Visible = false;
total14.Visible = false;
total15.Visible = false;
total16.Visible = false;
label1.Visible = false;
label2.Visible = false;
label3.Visible = false;
label4.Visible = false;
label5.Visible = false;
label6.Visible = false;
label7.Visible = false;
label8.Visible = false;
label9.Visible = false;
label10.Visible = false;
label11.Visible = false;
label12.Visible = false;
label13.Visible = false;
label14.Visible = false;
label15.Visible = false;
label16.Visible = false;
}
///
/// 编辑数据
///
private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
textBox1.Text = dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
}
}
///
/// 手动上传MES
///
private void buttonSendMES_Click(object sender, EventArgs e)
{
Task.Run(SendProcess);
}
private void SendProcess()
{
try
{
List updatedIds = new List(); // 记录本次已上传的Id,防止重复上传
foreach (DataGridViewRow dataGridViewRow in dataGridView.Rows)
{
int upload = 0;
string id = dataGridViewRow.Cells[0].Value.ToString().Trim();
if (!updatedIds.Contains(id))
{
string jsonstr;
int ret;
switch (TableName)
{
case "ProcessData":
var processData = new[]
{
new{
Equipment_code = dataGridViewRow.Cells[1].Value.ToString().Trim(),
Workorder_code = dataGridViewRow.Cells[2].Value.ToString().Trim(),
//Batch_number = dataGridViewRow.Cells[3].Value.ToString().Trim(),
Sn = dataGridViewRow.Cells[4].Value.ToString().Trim(),
Testitem = dataGridViewRow.Cells[5].Value.ToString().Trim(),
Write_user = dataGridViewRow.Cells[6].Value.ToString().Trim(),
Test_time = dataGridViewRow.Cells[7].Value.ToString().Trim(),
Parameter_values = JsonConvert.DeserializeObject(dataGridViewRow.Cells[9].Value.ToString().Trim()),
}
};
//上传mes
jsonstr = JsonConvert.SerializeObject(processData);
if (GlobalContext.IsSendProcessData)
{
string url = @"HTTP://" + GlobalContext.ServerHost + @"/api/ProductionLine/ProcessData";
string mesRet = HttpUitls.SubmitDataToMES(url, jsonstr);
// HttpUitls.Post(url, jsonstr);
upload = mesRet == "成功" ? 1 : 0;
AddMessage(LogType.Info, "[" + dataGridViewRow.Cells[1]?.Value?.ToString() + "]上传加工数据到MES服务器---" + mesRet);
}
//本地数据
ret = SQLHelper.ExecuteSQL(ProcessData.ToStringUpdateStatusByID(upload,0, id), null, ConnString);
if (upload == 1)
updatedIds.Add(id);
break;
case "OneCheckData":
var oneCheckData = new
{
Line_code = dataGridViewRow.Cells[1].Value.ToString().Trim(),
Line_name = dataGridViewRow.Cells[2].Value.ToString().Trim(),
Equipment_code = dataGridViewRow.Cells[3].Value.ToString().Trim(),
Equipment_name = dataGridViewRow.Cells[4].Value.ToString().Trim(),
Workorder_code = dataGridViewRow.Cells[5].Value.ToString().Trim(),
Procedure_code = dataGridViewRow.Cells[6].Value.ToString().Trim(),
Procedure_name = dataGridViewRow.Cells[7].Value.ToString().Trim(),
Onecheck_empcode = dataGridViewRow.Cells[8].Value.ToString().Trim(),
Onecheck_empname = dataGridViewRow.Cells[9].Value.ToString().Trim(),
Onecheck_time = dataGridViewRow.Cells[10].Value.ToString().Trim(),
Oneckeck_values = JsonConvert.DeserializeObject(dataGridViewRow.Cells[12].Value.ToString().Trim()),
};
//上传mes
jsonstr = JsonConvert.SerializeObject(oneCheckData);
if (GlobalContext.IsSendCheckOneData)
{
string url = @"HTTP://" + GlobalContext.ServerHost + @"/api/ProductionLine/OneCheckData";
string mesRet = HttpUitls.SubmitDataToMES(url, jsonstr);
upload = mesRet == "成功" ? 1 : 0;
AddMessage(LogType.Info, "[" + dataGridViewRow.Cells[3].Value.ToString().Trim() + "]上传点检数据到MES---" + mesRet);
}
//本地数据保存
ret = SQLHelper.ExecuteSQL(OneCheckData.ToStringUpdateStatusByID(upload, id), null, ConnString);
if (upload == 1)
updatedIds.Add(id);
break;
case "AlarmData":
////上传mes
//var alarmData = new[]
//{
// new
// {
// Equipment_code = dataGridViewRow.Cells[1].Value.ToString().Trim(),
// AlarmName = dataGridViewRow.Cells[2].Value.ToString().Trim(),
// AlarmDesc = dataGridViewRow.Cells[3].Value.ToString().Trim(),
// AlarmType = dataGridViewRow.Cells[4].Value.ToString().Trim(),
// StartTime = dataGridViewRow.Cells[5].Value.ToString().Trim(),
// EndTime = dataGridViewRow.Cells[6].Value.ToString().Trim(),
// PersistTime = dataGridViewRow.Cells[7].Value.ToString().Trim()
// }
//};
//jsonstr = JsonConvert.SerializeObject(alarmData);
//if (GlobalContext.IsSendAlarmData)
//{
// string url = @"HTTP://" + GlobalContext.ServerHost + ":" + GlobalContext.ServerPort + @"/api/ProductionLine/AlarmData";
// string mesRet = HttpUitls.SubmitDataToMES(url, jsonstr);
// HttpUitls.Post(url, jsonstr);
// upload = mesRet == "成功" ? 1 : 0;
// AddMessage(LogType.Info, "[" + dataGridViewRow.Cells[1].Value.ToString().Trim() + "]上传报警数据到MES服务器---" + mesRet);
//}
////本地数据
//ret = SQLHelper.ExecuteSQL(AlarmData.ToStringUpdateStatusByID(upload, id), null, ConnString);
MessageBox.Show("本线使用MES直采报警信息,不需要上位机上传!");
break;
default:
break;
}
Thread.Sleep(20);
}
}
updatedIds.Clear();
//BeginQuery_Click(BeginQuery, EventArgs.Empty); // 刷新表格
}
catch (Exception ex)
{
string str = ex.StackTrace;
logNet.WriteError("上传MES异常!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message);
MessageBox.Show("上传MES异常!异常信息:" + ex.Message.ToString());
}
}
#region 查询条件控件
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
StartDate = dateTimePicker1.Value.AddDays(0).ToString("yyyy-MM-dd");
EndDate = dateTimePicker2.Value.AddDays(1).ToString("yyyy-MM-dd");
ResetTotal();
}
private void dateTimePicker2_ValueChanged(object sender, EventArgs e)
{
StartDate = dateTimePicker1.Value.AddDays(0).ToString("yyyy-MM-dd");
EndDate = dateTimePicker2.Value.AddDays(1).ToString("yyyy-MM-dd");
ResetTotal();
}
private void station_SelectedValueChanged(object sender, EventArgs e)
{
EquipmentCode = equipment.Items[equipment.SelectedIndex].ToString();
dataGridView.DataSource = null;
ResetTotal();
}
private void dataBaseName_SelectedValueChanged(object sender, EventArgs e)
{
UpdateConnString();
ResetTotal();
}
private void comboBoxSendStatus_SelectedValueChanged(object sender, EventArgs e)
{
if (comboBoxSendStatus.SelectedIndex == 2)
{
buttonSendMES.Visible = true;
}
else
{
buttonSendMES.Visible = false;
}
SendStatus = comboBoxSendStatus.Items[comboBoxSendStatus.SelectedIndex].ToString();
dataGridView.DataSource = null;
ResetTotal();
}
private void dataTableName_SelectedValueChanged(object sender, EventArgs e)
{
comboBoxSendStatus.Items.Clear();
comboBoxSendStatus.Items.Add("All");
comboBoxSendStatus.Items.Add("已上传");
comboBoxSendStatus.Items.Add("未上传");
equipment.Items.Clear();
equipment.Items.Add("All");
station.Items.Clear();
station.Items.Add("All");
switch (dataTableName.SelectedIndex)
{
case 0:
//加工数据和
equipment.Items.Add(GlobalContext.LineCode + "-S1");
equipment.Items.Add(GlobalContext.LineCode + "-S2");
equipment.Items.Add(GlobalContext.LineCode + "-S3");
equipment.Items.Add(GlobalContext.LineCode + "-S4");
equipment.Items.Add(GlobalContext.LineCode + "-S5");
equipment.Items.Add(GlobalContext.LineCode + "-S6");
//equipment.Items.Add(GlobalContext.LineCode + "-S7");
//equipment.Items.Add(GlobalContext.LineCode + "-S8");
//equipment.Items.Add(GlobalContext.LineCode + "-S9");
//equipment.Items.Add(GlobalContext.LineCode + "-S10");
//equipment.Items.Add(GlobalContext.LineCode + "-S11");
//equipment.Items.Add(GlobalContext.LineCode + "-S12");
foreach (var t in DicProcess)
{
station.Items.Add(t.Key);
}
//
comboBoxSendStatus.Visible = true;
labelSendStatus.Visible = true;
station.Visible = true;
gongxu.Visible = true;
break;
case 1:
//点检数据
equipment.Items.Add(GlobalContext.LineCode + "-S1");
equipment.Items.Add(GlobalContext.LineCode + "-S2");
equipment.Items.Add(GlobalContext.LineCode + "-S3");
equipment.Items.Add(GlobalContext.LineCode + "-S4");
//equipment.Items.Add(GlobalContext.LineCode + "-S5");
equipment.Items.Add(GlobalContext.LineCode + "-S6");
//equipment.Items.Add(GlobalContext.LineCode + "-S7");
//equipment.Items.Add(GlobalContext.LineCode + "-S8");
//equipment.Items.Add(GlobalContext.LineCode + "-S9");
//equipment.Items.Add(GlobalContext.LineCode + "-S10");
//equipment.Items.Add(GlobalContext.LineCode + "-S11");
//equipment.Items.Add(GlobalContext.LineCode + "-S12");
foreach (var t in DicCheckOne)
{
station.Items.Add(t.Key);
}
comboBoxSendStatus.Visible = true;
labelSendStatus.Visible = true;
station.Visible = true;
gongxu.Visible = true;
break;
//case 2:
// //单机数据
// foreach (var t in DicAlarm)
// {
// equipment.Items.Add(t.Key);
// }
// comboBoxSendStatus.Visible = false;
// labelSendStatus.Visible = false;
// station.Visible = false;
// gongxu.Visible = false;
// break;
case 2:
//整线数据
comboBoxSendStatus.Visible = false;
labelSendStatus.Visible = false;
station.Visible = false;
gongxu.Visible = false;
break;
case 3:
//报警数据
foreach (var t in DicAlarm)
{
equipment.Items.Add(t.Key);
}
//
comboBoxSendStatus.Visible = false;
labelSendStatus.Visible = false;
station.Visible = false;
gongxu.Visible = false;
break;
default:
break;
}
equipment.SelectedIndex = 0;
comboBoxSendStatus.SelectedIndex = 0;
station.SelectedIndex = 0;
switch (dataTableName.SelectedIndex)
{
case 0:
//加工数据
TableName = "ProcessData";
ViewFirstColumn = true;
ColumnWidth0 = 120;
ColumnWidth1 = 120;
ColumnWidth2 = 150;
ColumnWidth3 = 100;
ColumnWidth4 = 120;
ColumnWidth5 = 120;
break;
case 1:
//点检数据
TableName = "OneCheckData";
ViewFirstColumn = true;
ColumnWidth0 = 120;
ColumnWidth1 = 100;
ColumnWidth2 = 100;
ColumnWidth3 = 120;
ColumnWidth4 = 120;
ColumnWidth5 = 120;
break;
//case 2:
// //单机数据
// TableName = "WorkingData";
// ViewFirstColumn = true;
// ColumnWidth0 = 120;
// ColumnWidth1 = 100;
// ColumnWidth2 = 100;
// ColumnWidth3 = 100;
// ColumnWidth4 = 100;
// ColumnWidth5 = 100;
// break;
case 2:
//整线数据
TableName = "LineWorkingData";
ViewFirstColumn = true;
ColumnWidth0 = 100;
ColumnWidth1 = 120;
ColumnWidth2 = 120;
ColumnWidth3 = 120;
ColumnWidth4 = 120;
ColumnWidth5 = 120;
break;
case 3:
//报警数据
TableName = "AlarmData";
ViewFirstColumn = true;
ColumnWidth0 = 100;
ColumnWidth1 = 120;
ColumnWidth2 = 120;
ColumnWidth3 = 120;
ColumnWidth4 = 100;
ColumnWidth5 = 100;
break;
default:
break;
}
dataGridView.DataSource = null;
ResetTotal();
}
#endregion 查询条件控件
private void AddMessage(LogType logType, string msg)
{
MessageEvent?.Invoke(logType, msg);
}
private void station_SelectedValueChanged_1(object sender, EventArgs e)
{
Item = station.Items[station.SelectedIndex].ToString();
dataGridView.DataSource = null;
}
///
/// 导出
///
private void btnOutExcel_Click(object sender, EventArgs e)
{
try
{
if (dataGridView.DataSource == null || dataGridView.Rows.Count < 1)
{
MessageBox.Show("导出内容不可为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Hand);
return;
}
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.DefaultExt = "xlsx";
saveDialog.Filter = "Excel文件|*.xlsx";
saveDialog.FileName = dataTableName.Text + " " + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".xlsx";
DialogResult dialogResult = saveDialog.ShowDialog();
if (dialogResult == DialogResult.OK)
{
string filename = saveDialog.FileName;
DataTable dt = (DataTable)dataGridView.DataSource;
dt.TableName = dataTableName.Text;
NPOIHelper.WriteExcel(dt, filename);
}
}
catch (Exception ex)
{
string str = ex.StackTrace;
logNet.WriteError("导出Excle异常!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message);
MessageBox.Show("导出Excle异常!异常信息:" + ex.Message.ToString());
}
}
#region UI处理
// 设备编号-工序绑定
private void equipment_SelectedIndexChanged(object sender, EventArgs e)
{
switch (TableName)
{
case "ProcessData":
case "OneCheckData":
if (station.Items.Count >= equipment.Items.Count)
{
station.SelectedIndex = equipment.SelectedIndex;
}
break;
default:
break;
}
}
private void station_SelectedIndexChanged(object sender, EventArgs e)
{
switch (TableName)
{
case "ProcessData":
case "OneCheckData":
if (equipment.Items.Count >= station.Items.Count)
{
equipment.SelectedIndex = station.SelectedIndex;
}
break;
default:
break;
}
}
#endregion UI处理
}
}