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