From d5f80f2bae790fd13c159ff59568766b22495e30 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周日, 09 6月 2024 14:09:10 +0800
Subject: [PATCH] 修复bug

---
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_02.cs |  114 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 88 insertions(+), 26 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 d57c64e..591b2ca 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
@@ -25,7 +25,7 @@
     /// <summary>
     /// 娴嬮噺瀹屾垚鏍囪
     /// </summary>
-    public class DataCaptureHandler_02: DataCaptureHandler
+    public class DataCaptureHandler_02 : DataCaptureHandler
     {
         public static readonly DataCaptureHandler_02 Instance = new DataCaptureHandler_02();
 
@@ -182,13 +182,23 @@
                         }
                         else
                         {
-                            var value = plcService.ReadValuePoint(_dataCaptureConfig.DbNumber, _dataCaptureConfig.Offset, PLCManger.GetTypeForString(_dataCaptureConfig.DataCaptureColumnType));
+                            object value;
+                            //鍒ゆ柇DBNumber涓嶅悓  銆怑ditby shaocx,2024-06-07銆�
+                            if (_dataCaptureConfig.DbNumber.ToUpper() == "M")
+                            {
+                                value = plcService.ReadValuePointV2(_dataCaptureConfig.DbNumber + _dataCaptureConfig.Offset, PLCManger.GetTypeForString(_dataCaptureConfig.DataCaptureColumnType));
+                            }
+                            else
+                            {
+                                value = plcService.ReadValuePoint(_dataCaptureConfig.DbNumber, _dataCaptureConfig.Offset, PLCManger.GetTypeForString(_dataCaptureConfig.DataCaptureColumnType));
+                            }
+
                             Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}娴嬮噺瀹屾垚銆恵value_02}銆戙�恵value.ToString()}銆戙�恵_dataCaptureConfig.PLCIP}銆戙�恵_dataCaptureConfig.DbNumber}銆戙�恵_dataCaptureConfig.Offset}銆慬{_dataCaptureConfig.DataCapturePLCType}][{plcService.IsConnected.ToString()}]");
                             if (value_02.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE"))
                             {//褰撲笂涓�鏍囪浣�0锛屽綋鍓嶈幏鍙栨爣璁颁负1鏃讹紝
                              //瑙﹀彂鎿嶄綔,  骞剁粰闈欐�佸彉閲忚祴鍊间负1
                              //涓氬姟浠g爜
-                             Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}杩涘叆娴嬮噺瀹屾垚銆恵value_02}銆戙�恵value.ToString()}銆�");
+                                Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}杩涘叆娴嬮噺瀹屾垚銆恵value_02}銆戙�恵value.ToString()}銆�");
 
                                 threadStatusMonitor.Threadlastmodifytime = DateTime.Now;
                                 WorkPieceLogMiddle wplog = new WorkPieceLogMiddle();
@@ -199,7 +209,7 @@
                                 wplog.MonitoringPoint = DataCapturePointCode;
                                 wplog.CreatedTime = DateTimeHelper.GetDateTime();
                                 wplog.CreatedUserName = DataCapturePointCode;
-                                wplog.UpdatedUserName = Environment.MachineName+"鑷姩" + Thread.CurrentThread.ManagedThreadId.ToString();
+                                wplog.UpdatedUserName = Environment.MachineName + "鑷姩" + Thread.CurrentThread.ManagedThreadId.ToString();
                                 wplog.UpdatedTime = DateTimeHelper.GetDateTime();
                                 wplog.IsDeleted = false;
                                 wplog.QualityType = QualityType.Online.ToString();
@@ -215,7 +225,7 @@
                                         {
                                             Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺瀹屾垚鏍囪 璇诲彇宸ヤ欢鐮佸姩鎬佺敱浜庡瓧娈靛悕娌℃壘鍒帮紝璧嬪�笺�恵WorkingProcedure ?? "绌哄瓧绗︿覆"}銆戝け璐wplog.Id}");
                                         }
-                                        if(set.PropertyType.FullName.Equals("System.String"))
+                                        if (set.PropertyType.FullName.Equals("System.String"))
                                         {
                                             set.SetValue(wplog, valuecol.ToString());//缁欏姩鎬佸瓧娈佃祴鍊�
                                         }
