From 05f2a20bb792169bf7b8a101af8718b96449f55a Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周五, 06 9月 2024 16:11:33 +0800
Subject: [PATCH] 整理代码

---
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_02.cs |  264 ++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 192 insertions(+), 72 deletions(-)

diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_02.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_02.cs
index 591b2ca..e15ec32 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_02.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_02.cs
@@ -19,6 +19,9 @@
 using static System.Net.WebRequestMethods;
 using File = System.IO.File;
 using Spire.Additions.Xps.Schema;
+using log4net;
+using static Org.BouncyCastle.Math.EC.ECCurve;
+using iWare_SCADA_BusinessLogical.BLL.Important;
 
 namespace iWare_SCADA_BusinessLogical
 {
@@ -54,8 +57,10 @@
 
         public override void DataCaptureStart()
         {
-            if (SystemValue.isStartedModel)
+            if (SystemValue.isStartedImitateModel)
             {
+                //妯℃嫙浠g爜娉ㄩ噴
+                /*
                 var plcService = PLCManger.GetSinglePLCService(_dataCaptureConfig);
                 WorkPieceLogMiddle wplog = new WorkPieceLogMiddle();
                 wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId();
@@ -89,6 +94,7 @@
                 //鏇存柊WorkPieceInfo琛ㄤ互鍙婃彃鍏orkPieceLog琛ㄥ拰WorkPieceInfoLog琛�
                 WorkPieceInfoManager.QualityInfoComplete(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
 
+                //*/
 
                 return;
             }
@@ -114,7 +120,8 @@
                 string path36 = ConfigHelper.GetConfigString("OP30QualityDataFor36Station");//op30 3宸ヤ綅锛�6宸ヤ綅鍦板潃
                 string path45 = ConfigHelper.GetConfigString("OP30QualityDataFor45Station");//op30 4宸ヤ綅锛�5宸ヤ綅鍦板潃
                 string pathOP20 = ConfigHelper.GetConfigString("OP20QualityData");
-                string pathOP60 = ConfigHelper.GetConfigString("OP60QualityData");
+                //string pathOP60 = ConfigHelper.GetConfigString("OP60QualityData");
+                string pathOP60 = @"Q:\Measuring_Data_dfq\";//鍐欐鍦板潃 銆怑ditby shaocx,2024-06-25銆�
                 if (string.IsNullOrEmpty(path36))
                 {
                     path36 = @"Z:\";
@@ -129,7 +136,7 @@
                 }
                 if (string.IsNullOrEmpty(pathOP60))
                 {
-                    pathOP60 = @"V:\";
+                    pathOP60 = @"Q:\Measuring_Data_dfq\";
                 }
 
                 if (DataCapturePointCode.Contains("CH3"))
@@ -153,6 +160,7 @@
                 }
                 DateTime? fileFindTime = null;
                 DateTime? op60QualityTime = null;
+
                 //                璐ㄩ噺淇℃伅锛氭定鏂姏鐭�...	棰勬嫥绱у姏鐭� 棰勬嫥绱ц搴�   缁堟嫥绱у姏鐭� 缁堟嫥绱ц搴�
                 //kistler_crack 娑ㄦ柇鍔涚煩 宸ヤ綅3 娑ㄦ柇鍔涚煩锛圷 - Maximum锛�  璐ㄩ噺缁撴灉锛圧esult锛�	
                 //kistler_bush 鍘嬭鍔涚煩 宸ヤ綅6 琛鍘嬭鍔涚煩锛圷 - Maximum锛�  琛鍘嬭浣嶇Щ锛圔lock X锛� 璐ㄩ噺缁撴灉锛圧esult锛�	
@@ -201,18 +209,19 @@
                                 Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}杩涘叆娴嬮噺瀹屾垚銆恵value_02}銆戙�恵value.ToString()}銆�");
 
                                 threadStatusMonitor.Threadlastmodifytime = DateTime.Now;
