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