You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

541 lines
22 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using Estsh.Client.Base;
using System.Configuration;
using MainProgram;
using MainProgram.BLL;
using System.IO;
namespace Estsh.Client.StepLibrary
{
public partial class OutPdline : StepBase
{
private StepLibraryAPP app = null;
private List<dynamic> _CheckData = null; //绑定数据
private delegate void DeleGrdBind(List<dynamic> dt);
private int _terminalID = 0;
private string _sn = "";
////PASS上一次成功扫描时间
//private DateTime _lastPassDatetime;
//PASS扫描间隔
private int _passIntervalValue = 2000;
//PASS间隔限制工位集合
private string _passIntervalLimit = string.Empty;
public OutPdline()
{
InitializeComponent();
// 有用户界面的工步在初始化时需要设置为不可见
// 开始执行此工步后再置为可见
this.Visible = false;
}
public override bool Do()
{
try
{
// 置为可见并加载到最前端
this.Visible = true;
this.BringToFront();
// 从配置文件中加载工位编号
_terminalID = Convert.ToInt32(Context["terminal_id"].ToString());
_sn = Context["serial_number"].ToString();
app = new StepLibraryAPP(httpClient);
string _PartNo = app.GetPartNo(_sn);
string rule = app.GetRuleNo(_PartNo);
string partLocation = app.GetPartLoc(_PartNo);
for (int i = 0; i < _CheckData.Count; i++)
{
if (_CheckData[i]["str4"].ToString() == "合格")
{
OutPdlineList.Rows[i].DefaultCellStyle.BackColor = Color.Green;
}
else
{
OutPdlineList.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
}
//for (int i = 0; i < OutPdlineList.Count; i++)
//{
// OutPdlineList[i].DefaultCellStyle.BackColor = Color.Red;
//}
OutPdlineList.Update();
if (OutPdlineList.Rows.Count > 0)
{
OutPdlineList.Rows[0].Selected = false;
}
// 执行父类的 Do 方法并返回
return base.Do();
}
catch (Exception ex)
{
// 记录日志
using (StreamWriter sw = new StreamWriter("Error_Log_" + DateTime.Now.ToString("yyyyMM") + ".txt", true))
{
sw.WriteLine(string.Format("{0} {1}", "["
+ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+ "] ", ex.ToString()));
sw.Flush();
sw.Close();
}
return false;
}
}
private void OutPdline_Load(object sender, EventArgs e)
{
_sn = Context["serial_number"].ToString();
app = new StepLibraryAPP(httpClient);
_terminalID = Convert.ToInt32(Context["terminal_id"].ToString());
if (_sn.ToUpper() != "PASS" || _sn.ToUpper() != "REWORK")
{
string PF_DJC = "N";
string QP_DJC = "N";
string QP_IMS = "N";
string QP_JYF = "N";
string QP_TLL = "N";
string QP_SBR = "N";
string QP_SJYX = "N";
string QM_TLL = "N";
string QM_DJC = "N";
string QE_DJC = "N";
//查询总成检查项
List<dynamic> outPdlineDetectionList = app.GetOutPdlineDetectionData(_sn);
if (outPdlineDetectionList.Count > 0)
{
PF_DJC = outPdlineDetectionList[0]["PF_DJC"].ToString();
QP_DJC = outPdlineDetectionList[0]["QP_DJC"].ToString();
QP_IMS = outPdlineDetectionList[0]["QP_IMS"].ToString();
QP_JYF = outPdlineDetectionList[0]["QP_JYF"].ToString();
QP_TLL = outPdlineDetectionList[0]["QP_TLL"].ToString();
QP_SBR = outPdlineDetectionList[0]["QP_SBR"].ToString();
QP_SJYX = outPdlineDetectionList[0]["QP_SJYX"].ToString();
QM_TLL = outPdlineDetectionList[0]["QM_TLL"].ToString();
QM_DJC = outPdlineDetectionList[0]["QM_DJC"].ToString();
QE_DJC = outPdlineDetectionList[0]["QE_DJC"].ToString();
}
//检验绑定和扭矩信息
_CheckData = app.OutPdlineCheck(_terminalID, _sn);
//前电检测设备
if (QP_DJC.Trim() == "Y")
{
List<dynamic> CheckDJData = app.OutPdlineCheckDJ(_terminalID, _sn);
if (CheckDJData.Count > 0)
{
if (CheckDJData[0]["测试结果(P/F)"].ToString() == "F")
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckDJData[0]["条码"].ToString();
newRow["str2"] = CheckDJData[0]["设备名称"].ToString();
newRow["str3"] = CheckDJData[0]["设备名称"].ToString();
newRow["str4"] = "不合格";
_CheckData.Add(newRow);
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckDJData[0]["条码"].ToString();
newRow["str2"] = CheckDJData[0]["设备名称"].ToString();
newRow["str3"] = CheckDJData[0]["设备名称"].ToString();
newRow["str4"] = "合格";
_CheckData.Add(newRow);
}
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = _sn;
newRow["str2"] = "后排电检设备";
newRow["str3"] = "后排电检设备";
newRow["str4"] = "未检测";
_CheckData.Add(newRow);
}
}
//前排视觉设备
if (QP_SJYX.Trim() == "Y")
{
List<dynamic> CheckDJData = app.OutPdlineCheckSJYX(_terminalID, _sn);
if (CheckDJData.Count > 0)
{
if (CheckDJData[0]["测试结果(P/F)"].ToString() == "F")
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckDJData[0]["条码"].ToString();
newRow["str2"] = CheckDJData[0]["设备名称"].ToString();
newRow["str3"] = CheckDJData[0]["设备名称"].ToString();
newRow["str4"] = "不合格";
_CheckData.Add(newRow);
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckDJData[0]["条码"].ToString();
newRow["str2"] = CheckDJData[0]["设备名称"].ToString();
newRow["str3"] = CheckDJData[0]["设备名称"].ToString();
newRow["str4"] = "合格";
_CheckData.Add(newRow);
}
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = _sn;
newRow["str2"] = "前排视觉设备";
newRow["str3"] = "前排视觉设备";
newRow["str4"] = "未检测";
_CheckData.Add(newRow);
}
}
//前排SBR
if (QP_SBR.Trim() == "Y")
{
List<dynamic> CheckDJSBRData = app.OutPdlineCheckDJSBR(_terminalID, _sn);
if (CheckDJSBRData.Count > 0)
{
if (CheckDJSBRData[0]["测试结果(P/F)"].ToString() == "F")
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckDJSBRData[0]["条码"].ToString();
newRow["str2"] = CheckDJSBRData[0]["设备名称"].ToString();
newRow["str3"] = CheckDJSBRData[0]["设备名称"].ToString();
newRow["str4"] = "不合格";
_CheckData.Add(newRow);
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckDJSBRData[0]["条码"].ToString();
newRow["str2"] = CheckDJSBRData[0]["设备名称"].ToString();
newRow["str3"] = CheckDJSBRData[0]["设备名称"].ToString();
newRow["str4"] = "合格";
_CheckData.Add(newRow);
}
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = _sn;
newRow["str2"] = "前排SBR";
newRow["str3"] = "前排SBR";
newRow["str4"] = "未检测";
_CheckData.Add(newRow);
}
}
//前排推拉力电检设备
if (QP_TLL.Trim() == "Y")
{
List<dynamic> CheckDJTLLData = app.OutPdlineCheckDJTLL(_terminalID, _sn);
if (CheckDJTLLData.Count > 0)
{
if (CheckDJTLLData[0]["测试结果(P/F)"].ToString() == "F")
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckDJTLLData[0]["条码"].ToString();
newRow["str2"] = CheckDJTLLData[0]["设备名称"].ToString();
newRow["str3"] = CheckDJTLLData[0]["设备名称"].ToString();
newRow["str4"] = "不合格";
_CheckData.Add(newRow);
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckDJTLLData[0]["条码"].ToString();
newRow["str2"] = CheckDJTLLData[0]["设备名称"].ToString();
newRow["str3"] = CheckDJTLLData[0]["设备名称"].ToString();
newRow["str4"] = "合格";
_CheckData.Add(newRow);
}
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = _sn;
newRow["str2"] = "推拉力电检设备";
newRow["str3"] = "推拉力电检设备";
newRow["str4"] = "未检测";
_CheckData.Add(newRow);
}
}
//前排静音房电检设备
if (QP_JYF.Trim() == "Y")
{
List<dynamic> CheckJYFData = app.OutPdlineCheckJYF(_terminalID, _sn);
if (CheckJYFData.Count > 0)
{
if (CheckJYFData[0]["测试结果(P/F)"].ToString() == "F")
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckJYFData[0]["条码"].ToString();
newRow["str2"] = CheckJYFData[0]["设备名称"].ToString();
newRow["str3"] = CheckJYFData[0]["设备名称"].ToString();
newRow["str4"] = "不合格";
_CheckData.Add(newRow);
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckJYFData[0]["条码"].ToString();
newRow["str2"] = CheckJYFData[0]["设备名称"].ToString();
newRow["str3"] = CheckJYFData[0]["设备名称"].ToString();
newRow["str4"] = "合格";
_CheckData.Add(newRow);
}
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = _sn;
newRow["str2"] = "静音房设备";
newRow["str3"] = "静音房设备";
newRow["str4"] = "未检测";
_CheckData.Add(newRow);
}
}
//前排IMS电检设备
if (QP_IMS.Trim() == "Y")
{
List<dynamic> CheckIMSData = app.OutPdlineCheckIMS(_terminalID, _sn);
if (CheckIMSData.Count > 0)
{
if (CheckIMSData[0]["测试结果(P/F)"].ToString() == "F")
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckIMSData[0]["条码"].ToString();
newRow["str2"] = CheckIMSData[0]["设备名称"].ToString();
newRow["str3"] = CheckIMSData[0]["设备名称"].ToString();
newRow["str4"] = "不合格";
_CheckData.Add(newRow);
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckIMSData[0]["条码"].ToString();
newRow["str2"] = CheckIMSData[0]["设备名称"].ToString();
newRow["str3"] = CheckIMSData[0]["设备名称"].ToString();
newRow["str4"] = "合格";
_CheckData.Add(newRow);
}
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = _sn;
newRow["str2"] = "IMS设备";
newRow["str3"] = "IMS设备";
newRow["str4"] = "未检测";
_CheckData.Add(newRow);
}
}
//QM二排电检设备
if (QM_DJC.Trim() == "Y")
{
List<dynamic> CheckQMDJCData = app.OutPdlineCheckQMDJC(_terminalID, _sn);
if (CheckQMDJCData.Count > 0)
{
if (CheckQMDJCData[0]["测试结论"].ToString().Trim() == "不合格")
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckQMDJCData[0]["型号条码"].ToString();
newRow["str2"] = "电检测";
newRow["str3"] = "电检测";
newRow["str4"] = "不合格";
_CheckData.Add(newRow);
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckQMDJCData[0]["型号条码"].ToString();
newRow["str2"] = "电检测";
newRow["str3"] = "电检测";
newRow["str4"] = "合格";
_CheckData.Add(newRow);
}
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = _sn;
newRow["str2"] = "电检测设备";
newRow["str3"] = "电检测设备";
newRow["str4"] = "未检测";
_CheckData.Add(newRow);
}
}
//QM二排推拉力
if (QM_TLL.Trim() == "Y")
{
List<dynamic> CheckQMTLLData = app.OutPdlineCheckQMTLL(_terminalID, _sn);
if (CheckQMTLLData.Count > 0)
{
if (CheckQMTLLData[0]["测试结论"].ToString().Trim() == "不合格")
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckQMTLLData[0]["型号条码"].ToString();
newRow["str2"] = "推拉力设备";
newRow["str3"] = "推拉力设备";
newRow["str4"] = "不合格";
_CheckData.Add(newRow);
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckQMTLLData[0]["型号条码"].ToString();
newRow["str2"] = "推拉力设备";
newRow["str3"] = "推拉力设备";
newRow["str4"] = "合格";
_CheckData.Add(newRow);
}
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = _sn;
newRow["str2"] = "推拉力设备";
newRow["str3"] = "推拉力设备";
newRow["str4"] = "未检测";
_CheckData.Add(newRow);
}
}
//QE电检设备
if (QE_DJC.Trim() == "Y")
{
List<dynamic> CheckQEDJCData = app.OutPdlineCheckQEDJC(_terminalID, _sn);
if (CheckQEDJCData.Count > 0)
{
if (CheckQEDJCData[0]["测试结果"].ToString().Trim() == "NG")
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckQEDJCData[0]["座椅条码"].ToString();
newRow["str2"] = "电检测";
newRow["str3"] = "电检测";
newRow["str4"] = "不合格";
_CheckData.Add(newRow);
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = CheckQEDJCData[0]["座椅条码"].ToString();
newRow["str2"] = "电检测";
newRow["str3"] = "电检测";
newRow["str4"] = "合格";
_CheckData.Add(newRow);
}
}
else
{
DataRow newRow;
newRow = _CheckData.NewRow();
newRow["str1"] = _sn;
newRow["str2"] = "电检测设备";
newRow["str3"] = "电检测设备";
newRow["str4"] = "未检测";
_CheckData.Add(newRow);
}
}
OutPdlineList.AutoGenerateColumns = false;
OutPdlineList.DataSource = _CheckData;
//_CheckData[rowID]["KPSN"]
int count = 0;
for (int i = 0; i < _CheckData.Count; i++)
{
if (_CheckData[i]["str4"].ToString() == "合格")
{
//OutPdlineList[i].DefaultCellStyle.BackColor = Color.Green;
}
else
{
count++;
//OutPdlineList[i].DefaultCellStyle.BackColor = Color.Red;
}
}
//for (int i = 0; i < OutPdlineList.Count; i++)
//{
// OutPdlineList[i].DefaultCellStyle.BackColor = Color.Red;
//}
//OutPdlineList.Update();
if (count > 0)
{
ShowMessage(this, "red|座椅信息采集不完整!");
return;
}
}
// 工步执行完成后调用此方法
Complate(this, e);
}
}
}