@@ -235,13 +245,13 @@
                                     if (WorkingProcedure.Equals("OP30"))
                                     {
                                         var time = DateTimeHelper.GetDateTime();
-                                        if (fileFindTime==null)
+                                        if (fileFindTime == null)
                                         {
                                             fileFindTime = time.AddMinutes(-10);
                                         }
-                                        
+
                                         //鑾峰彇鏂囦欢澶瑰悕绉�
-                                        List<string> directorylist = new List<string>();                                        
+                                        List<string> directorylist = new List<string>();
                                         string directory = time.ToString("yyyy-MM-dd_HH");
                                         string directoryOther = time.AddSeconds(-30).ToString("yyyy-MM-dd_HH");
                                         directorylist.Add(directory);
@@ -255,7 +265,7 @@
                                         {
                                             try
                                             {
-                                                if (DataCapturePointCode.Contains("CH3")|| DataCapturePointCode.Contains("CH6"))
+                                                if (DataCapturePointCode.Contains("CH3") || DataCapturePointCode.Contains("CH6"))
                                                 {//宸ヤ綅3 娑ㄦ柇鍔涚煩
                                                  //鎵弿褰撳墠鏃堕棿涓�30绉掑墠鍑虹幇鐨勬枃浠�,涓�鑸妭鎷嶅湪15绉掑乏鍙筹紙涓や釜鏈嶅姟鍣ㄦ椂闂翠笉涓�鏍蜂細瀵艰嚧鍙栦笉鍒版枃浠讹級
                                                     var newFiles = FileHelper.DetectNewFiles(path36 + @"\" + dir, "*.pdf", 10, fileFindTime.Value, time.AddMinutes(120));
@@ -264,7 +274,7 @@
                                                         files.Add((FileInfo)file);
                                                     }
                                                 }
-                                                else if (DataCapturePointCode.Contains("CH4")|| DataCapturePointCode.Contains("CH5"))
+                                                else if (DataCapturePointCode.Contains("CH4") || DataCapturePointCode.Contains("CH5"))
                                                 {//宸ヤ綅4 棰勬嫥绱у姏鐭�  SEQ_04
 
                                                     //鎵弿褰撳墠鏃堕棿涓�30绉掑墠鍑虹幇鐨勬枃浠�,涓�鑸妭鎷嶅湪15绉掑乏鍙筹紙涓や釜鏈嶅姟鍣ㄦ椂闂翠笉涓�鏍蜂細瀵艰嚧鍙栦笉鍒版枃浠讹級
@@ -275,21 +285,21 @@
                                                     }
                                                 }
                                             }
-                                            catch(Exception ex)
+                                            catch (Exception ex)
                                             {
                                                 Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}娴嬮噺瀹屾垚璇诲彇鏂囦欢{dir}鏁版嵁鏃跺紓甯�,閲囬泦鏃堕棿{fileFindTime.Value},閬垮厤宸ュ簭瀹屾垚寮傚父1锛�", ex);
                                             }
 
                                         }
                                         files = files.OrderByDescending(o => o.LastWriteTime).ToList();
-                                        if(files.Count>0)
+                                        if (files.Count > 0)
                                         {
-                                            Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"宸ヤ綅銆恵DataCapturePointCode}銆戝伐浠躲�恵wplog.WorkPieceID??"绌哄瓧绗�"}銆戞枃浠秢files[0].FullName}娴嬮噺瀹屾垚璇诲彇鏂囦欢鏁版嵁寮�濮�");
+                                            Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"宸ヤ綅銆恵DataCapturePointCode}銆戝伐浠躲�恵wplog.WorkPieceID ?? "绌哄瓧绗�"}銆戞枃浠秢files[0].FullName}娴嬮噺瀹屾垚璇诲彇鏂囦欢鏁版嵁寮�濮�");
                                             switch (DataCapturePointCode)
                                             {
                                                 case "OP3002CH3":
                                                     wplog.OP30QualityFilePathCH3 = files[0].FullName;
-                                                    wplog.QualityStateStr= FileHelper.ReadPdfFileForSpire(files[0].FullName, "Result");
+                                                    wplog.QualityStateStr = FileHelper.ReadPdfFileForSpire(files[0].FullName, "Result");
                                                     wplog.QualityOP30To1 = FileHelper.ReadPdfFileForSpire(files[0].FullName, "Y-Maximum");//娑ㄦ柇鍔涚煩
                                                     break;
                                                 case "OP3002CH4":
@@ -312,9 +322,9 @@
                                             fileFindTime = files[0].LastWriteTime;
                                         }
                                     }
-                                    else if(WorkingProcedure.Equals("OP35"))
+                                    else if (WorkingProcedure.Equals("OP35"))
                                     {
-                                        if(wplog.OP35OK)
+                                        if (wplog.OP35OK)
                                         {
                                             wplog.QualityStateStr = "OK";
                                         }
@@ -323,8 +333,10 @@
                                             wplog.QualityStateStr = "NG";
                                         }
                                     }
