From 35f78d6371d884271e5f9873a5193bf979fc2c1d Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周三, 04 9月 2024 18:51:54 +0800
Subject: [PATCH] 优化

---
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/HMI_WorkpieceWrite.cs        |   38 +++++++-----
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Enums/PieceLogTypeEnum.cs                         |    6 ++
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Model/Enums.cs                                                    |    6 +
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/OP80QualityDataHandler.cs    |   10 +-
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Test/UnitTest1.cs                                                 |    2 
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/WorkPieceProcessHelper.cs                   |    2 
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs                       |   90 +++++++++++++++---------------
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/QualityStateHelper.cs                       |    4 
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501.cs |    2 
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_02.cs     |    4 
 10 files changed, 90 insertions(+), 74 deletions(-)

diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
index 76feee4..28af33d 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -178,13 +178,13 @@
                             //EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict());
                             if (!loginfo.WorkingProcedure.Equals("OP05"))
                             {//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬�
-                                info.QualityState = (int)QualityState.Suspected;
+                                info.QualityState = (int)QualityStateEnum.Suspected;
                                 info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
                                 info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
                             }
                             else
                             {
-                                info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍�
+                                info.QualityState = (int)QualityStateEnum.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍�
                                 info.Remarks = "OP05鏂板宸ヤ欢淇℃伅";
                             }
                             info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();
@@ -260,7 +260,7 @@
 
                             if (new_process.WorkingProcedureCurrent == WorkingProcedureForHMI.OP70.ToString())
                             { //鐗规畩澶勭悊OP70锛屽洜涓篛P70娌℃湁娴嬮噺锛岄粯璁ゅ悎鏍� [Editby shaocx,2024-07-03]
-                                new_process.QualityState = (int)QualityState.OK;//榛樿鍚堟牸锛孫P70榛樿鏄悎鏍�
+                                new_process.QualityState = (int)QualityStateEnum.OK;//榛樿鍚堟牸锛孫P70榛樿鏄悎鏍�
                             }
 
                             new_process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
@@ -298,11 +298,11 @@
                             string message = "";
                             checkQualityInfoCompleteFlag = WorkPieceInfoManager.CheckQualityInfoComplete(info, loginfo, type);
 
-                            if (!checkQualityInfoCompleteFlag || info.QualityState != (int)QualityState.OK)
+                            if (!checkQualityInfoCompleteFlag || info.QualityState != (int)QualityStateEnum.OK)
                             {
                                 plcFlag = false;
                                 message = !checkQualityInfoCompleteFlag ? "璺冲簭锛�" : "";
-                                message += info.QualityState != (int)QualityState.OK ? "璐ㄩ噺涓嶇鍚�" : "";
+                                message += info.QualityState != (int)QualityStateEnum.OK ? "璐ㄩ噺涓嶇鍚�" : "";
                             }
                             ////鍙嶉缁橮LC锛岋紙鍐欏叆鐐瑰緟瀹氾級
                             //MessageModel fr = null;
@@ -553,13 +553,13 @@
                                 //EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict());
                                 if (!logMiddle.WorkingProcedure.Equals("OP05"))
                                 {//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬�
-                                    pieceInfo.QualityState = (int)QualityState.Suspected;
+                                    pieceInfo.QualityState = (int)QualityStateEnum.Suspected;
                                     pieceInfo.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
                                     pieceInfo.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
                                 }
                                 else
                                 {
-                                    pieceInfo.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍�
+                                    pieceInfo.QualityState = (int)QualityStateEnum.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍�
                                     pieceInfo.Remarks = "OP05鏂板宸ヤ欢淇℃伅";
                                 }
                                 pieceInfo.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();
@@ -637,12 +637,12 @@
                         {//宸ュ簭寮�濮嬫椂闂存病鏈夊垯璧嬪��
                             pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
                         }
-                        pieceInfo.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
+                        pieceInfo.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityStateEnum.OK : QualityStateEnum.NG);
                         //璧嬪�间笉鍚堟牸鍘熷洜
                         SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
 
 
