Jack.Peng
2021-05-17 e86e385d5c1eb06a05d4f46439194093c7f66472
P066.Data/Form1.cs
@@ -76,10 +76,14 @@
                //读取全部表格
            var fileinfos1 = directoryInfo1.GetFiles().ToList().FindAll(a => a.Extension == ".csv");
            var listAllSum = new List<ResultData>();
            var fileinfos1 = directoryInfo1.GetFiles().ToList().FindAll(a => a.Extension == ".csv"&& (a.Name.Contains("刮白") || a.Name.Contains("白点毛丝")) );
            var listAllSum = new List<ResultData>();            //存放所有表格数据
            List<Task> listTask = new List<Task>();
            var DataTipsort = new List<string>();
            var DataTipsortBack = readfile.TimeStamp(fileinfos1.Find(a=>a.Name.Contains("初检背板镜头")));//读取背板时间戳
            var DataTipsotMidle = readfile.TimeStamp(fileinfos1.Find(a => a.Name.Contains("初检中框镜头")));//读取中框时间戳
            Dictionary<string, List<string>> dictionarData = new Dictionary<string, List<string>>();
            dictionarData.Add("背板", DataTipsortBack);
            dictionarData.Add("中框", DataTipsotMidle);
            for (int i = 0; i < fileinfos1.Count; i++)
            {
                int index = i;
@@ -89,12 +93,11 @@
                });
                listTask.Add(task);
            }
            DataTipsort = readfile.TimeStamp(fileinfos1[0]);//读取一个文件夹的时间戳
            Task.WaitAll(listTask.ToArray());//等全部读取完后再进行下一步
            Dictionary<int, string> dictionary = new Dictionary<int, string>();
            dictionary.Add(1, "初检中框镜头");
            dictionary.Add(2, "复检中框镜头");
            dictionary.Add(3, "初检背板镜头");
            dictionary.Add(1, "初检背板镜头");
            dictionary.Add(2, "初检中框镜头");
            dictionary.Add(3, "复检中框镜头");
            dictionary.Add(4, "复检背板镜头");
            List<ResultData> listCompareSum = new List<ResultData>();
            for (int j = 1; j < 5; j++)
@@ -105,27 +108,68 @@
                    int index = i;
                    Task task = Task.Run(() =>
                    {
                        listCompareSum.AddRange(CompareFile(listAllSum.FindAll(a => a.FileName == dictionary[indexMax] + index + "_" + 1 + "白点"),
                                                            listAllSum.FindAll(a => a.FileName == dictionary[indexMax] + index + "_" + 2 + "白点"), DataTipsort));
                        if (dictionary[indexMax].Substring (2,2)=="中框")
                        {
                            listCompareSum.AddRange(GetMidLocation((CompareFile(listAllSum.FindAll(a => a.FileName == dictionary[indexMax] + index + "_" + 1 + "白点"),
                                      listAllSum.FindAll(a => a.FileName == dictionary[indexMax] + index + "_" + 2 + "白点"), dictionarData[dictionary[indexMax].Substring(2, 2)]))));
                        }
                        else
                        {
                            listCompareSum.AddRange(GetBkLocation((CompareFile(listAllSum.FindAll(a => a.FileName == dictionary[indexMax] + index + "_" + 1 + "白点"),
                                       listAllSum.FindAll(a => a.FileName == dictionary[indexMax] + index + "_" + 2 + "白点"), dictionarData[dictionary[indexMax].Substring(2, 2)]))));
                        }
                    });
                    listTask.Add(task);
                }
            }
            List<ResultData> listWhiteningCompareSum=new    List<ResultData>();
            for (int i = 1; i < 5; i++)
            {
                int index = i;       
                Task task = Task.Run(() =>
                {
                    listWhiteningCompareSum.AddRange(GetWhiteLocation(CompareFile(listAllSum.FindAll(a => a.FileName == dictionary[2] + index + "_" + 1 + "刮白"),
                                                                                  listAllSum.FindAll(a => a.FileName == dictionary[2] + index + "_" + 2 + "刮白"),                                                                                                                DataTipsort)));
                    listCompareSum.AddRange(GetWhiteLocation(CompareFile(listAllSum.FindAll(a => a.FileName == dictionary[3] + index + "_" + 1 + "刮白"),
                                                                                  listAllSum.FindAll(a => a.FileName == dictionary[3] + index + "_" + 2 + "刮白"), dictionarData[dictionary[3].Substring(2, 2)])));
                });
                listTask.Add(task);
            }
            Task.WaitAll(listTask.ToArray());
            var back = listCompareSum.FindAll(a => a.FileName.Contains("初检背板"));
            var midle = listCompareSum.FindAll(a => a.FileName.Contains("初检中框"));
            var back1 = listCompareSum.FindAll(a => a.FileName.Contains("复检背板"));
            var midle1 = listCompareSum.FindAll(a => a.FileName.Contains("复检中框"));
            #region//将夜班设备判断结果输出到CSV报表中
            //ListReexaminationSum.AddRange(GetClassificationLens(fileInfo1, fileInfo2, DataTipsor));
            var title112 = $"时间戳,相机序号,设备判断结果,缺陷类型,设备后处理结果,最大尺寸,位置,X,Y,R,角度";
            var file112 = $"{directoryInfo1.Parent.FullName}\\{"夜班设备判断结果"}.csv";
            File.AppendAllText(file112, title112, Encoding.UTF8);
            File.AppendAllText(file112, "\r\n");
            foreach (var item in DataTipsotMidle)
            {
                var Lens1 = midle1.FindAll(a => a.TimeTip == item && a.Lensnumber == 1);
                writefile.WriteJR(Lens1, item, 1, file112);
                for (int i = 2; i < 5; i++)
                {
                    var Lens = midle1.FindAll(a => a.TimeTip == item && a.Lensnumber == i);
                    writefile.WriteJR(Lens, "", i, file112);
                }
            }
            #endregion
@@ -608,7 +652,8 @@
        }
        #endregion
        #region   获取中框角度和位置
        private List<ResultData> GetMidLocation(List<ResultData> list)