From 6caff8e3b06535a9652a791454135cf0e6ac110e Mon Sep 17 00:00:00 2001
From: kingno <30263@KINGNO>
Date: 星期一, 23 六月 2025 09:59:46 +0800
Subject: [PATCH] 新增篮具码,界面

---
 src/Bro.M141.Process/M141Process_Mysql.cs |  147 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 137 insertions(+), 10 deletions(-)

diff --git a/src/Bro.M141.Process/M141Process_Mysql.cs b/src/Bro.M141.Process/M141Process_Mysql.cs
index 00d7bee..865db24 100644
--- a/src/Bro.M141.Process/M141Process_Mysql.cs
+++ b/src/Bro.M141.Process/M141Process_Mysql.cs
@@ -2,6 +2,7 @@
 using Bro.Common.Interface;
 using Bro.Common.Model;
 using Bro.M135.Common;
+using HalconDotNet;
 using MySql.Data.MySqlClient;
 using Newtonsoft.Json;
 using Sunny.UI;
@@ -13,6 +14,8 @@
 using System.Threading.Tasks;
 using Windows.Globalization.PhoneNumberFormatting;
 using Windows.Media.Ocr;
+using static Bro.Common.Helper.EnumHelper;
+using static NPOI.HSSF.Util.HSSFColor;
 using static Org.BouncyCastle.Math.EC.ECCurve;
 using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView;
 
@@ -186,7 +189,7 @@
             }
         }
 
-        public void NewForAll(ProductModel pro, string devicestr)
+        public void NewForAll(ProductModel pro, string devicestr, string netname)
         {
             Task.Run(() =>
             {
@@ -196,20 +199,70 @@
                     //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);
 
-                    if (pro.Details != null)
+                    if (string.IsNullOrEmpty(netname) /*|| devicestr != "S3" */)
                     {
-                        foreach (var item in pro.Details)
+                        if (pro.Details != null)
                         {
-                            if (item != null)
+                            foreach (var item in pro.Details)
                             {
-                                var defects = item.ResultList.GetDefectDescList();
-                                var ngSpecCodes = item.SpecList.Where(u => u.MeasureResult != true).Select(u => u.Code);
-                                defects.AddRange(ngSpecCodes);
-                                item.DefectList.AddRange(defects.Distinct());
-                                item.DefectList = item.DefectList.Distinct().ToList();
+                                if (item != null)
+                                {
+                                    var defects = item.ResultList.GetDefectDescList();
+                                    var ngSpecCodes = item.SpecList.Where(u => u.MeasureResult != true).Select(u => u.Code);
+                                    defects.AddRange(ngSpecCodes);
+                                    item.DefectList.AddRange(defects.Distinct());
+                                    item.DefectList = item.DefectList.Distinct().ToList();
+                                }
+
                             }
                         }
                     }
+                    else
+                    {
+                        List<Netdefectdetail> allnetdetail = new List<Netdefectdetail>();
+                        if (pro.Details != null)
+                        {
+                            foreach (var item in pro.Details)
+                            {
+                                if (item != null)
+                                {
+                                    var defects = item.ResultList.GetDefectDescList();
+                                    var ngSpecCodes = item.SpecList.Where(u => u.MeasureResult != true).Select(u => u.Code);
+                                    defects.AddRange(ngSpecCodes);
+                                    item.DefectList.AddRange(defects.Distinct());
+                                    item.DefectList = item.DefectList.Distinct().ToList();
+
+                                    var defecttem = item.ResultList.SelectMany(u => u.AllNetResults.SelectMany(m => m.DetectDetails)).Where(u => u.ClassName == netname).ToList();
+
+                                    //CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"{netname}涓暟{defecttem.Count}");
+
+                                    int num = 0;
+                                    foreach (var item1 in defecttem)
+                                    {
+                                        double x1 = item1.Rect.Point_LU.X + item1.Rect.Width / 2.0;
+                                        double y1 = item1.Rect.Point_LU.Y + item1.Rect.Height / 2.0;
+                                        num++;
+                                        //HOperatorSet.AffineTransPoint2d(new HTuple(pro.Centermatrix.ToArray()), x1, y1, out HTuple qx, out HTuple qy);
+
+                                        CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Detail, $"sql {pro.SN}鍘熷潗鏍噞num}   {x1},{y1}");
+                                        HOperatorSet.ProjectiveTransPixel(new HTuple(pro.Centermatrix.ToArray()), x1, y1, out HTuple qx, out HTuple qy);
+                                        CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Detail, $"sql {pro.SN}鏂板潗鏍噞num}   {qx},{qy}");
+
+                                        Netdefectdetail temc = new Netdefectdetail()
+                                        {
+                                            centerX = qx,
+                                            centerY = qy,
+                                            name = netname,
+                                        };
+                                        allnetdetail.Add(temc);
+                                    }
+                                }
+                            }
+
+                            pro.Netdefectdetails = allnetdetail;
+                        }
+                    }
+
 
                     string strtem = "select * from forall  where plcnum='" + pro.SEQUENCE + "' and device='" + devicestr + "' ";
 
@@ -282,6 +335,31 @@
             return null;
         }
 