-                                WorkPieceLogMiddle wplog = new WorkPieceLogMiddle();
-                                wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId();
-                                wplog.WorkingProcedure = WorkingProcedure;
-                                wplog.EquipmentID = _dataCaptureConfig.EquipmentID; ;
-                                wplog.Remarks = WorkingProcedure;
-                                wplog.MonitoringPoint = DataCapturePointCode;
-                                wplog.CreatedTime = DateTimeHelper.GetDateTime();
-                                wplog.CreatedUserName = DataCapturePointCode;
-                                wplog.UpdatedUserName = Environment.MachineName + "鑷姩" + Thread.CurrentThread.ManagedThreadId.ToString();
-                                wplog.UpdatedTime = DateTimeHelper.GetDateTime();
-                                wplog.IsDeleted = false;
-                                wplog.QualityType = QualityType.Online.ToString();
+                                WorkPieceLogMiddle logMiddle = new WorkPieceLogMiddle();
+                                logMiddle.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+                                logMiddle.WorkingProcedure = WorkingProcedure;
+                                logMiddle.EquipmentID = _dataCaptureConfig.EquipmentID; ;
+                                logMiddle.Remarks = WorkingProcedure;
+                                logMiddle.MonitoringPoint = DataCapturePointCode;
+                                //logMiddle.CreatedUserName = DataCapturePointCode;
+                                SystemBussinessHelper.SetWorkPieceLogMiddleForCreatedUserName(ref logMiddle, DataCapturePointCode, DataCapturePointCname);
+                                logMiddle.CreatedTime = DateTimeHelper.GetDateTime();
+                                logMiddle.UpdatedUserName = Environment.MachineName + "鑷姩" + Thread.CurrentThread.ManagedThreadId.ToString();
+                                logMiddle.UpdatedTime = DateTimeHelper.GetDateTime();
+                                logMiddle.IsDeleted = false;
+                                logMiddle.QualityType = QualityType.Online.ToString();
 
                                 foreach (var col in colConfig.Where(o => o.DataCapturePointCode == DataCapturePointCode))
                                 {
@@ -220,28 +229,38 @@
                                     {
                                         var valuecol = plcService.ReadValuePoint(col.DbNumber, col.Offset, col.DataCaptureColumnLength.Value, PLCManger.GetTypeForString(col.DataCaptureColumnType));
                                         //wplog.GetType().GetProperty(col.DataCaptureColumnTabelName).SetValue(wplog, valuecol);//缁欏姩鎬佸瓧娈佃祴鍊�
-                                        var set = wplog.GetType().GetProperty(col.DataCaptureColumnTabelName);
+                                        var set = logMiddle.GetType().GetProperty(col.DataCaptureColumnTabelName);
                                         if (set == null)
                                         {
-                                            Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺瀹屾垚鏍囪 璇诲彇宸ヤ欢鐮佸姩鎬佺敱浜庡瓧娈靛悕娌℃壘鍒帮紝璧嬪�笺�恵WorkingProcedure ?? "绌哄瓧绗︿覆"}銆戝け璐wplog.Id}");
+                                            Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺瀹屾垚鏍囪 璇诲彇宸ヤ欢鐮佸姩鎬佺敱浜庡瓧娈靛悕娌℃壘鍒帮紝璧嬪�笺�恵WorkingProcedure ?? "绌哄瓧绗︿覆"}銆戝け璐logMiddle.Id}");
                                         }
                                         if (set.PropertyType.FullName.Equals("System.String"))
                                         {
-                                            set.SetValue(wplog, valuecol.ToString());//缁欏姩鎬佸瓧娈佃祴鍊�
+                                            set.SetValue(logMiddle, valuecol.ToString());//缁欏姩鎬佸瓧娈佃祴鍊�
                                         }
                                         else
                                         {
-                                            set.SetValue(wplog, valuecol);//缁欏姩鎬佸瓧娈佃祴鍊�
+                                            set.SetValue(logMiddle, valuecol);//缁欏姩鎬佸瓧娈佃祴鍊�
                                         }
                                     }
                                     catch (Exception setex)
                                     {
-                                        Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺瀹屾垚鏍囪 璇诲彇宸ヤ欢鐮佸姩鎬佽祴鍊笺�恵WorkingProcedure ?? "绌哄瓧绗︿覆"}銆戝紓甯竰wplog.Id}", setex);
+                                        Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺瀹屾垚鏍囪 璇诲彇宸ヤ欢鐮佸姩鎬佽祴鍊笺�恵WorkingProcedure ?? "绌哄瓧绗︿覆"}銆戝紓甯竰logMiddle.Id}", setex);
                                     }
                                 }
 
                                 try
                                 {
+                                    switch (DataCapturePointCode)
+                                    {
+                                        case "OP2002A":
+                                        case "OP2002B":
+                                        case "OP2002C":
+                                            //鐩戞帶涓婄嚎
+                                            MonitorHelper.MonitorTestForLine(_dataCaptureConfig, value, colConfig, logMiddle.WorkPieceID);
+                                            break;
+                                    }
+
                                     if (WorkingProcedure.Equals("OP30"))
                                     {
                                         var time = DateTimeHelper.GetDateTime();
@@ -253,7 +272,9 @@
                                         //鑾峰彇鏂囦欢澶瑰悕绉�
                                         List<string> directorylist = new List<string>();
                                         string directory = time.ToString("yyyy-MM-dd_HH");
-                                        string directoryOther = time.AddSeconds(-30).ToString("yyyy-MM-dd_HH");
+                                        //string directoryOther = time.AddSeconds(-30).ToString("yyyy-MM-dd_HH");
+                                        //鏀逛负璋冩暣30鍒嗛挓鍓嶇殑鏂囦欢澶� 銆怑ditby shaocx,2024-09-02銆�
+                                        string directoryOther = time.AddMinutes(-30).ToString("yyyy-MM-dd_HH");
                                         directorylist.Add(directory);
                                         if (!directory.Equals(directoryOther))
                                         {//濡傛灉30绉掑墠鏄彟涓�涓枃浠跺す
@@ -294,27 +315,27 @@
                                         files = files.OrderByDescending(o => o.LastWriteTime).ToList();
                                         if (files.Count > 0)
                                         {
-                                            Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"宸ヤ綅銆恵DataCapturePointCode}銆戝伐浠躲�恵wplog.WorkPieceID ?? "绌哄瓧绗�"}銆戞枃浠秢files[0].FullName}娴嬮噺瀹屾垚璇诲彇鏂囦欢鏁版嵁寮�濮�");
+                                            Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"宸ヤ綅銆恵DataCapturePointCode}銆戝伐浠躲�恵logMiddle.WorkPieceID ?? "绌哄瓧绗�"}銆戞枃浠秢files[0].FullName}娴嬮噺瀹屾垚璇诲彇鏂囦欢鏁版嵁寮�濮�");
                                             switch (DataCapturePointCode)
                                             {
                                                 case "OP3002CH3":
-                                                    wplog.OP30QualityFilePathCH3 = files[0].FullName;
-                                                    wplog.QualityStateStr = FileHelper.ReadPdfFileForSpire(files[0].FullName, "Result");
-                                                    wplog.QualityOP30To1 = FileHelper.ReadPdfFileForSpire(files[0].FullName, "Y-Maximum");//娑ㄦ柇鍔涚煩
+                                                    logMiddle.OP30QualityFilePathCH3 = files[0].FullName;
+                                                    logMiddle.QualityStateStr = FileHelper.ReadPdfFileForSpire(files[0].FullName, "Result");
+                                                    logMiddle.QualityOP30To1 = FileHelper.ReadPdfFileForSpire(files[0].FullName, "Y-Maximum");//娑ㄦ柇鍔涚煩
                                                     break;
                                                 case "OP3002CH4":
-                                                    wplog = GetCH4Info(files[0].FullName, wplog);
-                                                    wplog.OP30QualityFilePathCH4 = files[0].FullName;
+                                                    logMiddle = GetCH4InfoForOP30(files[0].FullName, logMiddle);
+                                                    logMiddle.OP30QualityFilePathCH4 = files[0].FullName;
                                                     break;
                                                 case "OP3002CH5":
-                                                    wplog = GetCH5Info(files[0].FullName, wplog);
-                                                    wplog.OP30QualityFilePathCH5 = files[0].FullName;
+                                                    logMiddle = GetCH5InfoForOP30(files[0].FullName, logMiddle);
+                                                    logMiddle.OP30QualityFilePathCH5 = files[0].FullName;
                                                     break;
                                                 case "OP3002CH6":
-                                                    wplog.OP30QualityFilePathCH6 = files[0].FullName;
-                                                    wplog.QualityStateStr = FileHelper.ReadPdfFileForSpire(files[0].FullName, "Result");
-                                                    wplog.QualityOP30To6 = FileHelper.ReadPdfFileForSpire(files[0].FullName, "Y-Maximum");//琛鍘嬭鍔涚煩
-                                                    wplog.QualityOP30To7 = FileHelper.ReadPdfFileForSpire(files[0].FullName, "Block X");//琛鍘嬭浣嶇Щ
+                                                    logMiddle.OP30QualityFilePathCH6 = files[0].FullName;
+                                                    logMiddle.QualityStateStr = FileHelper.ReadPdfFileForSpire(files[0].FullName, "Result");
+                                                    logMiddle.QualityOP30To6 = FileHelper.ReadPdfFileForSpire(files[0].FullName, "Y-Maximum");//琛鍘嬭鍔涚煩
+                                                    logMiddle.QualityOP30To7 = FileHelper.ReadPdfFileForSpire(files[0].FullName, "Block X");//琛鍘嬭浣嶇Щ
                                                     break;
                                                 default:
                                                     break;
@@ -324,19 +345,28 @@
                                     }
                                     else if (WorkingProcedure.Equals("OP35"))
                                     {
-                                        if (wplog.OP35OK)
+                                        if (logMiddle.OP35OK)
                                         {
-                                            wplog.QualityStateStr = "OK";
+                                            logMiddle.QualityStateStr = "OK";
+                                            logMiddle.QualityState = (int)QualityStateEnum.OK;
                                         }
                                         else
                                         {
-                                            wplog.QualityStateStr = "NG";
+                                            logMiddle.QualityStateStr = "NG";
+                                            logMiddle.QualityState = (int)QualityStateEnum.NG;
                                         }
                                     }
                                     else if (WorkingProcedure.Equals("OP60"))
                                     {
                                         //澧炲姞OP60 璐ㄩ噺淇℃伅璇诲彇鏍¢獙 銆怑ditby shaocx,2024-06-07銆�
-                                        if (wplog.Op60_Place_Flag == false) continue;
+                                        var gongweiStr = DataCapturePointCode.Substring(DataCapturePointCode.Length - 1, 1);
+                                        if (logMiddle.Op60_Place_Flag == false)
+                                        {
+                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚锛屾槸鎸囧畾鐨勫伐浠秢logMiddle.WorkPieceID},宸ヤ綅{gongweiStr}锛屼笉閫氳繃锛岃鍙朞p60_Place_Flag:false");
+                                            continue;
+                                        };
+                                        Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚锛屾槸鎸囧畾鐨勫伐浠秢logMiddle.WorkPieceID},宸ヤ綅{gongweiStr}锛屾牎楠岄�氳繃锛岃鍙朞p60_Place_Flag:true");
+
 
                                         var time = DateTimeHelper.GetDateTime();
                                         if (fileFindTime == null)
@@ -351,19 +381,37 @@
                                         {
                                             files.Add((FileInfo)file);
                                         }
+                                        //娉ㄦ剰锛氫竴瀹氳绛涢�夊埗瀹氱殑鏂囦欢鏁版嵁
+                                        files = files.Where(x => x.Name.Contains("SP-" + gongweiStr)).OrderByDescending(o => o.LastWriteTime).ToList();//绛涢�夊彇鏈�鏂扮殑鏂囦欢 銆怑ditby shaocx,2024-06-19銆�
                                         if (files.Count() > 0)
                                         {
-                                            files = files.OrderByDescending(o => o.LastWriteTime).ToList();
+                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢files.Count()}涓紝鏄寚瀹氱殑宸ヤ欢{logMiddle.WorkPieceID},,宸ヤ綅{gongweiStr}涓婃鑾峰彇灏间集涓佹枃浠堕噷鐨勬椂闂村��:{(op60QualityTime == null ? "" : op60QualityTime.ToString())}");
                                             List<OP60Info> op60Infos = new List<OP60Info>();
-                                            foreach (var file in files)
-                                            {//鍙栧�掑簭鍖归厤鐨勬枃浠跺悕涓哄伐浠跺彿鐨勬枃浠�
-                                                if (file.Name.Contains("SP-" + DataCapturePointCode.Substring(DataCapturePointCode.Length - 1, 1)))
-                                                {
-                                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠秢wplog.WorkPieceID},涓婃鑾峰彇灏间集涓佹枃浠堕噷鐨勬椂闂村��:{(op60QualityTime == null ? "" : op60QualityTime.ToString())}");
+                                            bool isFindFile = false;
+                                            //娉ㄦ剰锛氬彧鍙栫涓�涓枃浠跺氨鍙互鍟�!!!!!! 銆怑ditby shaocx,2024-06-19銆�
+                                            var source_doFile = files.First();//鍘熷璇荤殑鏂囦欢
 
+                                            //鎷疯礉鏂囦欢
+                                            //鐩爣鏂囦欢鐨勫畬鏁寸洰褰�
+                                            string destFileName = source_doFile.FullName.Replace("Measuring_Data_dfq", "Measuring_Data_df_Copy");
+                                            string source_file_name = source_doFile.Name.Replace(".dfq", "");//涓嶅甫鎵╁睍鍚嶇殑鏂囦欢鍚嶅瓧
+                                            destFileName = destFileName.Replace(source_file_name, source_file_name + "_" + logMiddle.WorkPieceID + "_" + DateTime.Now.ToString("yyyyMMddHHmmss"));
+                                            File.Copy(source_doFile.FullName, destFileName, true);
+
+
+                                            FileInfo destFile = new FileInfo(destFileName);
+                                            var doFiles = new List<FileInfo>() { destFile };
+                                            foreach (var file in doFiles)
+                                            {//鍙栧�掑簭鍖归厤鐨勬枃浠跺悕涓哄伐浠跺彿鐨勬枃浠�
+                                                if (file.Name.Contains("SP-" + gongweiStr))
+                                                {
+                                                    Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠秢logMiddle.WorkPieceID},,宸ヤ綅{gongweiStr}涓婃鑾峰彇灏间集涓佹枃浠堕噷鐨勬椂闂村��:{(op60QualityTime == null ? "" : op60QualityTime.ToString())}");
+                                                    isFindFile = true;
                                                     var datatable = CSVHelper.ReadCSVList(file.FullName);
+                                                    Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鏂囦欢{file.Name}锛屾寚瀹氬伐浠跺彿{logMiddle.WorkPieceID},,宸ヤ綅{gongweiStr}鍙戠幇鏂囦欢琛屾暟{datatable.Count}");
                                                     if (datatable.Count < 106)
                                                     {//璐ㄩ噺鏁版嵁浠�106琛屽紑濮�
+                                                        Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鏂囦欢{file.Name}锛屾寚瀹氬伐浠跺彿{logMiddle.WorkPieceID},,宸ヤ綅{gongweiStr}鍙戠幇鏂囦欢琛屾暟{datatable.Count}灏忎簬106");
                                                         continue;
                                                     }
                                                     datatable.Reverse();
@@ -390,45 +438,76 @@
                                                     {
                                                         if (op60QualityTime.HasValue)
                                                         {
+                                                            //if (op60Infos[0].datetimeHandle > op60QualityTime.Value)
+                                                            //{//杩欎釜鏃堕棿鍒ゆ柇瑕佷笉瑕佹嬁鎺夛紵锛� 銆怑ditby shaocx,2024-06-19銆�
+                                                            //    wplog.QualityOP60To1 = op60Infos[0].value;
+                                                            //    wplog.QualityOP60To2 = op60Infos[1].value;
+                                                            //    wplog.OP60QualityFilePath = file.FullName;
+                                                            //    Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠秢wplog.WorkPieceID},宸ヤ綅{gongweiStr}鎴愬姛璧嬪�间簡OP60QualityFilePath绛夊瓧娈�");
+                                                            //}
+                                                            //else
+                                                            //{
+                                                            //    var msg = $"锛屽洜涓哄垽鏂椂闂翠笉绗﹀悎锛宱p60Infos[0].datetimeHandle:{(op60Infos[0].datetimeHandle == null ? "" : op60Infos[0].datetimeHandle.ToString())}灏忎簬绛変簬op60QualityTime:{(op60QualityTime.Value == null ? "" : op60QualityTime.Value.ToString())}";
+                                                            //    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠秢wplog.WorkPieceID},宸ヤ綅{gongweiStr}娌¤兘璧嬪�糘P60QualityFilePath绛夊瓧娈�,{msg}");
+                                                            //    break;
+                                                            //}
+                                                            logMiddle.QualityOP60To1 = op60Infos[0].value;
+                                                            logMiddle.QualityOP60To2 = op60Infos[1].value;
+                                                            logMiddle.OP60QualityFilePath = file.FullName;
+                                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠秢logMiddle.WorkPieceID},宸ヤ綅{gongweiStr}鎴愬姛璧嬪�间簡OP60QualityFilePath绛夊瓧娈碉紝璇诲彇鏃堕棿:{op60Infos[0].datetimeHandle.ToString()}");
                                                             if (op60Infos[0].datetimeHandle > op60QualityTime.Value)
-                                                            {
-                                                                wplog.QualityOP60To1 = op60Infos[0].value;
-                                                                wplog.QualityOP60To2 = op60Infos[1].value;
-                                                                wplog.OP60QualityFilePath = file.FullName;
+                                                            {//杩欎釜鏃堕棿鍒ゆ柇瑕佷笉瑕佹嬁鎺夛紵锛� 銆怑ditby shaocx,2024-06-19銆�
                                                             }
                                                             else
                                                             {
-                                                                break;
+                                                                var msg = $"锛屽彧鏄鍛婏紒鍥犱负鍒ゆ柇鏃堕棿涓嶇鍚堬紝op60Infos[0].datetimeHandle:{(op60Infos[0].datetimeHandle == null ? "" : op60Infos[0].datetimeHandle.ToString())}灏忎簬绛変簬op60QualityTime:{(op60QualityTime.Value == null ? "" : op60QualityTime.Value.ToString())}";
+                                                                Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠秢logMiddle.WorkPieceID},宸ヤ綅{gongweiStr}娌¤兘璧嬪�糘P60QualityFilePath绛夊瓧娈�,{msg}");
                                                             }
                                                         }
                                                         else
                                                         {
-                                                            wplog.QualityOP60To1 = op60Infos[0].value;
-                                                            wplog.QualityOP60To2 = op60Infos[1].value;
-                                                            wplog.OP60QualityFilePath = file.FullName;
+                                                            logMiddle.QualityOP60To1 = op60Infos[0].value;
+                                                            logMiddle.QualityOP60To2 = op60Infos[1].value;
+                                                            logMiddle.OP60QualityFilePath = file.FullName;
+                                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠秢logMiddle.WorkPieceID},宸ヤ綅{gongweiStr}鎴愬姛璧嬪�间簡OP60QualityFilePath绛夊瓧娈碉紝璇诲彇鏃堕棿:{op60Infos[0].datetimeHandle.ToString()}");
                                                         }
                                                         op60QualityTime = op60Infos[0].datetimeHandle;
+
+
+
                                                         break;
                                                     }
 
                                                 }
                                                 else
                                                 {
-                                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鏂囦欢{file.FullName}涓嶆槸鎸囧畾宸ヤ欢{wplog.WorkPieceID}");
+                                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鏂囦欢{file.Name}涓嶆槸鎸囧畾宸ヤ欢{logMiddle.WorkPieceID},宸ヤ綅{gongweiStr}");
                                                 }
                                             }
