From 0e9ba4ee9ee5c37a9379de1d352fd4973d3691f7 Mon Sep 17 00:00:00 2001 From: lu <123456> Date: 星期六, 02 八月 2025 08:56:20 +0800 Subject: [PATCH] bug --- DevApp/Gs.DevApp/DevFrm/Work/Frm_Work01.cs | 305 ++++++++++++++++++++++++++++++++++---------------- 1 files changed, 208 insertions(+), 97 deletions(-) diff --git a/DevApp/Gs.DevApp/DevFrm/Work/Frm_Work01.cs b/DevApp/Gs.DevApp/DevFrm/Work/Frm_Work01.cs index 1252990..d0799b7 100644 --- a/DevApp/Gs.DevApp/DevFrm/Work/Frm_Work01.cs +++ b/DevApp/Gs.DevApp/DevFrm/Work/Frm_Work01.cs @@ -1,21 +1,30 @@ -锘縰sing DevExpress.XtraGrid.Columns; +锘縰sing DevExpress.Office.Utils; +using DevExpress.XtraEditors; +using DevExpress.XtraGrid.Columns; +using DevExpress.XtraLayout.Utils; using Gs.DevApp.Entity; using Gs.DevApp.ToolBox; using Newtonsoft.Json; using Newtonsoft.Json.Linq; +using NModbus; using System; using System.Collections.Generic; using System.Data; +using System.Data.SqlClient; using System.Dynamic; using System.IO; +using System.Net.Sockets; using System.Text; using System.Windows.Forms; -using static DevExpress.XtraPrinting.Native.ExportOptionsPropertiesNames; namespace Gs.DevApp.DevFrm.Work { public partial class Frm_Work01 : DevExpress.XtraEditors.XtraForm { + string hostName = "192.168.60.51"; + int hostNamePoint = 502; + string strConn = "Data Source=192.168.1.146;Initial Catalog=GS_MES;User ID=mesUser;Password =qixi1qaz@WSXmes"; + bool isCleanDianJian = false; string _webServiceName = "WorkCollect/"; string dianJianPath = "";//鐢垫鍙栧�艰矾寰� string goodTag = "鈭�"; @@ -30,20 +39,46 @@ /// </summary> /// <param name="_fGx">宸ュ簭</param> /// <param name="_fBc">鐝</param> - public Frm_Work01(string _fGx, string _fBc) + /// <param name="_strinOther">鐩墠涓虹數妫�璺緞</param> + public Frm_Work01(string _fGx, string _fBc, string _strinOther) { InitializeComponent(); + gvMx1.IndicatorWidth = 60; + gvMx1.CustomDrawRowIndicator += (s, e) => + { + if (e.Info.IsRowIndicator && e.RowHandle >= 0) + e.Info.DisplayText = (e.RowHandle + 1).ToString(); + }; txt_gx.Text = _fGx; txt_bc.Text = _fBc; - this.Text = "宸ュ簭閲囬泦 - " + _fGx + " - " + _fBc; - if (!getConfig()) - { - Gs.DevApp.ToolBox.MsgHelper.ShowError("璇诲彇閰嶇疆鏂囦欢澶辫触锛岃鑱旂郴绠$悊鍛橈紒"); - } + txt_dianJianPath.Text = _strinOther; + dianJianPath = _strinOther; + this.Text = "宸ュ簭閲囬泦銆�" + _fGx + " - " + _fBc + "銆�"; + label8.Text = _fGx + "鏁伴噺"; addColumn(); txt_barCode.KeyDown += (s, e) => { - if (e.KeyCode == Keys.Enter) { addModel(goodTag); }; + if (e.KeyCode == Keys.Enter) + { + //濡傛灉鏄按妫�锛岃繕瑕佹壂宸ヤ綅 + if (txt_gx.Text.Trim() == fGxShouJian) + { + txt_gongWei.Focus(); + } + else + addModel(goodTag); + } + }; + txt_gongWei.KeyDown += (s, e) => + { + if (e.KeyCode == Keys.Enter) + { + //濡傛灉鏄按妫�锛屽彲浠ユ彁浜や簡 + if (txt_gx.Text.Trim() == fGxShouJian) + { + addModel(goodTag); + } + } }; btnGood.Click += (s, e) => { @@ -51,7 +86,14 @@ }; btnBad.Click += (s, e) => { - UcDictionarySelect frm = new UcDictionarySelect("缂洪櫡鎻忚堪", " s_type='宸ュ簭閲囬泦涓嶈壇椤圭洰'"); + string _barCode = txt_barCode.Text.Trim(); + if (string.IsNullOrEmpty(_barCode)) + { + Toast vm = new Toast(-1, "~璇峰厛鎵拷婧爜~"); + vm.Show(); + return; + } + UcDictionarySelect frm = new UcDictionarySelect("宸ュ簭涓嶈壇鎻忚堪", " a.s_type='宸ュ簭涓嶈壇鎻忚堪' and pid<>'00000000-0000-0000-0000-000000000000'"); frm.UpdateParent += (ss, ee) => { System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(); @@ -73,56 +115,31 @@ }; frm.ShowDialog(); }; + this.ActiveControl = this.txt_barCode; + txt_barCode.Focus(); } /// <summary> - /// 鍏堣鍙栭厤缃� + /// 鏍规嵁宸ュ簭锛屾瀯閫犱笉鍚岀被鍨嬬殑瀹炰綋锛岃鍙栦笉鍚岀殑鏁版嵁 /// </summary> + /// <param name="_barCode">鏉$爜</param> + /// <param name="_checkResult">缁撴灉</param> + /// <param name="_badDescription">涓嶈壇鎻忚堪</param> /// <returns></returns> - private bool getConfig() - { - string _where = " and 1=1 and defect_code='7001'"; - var pgq = new PageQueryModel(1, 999999, "a.defect_code", "asc", "", _where); - var json = JsonConvert.SerializeObject(pgq); - try - { - var strReturn = UtilityHelper.HttpPost("", "MesDefectCodeManager/GetListPage", json); - var dd = UtilityHelper.ReturnToTablePage(strReturn); - var dt = dd.rtnData.list; - if (dt != null && dt.Rows.Count > 0) - { - dianJianPath = dt.Rows[0]["defectName"].ToString(); - return true; - } - return false; - } - catch (Exception ex) - { - MsgHelper.Warning("鎻愮ず锛�" + ex.Message); - return false; - } - } - - /// <summary> - /// 璇诲彇瀹炰綋 - /// </summary> - /// <param name="_barCode"></param> - /// <param name="_checkResult"></param> - /// <param name="_badReson"></param> - /// <returns></returns> - private dynamic getObj(string _barCode, string _checkResult, string _badReson = "") + private dynamic getObj(string _barCode, string _checkResult, string _badDescription = "") { dynamic _obj = new ExpandoObject(); _obj.barCode = _barCode; _obj.checkResult = _checkResult;//妫�娴嬬粨鏋� _obj.processNo = txt_gx.Text.Trim();//宸ュ簭 _obj.banCi = txt_bc.Text.Trim();//鐝 - _obj.gongWei = txt_gw.Text.Trim();//宸ヤ綅 - _obj.badReson = _badReson.Trim();//涓嶈壇鍘熷洜 + _obj.gongWei = txt_gongWei.Text.Trim();//宸ヤ綅 + _obj.badDescription = _badDescription.Trim();//涓嶈壇鎻忚堪 if (txt_gx.Text.Trim() == fGxTouRu) { return _obj; } + //鐢垫 if (txt_gx.Text.Trim() == fGxDianJian) { string TM = ""; @@ -139,9 +156,8 @@ string myStr = File.ReadAllText(dianJianPath, Encoding.Default); if (myStr == "") { - return null; + return _obj; } - File.WriteAllText(dianJianPath, ""); JArray dsTemp = JArray.Parse(myStr); foreach (var ss in dsTemp) //鏌ユ壘鏌愪釜瀛楁涓庡�� { @@ -151,7 +167,7 @@ JN = (((JObject)ss)["JiaoNai"] == null) ? "" : ((JObject)ss)["JiaoNai"]["state"].ToString(); XL = (((JObject)ss)["XieLou"] == null) ? "" : ((JObject)ss)["XieLou"]["state"].ToString(); GV = (((JObject)ss)["GongLv"] == null) ? "" : ((JObject)ss)["GongLv"]["state"].ToString(); - JDV = (((JObject)ss)["JieDi"] == null) ? "" : ((JObject)ss)["JieDi"]["value"].ToString().Replace(" ", ", "); + JDV = (((JObject)ss)["JieDi"] == null) ? "" : ((JObject)ss)["JieDi"]["value"].ToString().Replace(" ", ","); JYV = (((JObject)ss)["JueYuan"] == null) ? "" : ((JObject)ss)["JueYuan"]["value"].ToString().Replace(" ", ", "); JNV = (((JObject)ss)["JiaoNai"] == null) ? "" : ((JObject)ss)["JiaoNai"]["value"].ToString().Replace(" ", ", "); XLV = (((JObject)ss)["XieLou"] == null) ? "" : ((JObject)ss)["XieLou"]["value"].ToString().Replace(" ", ", "); @@ -168,21 +184,27 @@ _obj.t009 = JNV; _obj.t010 = XLV; _obj.t011 = GVV; + if (isCleanDianJian == true) + File.WriteAllText(dianJianPath, ""); return _obj; } - + //姘存 if (txt_gx.Text.Trim() == fGxShouJian) { - string strCsl1 = "strCsl1"; - string strSw1 = "strSw1"; - string strCsl2 = "strCsl2"; - string strSw2 = "strSw2"; - string strCsl3 = "strCsl3"; - string strSw3 = "strSw3"; - string strCsl4 = "strCsl4"; - string strSw4 = "strSw4"; - string strCsl5 = "strCsl5"; - string strSw5 = "strSw5"; + string strCsl1 = "";//妯″紡1鍑烘按閲� + string strSw1 = "";//妯″紡1姘存俯 + string strCsl2 = ""; + string strSw2 = ""; + string strCsl3 = ""; + string strSw3 = ""; + string strCsl4 = ""; + string strSw4 = ""; + string strCsl5 = ""; + string strSw5 = ""; + string SJJG = "";//姘存鏌ョ粨鏋渙k銆乶g + string GWZT = "";//宸ヤ綅鐘舵�� + string SJJGZ = "";//姘存鏌ョ粨鏋�1 + (strCsl1, strSw1, SJJG, GWZT, SJJGZ) = getShuiJian(); _obj.t002 = strCsl1; _obj.t003 = strSw1; _obj.t004 = strCsl2; @@ -193,6 +215,13 @@ _obj.t009 = strSw4; _obj.t010 = strCsl5; _obj.t011 = strSw5; + _obj.t012 = SJJGZ; + _obj.t013 = GWZT; + return _obj; + } + //缁堟 + if (txt_gx.Text.Trim() == fGxZhongJian) + { return _obj; } return null; @@ -201,9 +230,9 @@ /// <summary> /// 涓婃姤瀹炰綋 /// </summary> - /// <param name="_checkResult">鍒ゅ畾缁撴灉</param> - /// <param name="_badReson">涓嶈壇鍘熷洜锛屽彲绌�</param> - private void addModel(string _checkResult, string _badReson = "") + /// <param name="_checkResult">缁撴灉锛氣垰</param> + /// <param name="_badDescription">涓嶈壇鎻忚堪</param> + private void addModel(string _checkResult, string _badDescription = "") { string _barCode = txt_barCode.Text.Trim(); if (string.IsNullOrEmpty(_barCode)) @@ -212,13 +241,7 @@ vm.Show(); return; } - dynamic _obj = getObj(_barCode, _checkResult, _badReson); - if (_obj == null) - { - Toast vm = new Toast(-1, "~璇诲彇鏁版嵁澶辫触锛岃妫�鏌ヨ澶噡"); - vm.Show(); - return; - } + dynamic _obj = getObj(_barCode, _checkResult, _badDescription); try { string strJson = UtilityHelper.HttpPost("", _webServiceName + "GetModel", JsonConvert.SerializeObject(_obj)); @@ -233,8 +256,10 @@ lbSum3.Text = dy.lbSum3; lbSum4.Text = dy.lbSum4; prog1.Position = dy.jd; - //鑹搧鍒楄〃 txt_barCode.ReadOnly = false; + if (txt_gx.Text.Trim() == fGxShouJian) + txt_gongWei.ReadOnly = false; + //鑹搧鍒楄〃 JObject _job = JObject.Parse(strJson); JArray array = new JArray(); foreach (var a in _job["rtnData"]["list"]) @@ -278,7 +303,7 @@ { Toast vm = new Toast((goodTag == "鈭�" ? 1 : -1), _msg); vm.Show(); - }; + } } else { @@ -291,13 +316,27 @@ Toast vm = new Toast(-1, ex.Message); vm.Show(); } + txt_barCode.Text = ""; + txt_gongWei.Text = ""; + this.ActiveControl = this.txt_barCode; + txt_barCode.Focus(); } /// <summary> - /// 澧炲姞鐢垫鍙栨暟鐨勫垪 + /// 澧炲姞鐢垫锛屾按妫�鐨勫垪 /// </summary> public void addColumn() { + //鍙湁鐢垫鎵嶆樉绀� + if (txt_gx.Text.Trim() == fGxDianJian) + layDianJian.Visibility = LayoutVisibility.Always; + else + layDianJian.Visibility = LayoutVisibility.Never; + //鍙湁姘存鎵嶆樉绀� + if (txt_gx.Text.Trim() == fGxShouJian) + layShuiJian.Visibility = LayoutVisibility.Always; + else + layShuiJian.Visibility = LayoutVisibility.Never; List<dynamic> _lst = new List<dynamic>(); if (txt_gx.Text.Trim() == fGxDianJian) { @@ -333,30 +372,25 @@ { ziduan = "t007", wenben = "鎺ュ湴缁撴灉", - kejian = true, - visibleIndex = 1, + visibleIndex = -1, }); _lst.Add(new { ziduan = "t009", wenben = "浜よ�愮粨鏋�", - kejian = true, - visibleIndex = 1, + visibleIndex = -1, }); _lst.Add(new { ziduan = "t010", wenben = "娉勬紡缁撴灉", - kejian = true, - visibleIndex = 1, + visibleIndex = -1, }); - _lst.Add(new { ziduan = "t011", wenben = "鍔熺巼缁撴灉", - kejian = true, - visibleIndex = 1, + visibleIndex = -1, }); } if (txt_gx.Text.Trim() == fGxShouJian) @@ -379,56 +413,54 @@ { ziduan = "t004", wenben = "鍑烘按閲�2", - kejian = true, - visibleIndex = 1, + visibleIndex = -1, }); _lst.Add(new { ziduan = "t005", wenben = "姘存俯2", - kejian = true, - visibleIndex = 1, + visibleIndex = -1, }); _lst.Add(new { ziduan = "t006", wenben = "鍑烘按閲�3", - kejian = true, - visibleIndex = 1, + visibleIndex = -1, }); _lst.Add(new { ziduan = "t007", wenben = "姘存俯3", - kejian = true, - visibleIndex = 1, + visibleIndex = -1, }); _lst.Add(new { ziduan = "t008", wenben = "鍑烘按閲�4", - kejian = true, - visibleIndex = 1, + visibleIndex = -1, }); _lst.Add(new { ziduan = "t009", wenben = "姘存俯4", - kejian = true, - visibleIndex = 1, + visibleIndex = -1, }); - _lst.Add(new { ziduan = "t010", wenben = "鍑烘按閲�5", - kejian = true, - visibleIndex = 1, + visibleIndex = -1, }); _lst.Add(new { ziduan = "t011", wenben = "姘存俯5", + visibleIndex = -1, + }); + _lst.Add(new + { + ziduan = "t012", + wenben = "鏁版嵁缁撴灉", kejian = true, visibleIndex = 1, }); @@ -438,11 +470,90 @@ GridColumn newColumn = new GridColumn(); newColumn.FieldName = item.ziduan; // 璁剧疆涓庢暟鎹簮瀵瑰簲鐨勫瓧娈靛悕 newColumn.Caption = item.wenben; // 璁剧疆鍒楃殑鏍囬 - //newColumn.Visible = item.visibleIndex; // 璁剧疆鍒楁槸鍚﹀彲瑙� newColumn.VisibleIndex = item.visibleIndex; // 璁剧疆鍒楃殑鏄剧ず椤哄簭 gvMx1.Columns.Add(newColumn); } } + + #region 璇诲彇姘存鏁版嵁 + private (string, string, string, string, string) getShuiJian() + { + string strCsl1 = ""; //妯″紡1鍑烘按閲� + string strSw1 = "";//妯″紡1姘存俯 + string SJJG = "";//姘存鏌ョ粨鏋渙k銆乶g + string GWZT = "";//宸ヤ綅鐘舵�� + string SJJGZ = "";//姘存鏌ョ粨鏋�1 + System.Text.StringBuilder sbSql1 = new StringBuilder(); + sbSql1.Append($"select MIG004,MIG005 from BASMIG(nolock) where MIG001='ShuiJianZhanWei01' and MIG003='{((BaseEdit)this.txt_gongWei).EditValue.ToString()}'"); + DataTable dataTable1 = this.GetDataTable(sbSql1.ToString(), "tmpBASMIG2"); + if (dataTable1 == null || dataTable1.Rows.Count <= 0) + { + ((BaseEdit)this.txt_gongWei).EditValue = (object)""; + LogHelper.Debug(this.ToString(), txt_gongWei.Text + "璇ユ按妫�绔欎綅鐮佷笉瀛樺湪锛岃纭锛�"); + //Toast vm = new Toast(-1, "璇ユ按妫�绔欎綅鐮佷笉瀛樺湪锛岃纭锛�"); + //vm.Show(); + } + else + { + ModbusFactory modbusFactory = new ModbusFactory(); + byte num1 = byte.Parse("1"); + ushort num2 = ushort.Parse("1"); + System.Text.StringBuilder sbSql2 = new StringBuilder(); + sbSql2.Append(string.Format($"select case when MIG006='D' then MIG003+{dataTable1.Rows[0][0]} else MIG003+{dataTable1.Rows[0][1]} end MIG003,MIG004 from BASMIG(nolock) where MIG001 = 'ShuiJianAddress01' order by MIG005")); + DataTable dataTable2 = GetDataTable(sbSql2.ToString(), "tmpBASMIG3"); + if (dataTable2 == null || dataTable2.Rows.Count <= 0) + { + ((BaseEdit)this.txt_gongWei).EditValue = (object)""; + LogHelper.Debug(this.ToString(), txt_gongWei.Text + "姘存鍦板潃涓嶅瓨鍦紝璇风‘璁わ紒"); + //Toast vm = new Toast(-1, "姘存鍦板潃涓嶅瓨鍦紝璇风‘璁わ紒"); + //vm.Show(); + } + else + { + try + { + IModbusMaster master = modbusFactory.CreateMaster(new TcpClient(this.hostName, this.hostNamePoint)); + master.Transport.ReadTimeout = 10000; + master.Transport.Retries = 10000; + strCsl1 = master.ReadHoldingRegisters(num1, ushort.Parse(dataTable2.Rows[0]["MIG003"].ToString()), num2)[0].ToString(); + strSw1 = (float.Parse(master.ReadHoldingRegisters(num1, ushort.Parse(dataTable2.Rows[1]["MIG003"].ToString()), num2)[0].ToString()) / 10f).ToString(); + ushort[] numArray = master.ReadHoldingRegisters(num1, ushort.Parse(dataTable2.Rows[2]["MIG003"].ToString()), num2); + SJJGZ = numArray[0].ToString(); + SJJG = numArray[0].ToString(); + SJJG = (SJJG == "1" ? "OK" : (SJJG == "2" ? "NG" : SJJG)); + GWZT = master.ReadCoils(num1, ushort.Parse(dataTable2.Rows[3]["MIG003"].ToString()), num2)[0].ToString(); + } + catch (Exception ex) + { + ((BaseEdit)this.txt_gongWei).EditValue = (object)""; + LogHelper.Debug(this.ToString(), txt_gongWei.Text + ex.Message); + //Toast vm = new Toast(-1, ex.Message); + //vm.Show(); + } + } + } + return (strCsl1, strSw1, SJJG, GWZT, SJJGZ); + } + private DataTable GetDataTable(string SQLString, string tmpBASMIG2) + { + using (var connection = new SqlConnection(strConn)) + { + var ds = new DataSet(); + try + { + connection.Open(); + var command = new SqlDataAdapter(SQLString, connection); + command.Fill(ds, tmpBASMIG2); + } + catch (SqlException ex) + { + LogHelper.Debug(this.ToString(), ex.Message); + } + return ds.Tables[0]; + } + } + #endregion + } } \ No newline at end of file -- Gitblit v1.9.3