//修复无1920问题 private int Change_ccode1920(string tt_mac, string tt_id) { string tt_Changesql = "update odc_routingtasklist set ccode = '1920' " + "where pcba_pn = '" + tt_mac + "' and ncode = '2100' and id = '" + tt_id + "' "; int tt_Checknum = Dataset1.ExecCommand(tt_Changesql, tt_conn); return(tt_Checknum); }
//NG原因记录 public static int getNgreasonRecord(string tt_taskcode, string tt_mac, string tt_local, string tt_ng, string tt_code, string tt_conn) { int tt_int = 0; string tt_sql = "insert into odc_ng(Taskcode,Mac,Flocal,Fng,Fcode,Fdate) " + "values('" + tt_taskcode + "','" + tt_mac + "','" + tt_local + "','" + tt_ng + "','" + tt_code + "',getdate()) "; tt_int = Dataset1.ExecCommand(tt_sql, tt_conn); return(tt_int); }
//记录铭牌重打信息 private void putMacrePrintInfo(string tt_taskscode, string tt_maclable, string tt_hostlable, string tt_user, string tt_local, string tt_remark) { string tt_sql = "insert into odc_lablereprint (Ftaskcode,Fmaclable,Fhostlable,Flocal,Fname,Fdate,Fremark) " + "values('" + tt_taskscode + "','" + tt_maclable + "','" + tt_hostlable + "','" + tt_local + "','" + tt_user + "',getdate(),'" + tt_remark + "')"; if (tt_maclable != "" && tt_hostlable != "") { int tt_execint = Dataset1.ExecCommand(tt_sql, tt_conn); } }
//记录信息 private Boolean CheckInfoIntoDataBase() { Boolean tt_flag = false; string tt_update = "update odc_alllable set bosasn = '信息已比对' " + "where taskscode = '" + this.textBox1.Text + "' and hostlable = '" + tt_hostlable + "' and id = '" + tt_id + "'"; int tt_exuct = Dataset1.ExecCommand(tt_update, tt_conn); if (tt_exuct > 0) { tt_flag = true; } return(tt_flag); }
//扫描 private void textBox7_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { //---开始MAC扫描 ScanDataInitial(); setRichtexBox("-----开始MAC扫描--------"); string tt_task = this.textBox1.Text.ToUpper().Trim(); string tt_scanmac = this.textBox7.Text.Trim(); string tt_shortmac = tt_scanmac.Replace("-", ""); //第一步位数判断 Boolean tt_flag1 = false; tt_flag1 = CheckStrLengh(tt_scanmac, this.textBox3.Text); //第二步包含符判断 Boolean tt_flag2 = false; if (tt_flag1) { tt_flag2 = CheckStrContain(tt_scanmac, this.textBox4.Text.Trim()); } //第三步 不包含符判断 Boolean tt_flag3 = false; if (tt_flag2) { tt_flag3 = CheckStrContain2(tt_scanmac, this.textBox2.Text.Trim()); } //第四步 扣数判断 Boolean tt_flag4 = false; if (tt_flag3) { int tt_shouldscan = getTransmitStrToInt(this.label58.Text); int tt_scanint = getTransmitStrToInt(this.label59.Text); if (tt_scanint <= tt_shouldscan) { tt_flag4 = true; setRichtexBox("4、还没有达到上限,应扫描数量:" + tt_shouldscan.ToString() + ",实际扫描数量:" + tt_scanint.ToString() + ",goon"); } else { } } //第五步 获取单板信息 string tt_pcba = ""; string tt_mac = ""; Boolean tt_flag5 = false; if (tt_flag4) { string tt_sql5 = "select pcbasn,maclable from odc_alllable " + "where hprintman = '" + tt_task + "' and maclable = '" + tt_shortmac + "' "; DataSet ds5 = Dataset1.GetDataSet(tt_sql5, tt_conn); if (ds5.Tables.Count > 0 && ds5.Tables[0].Rows.Count > 0) { tt_flag5 = true; tt_pcba = ds5.Tables[0].Rows[0].ItemArray[0].ToString(); //单板号 tt_mac = ds5.Tables[0].Rows[0].ItemArray[1].ToString(); //单板号 setRichtexBox("5、关联表查询到一条数据,pcba=" + tt_pcba + ",mac=" + tt_mac + ",goon"); } else { setRichtexBox("5、关联表没有查询到数据,over"); PutLableInfor("关联表没有查询到数据,请检查!"); } } //第六步 获取站位 Boolean tt_flag6 = false; if (tt_flag5) { string tt_sql6 = "select count(1),min(ccode),min(ncode) from odc_routingtasklist " + "where pcba_pn = '" + tt_shortmac + "' and napplytype is null "; string[] tt_array6 = new string[3]; tt_array6 = Dataset1.GetDatasetArray(tt_sql6, tt_conn); if (tt_array6[0] == "1") { if (tt_array6[2] == tt_ccode) { tt_flag6 = true; setRichtexBox("6、该单板有待测站位,站位:" + tt_array6[1] + "," + tt_array6[2] + ",可以过站 goon"); } else if (tt_array6[2] == "2220") { tt_flag6 = true; setRichtexBox("6、该单板有待测站位,站位:" + tt_array6[1] + "," + tt_array6[2] + ",可以过站 goon"); } else if (int.Parse(tt_array6[2]) < int.Parse(tt_ccode) || "2200,2205".Contains(tt_array6[2])) { setRichtexBox("6、该单板待测站位不在" + tt_ccode + ",站位:" + tt_array6[1] + "," + tt_array6[2] + ",不可以过站 goon"); PutLableInfor("该单板当前站位:" + tt_array6[2] + "不在" + tt_ccode + "站位,产品尚未测试耦合,不允许进站"); } else { setRichtexBox("6、该单板待测站位不在" + tt_ccode + ",站位:" + tt_array6[1] + "," + tt_array6[2] + ",不可以过站 goon"); PutLableInfor("该单板当前站位:" + tt_array6[2] + "不在" + tt_ccode + "站位!"); } } else { setRichtexBox("6、没有找到待测站位,或有多条待测站位,流程异常,over"); PutLableInfor("没有找到待测站位,或有多条待测站位,流程异常!"); } } //第六步附 检查2115 站位状态 Boolean tt_flag6_1 = false; if (tt_flag6) { string tt_sql6_1 = "select ncode,napplytype from dbo.odc_routingtasklist where pcba_pn = '" + tt_shortmac + "' and ccode = '2115'"; string tt_allprocesses = Dataset2.getGyidAllProcess(tt_gyid, tt_conn); DataSet ds6_1 = Dataset1.GetDataSetTwo(tt_sql6_1, tt_conn); bool tt_processcheck = true; if (ds6_1.Tables.Count > 0 && ds6_1.Tables[0].Rows.Count > 0) { string tt_napplytype = "1"; for (int i = 0; i < ds6_1.Tables[0].Rows.Count; i++) { tt_napplytype = ds6_1.Tables[0].Rows[i].ItemArray[1].ToString(); if (tt_napplytype == "0") { tt_processcheck = false; break; } } if ((tt_allprocesses.Contains("2111") && tt_napplytype == "1") || tt_processcheck) { tt_flag6_1 = true; setRichtexBox("6.1、该产品产品耦合测试没有出现过不良,或者有2111站位,且当前已通过耦合测试,可以过站,goon"); } else if (!tt_allprocesses.Contains("2111") && !tt_processcheck) { setRichtexBox("6.1、该产品流程没有2111站位,且耦合测试曾经出现过测试失败,不允许过站,over"); PutLableInfor("该产品2111不是必测站位,且耦合测试曾经出现过测试失败,不建议测试吞吐量!"); } else if (tt_allprocesses.Contains("2111") && tt_napplytype == "0") { setRichtexBox("6.1、该产品流程有2111站位,但耦合测试没有通过测试,不允许过站,over"); PutLableInfor("该产品流程有2111站位,但耦合测试没有通过测试,不允许过站!"); } } else { string tt_sql6_2 = "select ncode,napplytype from dbo.odc_routingtasklist where pcba_pn = '" + tt_shortmac + "' and ccode = '2185'"; tt_allprocesses = Dataset2.getGyidAllProcess(tt_gyid, tt_conn); DataSet ds6_2 = Dataset1.GetDataSetTwo(tt_sql6_2, tt_conn); tt_processcheck = true; if (ds6_2.Tables.Count > 0 && ds6_2.Tables[0].Rows.Count > 0) { string tt_napplytype = "1"; for (int i = 0; i < ds6_2.Tables[0].Rows.Count; i++) { tt_napplytype = ds6_2.Tables[0].Rows[i].ItemArray[1].ToString(); if (tt_napplytype == "0") { tt_processcheck = false; break; } } if ((tt_allprocesses.Contains("2111") && tt_napplytype == "1") || tt_processcheck) { tt_flag6_1 = true; setRichtexBox("6.1、该产品产品耦合测试没有出现过不良,或者有2111站位,且当前已通过耦合测试,可以过站,goon"); } else if (!tt_allprocesses.Contains("2111") && !tt_processcheck) { setRichtexBox("6.1、该产品流程没有2111站位,且耦合测试曾经出现过测试失败,不允许过站,over"); PutLableInfor("该产品2111不是必测站位,且耦合测试曾经出现过测试失败,不建议测试吞吐量!"); } } else { setRichtexBox("6.1、没有找到耦合站位状态,流程异常,over"); PutLableInfor("没有找到耦合站位状态,流程异常!"); } } } //第七步 开始过站 Boolean tt_flag7 = false; if (tt_flag6_1) { string tt_sql7 = "update odc_routingtasklist set ncode = '2111',Fremark ='10%扫描耦合' " + "where pcba_pn = '" + tt_mac + "' and napplytype is null "; int tt_int7 = Dataset1.ExecCommand(tt_sql7, tt_conn); if (tt_int7 > 0) { tt_flag7 = true; setRichtexBox("7、OK过站成功,跳站到2111"); } else { setRichtexBox("7、Fail过站失败,over"); PutLableInfor("跳站2111失败,请重新扫描!"); } } //第八步 记录数据 Boolean tt_flag8 = false; if (tt_flag7) { string tt_sql8 = "insert into odc_insertcode(Taskcode,MAC,PCBA,Ncode,Fdate) " + "values('" + tt_task + "','" + tt_mac + "','" + tt_pcba + "','" + tt_ccode + "',getdate()) "; int tt_int8 = Dataset1.ExecCommand(tt_sql8, tt_conn); if (tt_int8 > 0) { tt_flag8 = true; setRichtexBox("8、过站记录成功,goon"); } else { setRichtexBox("8、过站记录成功,over"); PutLableInfor("过站记录失败,扫描其他单板!"); } } //最后判断 if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4 && tt_flag5 && tt_flag6 && tt_flag7 && tt_flag8) { GetProductNumInfo(); this.richTextBox1.BackColor = Color.Chartreuse; setRichtexBox("9、over"); tt_yield++; this.label8.Text = tt_yield.ToString(); PutListViewData(tt_mac, tt_pcba); PutLableInfor("请继续扫描"); textBox7.Focus(); textBox7.SelectAll(); } else { this.richTextBox1.BackColor = Color.Red; textBox7.Focus(); textBox7.SelectAll(); } } }
//主要方法 private void LogUploadMain() { //数据初始化 setRichtexBox("---------开始LOG日志上传----------"); ClearRichText(); //第一步 查看是否填写日志目录 Boolean tt_flag1 = false; string tt_frompath = ""; if (!this.textBox6.Text.Equals("")) { PutListViewData("第一步:已选择LOG存储目录,goon"); tt_flag1 = true; } else { PutListViewData("第一步:没有选择LOG存储目录,over"); } //第二步 查看是否存在bak目录,不存在就创建一个目录 Boolean tt_flag2 = false; string tt_bpath = this.textBox6.Text + @"\log"; if (tt_flag1) { if (!Directory.Exists(tt_bpath)) { Directory.CreateDirectory(tt_bpath); PutListViewData("第二步:没有log目录,新建一个目录"); } else { PutListViewData("第二步:已存在log目录"); } tt_flag2 = true; } //第三步获取带上传目录信息 Boolean tt_flag3 = false; if (tt_flag1 && tt_flag2) { string tt_filenumber = GetLogText(); tt_flag3 = true; PutListViewData("第三步:获取到上传文件数目:" + tt_filenumber); } //第四步获取上传目录 Boolean tt_flag4 = false; string tt_sevicepath = ""; string tt_taskscode = ""; if (tt_flag1 && tt_flag2 && tt_flag3) { //tt_sevicepath = GetUploadPath(); tt_sevicepath = GetUploadPath2(tt_pcname); tt_taskscode = this.textBox5.Text.Trim(); tt_flag4 = true; PutListViewData("第四步:获取到上传文件目录名:" + tt_sevicepath); PutListViewData("工单号:" + tt_taskscode); } //第五步在在目录中循环 Boolean tt_flag5 = false; string tt_task = this.textBox5.Text; int tt_loadsuccess = 0; int tt_logtosave = 0; //LOG数据保存的数据库成功数量 int tt_movefile = 0; if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4) { PutListViewData("第五步:开始数据文件上传操作"); string tt_logpath; string tt_newname; string tt_file; string tt_path = this.textBox6.Text; int tt_textnumber = 0; DirectoryInfo folder = new DirectoryInfo(tt_path); foreach (FileInfo file in folder.GetFiles("*.csv")) { setRichtexBox("--- " + tt_textnumber.ToString() + " ----"); //第1步,获取文件名及路径 tt_logpath = file.FullName; tt_frompath = tt_logpath; PutListViewData("1、文件路径:" + tt_logpath); //第2步 获取老的文件名 tt_file = file.Name; PutListViewData("2、老文件名:" + tt_file); //第3步 获取新的文件名 tt_newname = GetNewName(tt_file); PutListViewData("3、新文件名:" + tt_newname); //第4步 上传数据 //------以下加这个数据读取------- tt_dt = Csv2DataSet(tt_logpath); Boolean tt_saveflag = Dataset1.saveDataset2Database2(tt_dt, tt_taskscode, tt_newname, tt_conn); if (tt_saveflag) { tt_logtosave++; PutListViewData("4、数据上传成功."); } else { PutListViewData("4、数据保存上传失败-----!!!!"); } //第5步 上传文件 Boolean tt_uploadflag = false; if (tt_saveorup == "数据日志上传" && tt_saveflag) { tt_uploadflag = AutoUploadFile(sip, tt_logpath, tt_sevicepath, tt_newname); if (tt_uploadflag) { PutListViewData("5、该文件上传成功."); tt_loadsuccess++; } else { PutListViewData("5、该文件上传失败-----!!!!"); } } else { PutListViewData("5、该文件设定不需要上传."); } //第6步 记录数据 if (tt_uploadflag) { string tt_sql = "insert odc_logupload (Ftaskcode,Flogname,Fnewname,Fpath,Fdate) " + "values( '" + tt_task + "','" + tt_file + "','" + tt_newname + "','" + tt_sevicepath + "',getdate() )"; int tt_dbrecord = Dataset1.ExecCommand(tt_sql, tt_conn); if (tt_dbrecord > 0) { PutListViewData("6、该记录到数据库成功"); } else { PutListViewData("6、该记录到数据库失败"); } } //第7步获取转移路径及文件名 string tt_movepath = tt_bpath + @"\" + tt_file; if (tt_uploadflag) { PutListViewData("7、转移的文件路径名:" + tt_movepath); } //第8步 将数据移到log目录中 if (tt_saveflag) { Boolean tt_moveflag = fileMove(tt_frompath, tt_movepath); if (tt_moveflag) { PutListViewData("8、文件转移成功:"); tt_movefile++; } else { PutListViewData("8、文件转移不成功:"); } } tt_textnumber++; } if (tt_textnumber == tt_loadsuccess || tt_textnumber == tt_logtosave) { tt_flag5 = true; PutListViewData("第五步、数据全部上传成功"); } else { PutListViewData("第五步、数据没有全部上传成功,请检查"); } } //最后总结 if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4 && tt_flag5) { this.label15.Text = tt_loadsuccess.ToString(); this.label23.Text = tt_movefile.ToString(); this.label33.Text = tt_logtosave.ToString(); GetLogUploadFile(); this.listView1.BackColor = Color.Chartreuse; //this.richTextBox2.BackColor = Color.Chartreuse; } else { this.label15.Text = tt_loadsuccess.ToString(); this.label23.Text = tt_movefile.ToString(); this.label33.Text = tt_logtosave.ToString(); this.listView1.BackColor = Color.Red; //this.richTextBox2.BackColor = Color.Red; } }
//主方法 private void LogStationPass() { //数据初始化 setRichtexBox("---开始新的过站---"); DataSet ds = null; clearCrean(); //this.label7.Text = Set_Next_Station("XZWJ0252618V000021", "3160"); //第一步 查看是否填写日志目录 Boolean tt_flag1 = false; if (!this.textBox3.Text.Equals("")) { setRichtexBox("第1步:已选择LOG存储目录,goon"); tt_flag1 = true; } else { setRichtexBox("第1步:没有选择LOG存储目录,over"); } //第二步 查看是否存在bak目录,不存在就创建一个目录 Boolean tt_flag2 = false; if (tt_flag1) { string tt_bpath = this.textBox3.Text + @"\bak"; if (!Directory.Exists(tt_bpath)) { Directory.CreateDirectory(tt_bpath); setRichtexBox("第2步:没有bak目录,新建一个目录"); } else { setRichtexBox("第2步:已存在bak目录"); } tt_flag2 = true; } //第三步 获取待过站信息 Boolean tt_flag3 = false; if (tt_flag1 && tt_flag2) { string tt_filenumber = GetLogText(); tt_flag3 = true; setRichtexBox("第3步:获取到待测文件:" + tt_filenumber); } //第四步 获取站位信息 Boolean tt_flag4 = false; if (tt_flag1 && tt_flag2 && tt_flag3) { ds = GetStationInfo(); tt_flag4 = true; setRichtexBox("第4步:已获取待测站位信息"); } //第五步 获取bak目录信息 Boolean tt_flag5 = false; if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4) { GetStationPassFile(); tt_flag5 = true; setRichtexBox("第5步:已获取bak目录信息"); } //第六步开始过站操作 Boolean tt_flag6 = false; if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4 && tt_flag5) { int tt_passs = 0; int tt_fail = 0; int tt_notext = 0; string tt_pcba = ""; string tt_hostlable = ""; string tt_longstr = ""; string tt_textfile = ""; string tt_textfile2 = ""; string tt_passinfo = ""; setRichtexBox("第6步:开始过站"); if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { #region 过站循环 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { tt_pcba = ds.Tables[0].Rows[i].ItemArray[1].ToString(); //单板条码 tt_hostlable = ds.Tables[0].Rows[i].ItemArray[2].ToString(); //主机条码 tt_longstr = ds.Tables[0].Rows[i].ItemArray[3].ToString(); //32位串码 tt_textfile = this.textBox3.Text + @"\" + tt_longstr + ".txt"; //文件名1 tt_textfile2 = this.textBox3.Text + @"\bak\" + tt_longstr + ".txt"; //文件名2 setRichtexBox("------------" + i.ToString() + "------------"); setRichtexBox(tt_pcba); setRichtexBox(tt_hostlable); setRichtexBox(tt_longstr); setRichtexBox(tt_textfile); //第一步 文件查找 Boolean tt_flag61 = false; if (File.Exists(tt_textfile)) { tt_flag61 = true; setRichtexBox("6.1、文件存在"); } else { setRichtexBox("6.1、文件不存在"); tt_notext++; } //第二步 过站 Boolean tt_flag62 = false; if (tt_flag61) { tt_passinfo = Set_Next_Station(tt_pcba, this.textBox2.Text); if (tt_passinfo == "1") { tt_flag62 = true; tt_passs++; setRichtexBox("6.2、过站成功:" + tt_passinfo); } else { tt_fail++; setRichtexBox("6.2、过站不成功:" + tt_passinfo); } } //第三步 文件转移 Boolean tt_flag63 = false; if (tt_flag61 && tt_flag62) { Boolean tt_moveflag = fileMove(tt_textfile, tt_textfile2); if (tt_moveflag) { setRichtexBox("6.3、文件转移成功:"); } else { setRichtexBox("6.3、文件转移不成功:"); } tt_flag63 = true; } //第四步信息记录 if (tt_flag61 && tt_flag62 && tt_flag63) { string tt_sql = "insert into ODC_Analysis_Log (sn,cmcc_sn,analysisDate) " + " values('" + tt_pcba + "','" + tt_hostlable + "',getdate()) "; int tt_num = Dataset1.ExecCommand(tt_sql, tt_conn); if (tt_num > 0) { setRichtexBox("6.4、数据记录成功:"); } else { setRichtexBox("6.4、数据记录不成功:"); } } } #endregion } else { setRichtexBox("没有可以过站的数据"); } tt_flag6 = true; this.label18.Text = tt_passs.ToString(); this.label19.Text = tt_fail.ToString(); this.label21.Text = tt_notext.ToString(); } if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4 && tt_flag5 && tt_flag6) { this.richTextBox3.BackColor = Color.Chartreuse; } else { this.richTextBox3.BackColor = Color.Red; } }
//开始打印 private void putPrintToStar() { //ScanDataInitial(); setRichtexBox("-----" + tt_printtime.ToString() + "--------"); //第一步获取MAC Boolean tt_flag1 = false; string tt_taskscode = this.textBox1.Text.Trim(); string tt_shortmac = ""; string tt_longmac = ""; string tt_gpan = ""; string tt_sql = "select top 1 mac, sn from odc_macinfo " + "where taskscode = '" + tt_taskscode + "' and state is NULL " + "order by mac "; DataSet ds = Dataset1.GetDataSet(tt_sql, tt_conn); if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { tt_longmac = ds.Tables[0].Rows[0].ItemArray[0].ToString(); tt_gpan = ds.Tables[0].Rows[0].ItemArray[1].ToString(); tt_shortmac = GetShortMac(tt_longmac); this.label7.Text = tt_shortmac; this.label8.Text = tt_longmac; this.label9.Text = tt_gpan; tt_flag1 = true; setRichtexBox("1、找到一个可打印的MAC:" + tt_longmac + ",GPSN:" + tt_gpan + ",over"); PutLableInfor("MAC查询完毕"); } else { setRichtexBox("1、没有可打印的MAC:over"); PutLableInfor("MAC查询完毕"); } //第二步 打印 Boolean tt_flag2 = false; if (tt_flag1) { try { GetParaDataPrint(1); tt_flag2 = true; setRichtexBox("2、完成MAC打印:goon"); } catch { setRichtexBox("2、打印失败请检查:over"); } } //第三步修改MAC状态 Boolean tt_flag3 = false; if (tt_flag2) { string tt_updata = "update odc_macinfo set state = 1, Fnameplate = CONVERT(varchar, getdate(),120) " + "where taskscode = '" + tt_taskscode + "' and mac = '" + tt_longmac + "' "; int tt_int = Dataset1.ExecCommand(tt_updata, tt_conn); if (tt_int > 0) { tt_flag3 = true; setRichtexBox("3、MAC状态值修改完毕:goon"); } else { setRichtexBox("3、MAC:" + tt_longmac + ",状态值修改不成功:-----over"); PutLableInfor("MAC:" + tt_longmac + ", 状态值修改不成功"); } } //第四步显示MAC值 if (tt_flag3) { PutListViewData(tt_longmac, tt_gpan); this.richTextBox1.BackColor = Color.Chartreuse; } else { timer1.Stop(); this.richTextBox1.BackColor = Color.Red; } }
//单板扫描 private void textBox2_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { //开始单板扫描 this.label13.Text = null; string tt_scanmac = this.textBox2.Text.Trim(); string tt_scanpcbasn = tt_scanmac.Replace(":", "");; string tt_task = this.textBox1.Text.Trim(); string tt_mac = tt_scanpcbasn; this.richTextBox1.Text = null; this.richTextBox1.BackColor = Color.White; setRichtexBox("------开始扫描单板号-------"); //第一步位数判断 Boolean tt_flag1 = false; tt_flag1 = CheckStrLengh(this.textBox2.Text.Trim(), this.textBox3.Text); //第二步包含符判断 Boolean tt_flag2 = false; if (tt_flag1) { tt_flag2 = CheckStrContain(this.textBox2.Text.Trim(), this.textBox4.Text.Trim()); } //第三步 是否超计划老化判断 Boolean tt_flag3 = false; if (tt_flag1 && tt_flag2) { tt_alreadyoldnumber = Convert.ToInt32(this.label19.Text); tt_shouldoldnumber = Convert.ToInt32(this.label18.Text); if (tt_alreadyoldnumber <= tt_shouldoldnumber) { tt_flag3 = true; setRichtexBox("3、已老化数量还没有到应老化数量,goon"); } else { setRichtexBox("3、已老化数量已超过应老化数量,不能再扫描了,over"); PutLableInfor("已老化数量已超过应老化数量!"); } } //第四步 判断是否已老化 Boolean tt_flag4 = false; if (tt_flag1 && tt_flag2 && tt_flag3) { string tt_sql4 = "select COUNT(1), sum(case when ageing = '1' then 1 else 0 end) N01,min(maclable) N02 " + "from ODC_ALLLABLE where TASKSCODE = '" + tt_task + "' and (PCBASN = '" + tt_scanpcbasn + "' or maclable = '" + tt_scanpcbasn + "') "; string[] tt_array4 = new string[3]; tt_array4 = Dataset1.GetDatasetArray(tt_sql4, tt_conn); if (tt_array4[0] == "1") { if (tt_array4[1] == "0") { tt_flag4 = true; tt_mac = tt_array4[2]; setRichtexBox("4、该单板还没进老化,可以老化,MAC:" + tt_mac + ",goon"); } else { setRichtexBox("4、该单板已经进老化,不能再扫描了,over"); PutLableInfor("该单板已经进老化!不用再扫描"); } } else { setRichtexBox("4、该工单下没有发现该单板,确认是否工单选错了,或单板拿错了,over"); PutLableInfor("该工单下没有发现该单板,请检查!"); } } //第五步站位判断 Boolean tt_flag5 = false; if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4) { string tt_code = this.label22.Text; string tt_sql5 = "select count(1),min(ccode),min(ncode) from odc_routingtasklist " + "where pcba_pn = '" + tt_mac + "' and napplytype is null "; string[] tt_array5 = new string[3]; tt_array5 = Dataset1.GetDatasetArray(tt_sql5, tt_conn); if (tt_array5[0] == "1") { if (tt_array5[2] == tt_code) { tt_flag5 = true; setRichtexBox("5、该单板有待测站位,站位:" + tt_array5[1] + "--->" + tt_array5[2] + ",可以老化扫描 goon"); } else { setRichtexBox("5、该单板待测站位不在" + tt_code + ",站位:" + tt_array5[1] + "--->" + tt_array5[2] + ",不可以老化扫描 over"); PutLableInfor("该单板当前站位:" + tt_array5[2] + "不在" + tt_code + "站位!不能老化"); } } else { setRichtexBox("5、没有找到待测站位,或有多条待测站位,流程异常,over"); PutLableInfor("没有找到待测站位,或有多条待测站位,流程异常!"); } } //第六步 老化表做记录 Boolean tt_flag6 = false; if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4 && tt_flag5) { string tt_sql6 = "insert into ODC_BARCODELH(BARCODE,TASKSCODE,Fdate) " + "values('" + tt_mac + "','" + tt_task + "',getdate() ) "; int tt_exec6 = Dataset1.ExecCommand(tt_sql6, tt_conn); if (tt_exec6 > 0) { tt_flag6 = true; setRichtexBox("6、数据已成功记录到老化表ODC_BARCODELH,goon"); } else { setRichtexBox("6、数据没有记录到老化表ODC_BARCODELH,over"); PutLableInfor("数据没有记录到老化表,请再次扫描!"); } } //第七步 修改关联表状态 Boolean tt_flag7 = false; if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4 && tt_flag5 && tt_flag6) { string tt_sql7 = "update ODC_ALLLABLE set AGEING = '1' " + "where TASKSCODE = '" + tt_task + "' and (PCBASN = '" + tt_scanpcbasn + "' or maclable = '" + tt_mac + "') "; int tt_exec7 = Dataset1.ExecCommand(tt_sql7, tt_conn); if (tt_exec7 > 0) { tt_flag7 = true; setRichtexBox("7、关联表数据已更新成功,goon"); } else { setRichtexBox("7、关联表数据没有更新成功,over"); PutLableInfor("关联表数据没有更新成功,请再次扫描!"); } } //最后判断 if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4 && tt_flag5 && tt_flag6 && tt_flag7) { GetProductInfor(); PutLableInfor("老化记录成功,请继续扫描!"); this.richTextBox2.Text = tt_scanpcbasn + "\n" + this.richTextBox2.Text; this.richTextBox1.BackColor = Color.Chartreuse; } else { this.richTextBox1.BackColor = Color.Red; } textBox2.Focus(); textBox2.SelectAll(); } }
//彩盒条码扫描 private void textBox7_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { this.label13.Text = null; this.label14.Text = null; string tt_boxlable = this.textBox7.Text.ToUpper().Trim(); string tt_pcbasn = ""; //第一步位数效验 Boolean tt_flag1 = false; if (CheckStrLengh(tt_boxlable, this.textBox6.Text)) { tt_flag1 = true; } else { this.label13.Text = "位数不对"; } //第二步 包含效验 Boolean tt_flag2 = false; if (tt_flag1) { if (CheckStrContain(tt_boxlable, this.textBox5.Text)) { tt_flag2 = true; } else { this.label13.Text = "包含符不对"; } } //第三步 数据判断 Boolean tt_flag3 = false; if (tt_flag1 && tt_flag2) { string tt_sql4 = "select count(1),min(T2.pcbasn),min(pageperson) " + "from odc_package T1 " + "left outer join odc_alllable T2 " + "on T1.pasn = T2.pcbasn " + "where T1.taskcode = '" + this.textBox1.Text + "' and T1.PAGESN = '" + tt_package + "' " + "and T2.boxlable = '" + tt_boxlable + "' "; string[] tt_array4 = new string[3]; tt_array4 = Dataset1.GetDatasetArray(tt_sql4, tt_conn); if (tt_array4[0] == "1") { if (tt_array4[2] == "中箱已比对") { this.label13.Text = "亲,该条码已比对,不用再比对了"; } else { tt_pcbasn = tt_array4[1]; tt_flag3 = true; } } else { this.label13.Text = "该箱号,没有找到对应的彩盒号"; } } //第四步 记录数据 Boolean tt_flag4 = false; if (tt_flag1 && tt_flag2 && tt_flag3) { string tt_update = "update odc_package set pageperson = '中箱已比对' " + "where taskcode = '" + this.textBox1.Text + "' and pagesn = '" + this.textBox2.Text + "' and pasn = '" + tt_pcbasn + "' "; int tt_int = Dataset1.ExecCommand(tt_update, tt_conn); if (tt_int > 0) { tt_flag4 = true; } else { this.label13.Text = "数据没有更新成功请重试"; } } //最后判断 if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4) { this.label14.Text = "PASS"; this.label14.ForeColor = Color.Yellow; this.label14.BackColor = Color.Chartreuse; this.label20.Text = getCheckNumber(this.textBox1.Text, this.textBox2.Text); this.richTextBox1.Text = this.textBox7.Text + "\n" + this.richTextBox1.Text; //获取未扫描信息 getCheckNumber2(this.textBox1.Text, this.textBox2.Text); if (this.label19.Text == this.label20.Text) { this.textBox2.Enabled = true; this.textBox2.Focus(); this.textBox2.SelectAll(); } else { this.textBox7.Focus(); this.textBox7.SelectAll(); } } else { this.label14.Text = "FAIL"; this.label14.ForeColor = Color.Black; this.label14.BackColor = Color.Red; this.textBox7.Focus(); this.textBox7.SelectAll(); } } }
//主方法 private void LogStationPass() { //数据初始化 DataSet ds = null; clearCrean(); setRichtexBox("---开始新的过站---"); string tt_taskcode = this.textBox1.Text.Trim(); //工单号 string tt_code = this.textBox2.Text.Trim(); //工单号 if (this.radioButton1.Checked) { setRichtexBox("--按条件1文件名有单板号过站"); } else { setRichtexBox("--按条件2文件名有PASS+MAC过站"); } setRichtexBox("--工单号:" + tt_taskcode); setRichtexBox("--待测站位:" + tt_code); //第一步 查看是否填写日志目录 Boolean tt_flag1 = false; if (!this.textBox3.Text.Equals("")) { setRichtexBox("第1步:已选择LOG存储目录,goon"); tt_flag1 = getPathIstrue2(this.textBox3.Text.Trim()); if (tt_flag1) { setRichtexBox("第1.1步:选择的目录存在,goon"); } else { setRichtexBox("第1.1步:选择的目录不存在,over"); } } else { setRichtexBox("第1步:没有选择LOG存储目录,over"); } //第二步 查看是否存在bak目录,不存在就创建一个目录 Boolean tt_flag2 = false; if (tt_flag1) { string tt_bpath = this.textBox3.Text + @"\bak"; if (!Directory.Exists(tt_bpath)) { Directory.CreateDirectory(tt_bpath); setRichtexBox("第2步:没有bak目录,新建一个目录"); } else { setRichtexBox("第2步:已存在bak目录"); } tt_flag2 = true; } //第三步 获取待过站信息 Boolean tt_flag3 = false; if (tt_flag1 && tt_flag2) { string tt_filenumber = GetLogText(); tt_flag3 = true; setRichtexBox("第3步:获取到待测文件:" + tt_filenumber); } //第四步 获取站位信息 Boolean tt_flag4 = false; if (tt_flag1 && tt_flag2 && tt_flag3) { ds = GetStationInfo(); tt_flag4 = true; setRichtexBox("第4步:已获取待测站位信息"); } //第五步 获取bak目录信息 Boolean tt_flag5 = false; if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4) { GetStationPassFile(); tt_flag5 = true; setRichtexBox("第5步:已获取bak目录信息"); } //第六步开始过站操作 Boolean tt_flag6 = false; if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4 && tt_flag5) { int tt_passs = 0; int tt_fail = 0; int tt_notext = 0; string tt_mac = ""; string tt_pcba = ""; string tt_hostlable = ""; string tt_longstr = ""; string tt_textfile = ""; string tt_textfile2 = ""; string tt_passinfo = ""; string tt_logpatn = this.textBox3.Text.Trim(); setRichtexBox("第6步:开始过站"); if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { Boolean tt_flag01 = false; //老的方法先不用 #region 老的过站循环 if (tt_flag01) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { tt_pcba = ds.Tables[0].Rows[i].ItemArray[1].ToString(); //单板条码 tt_hostlable = ds.Tables[0].Rows[i].ItemArray[2].ToString(); //主机条码 tt_longstr = ds.Tables[0].Rows[i].ItemArray[3].ToString(); //32位串码 tt_textfile = this.textBox3.Text + @"\" + tt_longstr + ".txt"; //文件名1 tt_textfile2 = this.textBox3.Text + @"\bak\" + tt_longstr + ".txt"; //文件名2 setRichtexBox("------------" + i.ToString() + "------------"); setRichtexBox(tt_pcba); setRichtexBox(tt_hostlable); setRichtexBox(tt_longstr); setRichtexBox(tt_textfile); //第一步 文件查找 Boolean tt_flag61 = false; if (File.Exists(tt_textfile)) { tt_flag61 = true; setRichtexBox("6.1、文件存在"); } else { setRichtexBox("6.1、文件不存在"); tt_notext++; } //第二步 过站 Boolean tt_flag62 = false; if (tt_flag61) { tt_passinfo = Set_Next_Station(tt_pcba, this.textBox2.Text); if (tt_passinfo == "1") { tt_flag62 = true; tt_passs++; setRichtexBox("6.2、过站成功:" + tt_passinfo); } else { tt_fail++; setRichtexBox("6.2、过站不成功:" + tt_passinfo); } } //第三步 文件转移 Boolean tt_flag63 = false; if (tt_flag61 && tt_flag62) { Boolean tt_moveflag = fileMove(tt_textfile, tt_textfile2); if (tt_moveflag) { setRichtexBox("6.3、文件转移成功:"); } else { setRichtexBox("6.3、文件转移不成功:"); } tt_flag63 = true; } //第四步信息记录 if (tt_flag61 && tt_flag62 && tt_flag63) { string tt_sql = "insert into ODC_Analysis_Log (sn,cmcc_sn,analysisDate) " + " values('" + tt_pcba + "','" + tt_hostlable + "',getdate()) "; int tt_num = Dataset1.ExecCommand(tt_sql, tt_conn); if (tt_num > 0) { setRichtexBox("6.4、数据记录成功:"); } else { setRichtexBox("6.4、数据记录不成功:"); } } } } #endregion #region 新的过站方法 //在待过站数据里循环 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { tt_mac = ds.Tables[0].Rows[i].ItemArray[0].ToString(); //MAC tt_pcba = ds.Tables[0].Rows[i].ItemArray[1].ToString(); //单板条码 tt_hostlable = ds.Tables[0].Rows[i].ItemArray[2].ToString(); //主机条码 tt_longstr = ds.Tables[0].Rows[i].ItemArray[3].ToString(); //32位串码 setRichtexBox("------------" + i.ToString() + "------------"); setRichtexBox(tt_mac); setRichtexBox(tt_pcba); setRichtexBox(tt_hostlable); setRichtexBox(tt_longstr); //在LOG目录里循环 DirectoryInfo folder = new DirectoryInfo(tt_logpatn); string tt_logfilename = ""; Boolean tt_logfileflag = false; foreach (FileInfo file in folder.GetFiles("*.*")) { //第一步 获取文件名 tt_textfile = file.FullName; tt_logfilename = file.Name; tt_textfile2 = this.textBox3.Text + @"\bak\" + tt_logfilename; //文件名2 //setRichtexBox(tt_logfilename); //第二步 对文件名进判断 tt_logfileflag = false; tt_logfileflag = getFileNameCheck(this.radioButton1.Checked, tt_logfilename, tt_pcba, tt_mac); //第三步 如果是ture进行操作 if (tt_logfileflag) { //第6.1步提示找到一个文件 setRichtexBox("6.1 找到一个文件可以过站:" + tt_logfilename); setRichtexBox("文件1:" + tt_textfile); setRichtexBox("文件2:" + tt_textfile2); //第6.2 进行过站 bool tt_flag61 = false; tt_passinfo = Set_Next_Station(tt_pcba, this.textBox2.Text); if (tt_passinfo == "1") { tt_flag61 = true; tt_passs++; setRichtexBox("6.2、过站成功:" + tt_passinfo); } else { tt_fail++; setRichtexBox("6.2、过站不成功:" + tt_passinfo); } //第三步 文件转移 Boolean tt_flag62 = false; if (tt_flag61) { Boolean tt_moveflag = fileMove(tt_textfile, tt_textfile2); if (tt_moveflag) { setRichtexBox("6.3、文件转移成功:"); } else { setRichtexBox("6.3、文件转移不成功:"); } tt_flag62 = true; } //第四步信息记录 if (tt_flag61 && tt_flag62) { string tt_sql = "insert into ODC_Analysis_Log (sn,cmcc_sn,analysisDate,Fmac,Ffilename,Ftaskscode,Fcode) " + " values('" + tt_pcba + "','" + tt_hostlable + "',getdate(),'" + tt_mac + "','" + tt_logfilename + "','" + tt_taskcode + "','" + tt_code + "') "; int tt_num = Dataset1.ExecCommand(tt_sql, tt_conn); if (tt_num > 0) { setRichtexBox("6.4、数据记录成功:"); } else { setRichtexBox("6.4、数据记录不成功:"); } } } } } #endregion } else { setRichtexBox("没有可以过站的数据"); } tt_flag6 = true; this.label18.Text = tt_passs.ToString(); this.label19.Text = tt_fail.ToString(); this.label21.Text = tt_notext.ToString(); } if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4 && tt_flag5 && tt_flag6) { this.richTextBox3.BackColor = Color.Chartreuse; } else { this.richTextBox3.BackColor = Color.Red; } }
//异常处理 private void Button3_Click(object sender, EventArgs e) { //数据准备 string tt_scan = this.textBox1.Text.Trim().ToUpper(); string tt_scansn = GetShortMac(tt_scan); //第一步 条码确定 #region bool tt_flag1 = false; MessageBoxButtons messButton = MessageBoxButtons.OKCancel; DialogResult dr = MessageBox.Show("确定要对条码:" + tt_scansn + ",进行处理吗?这个处理主要是出来没有待测站位\\有多个待测站位\\没有1920站位的情况,请确认你输入的是单板号,还是MAC", "异常处理", messButton); if (dr == DialogResult.OK)//如果点击“确定”按钮 { tt_flag1 = true; } #endregion //第二步 确定MAC #region bool tt_flag2 = false; string tt_shortmac = ""; if (tt_flag1) { //选择的是MAC if (this.radioButton1.Checked == true) { tt_flag2 = true; tt_shortmac = tt_scansn; } //选择的是单板号 if (this.radioButton2.Checked == true) { string tt_sql2 = "select count(1),min(maclable),min(taskscode) from odc_alllable where pcbasn = '" + tt_scansn + "' "; string[] tt_array2 = new string[3]; tt_array2 = Dataset1.GetDatasetArray(tt_sql2, tt_conn); if (tt_array2[0] == "1") { tt_flag2 = true; tt_shortmac = tt_array2[1]; } else { MessageBox.Show("根据你输入的单板号:" + tt_scansn + ",无法在关联表中找到对应的MAC"); } } } #endregion //第三步 确定单板号 #region bool tt_flag3 = false; string tt_pcba = ""; if (tt_flag2) { //选择的单板号 if (this.radioButton2.Checked == true) { tt_flag3 = true; tt_pcba = tt_scansn; } //选择的是MAC if (this.radioButton1.Checked == true) { string tt_sql3 = "select count(1),min(pcbasn),min(taskscode) from odc_alllable where maclable = '" + tt_scansn + "' "; string[] tt_array3 = new string[3]; tt_array3 = Dataset1.GetDatasetArray(tt_sql3, tt_conn); if (tt_array3[0] == "1") { tt_flag3 = true; tt_pcba = tt_array3[1]; } else { MessageBox.Show("根据你输入的MAC:" + tt_scansn + ",无法在关联表中找到对应的单板号"); } } } #endregion //第四步 确定待测站位个数/是否缺失1920站位 #region int tt_intrownum = 0; string tt_nullmaxid = ""; string tt_nullminid = ""; bool tt_flag4 = false; bool tt_flag4_1 = false; if (tt_flag3) { string tt_sql4 = "select count(1),max(id),min(id) from odc_routingtasklist " + "where pcba_pn = '" + tt_shortmac + "' and napplytype is NULL "; string tt_sql4_1 = "select id,ncode,ccode from odc_routingtasklist " + "where pcba_pn = '" + tt_shortmac + "' and ncode = '2100' and napplytype = '1' order by id"; string tt_sql4_2 = "select count(1),max(id),min(id) from odc_routingtasklist " + "where pcba_pn = '" + tt_shortmac + "' and ncode = '2100' and napplytype = '1'"; DataSet tt_dataset1 = Dataset2.getMacAllCodeInfo(tt_shortmac, tt_conn); int tt_int1920id = Dataset2.getFirstCodeId(tt_dataset1); string[] tt_array4 = new string[3]; tt_array4 = Dataset1.GetDatasetArray(tt_sql4, tt_conn); string[] tt_array4_2 = new string[3]; tt_array4_2 = Dataset1.GetDatasetArray(tt_sql4_2, tt_conn); DataSet ds4_1 = Dataset1.GetDataSet(tt_sql4_1, tt_conn); if (ds4_1.Tables.Count > 0 && ds4_1.Tables[0].Rows.Count > 0 && tt_int1920id == -2) { string tt_id_1 = ds4_1.Tables[0].Rows[0].ItemArray[0].ToString(); string tt_ccode_1 = ds4_1.Tables[0].Rows[0].ItemArray[1].ToString(); string tt_ncode_1 = ds4_1.Tables[0].Rows[0].ItemArray[2].ToString(); if (int.Parse(tt_ccode_1) > 1920 && tt_id_1 == tt_array4_2[2]) { tt_flag4_1 = true; } } if (tt_array4[0] == "1" && tt_flag4_1 == false) { MessageBox.Show("该MAC:" + tt_shortmac + ",只有一个待测站位,没有异常,不需要处理"); } else if (tt_flag4_1) { int chang_ccode1920 = Change_ccode1920(tt_shortmac, tt_array4_2[2]); MessageBox.Show("该MAC:" + tt_shortmac + ",无1920站位的问题已处理完毕"); } else { tt_flag4 = true; tt_intrownum = GetStringToInt(tt_array4[0]); tt_nullmaxid = tt_array4[1]; tt_nullminid = tt_array4[2]; } } #endregion //第五步 确定异常问题 #region bool tt_flag5 = false; //没有待测站位 bool tt_flag6 = false; //多个待测站位 if (tt_flag4) { if (tt_intrownum == 0) { tt_flag5 = true; } else { if (tt_intrownum > 1) { tt_flag6 = true; } } } #endregion //第五步 没有待测站位处理 #region if (tt_flag5) { string tt_rowmaxid = ""; string tt_sql5 = "select count(1),max(id),0 from odc_routingtasklist " + "where pcba_pn = '" + tt_shortmac + "' "; string[] tt_array5 = new string[3]; tt_array5 = Dataset1.GetDatasetArray(tt_sql5, tt_conn); //查找最大的ID值 bool tt_flag51 = false; if (tt_array5[0] == "0") { MessageBox.Show("MAC:" + tt_shortmac + ",在站位表中没有找到记录"); } else { tt_flag51 = true; tt_rowmaxid = tt_array5[1]; } if (tt_flag51) { string tt_sql51 = "update odc_routingtasklist set napplytype = NULL " + "where pcba_pn = '" + tt_shortmac + "' and id = " + tt_rowmaxid; int tt_intexec = Dataset1.ExecCommand(tt_sql51, tt_conn); if (tt_intexec > 0) { MessageBox.Show("---OK---,操作1成功,该MAC:" + tt_shortmac + ",没有待测站位,现在已给出一个待测站位,请再次查询"); } else { MessageBox.Show("---Fail---,操作1失败,该MAC:" + tt_shortmac + ",没有待测站位,现在还是没有给出待测站位,请再次检查"); } } } #endregion //第六步 有多个待测站位,确定处理方法 #region bool tt_flag7 = false; bool tt_flag8 = false; string tt_maxid2 = ""; if (tt_flag6) { string tt_sql6 = "select count(1),max(id),0 from odc_routingtasklist " + "where pcba_pn = '" + tt_shortmac + "' "; string[] tt_array6 = new string[3]; tt_array6 = Dataset1.GetDatasetArray(tt_sql6, tt_conn); if (tt_array6[0] == "0") { MessageBox.Show("程序逻辑有问题,这是查找有多个待测站位的最大ID值,但是MAC:" + tt_shortmac + ",在站位表中没有发现有多个待测站位"); } else { tt_maxid2 = tt_array6[1]; if (tt_nullmaxid == tt_maxid2) //MAC的最大ID值和多个待测站位的最大ID值一致 { tt_flag7 = true; } else { tt_flag8 = true; } } } #endregion //第七步 有多个待测值 最大待测ID值和MAC的最大ID值一致(正常情况) #region if (tt_flag7) { string tt_sql7 = "update odc_routingtasklist set napplytype = 1 " + "where pcba_pn = '" + tt_shortmac + "' and napplytype is NULL and ID <" + tt_nullmaxid + " and id>=" + tt_nullminid; int tt_intexec7 = Dataset1.ExecCommand(tt_sql7, tt_conn); if (tt_intexec7 > 0) { MessageBox.Show("---OK---,操作2成功,该MAC:" + tt_shortmac + ",有多个待测站位,最大ID值就是待测站位,现在已只有一个待测站位,请再次查询"); } else { MessageBox.Show("---Fail---,操作2失败,该MAC:" + tt_shortmac + ",有多个待测站位,最大ID值就是待测站位,现在还是没有给出一个待测站位,请再次检查"); } } #endregion //第八步 有多个待测值 最大待测ID值和MAC的最大ID值不一致(非正常情况) #region if (tt_flag8) { //第8.1步 将最大ID值的设置为待测站位 string tt_sql81 = "update odc_routingtasklist set napplytype = NULL " + "where pcba_pn = '" + tt_shortmac + "' and id = " + tt_maxid2; int tt_intexec81 = Dataset1.ExecCommand(tt_sql81, tt_conn); //第8.2步 将其他的待测站位取消 string tt_sql82 = "update odc_routingtasklist set napplytype = 1 " + "where pcba_pn = '" + tt_shortmac + "' and napplytype is NULL and ID <=" + tt_nullmaxid + " and id>=" + tt_nullminid; int tt_intexec82 = Dataset1.ExecCommand(tt_sql82, tt_conn); //第8.3步 判断 if (tt_intexec81 > 0 && tt_intexec82 > 0) { MessageBox.Show("---OK---,操作3成功,该MAC:" + tt_shortmac + ",有多个待测站位,最大ID值不是待测站位,现在已只有一个待测站位,请再次查询"); } else { MessageBox.Show("---Fail---,操作4失败,该MAC:" + tt_shortmac + ",有多个待测站位,最大ID值不是待测站位,现在还是没有给出一个待测站位,请再次检查"); } } #endregion }
//维修跳转2100 private void textBox2_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { //数据初始化 PutLableInfor2(""); this.richTextBox2.Text = null; this.richTextBox2.BackColor = Color.White; string tt_scan1 = this.textBox2.Text.Trim(); string tt_scan2 = tt_scan1.Replace("-", ""); string tt_sacn3 = tt_scan2.Replace(":", ""); string tt_scansn = tt_sacn3.Replace(" ", ""); SetRichtexBox2("----开始站位跳转------"); //第一步位数判断 Boolean tt_flag1 = false; tt_flag1 = CheckStrLengh3(tt_scan1, this.comboBox3.Text); //第二步获取MAC,PCBA号 string tt_mac = ""; Boolean tt_flag2 = false; if (tt_flag1) { //选择的是MAC if (this.radioButton4.Checked == true) { tt_flag2 = true; tt_mac = tt_scansn; SetRichtexBox2("2、选择的MAC为:" + tt_mac); } //选择的是单板号 if (this.radioButton3.Checked == true) { string tt_sql = "select count(1),min(maclable),0 from odc_alllable where pcbasn = '" + tt_scansn + "' "; string[] tt_array = new string[3]; tt_array = Dataset1.GetDatasetArray(tt_sql, tt_conn); if (tt_array[0] == "1") { tt_flag2 = true; tt_mac = tt_array[1]; SetRichtexBox2("2、选择的MAC为:" + tt_mac); } else { SetRichtexBox2("2、该单板在alllable表中没有找到,"); PutLableInfor2("该单板在alllable表中没有找到,请确认"); } } } //第三步获取单板号 string tt_pcba = ""; string tt_taskcode = ""; Boolean tt_flag3 = false; if (tt_flag2) { //选择的单板号 if (this.radioButton3.Checked == true) { tt_flag3 = true; tt_pcba = tt_scansn; SetRichtexBox2("3、扫描单板号为:" + tt_pcba + ",goon"); } //选择的是MAC if (this.radioButton4.Checked == true) { string tt_sql3 = "select count(1),min(pcbasn),min(taskscode) from odc_alllable where maclable = '" + tt_scansn + "' "; string[] tt_array3 = new string[3]; tt_array3 = Dataset1.GetDatasetArray(tt_sql3, tt_conn); if (tt_array3[0] == "1") { tt_flag3 = true; tt_pcba = tt_array3[1]; tt_taskcode = tt_array3[2]; SetRichtexBox2("3、扫描单板号为:" + tt_pcba + ",工单号为:" + tt_taskcode + ",goon"); } else { SetRichtexBox2("3、该MAC在alllable表中没有找到,over"); PutLableInfor2("该MAC在alllable表中没有找到,请确认"); } } } //第四步 是否正在维修状态 Boolean tt_flag4 = false; if (tt_flag3) { string tt_sql5 = "select count(1),0,0 from repair where MAC='" + tt_mac + "' and type = 2 "; string[] tt_array5 = new string[3]; tt_array5 = Dataset1.GetDatasetArray(tt_sql5, tt_conn); if (tt_array5[0] == "1") { tt_flag4 = true; SetRichtexBox2("4、该产品处于维修状态,且已修好,over"); } else { SetRichtexBox2("4、该产品不在维修状态,goon"); PutLableInfor2("该产品不在维修状态,或还没有修好,请确认"); } } //第五步:查找当前站位 string tt_ncode = ""; string tt_riwid = ""; Boolean tt_flag5 = false; if (tt_flag4) { string tt_sql8 = "select count(1),min(id),min(ncode) from odc_routingtasklist " + "where pcba_pn = '" + tt_mac + "' and napplytype is null "; string[] tt_array8 = new string[3]; tt_array8 = Dataset1.GetDatasetArray(tt_sql8, tt_conn); if (tt_array8[0] == "1") { tt_riwid = tt_array8[1]; tt_ncode = tt_array8[2]; tt_flag5 = true; SetRichtexBox2("5、该单板有待测站位,ID号:" + tt_array8[1] + ",当前站位" + tt_array8[2] + ", goon"); } else { SetRichtexBox2("5、没有找到待测站位,或有多条待测站位,流程异常,over"); PutLableInfor2("没有找到待测站位,或有多条待测站位,流程异常!"); } } //第六步 开始跳站 Boolean tt_flag6 = false; if (tt_flag5) { string tt_sql = "update odc_routingtasklist set ncode = '2110' ,Fremark = 'PR001维修站位跳转' " + " where pcba_pn = '" + tt_mac + "' and napplytype is null and id = " + tt_riwid; int tt_exec = Dataset1.ExecCommand(tt_sql, tt_conn); if (tt_exec > 0) { tt_flag6 = true; SetRichtexBox2("6、跳转成功, goon"); } else { SetRichtexBox2("6、跳转不成功,over"); PutLableInfor2("跳转不成功,请确认!"); } } //最后显示 if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4 && tt_flag5 && tt_flag6) { this.richTextBox2.BackColor = Color.Chartreuse; PutLableInfor2("OK,跳转成功,请继续"); SetRichtexBox2("----OK,跳转成功,请继续----"); } else { this.richTextBox2.BackColor = Color.Red; SetRichtexBox2("----Sorry,跳转失败----"); // PutLableInfor2("Sorry,跳转失败,请确认"); } this.textBox2.Focus(); this.textBox2.SelectAll(); //-----------end----------- } }
//只要方法 private void LogStationPass() { //数据初始化 clearCrean(); setRichtexBox("---开始新的过站---"); string tt_taskcode = this.textBox1.Text.Trim(); //工单号 string tt_code = this.textBox2.Text.Trim(); //跳转站位 if (this.radioButton1.Checked) { setRichtexBox("--文件解析一:文件名格式:XZWJ03406177006350_07.24.15.37.24.csv"); } if (this.radioButton2.Checked) { setRichtexBox("--文件解析二:文件名格式:2017_XZRH03406177002507_7_24_13_34_50_961_SLOT_1.txt"); } if (this.radioButton3.Checked) { setRichtexBox("--文件解析三:文件名格式:1_XZWJ03386176039903_20170724_152923_PASS.txt"); } if (this.radioButton4.Checked) { setRichtexBox("--文件解析四:文件名格式:[Log]XZWJ03366176024292_6H36D5S.txt"); } //第一步 查看是否填写日志目录 string tt_path = this.textBox3.Text.Trim(); Boolean tt_flag1 = false; if (!tt_path.Equals("")) { setRichtexBox("第一步:已选择LOG存储目录,goon" + tt_path); tt_flag1 = getPathIstrue2(tt_path); if (tt_flag1) { setRichtexBox("第1.1步:选择的目录存在,goon," + tt_path); } else { setRichtexBox("第1.1步:选择的目录不存在,over," + tt_path); } } else { setRichtexBox("第一步:没有选择LOG存储目录,over"); } //第二步 查看是否存在bak目录,不存在就创建一个目录 Boolean tt_flag2 = false; if (tt_flag1) { string tt_bpath = this.textBox3.Text + @"\bak"; if (!Directory.Exists(tt_bpath)) { Directory.CreateDirectory(tt_bpath); setRichtexBox("第二步:没有bak目录,新建一个目录"); } else { setRichtexBox("第二步:已存在bak目录"); } tt_flag2 = true; } //第三步 获取待过站信息 Boolean tt_flag3 = false; string tt_filenumber = "0"; if (tt_flag1 && tt_flag2) { tt_filenumber = GetLogText(); tt_flag3 = true; setRichtexBox("第三步:获取到待测文件:" + tt_filenumber); } //第四步 开始在目录中循环 Boolean tt_flag4 = false; string tt_fullname = ""; string tt_file = ""; string tt_movefilename = ""; string tt_pcba = ""; int tt_intfilelength = 0; string tt_task = this.textBox1.Text; string tt_passinfo = ""; //过站返回信息 int tt_passs = 0; //过站成功数量 int tt_fail = 0; //过站失败数量 int tt_move = 0; //转移成功数量 int tt_record = 0; //记录成功数 if (tt_flag3) { setRichtexBox("第3步:开始LOG过站操作"); setRichtexBox("文件数:" + tt_filenumber); int tt_textnumber = 0; DirectoryInfo folder = new DirectoryInfo(tt_path); foreach (FileInfo file in folder.GetFiles("*.*")) { #region 文件目录循环 setRichtexBox("--- " + tt_textnumber.ToString() + " ----"); //第1步,获取文件名及路径 tt_fullname = file.FullName; setRichtexBox("1、文件路径:" + tt_fullname); //第2步,获取文件名 tt_file = file.Name; setRichtexBox("2、文件名:" + tt_file); //第3步, 移动后的文件路径 tt_movefilename = this.textBox3.Text + @"\bak\" + tt_file; //文件名2 setRichtexBox("3、移动的文件名:" + tt_movefilename); //第4步 文件解析 tt_pcba = getDecodeFileName(tt_file); setRichtexBox("4、解析单板号:" + tt_pcba); //第5步 文件名长度进行判断 bool tt_flag5 = false; tt_intfilelength = tt_pcba.Length; if (tt_intfilelength.ToString() == this.textBox11.Text.Trim()) { tt_flag5 = true; setRichtexBox("5、文件名解析长度正确,OK:" + tt_intfilelength.ToString()); } else { setRichtexBox("5、文件名解析长度不正确,fail:" + tt_intfilelength.ToString()); } //第6步 开始过站 bool tt_flag6 = false; tt_passinfo = Set_Next_Station(tt_pcba, this.textBox2.Text); if (tt_flag5) { if (tt_passinfo == "1") { tt_flag6 = true; tt_passs++; setRichtexBox("6、过站成功:OK," + tt_passinfo); } else { tt_fail++; setRichtexBox("6、过站不成功:Fail," + tt_passinfo); } } //第7步 文件转移 bool tt_flag7 = false; if (tt_flag6) { Boolean tt_moveflag = fileMove(tt_fullname, tt_movefilename); if (tt_moveflag) { tt_move++; setRichtexBox("7、文件转移成功:OK"); } else { setRichtexBox("7、文件转移不成功:Fail"); } tt_flag7 = true; } //第8步信息记录 if (tt_flag5 && tt_flag6 && tt_flag7) { string tt_sql = "insert into ODC_Analysis_Log (sn,cmcc_sn,analysisDate,Fmac,Ffilename,Ftaskscode,Fcode) " + " values('" + tt_pcba + "','" + tt_pcba + "',getdate(),'" + tt_pcba + "','" + tt_file + "','" + tt_taskcode + "','" + tt_code + "') "; int tt_num = Dataset1.ExecCommand(tt_sql, tt_conn); if (tt_num > 0) { tt_record++; setRichtexBox("8、数据记录成功:"); } else { setRichtexBox("8、数据记录不成功:"); } } tt_textnumber++; #endregion } this.label18.Text = tt_passs.ToString(); this.label19.Text = tt_fail.ToString(); this.label9.Text = tt_move.ToString(); this.label6.Text = tt_record.ToString(); tt_flag4 = true; } //最后总计 if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4) { this.richTextBox3.BackColor = Color.Chartreuse; } else { this.richTextBox3.BackColor = Color.Red; } }
//主要方法 private void LogUploadMain() { //数据初始化 setRichtexBox("---------开始LOG日志上传----------"); ClearRichText(); //第一步 查看是否填写日志目录 Boolean tt_flag1 = false; string tt_userselectpath = this.textBox6.Text; string tt_frompath = ""; if (!tt_userselectpath.Equals("")) { setRichtexBox("第一步:已选择LOG存储目录," + tt_userselectpath + ",goon"); tt_flag1 = true; } else { setRichtexBox("第一步:没有选择LOG存储目录,over"); } //第二步 查看是否存在bak目录,不存在就创建一个目录 Boolean tt_flag2 = false; if (tt_flag1) { if (!Directory.Exists(tt_bpath)) { Directory.CreateDirectory(tt_bpath); setRichtexBox("第二步:没有log目录,新建一个目录" + tt_bpath); } else { setRichtexBox("第二步:已存在log目录" + tt_bpath); } tt_flag2 = true; } //第三步获取x需要上传目录信息 Boolean tt_flag3 = false; if (tt_flag1 && tt_flag2) { string tt_filenumber = GetLogText2(tt_userselectpath); tt_flag3 = true; setRichtexBox("第三步:获取到上传文件数目:" + tt_filenumber); } //第四步获取上传目录 Boolean tt_flag4 = false; string tt_sevicepath = ""; if (tt_flag1 && tt_flag2 && tt_flag3) { tt_sevicepath = GetUploadPath2(tt_pcname); tt_flag4 = true; setRichtexBox("第四步:获取到上传文件目录名:" + tt_sevicepath); } //第五步在在老的方法,目录中循环 不需要用 #region Boolean tt_flag5 = false; string tt_task = this.textBox5.Text; int tt_loadsuccess = 0; int tt_movefile = 0; if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4 && tt_flag5) { setRichtexBox("第五步:开始文件上传操作"); string tt_logpath; string tt_newname; string tt_file; string tt_path = this.textBox6.Text; int tt_textnumber = 0; DirectoryInfo folder = new DirectoryInfo(tt_path); foreach (FileInfo file in folder.GetFiles("*.txt")) { setRichtexBox("--- " + tt_textnumber.ToString() + " ----"); //第1步,获取文件名及路径 tt_logpath = file.FullName; tt_frompath = tt_logpath; setRichtexBox("1、文件路径:" + tt_logpath); //第2步 获取老的文件名 tt_file = file.Name; setRichtexBox("2、老文件名:" + tt_file); //第3步 获取新的文件名 tt_newname = GetNewName(tt_file); setRichtexBox("3、新文件名:" + tt_newname); //第四步 上传文件 bool tt_uploadflag = AutoUploadFile(sip, tt_logpath, tt_sevicepath, tt_newname); if (tt_uploadflag) { setRichtexBox("4、该文件上传成功."); tt_loadsuccess++; } else { setRichtexBox("4、该文件上传失败-----!!!!"); } //第五步 记录数据 if (tt_uploadflag) { string tt_sql = "insert odc_logupload (Ftaskcode,Flogname,Fnewname,Fpath,Fdate) " + "values( '" + tt_task + "','" + tt_file + "','" + tt_newname + "','" + tt_sevicepath + "',getdate() )"; int tt_dbrecord = Dataset1.ExecCommand(tt_sql, tt_conn); if (tt_dbrecord > 0) { setRichtexBox("5、该记录到数据库成功"); } else { setRichtexBox("5、该记录到数据库失败"); } } //第6步获取转移路径及文件名 string tt_movepath = tt_bpath + @"\" + tt_file; if (tt_uploadflag) { setRichtexBox("6、转移的文件路径名:" + tt_movepath); } //第7步 将数据移到log目录中 if (tt_uploadflag) { Boolean tt_moveflag = fileMove(tt_frompath, tt_movepath); if (tt_moveflag) { setRichtexBox("7、文件转移成功:"); tt_movefile++; } else { setRichtexBox("7、文件转移不成功:"); } } tt_textnumber++; } if (tt_textnumber == tt_loadsuccess) { tt_flag5 = true; setRichtexBox("第五步、文件上全部上传成功"); } else { setRichtexBox("第五步、文件上没有全部上传成功,请检查"); } } #endregion //第六步查看ListView是否有信息 Boolean tt_flag6 = false; if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4) { int tt_listviewitem = this.listView1.Items.Count; if (tt_listviewitem > 0) { tt_flag6 = true; setRichtexBox("第六步、有需要上传的文件数:" + tt_listviewitem.ToString() + ",goon"); } else { tt_flag6 = false; setRichtexBox("第六步、没有有需要上传的文件数:" + tt_listviewitem.ToString() + ",goon"); } } //第七步 上传文件 Boolean tt_flag7 = false; string tt_task2 = this.textBox5.Text; int tt_loadsuccess2 = 0; int tt_movefile2 = 0; if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4 && tt_flag6) { setRichtexBox("第五步:开始文件上传操作"); string tt_logpath; string tt_newname; string tt_file; string tt_path = this.textBox6.Text; int tt_textnumber2 = 0; //ListView内循环 int tt_count = this.listView1.Items.Count; for (int i = 0; i < tt_count; i++) { #region listview循环 setRichtexBox("--- " + i.ToString() + " ----"); //第1步,获取文件名及路径 tt_logpath = this.listView1.Items[i].SubItems[1].Text; setRichtexBox("1、文件路径:" + tt_logpath); //第2步 获取原文件名 tt_file = this.listView1.Items[i].SubItems[2].Text; setRichtexBox("2、原文件名:" + tt_file); //第3步 获取新的文件名 tt_newname = GetNewName(tt_file); setRichtexBox("3、新文件名:" + tt_newname); //第四步 上传文件 bool tt_uploadflag = AutoUploadFile(sip, tt_logpath, tt_sevicepath, tt_newname); if (tt_uploadflag) { setRichtexBox("4、该文件上传成功."); tt_loadsuccess2++; } else { setRichtexBox("4、该文件上传失败-----!!!!"); } //第五步 记录数据 if (tt_uploadflag) { string tt_sql = "insert odc_logupload (Ftaskcode,Flogname,Fnewname,Fpath,Fdate) " + "values( '" + tt_task2 + "','" + tt_file + "','" + tt_newname + "','" + tt_sevicepath + "',getdate() )"; int tt_dbrecord = Dataset1.ExecCommand(tt_sql, tt_conn); if (tt_dbrecord > 0) { setRichtexBox("5、该记录到数据库成功"); } else { setRichtexBox("5、该记录到数据库失败"); } } //第6步获取转移路径及文件名 string tt_movepath = tt_bpath + @"\" + tt_file; if (tt_uploadflag) { setRichtexBox("6、转移的文件路径名:" + tt_movepath); } //第7步 将数据移到log目录中 if (tt_uploadflag) { Boolean tt_moveflag = fileMove(tt_logpath, tt_movepath); if (tt_moveflag) { setRichtexBox("7、文件转移成功:"); tt_movefile2++; } else { setRichtexBox("7、文件转移不成功:"); } } tt_textnumber2++; #endregion } if (tt_textnumber2 == tt_loadsuccess2) { tt_flag7 = true; setRichtexBox("第七步、文件上全部上传成功"); } else { setRichtexBox("第七步、文件上没有全部上传成功,请检查"); } } //最后总结 if (tt_flag1 && tt_flag2 && tt_flag3 && tt_flag4 && tt_flag6 && tt_flag7) { this.label15.Text = tt_loadsuccess2.ToString(); this.label23.Text = tt_movefile2.ToString(); GetLogUploadFile(); this.richTextBox2.BackColor = Color.Chartreuse; } else { this.label15.Text = tt_loadsuccess2.ToString(); this.label23.Text = tt_movefile2.ToString(); this.richTextBox2.BackColor = Color.Red; } }