using Sunny.UI.Win32;
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MainForm.FaForm
{
public partial class Form_MESTest : Form
{
#region 变量
public event AlarmMessageHandler MessageEvent;
#endregion 变量
#region 窗体事件
public Form_MESTest()
{
InitializeComponent();
}
private void Form_MESTest_Load(object sender, EventArgs e)
{
cmbSNType.SelectedIndex = 0;
cmbProResult.SelectedIndex = 0;
}
#endregion 窗体事件
#region 进站相关
///
/// 进站
///
private async void btnStationIn_Click(object sender, EventArgs e)
{
try
{
string sn = txtSN.Text.Trim();
if (string.IsNullOrEmpty(sn))
{
MessageBox.Show("SN号不可为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
string snType = cmbSNType.Text.Trim();
switch (snType)
{
case "产品SN":
(int, string) result = StationInFunc_ProductSN(sn);
ShowLog(result.Item2);
break;
case "载具SN":
case "弹夹SN":
MessageBox.Show("暂不支持的进站方式");
break;
default:
break;
}
}
catch (Exception ex)
{
string str = ex.StackTrace;
MessageBox.Show("进站异常!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString());
}
}
///
/// 进站 - 产品SN
///
/// 产品SN
///
private (int, string) StationInFunc_ProductSN(string sn)
{
string stationStr = cmbStationName.Text.Trim();
#region 校验
string vehicleCode = txtVehicleCode.Text.Trim(); // 载具码
string vehicleCodeNum = txtVehicleCodeNum.Text.Trim(); // 载具穴号
string bulletclipCode = txtBulletclipCode.Text.Trim(); // 弹夹码
string bulletclipCodeNum = txtBulletclipCodeNum.Text.Trim(); // 弹夹穴号
List item = new List();
item.Add(new TestItem()
{
Parameter_name = "产品结果",
Parameter_value = cmbProResult.Text.Trim(),
});
if (string.IsNullOrEmpty(vehicleCode))
item.Add(new TestItem()
{
Parameter_name = "载具码",
Parameter_value = vehicleCode,
});
if (string.IsNullOrEmpty(vehicleCodeNum))
item.Add(new TestItem()
{
Parameter_name = "载具穴号",
Parameter_value = vehicleCodeNum,
});
if (string.IsNullOrEmpty(bulletclipCode))
item.Add(new TestItem()
{
Parameter_name = "弹夹码",
Parameter_value = bulletclipCode,
});
if (string.IsNullOrEmpty(bulletclipCodeNum))
item.Add(new TestItem()
{
Parameter_name = "弹夹穴号",
Parameter_value = bulletclipCodeNum,
});
#endregion 校验
int mesResult = Form_Main.formHome.SaveStationInData(stationStr, GlobalContext.WorkOrderCode, GlobalContext.Mtltmrk, sn, item, out string errorMsg);
switch (mesResult)
{
case 1:
return (1, "[1]成功;" + errorMsg);
case 5:
return (5, "[5]MES报警;" + errorMsg);
case 6:
return (6, "[6]上位机报警;" + errorMsg);
default:
return (999, "[999]未知结果;" + errorMsg);
}
}
#endregion 进站相关
#region 出站相关
///
/// 出站
///
private async void btnStationOut_Click(object sender, EventArgs e)
{
try
{
string sn = txtSN.Text.Trim();
if (string.IsNullOrEmpty(sn))
{
MessageBox.Show("SN号不可为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
string snType = cmbSNType.Text.Trim();
switch (snType)
{
case "产品SN":
(int, string) result = StationOutFunc_ProductSN(sn);
ShowLog(result.Item2);
break;
case "载具SN":
case "弹夹SN":
MessageBox.Show("暂不支持的出站方式");
break;
default:
break;
}
}
catch (Exception ex)
{
string str = ex.StackTrace;
MessageBox.Show("进站异常!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString());
}
}
///
/// 出站 - 产品SN
///
/// 产品SN
///
private (int, string) StationOutFunc_ProductSN(string sn)
{
string stationStr = cmbStationName.Text.Trim();
#region 校验
string vehicleCode = txtVehicleCode.Text.Trim(); // 载具码
string vehicleCodeNum = txtVehicleCodeNum.Text.Trim(); // 载具穴号
string bulletclipCode = txtBulletclipCode.Text.Trim(); // 弹夹码
string bulletclipCodeNum = txtBulletclipCodeNum.Text.Trim(); // 弹夹穴号
List item = new List();
item.Add(new TestItem()
{
Parameter_name = "产品结果",
Parameter_value = cmbProResult.Text.Trim(),
});
if (string.IsNullOrEmpty(vehicleCode))
item.Add(new TestItem()
{
Parameter_name = "载具码",
Parameter_value = vehicleCode,
});
if (string.IsNullOrEmpty(vehicleCodeNum))
item.Add(new TestItem()
{
Parameter_name = "载具穴号",
Parameter_value = vehicleCodeNum,
});
if (string.IsNullOrEmpty(bulletclipCode))
item.Add(new TestItem()
{
Parameter_name = "弹夹码",
Parameter_value = bulletclipCode,
});
if (string.IsNullOrEmpty(bulletclipCodeNum))
item.Add(new TestItem()
{
Parameter_name = "弹夹穴号",
Parameter_value = bulletclipCodeNum,
});
#endregion 校验
string workorder_code = GlobalContext.WorkOrderCode; // 工单号
string mtltmrk = GlobalContext.Mtltmrk; // 型号
bool pass = cmbProResult.Text == "OK";
string zj = vehicleCode;
string zjxh = vehicleCodeNum;
if (!string.IsNullOrEmpty(bulletclipCode) && !string.IsNullOrEmpty(bulletclipCodeNum))
{
zj = bulletclipCode;
zjxh = bulletclipCodeNum;
}
string equipmentCode = "";
string processItem = "";
//[S1]Tray盘上料装备
//[S2]FCT
//[S3]值板机
//[S4_1]载具下线装备
//[S4_3]提升机1
//[S4_4]提升机2
//[S4_5]载具上线装备
//[S5]Tray盘下料装备
switch (stationStr)
{
case "[S1]Tray盘上料装备":
equipmentCode = GlobalContext.LineCode + "-[S1]";
processItem = "Tray盘上料装备";
break;
case "[S2]FCT":
equipmentCode = GlobalContext.LineCode + "-[S2]";
processItem = "FCT";
break;
case "[S3]值板机":
equipmentCode = GlobalContext.LineCode + "-[S3]";
processItem = "值板机";
break;
case "[S4_1]载具下线装备":
equipmentCode = GlobalContext.LineCode + "-[S4_1]";
processItem = "载具下线装备";
break;
case "[S4_3]提升机1":
equipmentCode = GlobalContext.LineCode + "-[S4_3]";
processItem = "提升机1";
break;
case "[S4_4]提升机2":
equipmentCode = GlobalContext.LineCode + "-[S4_4]";
processItem = "提升机2";
break;
case "[S4_5]载具上线装备":
equipmentCode = GlobalContext.LineCode + "-[S4_5]";
processItem = "载具上线装备";
break;
case "[S5]Tray盘下料装备":
equipmentCode = GlobalContext.LineCode + "-[S5]";
processItem = "Tray盘下料装备";
break;
}
//int mesResult = 0;
int mesResult = Form_Main.formHome.SaveProcessDataByDB(stationStr, item, equipmentCode, processItem
, workorder_code, mtltmrk, sn, pass, zj, zjxh);
switch (mesResult)
{
case 1:
return (1, "[1]成功");
case 5:
return (5, "[5]MES报警");
case 6:
return (6, "[6]上位机报警");
default:
return (999, "[999]未知结果");
}
}
#endregion 出站相关
#region 其他方法
///
/// 显示信息
///
/// 信息
public void ShowLog(string msg)
{
txtInfo.Invoke(new Action(() =>
{
txtInfo.Text = string.Concat("\r\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "=> ", msg);
}));
}
///
/// 添加记录
///
/// 日志类型
/// 日志信息
private void AddMessage(LogType logType, string msg)
{
MessageEvent?.Invoke(logType, msg);
}
#endregion 其他方法
}
}