From 2120c4a86e6b7bfe2b8e27f79c0ebe2efddbc0e0 Mon Sep 17 00:00:00 2001
From: kingno <30263@KINGNO>
Date: 星期二, 01 四月 2025 17:25:38 +0800
Subject: [PATCH] 数据汇总调整

---
 src/Bro.M141.Process/M141Process_Mysql.cs |  110 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 92 insertions(+), 18 deletions(-)

diff --git a/src/Bro.M141.Process/M141Process_Mysql.cs b/src/Bro.M141.Process/M141Process_Mysql.cs
index d6b7296..b9f00c8 100644
--- a/src/Bro.M141.Process/M141Process_Mysql.cs
+++ b/src/Bro.M141.Process/M141Process_Mysql.cs
@@ -1,4 +1,5 @@
 锘縰sing Bro.Common.Helper;
+using Bro.Common.Interface;
 using Bro.M135.Common;
 using MySql.Data.MySqlClient;
 using Newtonsoft.Json;
@@ -17,8 +18,8 @@
     public class M141Process_Mysql
     {
 
-        string connStrAll = "server=127.0.0.1;port=3306;user id=root;password=123456;database=BroDB;charset=utf8";
-        string connStrLocal = "server=127.0.0.1;port=3306;user id=root;password=123456;database=BroDB;charset=utf8";
+        string connStrAll = "server=localhost;port=3306;user id=root;password=123456;database=BroDB;charset=utf8";
+        string connStrLocal = "server=localhost;port=3306;user id=root;password=123456;database=BroDB;charset=utf8";
 
 
 
@@ -43,7 +44,7 @@
             }
             catch (Exception e)
             {
-                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴撴搷浣滃紓甯� {e.ToString()}");
+                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴撴搷浣滃紓甯� {sql} {e.ToString()}");
             }
             con.Close();
         }
@@ -64,7 +65,7 @@
             }
             catch (Exception e)
             {
-                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴撴煡璇㈠紓甯� {e.ToString()}");
+                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴撴煡璇㈠紓甯� {str} {e.ToString()}");
             }
             con.Close();
             return dt;
@@ -88,7 +89,7 @@
             }
             catch (Exception e)
             {
-                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴撴煡璇㈡暟鎹紓甯� {e.ToString()}");
+                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴撴煡璇㈡暟鎹紓甯� {str}  {e.ToString()}");
             }
 
             con.Close();
@@ -103,7 +104,18 @@
         {
             try
             {
-                string mysqlstr = $"insert into forlocal (pid,plcnum,sn,data,time) values('{pro.PID}','{pro.SEQUENCE}','{pro.SN}','{JsonConvert.SerializeObject(pro)}','{DateTime.Now.ToString("yyyyMMddHHmmss")}')";
+                //淇濈暀鏁版嵁搴撴渶鏂扮殑1000鏉℃暟鎹�
+                //string destr = "delete from forlocal where id not in (select id from (select id from forlocal order BY id desc limit 1000) as subquery)";
+                //Operatoremysql(destr, connStrAll);
+
+                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);
+
+
+                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);
             }
@@ -128,32 +140,46 @@
 
         public void NewForAll(ProductModel pro, string devicestr)
         {
-            try
+            Task.Run(() =>
             {
-                string mysqlstr = $"insert into forall (device,plcnum,sn,data,time) values('{devicestr}','{pro.SEQUENCE}','{pro.SN}','{JsonConvert.SerializeObject(pro)}','{DateTime.Now.ToString("yyyyMMddHHmmss")}')";
+                try
+                {
 
-                Operatoremysql(mysqlstr, connStrAll);
-            }
-            catch (Exception e)
-            {
-                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴揻orall鎻掑叆鏁版嵁寮傚父 {e.ToString()}");
-            }
+                    //淇濈暀鏁版嵁搴撴渶鏂扮殑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);
+
+                    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")}')";
+
+                    Operatoremysql(mysqlstr, connStrAll);
+                }
+                catch (Exception e)
+                {
+                    CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴揻orall鎻掑叆鏁版嵁寮傚父 {e.ToString()}");
+                }
+            });
         }
-
 
         public ProductModel GetProduct(string plcnum)
         {
             try
             {
-                string mysqlstr = $"select data from forlocal where plcnum='{plcnum}'";
-                string str= selectmysql(mysqlstr, connStrLocal);
+                string mysqlstr = $"select data from forlocal where plcnum='{plcnum}' order by id desc limit 1";
+                string str = selectmysql(mysqlstr, connStrLocal);
                 if (string.IsNullOrEmpty(str))
                 {
                     return null;
                 }
                 else
                 {
-                    ProductModel p = JsonConvert.DeserializeObject<ProductModel>(str);
+                    ProductModel p = JsonConvert.DeserializeObject<ProductModel>(str, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All });
                     return p;
                 }
             }
@@ -164,6 +190,54 @@
             return null;
         }
 
+        public string Getbasketcode(string plcnum)
+        {
+            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))
+                {
+                    return str;
+                }
+            }
+            catch (Exception e)
+            {
+                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴揻orlocal鏇存柊鏁版嵁寮傚父 {e.ToString()}");
+            }
+            return "NoRead";
+        }
+
+
+        public List<ProductModel> GetProductList(string plcnum)
+        {
+            try
+            {
+                string mysqlstr = $"select data from forall where plcnum='{plcnum}'";
+                var dt = selectdt(mysqlstr, connStrAll);
+                if (dt == null)
+                {
+                    return null;
+                }
+                else
+                {
+                    List<ProductModel> plist = new List<ProductModel>();
+                    for (int i = 0; i < dt.Rows.Count; i++)
+                    {
+                        ProductModel p = JsonConvert.DeserializeObject<ProductModel>(dt.Rows[i][0].ToString(), new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All });
+
+                        //JsonConvert.DeserializeObject<IProcessConfig>(_configBackupStr, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All });
+                        plist.Add(p);
+                    }
+                    return plist;
+                }
+            }
+            catch (Exception e)
+            {
+                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴揻orall鏁版嵁寮傚父 {e.ToString()}");
+            }
+            return null;
+        }
 
 
     }

--
Gitblit v1.8.0