kingno
2025-04-03 a97ac998301461e6284595b1cf2c7b40ce5b2459
src/Bro.M141.Process/M141Process_Mysql.cs
@@ -1,5 +1,6 @@
using 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,7 @@
using System.Text;
using System.Threading.Tasks;
using Windows.Globalization.PhoneNumberFormatting;
using static Org.BouncyCastle.Math.EC.ECCurve;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView;
namespace Bro.M141.Process
@@ -29,7 +31,7 @@
            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, $"数据库forlocal插入数据成功");
                }
                else
                {
                    CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"数据库forlocal插入数据异失败  {mysqlstr}");
                }
            }
            catch (Exception e)
            {
@@ -129,8 +145,54 @@
        {
            try
            {
                string mysqlstr = $"update forlocal set data='{JsonConvert.SerializeObject(pro)}' where plcnum='{pro.SEQUENCE}'";
                Operatoremysql(mysqlstr, connStrLocal);
                if (pro.Details!=null)
                {
                    foreach (var item in pro.Details)
                    {
                        if (item.ResultList!=null)
                        {
                            item.ResultList.ForEach(u =>
                            {
                                if (u.NetResults != null)
                                {
                                    u.NetResults.ForEach(x =>
                                    {
                                        if (x.DetectDetails != null)
                                        {
                                            var distinctItems = x.DetectDetails.GroupBy(i => new { i.ClassName, i.FinalResult }) // 根据Id和Name去重
                             .Select(g => g.First()) // 选择每个组的第一个元素
                             .ToList();
                                            x.DetectDetails = distinctItems;
                                        }
                                    });
                                }
                            });
                        }
                    }
                }
                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, $"数据库forlocal更新数据成功");
                }
                else
                {
                    CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"数据库forlocal更新数据失败 {mysqlstr}");
                }
            }
            catch (Exception e)
            {
@@ -151,14 +213,24 @@
                    string str1 = "select id from forall  order by id desc limit 1";
                    string index = selectmysql(str1, connStrAll);
                    string str2 = $"delete from forall where id < ({index}-1000)";
                    Operatoremysql(str2, connStrAll);
                    if (!string.IsNullOrEmpty(index))
                    {
                        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)}','{DateTime.Now.ToString("yyyyMMddHHmmss")}')";
                    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")}')";
                    Operatoremysql(mysqlstr, connStrAll);
                    if (Operatoremysql(mysqlstr, connStrAll))
                    {
                        CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"数据库forall插入数据成功");
                    }
                    else
                    {
                        CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"数据库forall插入数据异失败  {mysqlstr}");
                    }
                }
                catch (Exception e)
                {
@@ -179,13 +251,14 @@
                }
                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, $"数据库forlocal更新数据异常 {e.ToString()}");
                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"数据库forlocal获取对象异常 {e.ToString()}");
            }
            return null;
        }
@@ -203,7 +276,7 @@
            }
            catch (Exception e)
            {
                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"数据库forlocal更新数据异常 {e.ToString()}");
                //CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"数据库forlocal获取异常 {e.ToString()}");
            }
            return "NoRead";
        }