+                                            if (isFindFile == false)
+                                            {
+                                                Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚娌℃湁鎵惧埌鏂囦欢,鎸囧畾宸ヤ欢{logMiddle.WorkPieceID},宸ヤ綅{gongweiStr}");
+                                            }
+                                        }
+                                        else
+                                        {
+                                            Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚,閫氳繃绛涢�夎繃婊�,娌℃湁鎵惧埌鏂囦欢,鎸囧畾宸ヤ欢{logMiddle.WorkPieceID},宸ヤ綅{gongweiStr}");
                                         }
                                     }
                                     else if (WorkingProcedure.Equals("OP20"))
                                     {
+                                        var gongweiStr = DataCapturePointCode.Substring(DataCapturePointCode.Length - 1, 1);
                                         //璁板綍鍏敤鍙橀噺锛屼繚瀛樼偣浣峂88鐨勪俊鎭� 銆怑ditby shaocx,2024-06-07銆�
                                         if (DataCapturePointCode.Contains("OP2002C"))
                                         {//浠嶰P2002C璇诲彇锛屽洜涓洪『搴忔槸 CBA锛岃�屼笉鏄疉BC
-                                            string sideValue = GetSideForOP20(plcService);
+                                            string sideValue = GetSideForOP20(plcService, logMiddle);
                                             SystemValue.OP20_Side_Value = sideValue;
                                         }
-                                        wplog.MonitoringPoint += SystemValue.OP20_Side_Value;
-                                        wplog.CreatedUserName = wplog.MonitoringPoint;
+                                        logMiddle.MonitoringPoint += SystemValue.OP20_Side_Value;
+                                        //logMiddle.CreatedUserName = logMiddle.MonitoringPoint;
+                                        SystemBussinessHelper.SetWorkPieceLogMiddleForCreatedUserName(ref logMiddle, logMiddle.MonitoringPoint, DataCapturePointCname);
+
+                                        Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚锛屾槸鎸囧畾鐨勫伐浠秢logMiddle.WorkPieceID},宸ヤ綅{gongweiStr}锛屾牎楠岄�氳繃锛岃鍙朞p60_Place_Flag:true");
 
                                         var time = DateTimeHelper.GetDateTime();
                                         if (fileFindTime == null)
