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 _CheckData = null; //绑定数据 private delegate void DeleGrdBind(List 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 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 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 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 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 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 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 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 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 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 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); } } }