-                        if (!pieceInfo.QualityState.Equals(((int)QualityState.OK).ToString()))
+                        if (!pieceInfo.QualityState.Equals(((int)QualityStateEnum.OK).ToString()))
                         {
                             pieceInfo.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍納pieceInfo.QualityState}";
                         }
@@ -699,7 +699,7 @@
                                     qualityData.OP30QualityStateCH3 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                                     qualityData.OP30QualityReceiveTimeCH3 = DateTimeHelper.GetDateTime();
 
-                                    if (qualityData.OP30QualityStateCH3 == ((int)QualityState.NG).ToString())
+                                    if (qualityData.OP30QualityStateCH3 == ((int)QualityStateEnum.NG).ToString())
                                     {
                                         logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩瓒呭樊;
                                         logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩瓒呭樊.ToString();
@@ -713,7 +713,7 @@
                                     qualityData.OP30QualityStateCH4 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                                     qualityData.OP30QualityReceiveTimeCH4 = DateTimeHelper.GetDateTime();
 
-                                    if (qualityData.OP30QualityStateCH4 == ((int)QualityState.NG).ToString())
+                                    if (qualityData.OP30QualityStateCH4 == ((int)QualityStateEnum.NG).ToString())
                                     {
                                         logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30棰勬嫥绱у伐浣嶅姏鐭╄秴宸�;
                                         logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30棰勬嫥绱у伐浣嶅姏鐭╄秴宸�.ToString();
@@ -727,7 +727,7 @@
                                     qualityData.OP30QualityStateCH5 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                                     qualityData.OP30QualityReceiveTimeCH5 = DateTimeHelper.GetDateTime();
 
-                                    if (qualityData.OP30QualityStateCH5 == ((int)QualityState.NG).ToString())
+                                    if (qualityData.OP30QualityStateCH5 == ((int)QualityStateEnum.NG).ToString())
                                     {
                                         logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30缁堟嫥绱у伐浣嶅姏鐭╄秴宸�;
                                         logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30缁堟嫥绱у伐浣嶅姏鐭╄秴宸�.ToString();
@@ -741,7 +741,7 @@
                                     qualityData.OP30QualityStateCH6 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                                     qualityData.OP30QualityReceiveTimeCH6 = DateTimeHelper.GetDateTime();
 
-                                    if (qualityData.OP30QualityStateCH6 == ((int)QualityState.NG).ToString())
+                                    if (qualityData.OP30QualityStateCH6 == ((int)QualityStateEnum.NG).ToString())
                                     {
                                         logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30鍘嬭‖濂楀伐浣嶅姏鐭╄秴宸�;
                                         logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30鍘嬭‖濂楀伐浣嶅姏鐭╄秴宸�.ToString();
@@ -845,7 +845,7 @@
 
                         if (logMiddle.QualityType != null && logMiddle.QualityType.Equals(QualityType.SPC.ToString()))
                         {//SPC鍙嶉锛�
-                            if (logMiddle.QualityState != (int)QualityState.OK)
+                            if (logMiddle.QualityState != (int)QualityStateEnum.OK)
                             {
                                 //褰撴煇鍒板伐搴忔娴嬪埌涓嶅悎鏍煎伐浠舵椂锛屼粠璇ュ伐浠跺姞宸ュ畬鎴愭椂鍒诲墠鎸囧畾鏃堕棿璧疯嚦鎶ユ涓嶅悎鏍兼椂闂存锛岀郴缁熷皢璇ュ伐浠剁殑鏈�鍚庡姞宸ュ伐搴忓湪璇ユ椂闂存鍐呭姞宸ョ殑鎵�鏈夊伐浠躲�佹鍦ㄥ姞宸ョ殑宸ヤ欢銆佽宸ュ簭鍏ュ彛澶勭殑绗竴涓伐浠跺叏閮ㄦ爣璁颁负鐤戜技鐘舵�侊紝鐢变汉宸ュ妫�宸ヤ欢骞朵慨鏀圭姸鎬侊紝骞舵敮鎸佹壒閲忓彉鏇淬��
                                 //绛斿锛氬湪绾挎祴閲忎笉闇�瑕佽蛋杩欎釜娴佺▼锛屽彧鏈塖PC鎶芥鎵嶉渶瑕侊紝闇�瑕佹妸杩欐椂闂存鐨勫伐浠跺叏閮ㄧ疆涓虹枒浼硷紝鍝�曟槸宸插畬鎴愬伐浠�
@@ -1034,8 +1034,8 @@
                         if (loginfo.WorkingProcedure.Equals("OP35"))
                         {//涓轰簡瑙e喅OP35鐨勯噰闆嗗埌鐨勮川閲忎俊鎭槸OK杩楴OOK鐨勬儏鍐碉紝OP35 NOOK鏃舵洿鏂拌川閲忎俊鎭�
                             loginfo2.Remarks = $"OP35NOOK鍘熻川閲忎俊鎭瘂(cur_db_info.QualityState.HasValue ? cur_db_info.QualityState.Value.ToString() : "绌�")}";
-                            cur_db_info.QualityState = (int)QualityState.NG;
-                            if (!cur_db_info.QualityState.Equals(((int)QualityState.OK).ToString()))
+                            cur_db_info.QualityState = (int)QualityStateEnum.NG;
+                            if (!cur_db_info.QualityState.Equals(((int)QualityStateEnum.OK).ToString()))
                             {
                                 cur_db_info.QualityErrorInfo = $"{loginfo.WorkingProcedure}宸ュ簭璐ㄩ噺NOOK閲囬泦鏁版嵁涓嶅悎鏍納cur_db_info.QualityState}";
                             }
@@ -1193,7 +1193,7 @@
                         QualityStateHelper.ResetQualityNoOkForNewProcess(ref process);
                         process.StartTime = DateTimeHelper.GetDateTime();
                         process.OperationType = OperationType.SPC.ToString();
-                        process.QualityState = (int)QualityState.Suspected;
+                        process.QualityState = (int)QualityStateEnum.Suspected;
                         process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
                         process.CreatedUserName = loginfo.MonitoringPoint;
                         process.DataCapturePointCname = loginfo.DataCapturePointCname;
@@ -1269,7 +1269,7 @@
             {
                 if (logMiddle.WorkingProcedure.Equals("OP70"))
                 {
-                    logMiddle.QualityState = (int)QualityState.OK; //濡傛灉鏄疧P70锛屽垯榛樿鏄悎鏍� 銆怑ditby shaocx,2024-06-25銆�
+                    logMiddle.QualityState = (int)QualityStateEnum.OK; //濡傛灉鏄疧P70锛屽垯榛樿鏄悎鏍� 銆怑ditby shaocx,2024-06-25銆�
                 }
 
                 WorkPieceLog loginfo2 = new WorkPieceLog();
@@ -1294,13 +1294,13 @@
                             //EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict());
                             if (!logMiddle.WorkingProcedure.Equals("OP05"))
                             {//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬�
-                                db_info.QualityState = (int)QualityState.Suspected;
+                                db_info.QualityState = (int)QualityStateEnum.Suspected;
                                 db_info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
                                 db_info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
                             }
                             else
                             {
-                                db_info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍�
+                                db_info.QualityState = (int)QualityStateEnum.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍�
                                 db_info.Remarks = "OP05鏂板宸ヤ欢淇℃伅";
                             }
                             db_info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();//WorkPieceInitOnlineTime
@@ -1383,7 +1383,7 @@
                         else if (logMiddle.WorkingProcedure.Equals("OP30"))
                         {
 
-                            db_info.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
+                            db_info.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityStateEnum.OK : QualityStateEnum.NG);
                             logMiddle.QualityState = db_info.QualityState;
                             db_info.QualityStateUpdateUser = logMiddle.UpdatedUserName;
                             db_info.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime;
@@ -1401,7 +1401,7 @@
                             qualityData.OP30QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                             qualityData.OP30QualityReceiveTime = DateTimeHelper.GetDateTime();
                             loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿logMiddle.QualityStateStr ?? "绌�"}";
-                            if (!db_info.QualityState.Equals(((int)QualityState.OK).ToString()))
+                            if (!db_info.QualityState.Equals(((int)QualityStateEnum.OK).ToString()))
                             {
                                 db_info.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�";
                             }
@@ -2577,11 +2577,11 @@
         public static void SetLogMiddleForQuality(ref WorkPieceLogMiddle logMiddle)
         {
 
-            logMiddle.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
+            logMiddle.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityStateEnum.OK : QualityStateEnum.NG);
 
             //鏍规嵁璐ㄩ噺鏁版嵁鍒ゆ柇鏄惁鍚堟牸/涓嶅悎鏍� 銆怑ditby shaocx,2024-06-25銆�
             QualityNoOkEnum? qualityNoOkEnum = null;
-            QualityState qualityState = WorkPieceInfoManager.CalcQualityStateForOP(logMiddle, ref qualityNoOkEnum);
+            QualityStateEnum qualityState = WorkPieceInfoManager.CalcQualityStateForOP(logMiddle, ref qualityNoOkEnum);
             logMiddle.QualityState = (int)qualityState;
             logMiddle.QualityStateStr = qualityState.ToString();
             if (qualityNoOkEnum != null)
@@ -2594,9 +2594,9 @@
         /// <summary>
         /// 璁$畻OP 璐ㄩ噺鏁版嵁鏄惁鍚堟牸
         /// </summary>
-        private static QualityState CalcQualityStateForOP(WorkPieceLogMiddle logMiddle, ref QualityNoOkEnum? qualityNoOkEnum)
+        private static QualityStateEnum CalcQualityStateForOP(WorkPieceLogMiddle logMiddle, ref QualityNoOkEnum? qualityNoOkEnum)
         {
-            QualityState qualityState = QualityState.Suspected;
+            QualityStateEnum qualityState = QualityStateEnum.Suspected;
             if (logMiddle.WorkingProcedure == "OP60")
             {//鍚堟牸/涓嶅悎鏍肩敱 WMS鑷鍒ゆ柇
                 decimal _QualityOP60To1 = SystemHelper.GetDecimal(logMiddle.QualityOP60To1);
@@ -2624,24 +2624,24 @@
 
                 if (isPass_QualityOP60To1 && isPass_QualityOP60To2)
                 {
-                    qualityState = QualityState.OK;
+                    qualityState = QualityStateEnum.OK;
                 }
                 else
                 {
-                    qualityState = QualityState.NG;
+                    qualityState = QualityStateEnum.NG;
                 }
                 if (_QualityOP60To1 == 0 || _QualityOP60To2 == 0)
                 {
-                    qualityState = QualityState.Suspected;
+                    qualityState = QualityStateEnum.Suspected;
                     return qualityState;
                 }
                 return qualityState;
             }
             else if (logMiddle.WorkingProcedure == "OP80")
             {//鍚堟牸/涓嶅悎鏍肩敱 OP80 鍒ゆ柇锛孮ualityState 鍜� QualityStateStr 閮藉湪璋冪敤褰撳墠鏂规硶鍓� 鍐欏叆鍊间簡
-                if (logMiddle.QualityState == (int)QualityState.OK)
+                if (logMiddle.QualityState == (int)QualityStateEnum.OK)
                 {
-                    qualityState = QualityState.OK;
+                    qualityState = QualityStateEnum.OK;
                     return qualityState;
                 }
 
@@ -2728,25 +2728,25 @@
             }
             else if (logMiddle.WorkingProcedure == "OP10")
             {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂�
-                if (logMiddle.QualityState == (int)QualityState.NG)
+                if (logMiddle.QualityState == (int)QualityStateEnum.NG)
                 {
                     qualityNoOkEnum = QualityNoOkEnum.OP10鍘氬害瓒呭樊;
                 }
                 else
                 {
-                    qualityState = QualityState.OK;
+                    qualityState = QualityStateEnum.OK;
                 }
                 return qualityState;
             }
             else if (logMiddle.WorkingProcedure == "OP20")
             {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂�
-                if (logMiddle.QualityState == (int)QualityState.NG)
+                if (logMiddle.QualityState == (int)QualityStateEnum.NG)
                 {
                     qualityNoOkEnum = QualityNoOkEnum.OP20灏忓ご瀛旂洿寰勮秴宸�;
                 }
                 else
                 {
-                    qualityState = QualityState.OK;
+                    qualityState = QualityStateEnum.OK;
                 }
                 return qualityState;
             }
@@ -2754,35 +2754,35 @@
             {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂�
                 if (logMiddle.QualityStateStr.Equals("OK"))
                 {
-                    qualityState = QualityState.OK;
+                    qualityState = QualityStateEnum.OK;
                 }
                 else
                 {
-                    qualityState = QualityState.NG;
+                    qualityState = QualityStateEnum.NG;
                 }
                 return qualityState;
             }
             else if (logMiddle.WorkingProcedure == "OP35")
             {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂�
-                if (logMiddle.QualityState == (int)QualityState.NG)
+                if (logMiddle.QualityState == (int)QualityStateEnum.NG)
                 {
                     qualityNoOkEnum = QualityNoOkEnum.OP35婊氬帇鍔涜秴宸�;
                 }
                 else
                 {
-                    qualityState = QualityState.OK;
+                    qualityState = QualityStateEnum.OK;
                 }
                 return qualityState;
             }
             else if (logMiddle.WorkingProcedure == "OP40")
             {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂�
-                if (logMiddle.QualityState == (int)QualityState.NG)
+                if (logMiddle.QualityState == (int)QualityStateEnum.NG)
                 {
                     qualityNoOkEnum = QualityNoOkEnum.OP40鍘氬害瓒呭樊;
                 }
                 else
                 {
-                    qualityState = QualityState.OK;
+                    qualityState = QualityStateEnum.OK;
                 }
                 return qualityState;
             }
@@ -2799,17 +2799,17 @@
         {
             if (qualityState.HasValue == false)
             {
-                return (int)QualityState.Suspected;
+                return (int)QualityStateEnum.Suspected;
             }
             if (qualityState.Value == 1)
             {
-                return (int)QualityState.OK;
+                return (int)QualityStateEnum.OK;
             }
             if (qualityState.Value == 2)
             {
-                return (int)QualityState.NG;
+                return (int)QualityStateEnum.NG;
             }
-            return (int)QualityState.Suspected;
+            return (int)QualityStateEnum.Suspected;
         }
 
 
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 20da427..aae2e7b 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
@@ -347,12 +347,12 @@
                                         if (logMiddle.OP35OK)
                                         {
                                             logMiddle.QualityStateStr = "OK";
-                                            logMiddle.QualityState = (int)QualityState.OK;
+                                            logMiddle.QualityState = (int)QualityStateEnum.OK;
                                         }
                                         else
                                         {
                                             logMiddle.QualityStateStr = "NG";
-                                            logMiddle.QualityState = (int)QualityState.NG;
+                                            logMiddle.QualityState = (int)QualityStateEnum.NG;
                                         }
                                     }
                                     else if (WorkingProcedure.Equals("OP60"))
diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501.cs
index 1f0516a..100be94 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501.cs
@@ -277,7 +277,7 @@
                                         wplog.OnlineTime = DateTimeHelper.GetDateTime();//缁欎笂绾挎椂闂寸敤
 
                                         //wplog.QualityState = 1;
-                                        wplog.QualityState = (int)QualityState.OK;//榛樿鍚堟牸锛孫P05榛樿鍚堟牸
+                                        wplog.QualityState = (int)QualityStateEnum.OK;//榛樿鍚堟牸锛孫P05榛樿鍚堟牸
 
                                         wplog.ProcessingDuration = 1;
                                         wplog.MachineToolState = 1;
diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/HMI_WorkpieceWrite.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/HMI_WorkpieceWrite.cs
index 41e17cb..ab5b439 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/HMI_WorkpieceWrite.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/HMI_WorkpieceWrite.cs
@@ -1,4 +1,5 @@
-锘縰sing iWare_SCADA_BusinessLogical.BLL;
+锘縰sing iWare.Wms.Core;
+using iWare_SCADA_BusinessLogical.BLL;
 using iWare_SCADA_BusinessLogical.Utils;
 using iWare_SCADA_Model;
 using System;
@@ -136,7 +137,7 @@
                             Object QualityState = null;
                             Object CheckUpdate = null;
                             Object QualityErrorInfo = null;
-                            Object WorkingProcedureInt=null;
+                            Object WorkingProcedureInt = null;
                             string WorkingProcedureCurrent = "";
                             int UpdateIsOK = 0;
 
@@ -154,10 +155,10 @@
                                     case "CheckUpdate":
                                         CheckUpdate = plcService.ReadValuePoint(col.DbNumber, col.Offset, col.DataCaptureColumnLength.Value, PLCManger.GetTypeForString(col.DataCaptureColumnType));
 
-                                        if((bool)CheckUpdate)
+                                        if ((bool)CheckUpdate)
                                         {
                                             var check = plcService.WriteValuePointNew(col.DbNumber, col.Offset, false);
-                                        } 
+                                        }
                                         //plcService.WriteValuePoint(col.DbNumber, col.Offset, 0, PLCManger.GetTypeForString(col.DataCaptureColumnType));
                                         break;
                                     case "QualityErrorInfo":
@@ -183,7 +184,7 @@
                                 StringBuilder builder = new StringBuilder();
                                 if (WorkPieceID != null)
                                 {
-                                    if (WorkPieceID.ToString().Trim().Length==0)
+                                    if (WorkPieceID.ToString().Trim().Length == 0)
                                     {
                                         builder.AppendLine("宸ヤ欢浜岀淮鐮佸�硷細銆�" + WorkPieceID.ToString().Trim() + "銆戦暱搴﹀紓甯革紝闀垮害涓嶇瓑浜�22浣�!");
                                     }
@@ -196,7 +197,7 @@
                                     {
                                         builder.AppendLine("宸ヤ欢宸ュ簭锛氥��" + WorkingProcedureInt + "銆戦暱搴﹀紓甯革紝涓嶅湪绾﹀畾鏋氫妇鑼冨洿鍐�!");
                                     }
-                                    
+
 
                                     if (QualityState == null)
                                     {
@@ -210,7 +211,7 @@
                                         }
                                         else if ((int)QualityState == 2 || (int)QualityState == 3)
                                         {
-                                            if (QualityErrorInfo == null|| string.IsNullOrEmpty(QualityErrorInfo.ToString()))
+                                            if (QualityErrorInfo == null || string.IsNullOrEmpty(QualityErrorInfo.ToString()))
                                             {
                                                 builder.AppendLine("宸ヤ欢浜岀淮鐮佸�硷細銆�" + WorkPieceID + "銆戣川閲忎笉鍚堟牸鍘熷洜涓嶈兘涓虹┖");
                                             }
@@ -270,7 +271,7 @@
                                 using (DbModel db = new DbModel())
                                 {
                                     info = new WorkPieceInfo();
-                                    info = db.WorkPieceInfo.Where(o => o.WorkPieceID == WorkPieceID.ToString()&&o.IsDeleted==false).FirstOrDefault();
+                                    info = db.WorkPieceInfo.Where(o => o.WorkPieceID == WorkPieceID.ToString() && o.IsDeleted == false).FirstOrDefault();
 
                                     if (info == null)
                                     {
@@ -304,11 +305,11 @@
                                     info.QualityState = Convert.ToInt32(QualityState);
                                     info.QualityStateUpdateUser = "HMI";
                                     info.QualityStateUpdateTime = DateTime.Now;
-                                    info.QualityStateUpdateMode = Environment.MachineName+"鑷姩";
+                                    info.QualityStateUpdateMode = Environment.MachineName + "鑷姩";
                                     info.QualityErrorInfo = QualityErrorInfo.ToString();
-                                    if(!info.WorkingProcedureCurrent.Equals(WorkingProcedureCurrent))
+                                    if (!info.WorkingProcedureCurrent.Equals(WorkingProcedureCurrent))
                                     {
-                                        info.Remarks = ( $"HMI淇敼宸ュ簭{info.WorkingProcedureCurrent}鍒皗WorkingProcedureCurrent}");
+                                        info.Remarks = ($"HMI淇敼宸ュ簭{info.WorkingProcedureCurrent}鍒皗WorkingProcedureCurrent}");
                                         info.WorkingProcedureCurrent = WorkingProcedureCurrent;
                                         info.WorkingProcedureCurrent = WorkingProcedureCurrent;
                                     }
@@ -330,11 +331,16 @@
 
                                     wplog = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceInfo>(info);
                                     wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId();
-                                    wplog.Remarks = "HMI鏇存柊宸ヤ欢璐ㄩ噺淇℃伅";
-                                    wplog.OnlineTime =info.WorkPieceinitOnlineTime;
-                                    
+
+                                    //1锛氬悎鏍� 2锛氫笉鍚堟牸 3锛氱枒浼�"
+                                    QualityStateEnum qualityStateEnum = (QualityStateEnum)Enum.Parse(typeof(QualityStateEnum), QualityState.ToString());
+                                    wplog.Remarks = $"HMI鏇存柊宸ヤ欢璐ㄩ噺淇℃伅,淇敼涓篬{qualityStateEnum.ToString()}]";
+                                    wplog.PieceLogType = (int)PieceLogTypeEnum.HMI淇敼璐ㄩ噺鐘舵��;
+                                    wplog.PieceLogTypeName = PieceLogTypeEnum.HMI淇敼璐ㄩ噺鐘舵��.ToString();
+                                    wplog.OnlineTime = info.WorkPieceinitOnlineTime;
+
                                     db.WorkPieceLog.Add(wplog);
-                                    db.WorkPieceInfoLog.Add (WorkPieceInfoManager.GetAddWorkPieceInfoLog(info));
+                                    db.WorkPieceInfoLog.Add(WorkPieceInfoManager.GetAddWorkPieceInfoLog(info));
                                     db.SaveChanges();
                                 }
 
@@ -364,7 +370,7 @@
                             }
 
                         }
-                        
+
                         if (!_dataCaptureConfig.DataCaptureFrequency.HasValue || _dataCaptureConfig.DataCaptureFrequency < 10)
                         {
                             Thread.Sleep(5000);
diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/OP80QualityDataHandler.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/OP80QualityDataHandler.cs
index f1d93d1..a80616a 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/OP80QualityDataHandler.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/OP80QualityDataHandler.cs
@@ -332,13 +332,13 @@
                 //濡傛灉OP80涓嬬嚎锛屽凡缁忔洿鏀逛簡璐ㄦ鐘舵�侊紝骞朵笖璐ㄦ鐘舵�佺瓑浜庝笉鍚堟牸锛屽垯杩欓噷灏变笉瑕佺户缁洿鏀硅川妫�鐘舵�佷簡 銆怑ditby shaocx,2024-08-28銆�
                 bool isNeedUpdateQualityState = true;
                 var ooDateTime = Convert.ToDateTime("0001-01-01");
-                if (pieceProcess.EndTime != ooDateTime && pieceProcess.QualityState == (int)QualityState.NG)
+                if (pieceProcess.EndTime != ooDateTime && pieceProcess.QualityState == (int)QualityStateEnum.NG)
                 {
                     isNeedUpdateQualityState = false;
                 }
                 if (isNeedUpdateQualityState)
                 {
-                    info.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
+                    info.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityStateEnum.OK : QualityStateEnum.NG);
                     logMiddle.QualityState = info.QualityState;
                     //鏍规嵁璐ㄩ噺鏁版嵁鍒ゆ柇鏄惁鍚堟牸/涓嶅悎鏍� 銆怑ditby shaocx,2024-06-25銆�
                     WorkPieceInfoManager.SetLogMiddleForQuality(ref logMiddle);
@@ -363,11 +363,11 @@
                 //鍗曠嫭澶勭悊 璐ㄩ噺鏁版嵁鐨勭姸鎬�
                 if (isNeedUpdateQualityState)
                 {
-                    qualityData.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
+                    qualityData.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityStateEnum.OK : QualityStateEnum.NG);
                 }
                 else
                 {//蹇呯劧鏄笉鍚堟牸
-                    qualityData.QualityState = (int)(QualityState.NG);
+                    qualityData.QualityState = (int)(QualityStateEnum.NG);
                 }
                 qualityData.OP80QualityState = qualityData.QualityState.ToString();
 
@@ -384,7 +384,7 @@
                     pieceProcess.QualityDataInfoID = op80id;
                 }
                 loginfo2.Remarks = $"璐ㄩ噺锛歿logMiddle.QualityStateStr ?? "绌�"}";
-                if (!info.QualityState.Equals(((int)QualityState.OK).ToString()))
+                if (!info.QualityState.Equals(((int)QualityStateEnum.OK).ToString()))
                 {
                     info.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�";
                 }
diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Enums/PieceLogTypeEnum.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Enums/PieceLogTypeEnum.cs
index d76f289..067ff8e 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Enums/PieceLogTypeEnum.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Enums/PieceLogTypeEnum.cs
@@ -18,5 +18,11 @@
         /// </summary>
         [Description("璇荤爜鍊煎紓甯�")]
         璇荤爜鍊煎紓甯� = 1,
+
+        /// <summary>
+        /// HMI淇敼璐ㄩ噺鐘舵��
+        /// </summary>
+        [Description("HMI淇敼璐ㄩ噺鐘舵��")]
+        HMI淇敼璐ㄩ噺鐘舵�� = 2,
     }
 }
\ No newline at end of file
diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/QualityStateHelper.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/QualityStateHelper.cs
index 9d29ba7..16f2ef7 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/QualityStateHelper.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/QualityStateHelper.cs
@@ -33,7 +33,7 @@
         /// <param name="pro"></param>
         public static void SetQualityStateForOP80(WorkPieceLogMiddle logMiddle, ref WorkPieceInfo info, ref WorkPieceProcess pro)
         {
-            QualityState setQualityState = QualityState.OK;
+            QualityStateEnum setQualityState = QualityStateEnum.OK;
             QualityNoOkEnum? qualityNoOkEnum = null;
 
             //鍘绘帀杩欎釜楠岃瘉,涓轰簡璁╂満搴婅鏁板拰鏁版嵁閲囬泦璁℃暟鐩稿悓  銆怑dityby shaocx,2024-09-04銆�
@@ -77,7 +77,7 @@
         {
             try
             {
-                QualityState setQualityState = QualityState.NG;
+                QualityStateEnum setQualityState = QualityStateEnum.NG;
                 QualityNoOkEnum? qualityNoOkEnum = null;
                 info.QualityState = (int)setQualityState;
 
diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/WorkPieceProcessHelper.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/WorkPieceProcessHelper.cs
index c3c49dd..094661a 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/WorkPieceProcessHelper.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/WorkPieceProcessHelper.cs
@@ -49,7 +49,7 @@
                 process.WorkingProcedureCurrent = _procedureCurrent_05;
 
 
-                process.QualityState = (int)QualityState.OK;
+                process.QualityState = (int)QualityStateEnum.OK;
 
 
                 process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Model/Enums.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Model/Enums.cs
index b1310b4..ff12fce 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Model/Enums.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Model/Enums.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
@@ -64,19 +65,22 @@
     /// <summary>
     /// 璐ㄩ噺鐘舵��
     /// </summary>
-    public enum QualityState
+    public enum QualityStateEnum
     {
         /// <summary>
         /// 鍚堟牸
         /// </summary>
+        [Description("鍚堟牸")]
         OK = 1,
         /// <summary>
         /// 涓嶅悎鏍�
         /// </summary>
+        [Description("涓嶅悎鏍�")]
         NG = 2,
         /// <summary>
         /// 鐤戜技
         /// </summary>
+        [Description("鐤戜技")]
         Suspected = 3
     }
 
diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Test/UnitTest1.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Test/UnitTest1.cs
index 3d87846..1faa746 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Test/UnitTest1.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Test/UnitTest1.cs
@@ -135,7 +135,7 @@
                 WorkingProcedure = "OP30",
                 WorkPieceID = "DZ045L2406240103521TAS",
                 UpdatedTime = DateTime.Now,
-                QualityState = (int)QualityState.NG,
+                QualityState = (int)QualityStateEnum.NG,
                 QualityNoOk = (int)QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩瓒呭樊,
                 QualityNoOkReason = QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩瓒呭樊.ToString(),
                 MonitoringPoint = "",

--
Gitblit v1.9.3