@@ -443,21 +522,31 @@
                                         {
                                             files.Add((FileInfo)file);
                                         }
-                                        Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"宸ヤ綅銆恵DataCapturePointCode}銆戝伐浠躲�恵wplog.WorkPieceID ?? "绌哄瓧绗�"}銆戣幏鍙栧埌銆恵files.Count()}銆戜釜鏂囦欢锛屻�恵fileFindTime.Value}銆戙�恵time.AddHours(2)}銆�");
+                                        //娉ㄦ剰锛氫竴瀹氳绛涢�夊埗瀹氱殑鏂囦欢鏁版嵁
+                                        files = files.Where(x => x.Name.Contains("SP-" + gongweiStr)).OrderByDescending(o => o.LastWriteTime).ToList();//绛涢�夊彇鏈�鏂扮殑鏂囦欢 銆怑ditby shaocx,2024-06-19銆�
+
+                                        Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"宸ヤ綅銆恵DataCapturePointCode}銆戝伐浠躲�恵logMiddle.WorkPieceID ?? "绌哄瓧绗�"}銆戣幏鍙栧埌銆恵files.Count()}銆戜釜鏂囦欢锛屻�恵fileFindTime.Value}銆戙�恵time.AddHours(2)}銆�");
 
                                         if (files.Count() > 0)
                                         {
+                                            bool isFindFile = false;
+                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢files.Count()}涓紝鏄寚瀹氱殑宸ヤ欢{logMiddle.WorkPieceID},宸ヤ綅{gongweiStr},涓婃鑾峰彇灏间集涓佹枃浠堕噷鐨勬椂闂村��:{(op60QualityTime == null ? "" : op60QualityTime.ToString())}");
                                             files = files.OrderByDescending(o => o.LastWriteTime).ToList();
                                             List<OP60Info> op60Infos = new List<OP60Info>();