+
+        public List<Netdefectdetail> GetNetdefectdetails(string plcnum)
+        {
+            try
+            {
+                string mysqlstr = $"select data from forall where plcnum='{plcnum}' && device='S3' order by id desc limit 1";
+                string str = selectmysql(mysqlstr, connStrAll);
+                if (string.IsNullOrEmpty(str))
+                {
+                    return null;
+                }
+                else
+                {
+                    ProductModel p = null;
+                    p = JsonConvert.DeserializeObject<ProductModel>(str, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All });
+                    return p.Netdefectdetails;
+                }
+            }
+            catch (Exception e)
+            {
+                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴揻orlocal鑾峰彇瀵硅薄寮傚父 {e.ToString()}");
+            }
+            return null;
+        }
+
         public string Getbasketcode(string plcnum, out string sn)
         {
             sn = "Noread";
@@ -322,7 +400,9 @@
                     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 });
+                        string strjson = dt.Rows[i][0].ToString();
+                        strjson = strjson.Replace(@"\", @"\\");
+                        ProductModel p = JsonConvert.DeserializeObject<ProductModel>(strjson, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All });
 
                         //JsonConvert.DeserializeObject<IProcessConfig>(_configBackupStr, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All });
                         plist.Add(p);
@@ -338,5 +418,52 @@
         }
 
 
+
+        public DataTable getBasketCode()
+        {
+            try
+            {
+                string mysqlstr = $"select id,code,time from basketcode order by id desc limit 200";
+                var dt = selectdt(mysqlstr, connStrAll);
+                if (dt == null)
+                {
+                    return null;
+                }
+                else
+                {
+                    return dt;
+                }
+            }
+            catch (Exception e)
+            {
+                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴揻orall鏁版嵁寮傚父 {e.ToString()}");
+            }
+            return null;
+
+
+
+        }
+
+
+        public void NewBasketcode(string code)
+        {
+            try
+            {
+                string mysqlstr = $"insert into basketcode(code,time) values('{code}','{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}')";
+                if (Operatoremysql(mysqlstr, connStrAll))
+                {
+                    CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"鏁版嵁搴揵asketcode鎻掑叆鏁版嵁鎴愬姛");
+                }
+                else
+                {
+                    CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Error, $"鏁版嵁搴揵asketcode鎻掑叆鏁版嵁寮傚け璐�  {mysqlstr}");
+                }
+            }
+            catch (Exception e)
+            {
+                CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"鏁版嵁搴揵asketcode鎻掑叆鏁版嵁寮傚父 {e.ToString()}");
+            }
+        }
+
     }
 }

--
Gitblit v1.8.0