From 655481176b286fa91ef9d171fd8cbfac2be2545a Mon Sep 17 00:00:00 2001 From: kingno <30263@KINGNO> Date: 星期四, 10 四月 2025 10:43:02 +0800 Subject: [PATCH] 打印机,数据库格式更新 --- src/Bro.M141.Process/M141Process_Mysql.cs | 122 ++++++++++++++++++++++++++++++---------- 1 files changed, 92 insertions(+), 30 deletions(-) diff --git a/src/Bro.M141.Process/M141Process_Mysql.cs b/src/Bro.M141.Process/M141Process_Mysql.cs index b9f00c8..17af1a5 100644 --- a/src/Bro.M141.Process/M141Process_Mysql.cs +++ b/src/Bro.M141.Process/M141Process_Mysql.cs @@ -1,5 +1,6 @@ 锘縰sing Bro.Common.Helper; using Bro.Common.Interface; +using Bro.Common.Model; using Bro.M135.Common; using MySql.Data.MySqlClient; using Newtonsoft.Json; @@ -11,6 +12,8 @@ using System.Text; using System.Threading.Tasks; using Windows.Globalization.PhoneNumberFormatting; +using Windows.Media.Ocr; +using static Org.BouncyCastle.Math.EC.ECCurve; using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView; namespace Bro.M141.Process @@ -22,14 +25,13 @@ string connStrLocal = "server=localhost;port=3306;user id=root;password=123456;database=BroDB;charset=utf8"; - #region 鍩虹鎿嶄綔 public void IniDBIP(string IP) { connStrAll = $"server={IP};port=3306;user id=root;password=123456;database=BroDB;charset=utf8"; } - public void Operatoremysql(string sql, string connStr)//鎿嶄綔 + public bool Operatoremysql(string sql, string connStr)//鎿嶄綔 { MySqlConnection con = new MySqlConnection(connStr); try @@ -41,12 +43,16 @@ con.Open(); MySqlCommand coon = new MySqlCommand(sql, con); coon.ExecuteNonQuery(); + con.Close(); } catch (Exception e) { - CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴撴搷浣滃紓甯� {sql} {e.ToString()}"); + con.Close(); + return false; + //CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴撴搷浣滃紓甯� {sql} {e.ToString()}"); } - con.Close(); + return true; + } public DataTable selectdt(string str, string connStr)//鏌ヨ琛ㄦ牸 @@ -62,12 +68,14 @@ con.Open(); MySqlDataAdapter da = new MySqlDataAdapter(str, con); da.Fill(dt); + con.Close(); } catch (Exception e) { - CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴撴煡璇㈠紓甯� {str} {e.ToString()}"); + //CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴撴煡璇㈠紓甯� {str} {e.ToString()}"); + con.Close(); + return null; } - con.Close(); return dt; } @@ -89,9 +97,8 @@ } catch (Exception e) { - CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴撴煡璇㈡暟鎹紓甯� {str} {e.ToString()}"); + //CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴撴煡璇㈡暟鎹紓甯� {str} {e.ToString()}"); } - con.Close(); return strr; } @@ -111,13 +118,22 @@ string str1 = "select id from forlocal order by id desc limit 1"; string index = selectmysql(str1, connStrLocal); - string str2 = $"delete from forlocal where id < ({index}-1000)"; - Operatoremysql(str2, connStrLocal); + if (!string.IsNullOrEmpty(index)) + { + string str2 = $"delete from forlocal where id < ({index}-1000)"; + Operatoremysql(str2, connStrLocal); + } + string mysqlstr = $"insert into forlocal (basketcode,pid,plcnum,sn,data,time) values('{pro.BasketCode}','{pro.PID}','{pro.SEQUENCE}','{pro.SN}','{JsonConvert.SerializeObject(pro, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All })}','{DateTime.Now.ToString("yyyyMMddHHmmss")}')"; - string mysqlstr = $"insert into forlocal (basketcode,pid,plcnum,sn,data,time) values('{pro.BasketCode}','{pro.PID}','{pro.SEQUENCE}','{pro.SN}','{JsonConvert.SerializeObject(pro)}','{DateTime.Now.ToString("yyyyMMddHHmmss")}')"; - - Operatoremysql(mysqlstr, connStrLocal); + if (Operatoremysql(mysqlstr, connStrLocal)) + { + CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"鏁版嵁搴揻orlocal鎻掑叆鏁版嵁鎴愬姛"); + } + else + { + CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"鏁版嵁搴揻orlocal鎻掑叆鏁版嵁寮傚け璐� {mysqlstr}"); + } } catch (Exception e) { @@ -129,8 +145,39 @@ { try { - string mysqlstr = $"update forlocal set data='{JsonConvert.SerializeObject(pro)}' where plcnum='{pro.SEQUENCE}'"; - Operatoremysql(mysqlstr, connStrLocal); + Thread.Sleep(200); + if (pro.Details != null) + { + foreach (var item in pro.Details) + { + if (item != null) + { + var defects = item.ResultList.GetDefectDescList(); + item.DefectList.AddRange(defects); + } + } + } + + JsonSerializerSettings settings = new JsonSerializerSettings + { + TypeNameHandling = TypeNameHandling.All + }; + + string jsondata = JsonConvert.SerializeObject(pro, settings); + + + //CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"{jsondata}"); + + string mysqlstr = $"update forlocal set data='{jsondata}' where plcnum='{pro.SEQUENCE}'"; + + if (Operatoremysql(mysqlstr, connStrLocal)) + { + CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"鏁版嵁搴揻orlocal鏇存柊鏁版嵁鎴愬姛"); + } + else + { + CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"鏁版嵁搴揻orlocal鏇存柊鏁版嵁澶辫触 {mysqlstr}"); + } } catch (Exception e) { @@ -144,21 +191,29 @@ { try { - //淇濈暀鏁版嵁搴撴渶鏂扮殑1000鏉℃暟鎹� //string destr = "delete from forall where id not in (select id from (select id from forall order BY id desc limit 1000) as subquery)"; //Operatoremysql(destr, connStrAll); string str1 = "select id from forall order by id desc limit 1"; string index = selectmysql(str1, connStrAll); + if (!string.IsNullOrEmpty(index)) + { + string str2 = $"delete from forall where id < ({index}-1000)"; + Operatoremysql(str2, connStrAll); + } - string str2 = $"delete from forall where id < ({index}-1000)"; - Operatoremysql(str2, connStrAll); + string mysqlstr = $"insert into forall (basketcode,device,plcnum,sn,data,time) values('{pro.BasketCode}','{devicestr}','{pro.SEQUENCE}','{pro.SN}','{JsonConvert.SerializeObject(pro, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All })}','{DateTime.Now.ToString("yyyyMMddHHmmss")}')"; + if (Operatoremysql(mysqlstr, connStrAll)) + { + CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"鏁版嵁搴揻orall鎻掑叆鏁版嵁鎴愬姛"); + } + else + { + CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"鏁版嵁搴揻orall鎻掑叆鏁版嵁寮傚け璐� {mysqlstr}"); + } - string mysqlstr = $"insert into forall (basketcode,device,plcnum,sn,data,time) values('{pro.BasketCode}','{devicestr}','{pro.SEQUENCE}','{pro.SN}','{JsonConvert.SerializeObject(pro)}','{DateTime.Now.ToString("yyyyMMddHHmmss")}')"; - - Operatoremysql(mysqlstr, connStrAll); } catch (Exception e) { @@ -179,31 +234,38 @@ } else { - ProductModel p = JsonConvert.DeserializeObject<ProductModel>(str, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All }); + ProductModel p = null; + p = JsonConvert.DeserializeObject<ProductModel>(str, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All }); return p; } } catch (Exception e) { - CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴揻orlocal鏇存柊鏁版嵁寮傚父 {e.ToString()}"); + CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴揻orlocal鑾峰彇瀵硅薄寮傚父 {e.ToString()}"); } return null; } - public string Getbasketcode(string plcnum) + public string Getbasketcode(string plcnum, out string sn) { + sn = "Noread"; try { - string mysqlstr = $"select basketcode from forall where plcnum='{plcnum}' && device='S2' order by id desc limit 1"; - string str = selectmysql(mysqlstr, connStrAll); - if (!string.IsNullOrEmpty(str)) + string mysqlstr = $"select basketcode,sn from forall where plcnum='{plcnum}' && device='S2' order by id desc limit 1"; + var dt = selectdt(mysqlstr, connStrAll); + if (dt == null || dt.Rows.Count == 0) { - return str; + return "Noread"; + } + else + { + sn = dt.Rows[0][1].ToString(); + return dt.Rows[0][0].ToString(); } } catch (Exception e) { - CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴揻orlocal鏇存柊鏁版嵁寮傚父 {e.ToString()}"); + } return "NoRead"; } @@ -213,7 +275,7 @@ { try { - string mysqlstr = $"select data from forall where plcnum='{plcnum}'"; + string mysqlstr = $"select data from forall where plcnum='{plcnum}' order by device"; var dt = selectdt(mysqlstr, connStrAll); if (dt == null) { -- Gitblit v1.8.0