-                                            foreach (var file in files)
+                                            //娉ㄦ剰锛氬彧鍙栫涓�涓枃浠跺氨鍙互鍟�!!!!!! 銆怑ditby shaocx,2024-06-19銆�
+                                            var doFiles = new List<FileInfo>() { files.First() };
+                                            foreach (var file in doFiles)
                                             {//鍙栧�掑簭鍖归厤鐨勬枃浠跺悕涓哄伐浠跺彿鐨勬枃浠�
-                                                if (file.Name.Contains("SP-" + DataCapturePointCode.Substring(DataCapturePointCode.Length - 1, 1)))
+                                                if (file.Name.Contains("SP-" + gongweiStr))
                                                 {
-                                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠秢wplog.WorkPieceID},涓婃鑾峰彇灏间集涓佹枃浠堕噷鐨勬椂闂村��:{(op60QualityTime == null ? "" : op60QualityTime.ToString())}");
+                                                    isFindFile = true;
+                                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠秢logMiddle.WorkPieceID},宸ヤ綅{gongweiStr},涓婃鑾峰彇灏间集涓佹枃浠堕噷鐨勬椂闂村��:{(op60QualityTime == null ? "" : op60QualityTime.ToString())}");
 
                                                     var datatable = CSVHelper.ReadCSVList(file.FullName);
