diff --git a/PaintingPC/FrmLogin.cs b/PaintingPC/FrmLogin.cs index 2da211c..aff9324 100644 --- a/PaintingPC/FrmLogin.cs +++ b/PaintingPC/FrmLogin.cs @@ -67,7 +67,8 @@ namespace PaintingPC if (dt != null && dt.Rows.Count > 0) { this.Visible = false; - Form fr = new FrmQuality(false); + Program.UserName = textBox1.Text.Trim(); + Form fr = new FrmQuality(false); fr.Show(); } diff --git a/PaintingPC/FrmQuality.cs b/PaintingPC/FrmQuality.cs index e48c334..0d0d874 100644 --- a/PaintingPC/FrmQuality.cs +++ b/PaintingPC/FrmQuality.cs @@ -313,35 +313,44 @@ namespace PaintingPC /// private void btnOk_Click(object sender, EventArgs e) { - if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) + try { - MessageBox.Show("请先扫描数据,然后操作."); - return; - } - ShowHint(""); - #region 判断产品是否有颜色 - string colorName = string.Empty; - string partName = string.Empty; - if (CheckColor(ref colorName,ref partName) == false) return; - - - #endregion - ClearControlColor(SetControlGroup()); - btnAbt.BackColor = Color.Red; + if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) + { + MessageBox.Show("请先扫描数据,然后操作."); + return; + } + ShowHint(""); + #region 判断产品是否有颜色 + string colorName = string.Empty; + string partName = string.Empty; + if (CheckColor(ref colorName, ref partName) == false) return; + - bool rr = SaveBeforeVerify("合格"); - if(rr == false) + #endregion + ClearControlColor(SetControlGroup()); + btnAbt.BackColor = Color.Red; + + bool rr = SaveBeforeVerify("合格"); + if (rr == false) + { + return; + } + + //if (lastRst.Contains("合格")) + //{ + // MessageBox.Show("条码已判定为合格,无需重复判定"); + // Clear(); + // return; + //} + SaveRst("合格", colorName, partName, 1); + } + catch(Exception ex) { - return; + ShowHint("执行合格判定发生异常,异常原因:" + ex.Message); + MessageBox.Show("执行合格判定发生异常,异常原因:" + ex.Message); + Clear(); } - - //if (lastRst.Contains("合格")) - //{ - // MessageBox.Show("条码已判定为合格,无需重复判定"); - // Clear(); - // return; - //} - SaveRst("合格", colorName, partName,1); } void Clear() @@ -358,175 +367,205 @@ namespace PaintingPC /// private void btnNok_Click(object sender, EventArgs e) { - if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) - { - MessageBox.Show("请先扫描数据,然后操作."); - return; - } - - if (MessageBox.Show($"确认对[{txtBarCode.Text}]进行[其它]判定?", "操作确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; - ShowHint(""); - #region 必须选择缺陷位置与缺陷原因,否则无法保存 - if (CheckDefect() == false) return; - #endregion - - #region 判断产品是否有颜色 - string colorName = string.Empty; - string partName = string.Empty; - if (CheckColor(ref colorName, ref partName) == false) return; - #endregion - - int cs = Function.OtherTimes(txtBarCode.Text.Trim()); - if (cs > 0) - { - MessageBox.Show("条码"+ txtBarCode.Text.Trim() + "已存在判定为其它的记录,只允许判定1次."); - ShowHint("条码" + txtBarCode.Text.Trim() + "已存在判定为其它的记录,只允许判定1次."); - Clear(); - return; - } - - bool rr = SaveBeforeVerify("其它"); - if (rr == false) - { - return; - } - SaveRst("其它", colorName, partName,4); - } - - /// - /// 返喷按钮 - /// - /// - /// - private void btnRepair_Click(object sender, EventArgs e) - { - #region 可回喷次数 =1,不能打磨, =2 可以, 不能有两次质检结果为打磨 - if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) + try { - MessageBox.Show("请先扫描数据,然后操作."); - return; - } - - if (MessageBox.Show($"确认对[{txtBarCode.Text}]进行返喷操作?", "操作确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; - ShowHint(""); - string barcode = Function.UniteBarCodeToOne(txtBarCode.Text.Trim()); - int cs = Function.YiDaMoCiShu(barcode); //记录中已返喷次数 - - int keHuiPen = Function.keHuiPen(barcode); //基础数据中,可返喷次数 - if (keHuiPen > 1) - keHuiPen = 1; + if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) + { + MessageBox.Show("请先扫描数据,然后操作."); + return; + } - if (keHuiPen > 0 && cs < keHuiPen) - { + if (MessageBox.Show($"确认对[{txtBarCode.Text}]进行[其它]判定?", "操作确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; + ShowHint(""); #region 必须选择缺陷位置与缺陷原因,否则无法保存 - if (CheckDefect() == false) return; - #endregion #region 判断产品是否有颜色 string colorName = string.Empty; string partName = string.Empty; - if (CheckColor(ref colorName, ref partName) == false) return; #endregion - ClearControlColor(SetControlGroup()); - btnRepair.BackColor = Color.Yellow; - - //string lastRst = GetLastInspectRst(txtBarCode.Text.Trim()); - //if (lastRst.Contains("打磨")) - //{ - // ShowHint("条码已判定为返喷,无需重复判定"); - // MessageBox.Show("条码已判定为返喷,无需重复判定"); - // Clear(); - // return; - //} - - string s = _isWmsQuality == false ? "打磨" : "打磨WMS"; + int cs = Function.OtherTimes(txtBarCode.Text.Trim()); + if (cs > 0) + { + MessageBox.Show("条码" + txtBarCode.Text.Trim() + "已存在判定为其它的记录,只允许判定1次."); + ShowHint("条码" + txtBarCode.Text.Trim() + "已存在判定为其它的记录,只允许判定1次."); + Clear(); + return; + } - bool rr = SaveBeforeVerify("返喷"); + bool rr = SaveBeforeVerify("其它"); if (rr == false) { return; } - SaveRst(s, colorName, partName,9); - + SaveRst("其它", colorName, partName, 4); } - else + catch(Exception ex) { - ShowHint("根据该零件可回喷次数设置,不能判定为返喷或已超过返喷次数!"); - MessageBox.Show("根据该零件可回喷次数设置,不能判定为返喷或已超过返喷次数!"); + ShowHint("执行其它判定发生异常,异常原因:" + ex.Message); + MessageBox.Show("执行其它判定发生异常,异常原因:" + ex.Message); Clear(); - return; } - - #endregion } /// - /// 报废按钮 + /// 返喷按钮 /// /// /// - private void btnAbt_Click(object sender, EventArgs e) + private void btnRepair_Click(object sender, EventArgs e) { - if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) + try { - MessageBox.Show("请先扫描数据,然后操作."); - return; - } - - // if (MessageBox.Show($"确认对[{txtBarCode.Text}]进行报废操作?", "操作确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; - - UserInput(userName => { - - if (string.IsNullOrEmpty(userName)) + #region 可回喷次数 =1,不能打磨, =2 可以, 不能有两次质检结果为打磨 + if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) { - MessageBox.Show("报废必须录入用户名."); + MessageBox.Show("请先扫描数据,然后操作."); return; } - else + + if (MessageBox.Show($"确认对[{txtBarCode.Text}]进行返喷操作?", "操作确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; + ShowHint(""); + string barcode = Function.UniteBarCodeToOne(txtBarCode.Text.Trim()); + int cs = Function.YiDaMoCiShu(barcode); //记录中已返喷次数 + + int keHuiPen = Function.keHuiPen(barcode); //基础数据中,可返喷次数 + if (keHuiPen > 1) + keHuiPen = 1; + + if (keHuiPen > 0 && cs < keHuiPen) { - ShowHint(""); #region 必须选择缺陷位置与缺陷原因,否则无法保存 + if (CheckDefect() == false) return; + #endregion #region 判断产品是否有颜色 string colorName = string.Empty; string partName = string.Empty; + if (CheckColor(ref colorName, ref partName) == false) return; #endregion + ClearControlColor(SetControlGroup()); + btnRepair.BackColor = Color.Yellow; + //string lastRst = GetLastInspectRst(txtBarCode.Text.Trim()); - //if (lastRst.Contains("合格")) + //if (lastRst.Contains("打磨")) //{ - // MessageBox.Show("条码已判定为合格,无法重新判定为报废"); - // Clear(); - // return; - //} - //if (lastRst.Contains("报废")) - //{ - // MessageBox.Show("条码已判定为报废,无需重复报废"); + // ShowHint("条码已判定为返喷,无需重复判定"); + // MessageBox.Show("条码已判定为返喷,无需重复判定"); // Clear(); // return; //} - ClearControlColor(SetControlGroup()); - btnAbt.BackColor = Color.Red; + string s = _isWmsQuality == false ? "打磨" : "打磨WMS"; - bool rr = SaveBeforeVerify("报废"); + bool rr = SaveBeforeVerify("返喷"); if (rr == false) { return; } + SaveRst(s, colorName, partName, 9); - SaveRst("报废", colorName, partName,2, userName); - } - }); - + else + { + ShowHint("根据该零件可回喷次数设置,不能判定为返喷或已超过返喷次数!"); + MessageBox.Show("根据该零件可回喷次数设置,不能判定为返喷或已超过返喷次数!"); + Clear(); + return; + } + + #endregion + } + catch(Exception ex) + { + ShowHint("执行返喷操作发生异常,异常原因:"+ex.Message); + MessageBox.Show("执行返喷操作发生异常,异常原因:" + ex.Message); + Clear(); + } + + } + + /// + /// 报废按钮 + /// + /// + /// + private void btnAbt_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrEmpty(txtBarCode.Text.Trim())) + { + MessageBox.Show("请先扫描数据,然后操作."); + return; + } + + // if (MessageBox.Show($"确认对[{txtBarCode.Text}]进行报废操作?", "操作确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; + + //UserInput(userName => { + + //string userName = Program.UserName; + // if (string.IsNullOrEmpty(userName)) + // { + // MessageBox.Show("报废必须录入用户名."); + // return; + // } + // else + // { + ShowHint(""); + #region 必须选择缺陷位置与缺陷原因,否则无法保存 + if (CheckDefect() == false) return; + #endregion + + #region 判断产品是否有颜色 + string colorName = string.Empty; + string partName = string.Empty; + if (CheckColor(ref colorName, ref partName) == false) return; + #endregion + + //string lastRst = GetLastInspectRst(txtBarCode.Text.Trim()); + //if (lastRst.Contains("合格")) + //{ + // MessageBox.Show("条码已判定为合格,无法重新判定为报废"); + // Clear(); + // return; + //} + //if (lastRst.Contains("报废")) + //{ + // MessageBox.Show("条码已判定为报废,无需重复报废"); + // Clear(); + // return; + //} + + ClearControlColor(SetControlGroup()); + btnAbt.BackColor = Color.Red; + + bool rr = SaveBeforeVerify("报废"); + if (rr == false) + { + return; + } + + SaveRst("报废", colorName, partName, 2); + + // } + // }); + } + + catch(Exception ex) + { + ShowHint("执行报废操作发生异常,异常原因:" + ex.Message); + MessageBox.Show("执行报废操作发生异常,异常原因:" + ex.Message); + Clear(); + } + } /// /// @@ -537,7 +576,15 @@ namespace PaintingPC /// 0-不合格;1-合格;9-返喷 8-其他 void SaveRst(string state, string colorName, string partName,int isOK,string userName="") { + if (string.IsNullOrEmpty(userName)) + { + userName = Program.UserName; + } + if (string.IsNullOrEmpty(userName)) + { + } + string bcode = txtBarCode.Text.Trim(); //保存 string id = SaveInspect(state, colorName, partName, userName); @@ -545,10 +592,11 @@ namespace PaintingPC { if (!string.IsNullOrEmpty(id)) { - bool rst = SendToWms(txtBarCode.Text.Trim(), isOK); + string interfaceMsg = string.Empty; + bool rst = SendToWms(txtBarCode.Text.Trim(), isOK,ref interfaceMsg); if (rst == false) { - DeleteRepectRst(id); + DeleteRepectRst(id, "Web接口调用返回false,原因:" + interfaceMsg, bcode); } else { @@ -565,14 +613,19 @@ namespace PaintingPC } catch (Exception ex) { - ShowHint("合格WMS报工异常,原因:" + ex.Message); - MessageBox.Show("合格WMS报工异常,原因:" + ex.Message); - LogHelper.WriteErrLogBase("合格WMS报工调用WMS接口:" + ex.ToString(), MethodBase.GetCurrentMethod().Name); + if (ex.Message.Contains("WMS")) + { + DeleteRepectRst(id,"Web接口调用抛出异常,异常原因:" + ex.Message , bcode); + } + ShowHint(state+"-WMS报工异常,原因:" + ex.Message); + MessageBox.Show(state+"-WMS报工异常,原因:" + ex.Message); + LogHelper.WriteErrLogBase(state+"-WMS报工调用WMS接口:" + ex.ToString(), MethodBase.GetCurrentMethod().Name); } } - private void DeleteRepectRst(string id) + private void DeleteRepectRst(string id,string msg,string oneBarCode) { Function.DelInspectRst(id); + LogHelper.WriteErrLogBase($"接口异常,删除塑件[{oneBarCode}]喷涂质检记录,异常内容:" + msg, MethodBase.GetCurrentMethod().Name); } /// @@ -595,9 +648,10 @@ namespace PaintingPC /// /// /// 0:报废 1:合格 9:返喷 - bool SendToWms(string scanBarCode, int isOk) + bool SendToWms(string scanBarCode, int isOk,ref string errorMsg) { - + try + { WMSWebService webService = new WMSWebService(); webService.Url = ConfigurationManager.AppSettings["WMSWebServiceURL"].ToString(); //webService.Timeout = 1200000; @@ -605,25 +659,29 @@ namespace PaintingPC //上次异常提交 if (_lastJustDict.Count > 0) { - bool rst2 = webService.WMSSprayingForCS(Function.UniteBarCodeToOne(_lastJustDict.First().Key), int.Parse( _lastJustDict.First().Value), out errorReason); + bool rst2 = webService.WMSSprayingForCS(Function.UniteBarCodeToOne(_lastJustDict.First().Key), int.Parse(_lastJustDict.First().Value), out errorReason); } bool rst = webService.WMSSprayingForCS(Function.UniteBarCodeToOne(scanBarCode), isOk, out errorReason); if (rst == false) { - - MessageBox.Show("调用远程接口失败" ); - ShowHint("调用远程接口失败: " + errorReason); - + + MessageBox.Show("调用远程接口失败"); + ShowHint("调用远程接口失败: " + errorReason); + _lastJustDict.Clear(); _lastJustDict.Add(scanBarCode, isOk.ToString()); - + return false; } - _lastJustDict.Clear(); - return true; - + _lastJustDict.Clear(); + return true; + } + catch(Exception ex) + { + throw new Exception("WMS接口调用异常,异常原因:" + ex.Message); + } } /// @@ -1125,7 +1183,17 @@ namespace PaintingPC { string paintError = string.Empty; //喷涂线边质检,没有质检结果,查询老外数据库,取产品信息 - string[] info = Function.GetProductInfo2(barcode,ref paintError).Split(','); + + string foreignVal = Function.GetProductInfo2(barcode, ref paintError); + if (!string.IsNullOrEmpty(paintError)) + { + lbForeig.Text = paintError; + } + if (string.IsNullOrEmpty(foreignVal)) + { + return; + } + string[] info = foreignVal.Split(','); if (!string.IsNullOrEmpty(paintError)) { ShowHint(paintError); diff --git a/PaintingPC/Function.cs b/PaintingPC/Function.cs index 0d20a51..2c8dfea 100644 --- a/PaintingPC/Function.cs +++ b/PaintingPC/Function.cs @@ -130,7 +130,7 @@ namespace PaintingPC sql = " select * from tb_Product where PartNo = '" + partNo.Trim() + @"'"; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); } - LogHelper.WriteSysLogBase("[入参:]barcode=" + barcode+"[sql:]"+ sql, MethodBase.GetCurrentMethod().Name); + //LogHelper.WriteSysLogBase("[入参:]barcode=" + barcode+"[sql:]"+ sql, MethodBase.GetCurrentMethod().Name); return res; } catch (Exception ex) @@ -148,7 +148,7 @@ namespace PaintingPC { string sql = @" select * from tb_Defect where LineID = (select LineID from tb_Station where StationNo = '"+ stationNo +@"') "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); - LogHelper.WriteSysLogBase("[入参:]stationNo=" + stationNo + "[sql:]" + sql, MethodBase.GetCurrentMethod().Name); + //LogHelper.WriteSysLogBase("[入参:]stationNo=" + stationNo + "[sql:]" + sql, MethodBase.GetCurrentMethod().Name); return res; } catch (Exception ex) @@ -365,7 +365,7 @@ namespace PaintingPC } - LogHelper.WriteSysLogBase("[入参:]skidNo=" + skidNo + ";[出参:]colorInfo=" + colorInfo, MethodBase.GetCurrentMethod().Name); + //LogHelper.WriteSysLogBase("[入参:]skidNo=" + skidNo + ";[出参:]colorInfo=" + colorInfo, MethodBase.GetCurrentMethod().Name); return res; } catch (Exception ex) @@ -1687,7 +1687,7 @@ namespace PaintingPC UNION SELECT * from (select TOP 30 * from tb_InspectResult where barcode = '" + barcode + @"' AND InspectTimes = '3' ORDER BY createTime DESC) cc) dd order by createTime DESC "; res = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null); - LogHelper.WriteSysLogBase("[sql:]" + sql, MethodBase.GetCurrentMethod().Name); + // LogHelper.WriteSysLogBase("[sql:]" + sql, MethodBase.GetCurrentMethod().Name); return res; } catch (Exception ex) @@ -1811,7 +1811,7 @@ namespace PaintingPC return ""; } } - + private static string foreignSqlConnString = string.Empty; public static string GetProductInfo2(string barcode,ref string errorMsg) { string res = ""; @@ -1863,9 +1863,9 @@ namespace PaintingPC OR LTrim(RTrim(Side2_Data5))= @barcode OR LTrim(RTrim(Side2_Data6))= @barcode "; - string sqlConnString = ConfigurationManager.ConnectionStrings["SqlConnStringForeign"].ToString(); + foreignSqlConnString = ConfigurationManager.ConnectionStrings["SqlConnStringForeign"].ToString(); //object aa = SqlHelper.ExecuteScalar(sqlConnString, CommandType.Text, sql, null); - DataTable dtColor = SqlHelper.GetDataDateTable(sqlConnString, CommandType.Text, sql, null); + DataTable dtColor = SqlHelper.GetDataDateTable(foreignSqlConnString, CommandType.Text, sql, null); if (dtColor != null && dtColor.Rows.Count > 0) @@ -1966,6 +1966,14 @@ namespace PaintingPC { LogHelper.WriteLogManager(ex); LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name); + if(ex.Message.Contains("TCP Provider")) + { + errorMsg = "外库网络连接失败!"; + } + else + { + errorMsg = ex.Message; + } return res; } } diff --git a/PaintingPC/Program.cs b/PaintingPC/Program.cs index 58d21bf..b0fb89f 100644 --- a/PaintingPC/Program.cs +++ b/PaintingPC/Program.cs @@ -16,6 +16,7 @@ namespace PaintingPC public static string IP; public static string PicturePath; public static string station; + public static string UserName; /// /// 应用程序的主入口点。