-                                    else if(WorkingProcedure.Equals("OP60"))
+                                    else if (WorkingProcedure.Equals("OP60"))
                                     {
+                                        //澧炲姞OP60 璐ㄩ噺淇℃伅璇诲彇鏍¢獙 銆怑ditby shaocx,2024-06-07銆�
+                                        if (wplog.Op60_Place_Flag == false) continue;
 
                                         var time = DateTimeHelper.GetDateTime();
                                         if (fileFindTime == null)
@@ -339,7 +351,7 @@
                                         {
                                             files.Add((FileInfo)file);
                                         }
-                                        if(files.Count()>0)
+                                        if (files.Count() > 0)
                                         {
                                             files = files.OrderByDescending(o => o.LastWriteTime).ToList();
                                             List<OP60Info> op60Infos = new List<OP60Info>();
@@ -347,7 +359,7 @@
                                             {//鍙栧�掑簭鍖归厤鐨勬枃浠跺悕涓哄伐浠跺彿鐨勬枃浠�
                                                 if (file.Name.Contains("SP-" + DataCapturePointCode.Substring(DataCapturePointCode.Length - 1, 1)))
                                                 {
-                                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠�");
+                                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠秢wplog.WorkPieceID},涓婃鑾峰彇灏间集涓佹枃浠堕噷鐨勬椂闂村��:{(op60QualityTime == null ? "" : op60QualityTime.ToString())}");
 
                                                     var datatable = CSVHelper.ReadCSVList(file.FullName);
                                                     if (datatable.Count < 106)
@@ -374,11 +386,11 @@
                                                             op60Infos.Add(info);
                                                         }
                                                     }
-                                                    if(op60Infos.Count()>=2)
+                                                    if (op60Infos.Count() >= 2)
                                                     {
-                                                        if(op60QualityTime.HasValue)
+                                                        if (op60QualityTime.HasValue)
                                                         {
-                                                            if(op60Infos[0].datetimeHandle> op60QualityTime.Value)
+                                                            if (op60Infos[0].datetimeHandle > op60QualityTime.Value)
                                                             {
                                                                 wplog.QualityOP60To1 = op60Infos[0].value;
                                                                 wplog.QualityOP60To2 = op60Infos[1].value;
@@ -409,6 +421,14 @@
                                     }
                                     else if (WorkingProcedure.Equals("OP20"))
                                     {
+                                        //璁板綍鍏敤鍙橀噺锛屼繚瀛樼偣浣峂88鐨勪俊鎭� 銆怑ditby shaocx,2024-06-07銆�
+                                        if (DataCapturePointCode.Contains("OP2002C"))
+                                        {//浠嶰P2002C璇诲彇锛屽洜涓洪『搴忔槸 CBA锛岃�屼笉鏄疉BC
+                                            string sideValue = GetSideForOP20(plcService);
+                                            SystemValue.OP20_Side_Value = sideValue;
+                                        }
+                                        wplog.MonitoringPoint += SystemValue.OP20_Side_Value;
+                                        wplog.CreatedUserName = wplog.MonitoringPoint;
 
                                         var time = DateTimeHelper.GetDateTime();
                                         if (fileFindTime == null)
@@ -433,7 +453,7 @@
                                             {//鍙栧�掑簭鍖归厤鐨勬枃浠跺悕涓哄伐浠跺彿鐨勬枃浠�
                                                 if (file.Name.Contains("SP-" + DataCapturePointCode.Substring(DataCapturePointCode.Length - 1, 1)))
                                                 {
-                                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠�");
+                                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}涓嬬嚎瀹屾垚璇诲彇鍒版枃浠秢file.Name}锛屾槸鎸囧畾鐨勫伐浠秢wplog.WorkPieceID},涓婃鑾峰彇灏间集涓佹枃浠堕噷鐨勬椂闂村��:{(op60QualityTime == null ? "" : op60QualityTime.ToString())}");
 
                                                     var datatable = CSVHelper.ReadCSVList(file.FullName);
                                                     if (datatable.Count < 57)
@@ -549,6 +569,48 @@
                 Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"璇粄DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺鏍囪 涓嶅仛鏍¢獙锛岃纭鏄惁閰嶇疆寮傚父");
             }
         }
+
+        /// <summary>
+        /// 鑾峰彇OP20鐨勫摢涓潰
+        /// </summary>
+        /// <param name="plcService"></param>
+        /// <returns></returns>
+        private string GetSideForOP20(PLCService plcService)
+        {
+            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}");
+                if (isRight)
+                {
+                    if (i_value_M88 == 64)
+                    {
+                        return "1";
+                    }
+                    else if (i_value_M88 == 256)
+                    {
+                        return "2";
+                    }
+                    else if (i_value_M88 == 1024)
+                    {
+                        return "3";
+                    }
+                    else if (i_value_M88 == 4096)
+                    {
+                        return "4";
+                    }
+                }
+                return "";
+            }
+            catch (Exception ex)
+            {
+                Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"璇诲彇 {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺鏍囪鏁版嵁鏃跺紓甯�,鑾峰彇OP20鐨勫摢涓潰,锛�", ex);
+                return "";
+            }
+        }
+
         public WorkPieceLogMiddle GetCH4Info(string FullName, WorkPieceLogMiddle wplog)
         {
             try
@@ -562,13 +624,13 @@
                 foreach (string line in lines2)
                 {
                     count++;
-                    if (count==4)
+                    if (count == 4)
                     {//鑾峰彇璐ㄩ噺缁撴灉
                         var list = line.Split(' ');
-                        if(list.Count()>0)
+                        if (list.Count() > 0)
                         {
                             var str = list[list.Count() - 1].ToString().Trim();
-                            wplog.QualityStateStr= str.Equals("OK")?"OK":"NG";
+                            wplog.QualityStateStr = str.Equals("OK") ? "OK" : "NG";
                         }
                     }
                     // 澶勭悊姣忎竴琛岀殑閫昏緫

--
Gitblit v1.9.3