+                                                    Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鏂囦欢{file.Name}锛屾寚瀹氬伐浠跺彿{logMiddle.WorkPieceID},,宸ヤ綅{gongweiStr}鍙戠幇鏂囦欢琛屾暟{datatable.Count}");
                                                     if (datatable.Count < 57)
                                                     {//璐ㄩ噺鏁版嵁浠�106琛屽紑濮�
+                                                        Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鏂囦欢{file.Name}锛屾寚瀹氬伐浠跺彿{logMiddle.WorkPieceID},,宸ヤ綅{gongweiStr}鍙戠幇鏂囦欢琛屾暟{datatable.Count}灏忎簬106");
                                                         continue;
                                                     }
                                                     datatable.Reverse();
@@ -484,20 +573,32 @@
                                                     {
                                                         if (op60QualityTime.HasValue)
                                                         {
+                                                            //if (op60Infos[0].datetimeHandle > op60QualityTime.Value)
+                                                            //{
+                                                            //    wplog.QualityOP20To1 = op60Infos[0].value;
+                                                            //    wplog.OP20QualityFilePath = file.FullName;
+                                                            //}
+                                                            //else
+                                                            //{
+                                                            //    break;
+                                                            //}
+                                                            logMiddle.QualityOP20To1 = op60Infos[0].value;
+                                                            logMiddle.OP20QualityFilePath = file.FullName;
+                                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠秢logMiddle.WorkPieceID},宸ヤ綅{gongweiStr}鎴愬姛璧嬪�间簡OP20QualityFilePath绛夊瓧娈碉紝璇诲彇鏃堕棿:{op60Infos[0].datetimeHandle.ToString()}");
                                                             if (op60Infos[0].datetimeHandle > op60QualityTime.Value)
-                                                            {
-                                                                wplog.QualityOP20To1 = op60Infos[0].value;
-                                                                wplog.OP20QualityFilePath = file.FullName;
+                                                            {//杩欎釜鏃堕棿鍒ゆ柇瑕佷笉瑕佹嬁鎺夛紵锛� 銆怑ditby shaocx,2024-06-19銆�
                                                             }
                                                             else
                                                             {
-                                                                break;
+                                                                var msg = $"锛屽彧鏄鍛婏紒鍥犱负鍒ゆ柇鏃堕棿涓嶇鍚堬紝op60Infos[0].datetimeHandle:{(op60Infos[0].datetimeHandle == null ? "" : op60Infos[0].datetimeHandle.ToString())}灏忎簬绛変簬op60QualityTime:{(op60QualityTime.Value == null ? "" : op60QualityTime.Value.ToString())}";
+                                                                Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠秢logMiddle.WorkPieceID},宸ヤ綅{gongweiStr}娌¤兘璧嬪�糘P60QualityFilePath绛夊瓧娈�,{msg}");
                                                             }
                                                         }
                                                         else
                                                         {
-                                                            wplog.QualityOP20To1 = op60Infos[0].value;
-                                                            wplog.OP20QualityFilePath = file.FullName;
+                                                            logMiddle.QualityOP20To1 = op60Infos[0].value;
+                                                            logMiddle.OP20QualityFilePath = file.FullName;
+                                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠秢logMiddle.WorkPieceID},宸ヤ綅{gongweiStr}鎴愬姛璧嬪�间簡OP20QualityFilePath绛夊瓧娈碉紝璇诲彇鏃堕棿:{op60Infos[0].datetimeHandle.ToString()}");
                                                         }
                                                         op60QualityTime = op60Infos[0].datetimeHandle;
                                                         break;
