From f3ac4e7983dd475d800acc31cbbb8bbaf2e6c638 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周四, 29 8月 2024 15:08:18 +0800
Subject: [PATCH] 修复 OP05工位 获取打标二维码,会漏获取数据

---
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_FormTest/Form1.cs |  130 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 130 insertions(+), 0 deletions(-)

diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_FormTest/Form1.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_FormTest/Form1.cs
index 1d8b48c..a06b941 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_FormTest/Form1.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_FormTest/Form1.cs
@@ -183,5 +183,135 @@
 
             this.tb_TongJi.Text = str;
         }
+
+        private void button5_Click(object sender, EventArgs e)
+        {
+            //鍒嗘瀽缂哄伐搴�
+            this.tb_TongJi.Text = "";
+
+            //鏌愭鏃堕棿鐨勭粺璁�
+            var str_start = this.dateTimePicker_Start.Value.ToString("yyyy-MM-dd" + " " + "00:00:00");
+            var str_end = this.dateTimePicker_End.Value.ToString("yyyy-MM-dd" + " " + "23:59:59");
+            var start = Convert.ToDateTime(str_start);
+            var end = Convert.ToDateTime(str_end);
+
+            int allPlacesCount = 0;
+            List<WorkPieceProcess> workPieceProcessList = new List<WorkPieceProcess>();
+            List<string> js_strList = new List<string>();
+            List<string> strList = new List<string>() {
+                "OP05","OP10","OP20","OP30","OP35","OP40","OP50","OP60","OP70","OP80"
+            };
+            var q_strList = string.Join(",", strList);
+            var str = "";
+            str += "鏃堕棿鑼冨洿: " + str_start + "鑷�" + str_end + " \r\n";
+            using (DbModel edm = new DbModel())
+            {
+                var pieces = edm.WorkPieceInfo.AsNoTracking().Where(x =>
+                 (x.CreatedTime >= start && x.CreatedTime <= end)).ToList();
+
+                var queryIds = pieces.Select(x => x.WorkPieceID).ToList();
+
+                var allPlaces = edm.WorkPieceProcess.AsNoTracking().Where(x => queryIds.Contains(x.WorkPieceID)).ToList();
+
+                var groups = allPlaces.GroupBy(x => x.WorkPieceID).OrderBy(x => x.Key);
+                foreach (var gg in groups)
+                {
+                    var _key = gg.Key;
+                    if (_key.Length != 22)
+                    {
+                        continue;
+                    }
+                    if (!(_key.IndexOf("DZ") > -1))
+                    {
+                        continue;
+                    }
+
+                    //閲嶆柊璇诲彇鏁版嵁搴�
+                    var _list = gg.ToList().OrderByDescending(x => x.CreatedTime);
+
+
+                    if (_key == "DZ045L2408290100451PAS")
+                    {
+                        var zz = "";
+                    }
+
+                    var fisrt = _list.FirstOrDefault();
+                    var first_pr = fisrt.WorkingProcedureCurrent;
+
+                    var bb = first_pr.Substring(2, 2);
+                    int ii = Convert.ToInt32(bb);
+
+                    List<string> new_strList = GetListForOP(ii);//鍏ㄩ儴鐨�
+                    var curList = _list.Select(x => x.WorkingProcedureCurrent).ToList();
+                    var cur_new_strList = new_strList.Where(x => !curList.Contains(x)).ToList();
+                    if (cur_new_strList.Count > 0)
+                    {
+                        //         //鍐嶈涓嬫暟鎹簱
+                        //         _list = edm.WorkPieceProcess.AsNoTracking().Where(x =>
+                        //x.WorkPieceID == _key).ToList().OrderByDescending(x => x.CreatedTime);
+                        //         curList = _list.Select(x => x.WorkingProcedureCurrent).ToList();
+                        //         cur_new_strList = new_strList.Where(x => !curList.Contains(x)).ToList();
+                    }
+                    //鐪嬬湅鍓嶉潰鐨勫伐搴忔槸鍚﹂兘鏈�
+                    foreach (var item in cur_new_strList)
+                    {
+
+
+                        workPieceProcessList.Add(new WorkPieceProcess()
+                        {
+                            WorkingProcedureCurrent = item,
+                            WorkPieceID = _key
+                        });
+                        js_strList.Add(item);
+                        allPlacesCount++;
+
+                    }
+
+                }
+
+            }
+
+            var hzStr = "";
+            //var groups22 = js_strList.GroupBy(x => x).OrderBy(x => x.Count());
+            var groups22 = js_strList.GroupBy(x => x).OrderBy(x => x.Key);
+            foreach (var gg in groups22)
+            {
+                hzStr += $"宸ュ簭缂哄け{gg.Key} 鍏眥gg.ToList().Count()}涓�" + "\r\n";
+            }
+
+            var total = $"鎬昏缂哄け:{allPlacesCount}銆�";
+            total += "\r\n";
+            total += hzStr;
+            total += "\r\n";
+
+            //澶勭悊
+            workPieceProcessList = workPieceProcessList.OrderBy(x => x.WorkingProcedureCurrent).ToList();
+            foreach (var item in workPieceProcessList)
+            {
+                str += $"缂哄皯{item.WorkingProcedureCurrent}宸ュ簭锛學orkPieceID: {item.WorkPieceID}  \r\n";
+            }
+            str += "\r\n";
+
+            this.tb_TongJi.Text = total + str;
+        }
+
+
+        private List<string> GetListForOP(int ii)
+        {
+            List<string> new_strList = new List<string>() { };
+            List<string> strList = new List<string>() {
+                "OP05","OP10","OP20","OP30","OP35","OP40","OP50","OP60","OP70","OP80"
+            };
+            foreach (var item in strList)
+            {
+                var bb = item.Substring(2, 2);
+                int dd = Convert.ToInt32(bb);
+                if (dd <= ii)
+                {
+                    new_strList.Add(item);
+                }
+            }
+            return new_strList;
+        }
     }
 }

--
Gitblit v1.9.3