@@ -506,9 +607,18 @@
                                                 }
                                                 else
                                                 {
-                                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鏂囦欢{file.FullName}涓嶆槸鎸囧畾宸ヤ欢{wplog.WorkPieceID}");
+                                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鏂囦欢{file.FullName}涓嶆槸鎸囧畾宸ヤ欢{logMiddle.WorkPieceID}");
                                                 }
                                             }
+
+                                            if (isFindFile == false)
+                                            {
+                                                Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚娌℃湁鎵惧埌鏂囦欢,鎸囧畾宸ヤ欢{logMiddle.WorkPieceID},宸ヤ綅{gongweiStr}");
+                                            }
+                                        }
+                                        else
+                                        {
+                                            Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚,閫氳繃绛涢�夎繃婊�,娌℃湁鎵惧埌鏂囦欢,鎸囧畾宸ヤ欢{logMiddle.WorkPieceID},宸ヤ綅{gongweiStr}");
                                         }
                                     }
 
@@ -519,8 +629,9 @@
                                     Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}娴嬮噺瀹屾垚璇诲彇鏂囦欢鏁版嵁鏃跺紓甯�,閬垮厤宸ュ簭瀹屾垚寮傚父锛�", ex);
                                 }
 
+
                                 //鏇存柊WorkPieceInfo琛ㄤ互鍙婃彃鍏orkPieceLog琛ㄥ拰WorkPieceInfoLog琛�
-                                WorkPieceInfoManager.QualityInfoComplete(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
+                                QualityInfoCompleteManager.QualityInfoComplete(logMiddle, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
                                 threadStatusMonitor.Threadstatue = 1;
 
 
@@ -570,23 +681,29 @@
             }
         }
 
+
+
         /// <summary>
         /// 鑾峰彇OP20鐨勫摢涓潰
         /// </summary>
         /// <param name="plcService"></param>
         /// <returns></returns>
-        private string GetSideForOP20(PLCService plcService)
+        private string GetSideForOP20(PLCService plcService, WorkPieceLogMiddle wplog)
         {
             try
             {
                 object value_M88 = plcService.ReadValuePointV2("M88", PLCManger.GetTypeForString("int"));
                 int i_value_M88 = 0;
                 var isRight = int.TryParse(value_M88.ToString(), out i_value_M88);
-                Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"璇诲彇 {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺鏍囪鏁版嵁鏃跺紓甯�,鑾峰彇OP20鐨勫摢涓潰,i_value_M88:{i_value_M88}");
+                Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"璇诲彇 {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺鏍囪鏁版嵁,鑾峰彇OP20鐨勫摢涓潰,i_value_M88:{i_value_M88},宸ヤ欢鍙�:{wplog.WorkPieceID}");
                 if (isRight)
                 {
                     if (i_value_M88 == 64)
                     {
+                        return "1";
+                    }
+                    else if (i_value_M88 == 16384)
+                    {//鍘熷畾涓�16384涓烘鍦ㄦ棆杞紝鐩戞帶涓嬫潵锛屽彂鐜� 16384搴旇鏄伐浣�1鐨勯棶棰� 銆怑ditby shaocx,2024-06-12銆�
                         return "1";
                     }
                     else if (i_value_M88 == 256)
@@ -602,16 +719,17 @@
                         return "4";
                     }
                 }
+                Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"璇诲彇 {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺鏍囪鏁版嵁鏃讹紝鏃犳晥鏁板��,鑾峰彇OP20鐨勫摢涓潰,,i_value_M88:{i_value_M88}锛屽伐浠跺彿:{wplog.WorkPieceID}", null);
                 return "";
             }
             catch (Exception ex)
             {
-                Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"璇诲彇 {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺鏍囪鏁版嵁鏃跺紓甯�,鑾峰彇OP20鐨勫摢涓潰,锛�", ex);
+                Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"璇诲彇 {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺鏍囪鏁版嵁鏃跺紓甯�,鑾峰彇OP20鐨勫摢涓潰,宸ヤ欢鍙�:{wplog.WorkPieceID}", ex);
                 return "";
             }
         }
 
-        public WorkPieceLogMiddle GetCH4Info(string FullName, WorkPieceLogMiddle wplog)
+        public WorkPieceLogMiddle GetCH4InfoForOP30(string FullName, WorkPieceLogMiddle wplog)
         {
             try
             {
@@ -675,7 +793,7 @@
 
         }
 
-        public WorkPieceLogMiddle GetCH5Info(string FullName, WorkPieceLogMiddle wplog)
+        public WorkPieceLogMiddle GetCH5InfoForOP30(string FullName, WorkPieceLogMiddle wplog)
         {
             try
             {
@@ -768,5 +886,7 @@
 
         }
 
+
+
     }
 }

--
Gitblit v1.9.3