From bbe45291ccc4a2839bc98c0499b8db257418e875 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周三, 26 6月 2024 10:41:18 +0800
Subject: [PATCH] 2

---
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs |  386 ++++++++++++++++++++++++++++++++----------------------
 1 files changed, 230 insertions(+), 156 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 9cbd026..fb0d3df 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -456,9 +456,9 @@
         /// <summary>
         /// 璐ㄩ噺妫�娴嬪畬鎴�
         /// </summary>
-        /// <param name="loginfo"></param>
+        /// <param name="logMiddle"></param>
         /// <param name="type"></param>
-        public static void QualityInfoComplete(WorkPieceLogMiddle loginfo, LogType type)
+        public static void QualityInfoComplete(WorkPieceLogMiddle logMiddle, LogType type)
         {
             //姝ゅ鍚屾椂鎻掑叆浜哤orkPieceLog锛學orkPieceInfoLog琛紝骞舵柊澧炴垨淇敼WorkPieceInfo琛�
             //鎻掑叆璐ㄩ噺鐩稿叧琛≦ualityDataInfo
@@ -468,79 +468,79 @@
 
                 bool isAddWorkPieceInfo = false;
                 WorkPieceLog loginfo2 = new WorkPieceLog();
-                loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(loginfo);
+                loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(logMiddle);
                 try
                 {
 
-                    if (loginfo.WorkPieceID.Length == 22)
+                    if (logMiddle.WorkPieceID.Length == 22)
                     {//鑾峰彇鍒扮殑宸ヤ欢鍙峰紓甯�
-                        WorkPieceInfo info = new WorkPieceInfo();
-                        info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
-                        if (info == null || info.WorkPieceID.Length < 1)
+                        WorkPieceInfo pieceInfo = new WorkPieceInfo();
+                        pieceInfo = db.WorkPieceInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
+                        if (pieceInfo == null || pieceInfo.WorkPieceID.Length < 1)
                         {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂�
-                            if (loginfo.MonitoringPoint.Equals("OP1002") || loginfo.MonitoringPoint.Equals("OP1003") || loginfo.MonitoringPoint.Contains("OP2002"))
+                            if (logMiddle.MonitoringPoint.Equals("OP1002") || logMiddle.MonitoringPoint.Equals("OP1003") || logMiddle.MonitoringPoint.Contains("OP2002"))
                             {//OP10 娌℃湁涓婄嚎鎵爜鏋紝绾﹀畾鐢ㄦ祴閲忓畬鎴愪俊鍙峰綋涓婄嚎鏍囪
-                                info = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLogMiddle>(loginfo);
+                                pieceInfo = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLogMiddle>(logMiddle);
                                 //EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict());
-                                if (!loginfo.WorkingProcedure.Equals("OP05"))
+                                if (!logMiddle.WorkingProcedure.Equals("OP05"))
                                 {//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬�
-                                    info.QualityState = (int)QualityState.Suspected;
-                                    info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
-                                    info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
+                                    pieceInfo.QualityState = (int)QualityState.Suspected;
+                                    pieceInfo.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
+                                    pieceInfo.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
                                 }
                                 else
                                 {
-                                    info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊�
-                                    info.Remarks = "OP05鏂板宸ヤ欢淇℃伅";
+                                    pieceInfo.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊�
+                                    pieceInfo.Remarks = "OP05鏂板宸ヤ欢淇℃伅";
                                 }
-                                info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();
-                                info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80";
-                                info.CreatedUserName = loginfo.MonitoringPoint;
-                                info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
-                                info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();//
-                                info.WorkingProcedureEndTime = null;
-                                info = ParseQRCode(info);
+                                pieceInfo.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();
+                                pieceInfo.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80";
+                                pieceInfo.CreatedUserName = logMiddle.MonitoringPoint;
+                                pieceInfo.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
+                                pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();//
+                                pieceInfo.WorkingProcedureEndTime = null;
+                                pieceInfo = ParseQRCode(pieceInfo);
                                 isAddWorkPieceInfo = true;
 
 
                             }
                             else
                             {
-                                loginfo2.Remarks = loginfo2.Remarks ?? "" + $"|宸ヤ欢{loginfo.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡loginfo.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�";
-                                Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{loginfo.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡loginfo.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�");
+                                loginfo2.Remarks = loginfo2.Remarks ?? "" + $"|宸ヤ欢{logMiddle.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡logMiddle.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�";
+                                Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{logMiddle.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡logMiddle.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�");
                                 return;
                             }
                         }
-                        if (loginfo.MonitoringPoint.Equals("OP1002") || loginfo.MonitoringPoint.Equals("OP1003") || loginfo.MonitoringPoint.Contains("OP2002"))
+                        if (logMiddle.MonitoringPoint.Equals("OP1002") || logMiddle.MonitoringPoint.Equals("OP1003") || logMiddle.MonitoringPoint.Contains("OP2002"))
                         {// OP10 娌℃湁涓婄嚎鎵爜鏋紝绾﹀畾鐢ㄦ祴閲忓畬鎴愪俊鍙峰綋涓婄嚎鏍囪锛屾墍浠ヤ笂绾块渶瑕佷慨鏀圭殑瀛楁鏀捐繖閲�
 
-                            if (loginfo.WorkingProcedure.Equals("OP10"))
+                            if (logMiddle.WorkingProcedure.Equals("OP10"))
                             {
-                                var WorkingProcedure = (loginfo.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40");
+                                var WorkingProcedure = (logMiddle.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40");
                                 loginfo2.WorkingProcedure = WorkingProcedure;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
-                                loginfo.WorkingProcedure = WorkingProcedure;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
+                                logMiddle.WorkingProcedure = WorkingProcedure;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
                             }
-                            info.WorkPieceCurrentPosition = loginfo.WorkingProcedure;
-                            info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
-                            info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
-                            info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
+                            pieceInfo.WorkPieceCurrentPosition = logMiddle.WorkingProcedure;
+                            pieceInfo.WorkPieceCurrentPositionOrder = pieceInfo.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) / 2;
+                            pieceInfo.WorkingProcedureCurrent = logMiddle.WorkingProcedure;
+                            pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
 
                             #region 鏇存柊璁惧瀹炴椂琛�
 
                             bool isAddEquipmentCurrentMonitor = false;
                             EquipmentCurrentMonitor equinfo = new EquipmentCurrentMonitor();
-                            equinfo = db.EquipmentCurrentMonitor.Where(o => o.EquipmentID == loginfo.EquipmentID).FirstOrDefault();
+                            equinfo = db.EquipmentCurrentMonitor.Where(o => o.EquipmentID == logMiddle.EquipmentID).FirstOrDefault();
                             if (equinfo == null || equinfo.Id < 1)
                             {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂�
-                                Log4NetHelper.WriteErrorLog(type, $"璁惧{loginfo.EquipmentID} 鍛婅鐩戞帶{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒拌澶囩洃鎺т俊鎭紝鐜版柊澧�");
-                                equinfo = EntityPropHelper.Mapper<EquipmentCurrentMonitor, WorkPieceLog>(loginfo);
+                                Log4NetHelper.WriteErrorLog(type, $"璁惧{logMiddle.EquipmentID} 鍛婅鐩戞帶{logMiddle.WorkingProcedure} 娌℃湁鑾峰彇鍒拌澶囩洃鎺т俊鎭紝鐜版柊澧�");
+                                equinfo = EntityPropHelper.Mapper<EquipmentCurrentMonitor, WorkPieceLog>(logMiddle);
                                 equinfo.OnlineTime = DateTime.Now;
                                 isAddEquipmentCurrentMonitor = true;
                             }
                             else
                             {//鏇存柊宸ヤ欢
-                                equinfo.WorkPieceID = loginfo.WorkPieceID;
-                                equinfo.UpdatedUserName = loginfo.MonitoringPoint;
+                                equinfo.WorkPieceID = logMiddle.WorkPieceID;
+                                equinfo.UpdatedUserName = logMiddle.MonitoringPoint;
                                 equinfo.UpdatedTime = DateTime.Now;
                                 equinfo.OnlineTime = DateTime.Now;
                             }
@@ -552,90 +552,93 @@
                             #endregion
                             //UpdateKnifeToolLift(db, loginfo);//鏇存柊鍒�鍏峰鍛戒俊鎭�
                         }
-                        info.WorkPieceState = (int)WorkPieceState.WIP;//鎺ㄥ嚭鍚庡拰SPC鎶芥鍚� 璐ㄩ噺褰曞叆鏃剁姸鎬佷慨鏀瑰洖鍦ㄥ埗鍝�
-                        info.EquipmentID = loginfo.EquipmentID;
-                        info.QualityStateUpdateUser = loginfo.UpdatedUserName;
-                        info.QualityStateUpdateTime = loginfo.UpdatedTime.Value.LocalDateTime;
-                        info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
-                        info.Remarks = info.Remarks ?? "" + $"{loginfo.WorkingProcedure}璐ㄩ噺妫�娴嬪畬鎴愪慨鏀�";
-                        info.UpdatedUserName = loginfo.MonitoringPoint;
-                        info.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
-                        if (!(info.WorkingProcedureStartTime.HasValue && info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
+                        pieceInfo.WorkPieceState = (int)WorkPieceState.WIP;//鎺ㄥ嚭鍚庡拰SPC鎶芥鍚� 璐ㄩ噺褰曞叆鏃剁姸鎬佷慨鏀瑰洖鍦ㄥ埗鍝�
+                        pieceInfo.EquipmentID = logMiddle.EquipmentID;
+                        pieceInfo.QualityStateUpdateUser = logMiddle.UpdatedUserName;
+                        pieceInfo.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime;
+                        pieceInfo.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
+                        pieceInfo.Remarks = pieceInfo.Remarks ?? "" + $"{logMiddle.WorkingProcedure}璐ㄩ噺妫�娴嬪畬鎴愪慨鏀�";
+                        pieceInfo.UpdatedUserName = logMiddle.MonitoringPoint;
+                        pieceInfo.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
+                        if (!(pieceInfo.WorkingProcedureStartTime.HasValue && pieceInfo.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
                         {//宸ュ簭寮�濮嬫椂闂存病鏈夊垯璧嬪��
-                            info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
+                            pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
                         }
-                        info.QualityState = (int)((loginfo.QualityStateStr.Equals("OK") || loginfo.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
+                        pieceInfo.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
+                        //璧嬪�间笉鍚堟牸鍘熷洜
+                        SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
 
-                        if (!info.QualityState.Equals(((int)QualityState.OK).ToString()))
+
+                        if (!pieceInfo.QualityState.Equals(((int)QualityState.OK).ToString()))
                         {
-                            info.QualityErrorInfo = $"{loginfo.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍納info.QualityState}";
+                            pieceInfo.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍納pieceInfo.QualityState}";
                         }
                         else
                         {
-                            info.QualityErrorInfo = "";
+                            pieceInfo.QualityErrorInfo = "";
                         }
-                        loginfo.QualityState = info.QualityState;
+                        logMiddle.QualityState = pieceInfo.QualityState;
                         if (isAddWorkPieceInfo)
                         {
-                            db.WorkPieceInfo.Add(info);
+                            db.WorkPieceInfo.Add(pieceInfo);
                         }
 
                         #region 鏍规嵁鏍囧噯鍊兼洿鏂版渶鏂拌川閲忔暟鎹紙OP10/OP40/OP20/OP60锛�
-                        var qcofig = db.EquipmentQualityConfig.Where(o => o.WorkingProcedure.Equals(loginfo.WorkingProcedure) && o.ParamType != 1 && o.IsDeleted == false).ToList();
+                        var qcofig = db.EquipmentQualityConfig.Where(o => o.WorkingProcedure.Equals(logMiddle.WorkingProcedure) && o.ParamType != 1 && o.IsDeleted == false).ToList();
                         if (qcofig.Count > 0)
                         {
-                            QualityDataHand(loginfo, qcofig);
+                            QualityDataHand(logMiddle, qcofig);
                         }
                         #endregion
 
 
-                        var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
+                        var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
                         if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1)
                         {//鎻掑叆QualityDataInfo琛�
-                            qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(loginfo);
+                            qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(logMiddle);
                             db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData));
                         }
                         //淇敼QualityDataInfo琛� //閲嶅鏀跺埌璐ㄩ噺淇℃伅锛屼細瑕嗙洊涔嬪墠鐨�
-                        EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(loginfo, qualityData, GetQualityDataInfoUpdate(loginfo.WorkingProcedure, loginfo.MonitoringPoint));//鎸囧畾淇敼瀛楁
+                        EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(logMiddle, qualityData, GetQualityDataInfoUpdate(logMiddle, logMiddle.WorkingProcedure, logMiddle.MonitoringPoint));//鎸囧畾淇敼瀛楁
 
-                        qualityData.QualityStateUpdateUser = info.UpdatedUserName;
-                        qualityData.QualityReceiveTime = info.UpdatedTime.Value.LocalDateTime;
-                        qualityData.QualityStateUpdateMode = info.QualityStateUpdateMode;
-                        if (loginfo.WorkingProcedure.Equals("OP10"))
+                        qualityData.QualityStateUpdateUser = pieceInfo.UpdatedUserName;
+                        qualityData.QualityReceiveTime = pieceInfo.UpdatedTime.Value.LocalDateTime;
+                        qualityData.QualityStateUpdateMode = pieceInfo.QualityStateUpdateMode;
+                        if (logMiddle.WorkingProcedure.Equals("OP10"))
                         {
-                            qualityData.OP10QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+                            qualityData.OP10QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                             qualityData.OP10QualityReceiveTime = DateTimeHelper.GetDateTime();
                         }
-                        else if (loginfo.WorkingProcedure.Equals("OP20"))
+                        else if (logMiddle.WorkingProcedure.Equals("OP20"))
                         {
                             //Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}璐ㄩ噺淇℃伅銆恵loginfo.QualityStateStr ?? "绌�"}銆�" +
                             //    $"銆恵(loginfo.QualityState.HasValue? loginfo.QualityState.Value:999)}銆戙�恵(info.QualityState.HasValue ? info.QualityState.Value : 888)}銆� 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]");
-                            qualityData.OP20QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+                            qualityData.OP20QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                             qualityData.OP20QualityReceiveTime = DateTimeHelper.GetDateTime();
-                            qualityData.OP20QualityFilePath = loginfo.OP20QualityFilePath;
+                            qualityData.OP20QualityFilePath = logMiddle.OP20QualityFilePath;
                         }
-                        else if (loginfo.WorkingProcedure.Equals("OP30"))
+                        else if (logMiddle.WorkingProcedure.Equals("OP30"))
                         {
-                            switch (loginfo.MonitoringPoint)
+                            switch (logMiddle.MonitoringPoint)
                             {
                                 case "OP3002CH3":
-                                    qualityData.OP30QualityFilePathCH3 = loginfo.OP30QualityFilePathCH3;
-                                    qualityData.OP30QualityStateCH3 = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+                                    qualityData.OP30QualityFilePathCH3 = logMiddle.OP30QualityFilePathCH3;
+                                    qualityData.OP30QualityStateCH3 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                                     qualityData.OP30QualityReceiveTimeCH3 = DateTimeHelper.GetDateTime();
                                     break;
                                 case "OP3002CH4":
-                                    qualityData.OP30QualityFilePathCH4 = loginfo.OP30QualityFilePathCH4;
-                                    qualityData.OP30QualityStateCH4 = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+                                    qualityData.OP30QualityFilePathCH4 = logMiddle.OP30QualityFilePathCH4;
+                                    qualityData.OP30QualityStateCH4 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                                     qualityData.OP30QualityReceiveTimeCH4 = DateTimeHelper.GetDateTime();
                                     break;
                                 case "OP3002CH5":
-                                    qualityData.OP30QualityFilePathCH5 = loginfo.OP30QualityFilePathCH5;
-                                    qualityData.OP30QualityStateCH5 = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+                                    qualityData.OP30QualityFilePathCH5 = logMiddle.OP30QualityFilePathCH5;
+                                    qualityData.OP30QualityStateCH5 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                                     qualityData.OP30QualityReceiveTimeCH5 = DateTimeHelper.GetDateTime();
                                     break;
                                 case "OP3002CH6":
-                                    qualityData.OP30QualityFilePathCH6 = loginfo.OP30QualityFilePathCH6;
-                                    qualityData.OP30QualityStateCH6 = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+                                    qualityData.OP30QualityFilePathCH6 = logMiddle.OP30QualityFilePathCH6;
+                                    qualityData.OP30QualityStateCH6 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                                     qualityData.OP30QualityReceiveTimeCH6 = DateTimeHelper.GetDateTime();
                                     break;
                                 default:
@@ -644,42 +647,46 @@
                             //qualityData.OP30QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
                             //qualityData.OP30QualityReceiveTime = DateTimeHelper.GetDateTime();
                         }
-                        else if (loginfo.WorkingProcedure.Equals("OP35"))
+                        else if (logMiddle.WorkingProcedure.Equals("OP35"))
                         {
-                            qualityData.OP35QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+                            qualityData.OP35QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                             qualityData.OP35QualityReceiveTime = DateTimeHelper.GetDateTime();
                         }
-                        else if (loginfo.WorkingProcedure.Equals("OP40"))
+                        else if (logMiddle.WorkingProcedure.Equals("OP40"))
                         {
-                            qualityData.OP40QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+                            qualityData.OP40QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                             qualityData.OP40QualityReceiveTime = DateTimeHelper.GetDateTime();
                         }
-                        else if (loginfo.WorkingProcedure.Equals("OP60"))
+                        else if (logMiddle.WorkingProcedure.Equals("OP60"))
                         {
-                            qualityData.OP60QualityFilePath = loginfo.OP60QualityFilePath;
-                            qualityData.OP60QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+                            qualityData.OP60QualityFilePath = logMiddle.OP60QualityFilePath;
+                            qualityData.OP60QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                             qualityData.OP60QualityReceiveTime = DateTimeHelper.GetDateTime();
                         }
-                        else if (loginfo.WorkingProcedure.Equals("OP80"))
+                        else if (logMiddle.WorkingProcedure.Equals("OP80"))
                         {
-                            qualityData.OP80QualityFilePath = loginfo.OP80QualityFilePath;
-                            qualityData.OP80QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+                            qualityData.OP80QualityFilePath = logMiddle.OP80QualityFilePath;
+                            qualityData.OP80QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                             qualityData.OP80QualityReceiveTime = DateTimeHelper.GetDateTime();
                         }
 
-                        var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == info.WorkingProcedureCurrent && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
-                        if (pro == null || pro.WorkPieceID.Length < 1 || loginfo.MonitoringPoint.Equals("OP1002") || loginfo.MonitoringPoint.Equals("OP1003") || loginfo.MonitoringPoint.Contains("OP2002"))
+                        var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID && o.WorkingProcedureCurrent == pieceInfo.WorkingProcedureCurrent && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
+                        if (pro == null || pro.WorkPieceID.Length < 1 || logMiddle.MonitoringPoint.Equals("OP1002") || logMiddle.MonitoringPoint.Equals("OP1003") || logMiddle.MonitoringPoint.Contains("OP2002"))
                         {// OP10 娌℃湁涓婄嚎鎵爜鏋紝绾﹀畾鐢ㄦ祴閲忓畬鎴愪俊鍙峰綋涓婄嚎鏍囪锛屾墍浠ヤ笂绾块渶瑕佷慨鏀圭殑瀛楁鏀捐繖閲�
                             //涓婄嚎鏄瘡娆¢兘鎻掑叆
 
                             WorkPieceProcess process = new WorkPieceProcess();
-                            process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info);
+                            process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(pieceInfo);
                             process.StartTime = DateTimeHelper.GetDateTime();
-                            process.QualityState = info.QualityState.HasValue ? info.QualityState.Value : (int)QualityState.OK;
+                            process.QualityState = pieceInfo.QualityState.HasValue ? pieceInfo.QualityState.Value : (int)QualityState.OK;
+                            //璁板綍璐ㄩ噺涓嶅悎鏍煎師鍥� 銆怑ditby shaocx,2024-06-26銆�
+                            //璧嬪�间笉鍚堟牸鍘熷洜
+                            SetQualityNoOk_WorkPieceProcess(logMiddle, ref process);
+
                             process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
-                            process.CreatedUserName = loginfo.MonitoringPoint;
+                            process.CreatedUserName = logMiddle.MonitoringPoint;
                             process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
-                            process.UpdatedUserName = loginfo.MonitoringPoint;
+                            process.UpdatedUserName = logMiddle.MonitoringPoint;
                             process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                             process.OperationType = OperationType.鐢熶骇.ToString();
                             process.QualityDataInfoID = qualityData.Id;
@@ -689,21 +696,23 @@
                         else
                         {//鍏朵粬鐨勯兘鍙槸淇敼
                             pro.QualityDataInfoID = qualityData.Id;
-                            pro.UpdatedUserName = loginfo.MonitoringPoint;
+                            pro.UpdatedUserName = logMiddle.MonitoringPoint;
                             pro.UpdatedTime = DateTimeHelper.GetDateTime();
-                            pro.QualityState = info.QualityState.HasValue ? info.QualityState.Value : 9;
+                            pro.QualityState = pieceInfo.QualityState.HasValue ? pieceInfo.QualityState.Value : 9;
+                            //璧嬪�间笉鍚堟牸鍘熷洜
+                            SetQualityNoOk_WorkPieceProcess(logMiddle, ref pro);
 
                             //TODO:鍒ゆ柇濡傛灉鏄�60宸ュ簭锛岄偅涔堝氨瑕佹洿鏂皃ro琛ㄧ殑鍒涘缓浜轰负loginfo.MonitoringPoint 銆怑ditby shaocx,2024-06-05銆�
-                            if (loginfo.WorkingProcedure == "OP60")
+                            if (logMiddle.WorkingProcedure == "OP60")
                             {
-                                pro.CreatedUserName = loginfo.MonitoringPoint;
+                                pro.CreatedUserName = logMiddle.MonitoringPoint;
 
                             }
                         }
 
-                        if (loginfo.QualityType != null && loginfo.QualityType.Equals(QualityType.SPC.ToString()))
+                        if (logMiddle.QualityType != null && logMiddle.QualityType.Equals(QualityType.SPC.ToString()))
                         {//SPC鍙嶉锛�
-                            if (loginfo.QualityState != (int)QualityState.OK)
+                            if (logMiddle.QualityState != (int)QualityState.OK)
                             {
                                 //褰撴煇鍒板伐搴忔娴嬪埌涓嶅悎鏍煎伐浠舵椂锛屼粠璇ュ伐浠跺姞宸ュ畬鎴愭椂鍒诲墠鎸囧畾鏃堕棿璧疯嚦鎶ユ涓嶅悎鏍兼椂闂存锛岀郴缁熷皢璇ュ伐浠剁殑鏈�鍚庡姞宸ュ伐搴忓湪璇ユ椂闂存鍐呭姞宸ョ殑鎵�鏈夊伐浠躲�佹鍦ㄥ姞宸ョ殑宸ヤ欢銆佽宸ュ簭鍏ュ彛澶勭殑绗竴涓伐浠跺叏閮ㄦ爣璁颁负鐤戜技鐘舵�侊紝鐢变汉宸ュ妫�宸ヤ欢骞朵慨鏀圭姸鎬侊紝骞舵敮鎸佹壒閲忓彉鏇淬��
                                 //绛斿锛氬湪绾挎祴閲忎笉闇�瑕佽蛋杩欎釜娴佺▼锛屽彧鏈塖PC鎶芥鎵嶉渶瑕侊紝闇�瑕佹妸杩欐椂闂存鐨勫伐浠跺叏閮ㄧ疆涓虹枒浼硷紝鍝�曟槸宸插畬鎴愬伐浠�
@@ -716,24 +725,24 @@
                             }
 
                         }
-                        db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info));
+                        db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(pieceInfo));
                         db.QualityDataInfoLog.Add(GetAddQualityDataInfoLog(qualityData));//鎻掑叆鏃ュ織
                     }
                     else
                     {
-                        loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺妫�娴嬪畬鎴愯鍙栦簩缁寸爜{loginfo.WorkPieceID ?? "绌�"}寮傚父";
-                        Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
+                        loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺妫�娴嬪畬鎴愯鍙栦簩缁寸爜{logMiddle.WorkPieceID ?? "绌�"}寮傚父";
+                        Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
 
                     }
                 }
                 catch (Exception ex)
                 {
-                    loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺妫�娴嬪畬鎴恵loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{ex.Message}++{ex.StackTrace}";
-                    Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
+                    loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺妫�娴嬪畬鎴恵logMiddle.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{ex.Message}++{ex.StackTrace}";
+                    Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
                 }
                 finally
                 {
-                    loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿loginfo.QualityStateStr ?? "绌�"}";
+                    loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿logMiddle.QualityStateStr ?? "绌�"}";
                     db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛�
                     db.SaveChanges();
                 }
@@ -941,37 +950,43 @@
         /// <summary>
         /// 宸ュ簭瀹屾垚
         /// </summary>
-        /// <param name="loginfo"></param>
+        /// <param name="logMiddle"></param>
         /// <param name="type"></param>
-        public static void WorkingProcedureComplete(WorkPieceLogMiddle loginfo, LogType type)
+        public static void WorkingProcedureComplete(WorkPieceLogMiddle logMiddle, LogType type)
         {
 
             using (DbModel db = new DbModel())
             {
+                if (logMiddle.WorkingProcedure.Equals("OP70"))
+                {
+                    logMiddle.QualityState = (int)QualityState.OK; //濡傛灉鏄疧P70锛屽垯榛樿鏄悎鏍� 銆怑ditby shaocx,2024-06-25銆�
+                }
+
                 WorkPieceLog loginfo2 = new WorkPieceLog();
-                loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(loginfo);
+                loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(logMiddle);
 
                 try
                 {
-                    if (loginfo.WorkPieceID != null && loginfo.WorkPieceID.Trim('\0').Length == 22)
+                    if (logMiddle.WorkPieceID != null && logMiddle.WorkPieceID.Trim('\0').Length == 22)
                     {
+
                         bool isAddWorkPieceInfo = false;
                         WorkPieceInfo info = new WorkPieceInfo();
-                        info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
+                        info = db.WorkPieceInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
                         if (info == null || info.WorkPieceID.Length < 1)
                         {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂�  锛堜负浜嗘祴璇曞厛鍏堟柊澧烇級
-                            Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{loginfo.WorkPieceID} 宸ヤ欢鎺ㄥ嚭宸ュ簭{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�");
+                            Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{logMiddle.WorkPieceID} 宸ヤ欢鎺ㄥ嚭宸ュ簭{logMiddle.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�");
                             //db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛�
                             //db.SaveChanges();
 
-                            loginfo2 = CommonManager.Instance.GetWorkPieceID(loginfo, type);
-                            info = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLog>(loginfo);
+                            loginfo2 = CommonManager.Instance.GetWorkPieceID(logMiddle, type);
+                            info = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLog>(logMiddle);
                             //EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict());
-                            if (!loginfo.WorkingProcedure.Equals("OP05"))
+                            if (!logMiddle.WorkingProcedure.Equals("OP05"))
                             {//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬�
                                 info.QualityState = (int)QualityState.Suspected;
-                                info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
-                                info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
+                                info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
+                                info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
                             }
                             else
                             {
@@ -980,37 +995,37 @@
                             }
                             info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();//WorkPieceInitOnlineTime
                             info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80";
-                            info.CreatedUserName = loginfo.MonitoringPoint;
+                            info.CreatedUserName = logMiddle.MonitoringPoint;
                             info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
-                            info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
+                            info.WorkingProcedureCurrent = logMiddle.WorkingProcedure;
                             info.WorkingProcedureEndTime = null;
                             info = ParseQRCode(info);
                             isAddWorkPieceInfo = true;
                         }
-                        if (loginfo.WorkingProcedure.Equals("OP10"))
+                        if (logMiddle.WorkingProcedure.Equals("OP10"))
                         {
                             //var WorkingProcedure = (loginfo.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40");
                             loginfo2.WorkingProcedure = info.WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
-                            loginfo.WorkingProcedure = info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂
+                            logMiddle.WorkingProcedure = info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂
                         }
-                        info.UpdatedUserName = loginfo.MonitoringPoint;
+                        info.UpdatedUserName = logMiddle.MonitoringPoint;
                         info.UpdatedTime = DateTimeHelper.GetDateTime();
-                        info.WorkingProcedureCompleted = info.WorkingProcedureCompleted + loginfo.WorkingProcedure;//宸插畬鎴愬伐搴�
+                        info.WorkingProcedureCompleted = info.WorkingProcedureCompleted + logMiddle.WorkingProcedure;//宸插畬鎴愬伐搴�
                         if (!(info.WorkingProcedureStartTime.HasValue && info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
                         {//鑻ヤ竴鐩存病鏈夊伐搴忓紑濮嬫椂闂达紝鍒欒祴鍊煎綋鍓嶆椂闂�
                             info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
                         }
                         info.WorkingProcedureEndTime = DateTimeHelper.GetDateTime();
-                        info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
-                        info.Remarks = $"{loginfo.WorkingProcedure}宸ュ簭瀹屾垚";
+                        info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) / 2;
+                        info.Remarks = $"{logMiddle.WorkingProcedure}宸ュ簭瀹屾垚";
                         long op80id = 0;
-                        if (loginfo.WorkingProcedure.Equals("OP80"))
+                        if (logMiddle.WorkingProcedure.Equals("OP80"))
                         {
                             info.WorkPieceState = (int)WorkPieceState.FinishedProducts;
                             info.WorkPieceLastOfflineTime = DateTimeHelper.GetDateTime();
                             info.WorkPieceCurrentPosition = "OP80";
                             info.CompleteTime = DateTimeHelper.GetDateTime();
-                            info.OP80NewCode = loginfo.OP80NewCode;
+                            info.OP80NewCode = logMiddle.OP80NewCode;
 
                             //璐ㄦ鏁版嵁鏀逛负 鑾峰彇鏂囦欢鍚庝慨鏀� 銆怑ditby shaocx,2024-06-15銆�
                             /*
@@ -1021,14 +1036,14 @@
                             info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
                             //*/
 
-                            var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
+                            var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
                             if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1)
                             {//鎻掑叆QualityDataInfo琛�
-                                qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(loginfo);
+                                qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(logMiddle);
                                 db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData));
                             }
                             //淇敼QualityDataInfo琛� //閲嶅鏀跺埌璐ㄩ噺淇℃伅锛屼細瑕嗙洊涔嬪墠鐨�
-                            EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(loginfo, qualityData, GetQualityDataInfoUpdate(loginfo.WorkingProcedure, loginfo.MonitoringPoint));//鎸囧畾淇敼瀛楁
+                            EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(logMiddle, qualityData, GetQualityDataInfoUpdate(logMiddle, logMiddle.WorkingProcedure, logMiddle.MonitoringPoint));//鎸囧畾淇敼瀛楁
 
                             //璐ㄦ鏁版嵁鏀逛负 鑾峰彇鏂囦欢鍚庝慨鏀� 銆怑ditby shaocx,2024-06-15銆�
                             /*
@@ -1050,30 +1065,30 @@
                             }
                             //*/
                         }
-                        else if (loginfo.WorkingProcedure.Equals("OP30"))
+                        else if (logMiddle.WorkingProcedure.Equals("OP30"))
                         {
 
-                            info.QualityState = (int)((loginfo.QualityStateStr.Equals("OK") || loginfo.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
-                            loginfo.QualityState = info.QualityState;
-                            info.QualityStateUpdateUser = loginfo.UpdatedUserName;
-                            info.QualityStateUpdateTime = loginfo.UpdatedTime.Value.LocalDateTime;
+                            info.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
+                            logMiddle.QualityState = info.QualityState;
+                            info.QualityStateUpdateUser = logMiddle.UpdatedUserName;
+                            info.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime;
                             info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
 
-                            var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
+                            var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
                             if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1)
                             {//鎻掑叆QualityDataInfo琛�
-                                qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(loginfo);
+                                qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(logMiddle);
                                 db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData));
                             }
                             qualityData.QualityStateUpdateUser = info.UpdatedUserName;
                             qualityData.QualityReceiveTime = info.UpdatedTime.Value.LocalDateTime;
                             qualityData.QualityStateUpdateMode = info.QualityStateUpdateMode;
-                            qualityData.OP30QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+                            qualityData.OP30QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
                             qualityData.OP30QualityReceiveTime = DateTimeHelper.GetDateTime();
-                            loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿loginfo.QualityStateStr ?? "绌�"}";
+                            loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿logMiddle.QualityStateStr ?? "绌�"}";
                             if (!info.QualityState.Equals(((int)QualityState.OK).ToString()))
                             {
-                                info.QualityErrorInfo = $"{loginfo.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�";
+                                info.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�";
                             }
                             else
                             {
@@ -1083,13 +1098,13 @@
                         else
                         {
                             info.WorkPieceState = (int)WorkPieceState.WIP;
-                            if (info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) + 4 <= info.WorkingProcedurePlan.Length)
+                            if (info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) + 4 <= info.WorkingProcedurePlan.Length)
                             {
-                                info.WorkPieceCurrentPosition = info.WorkingProcedurePlan.Substring(info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure), 8);
+                                info.WorkPieceCurrentPosition = info.WorkingProcedurePlan.Substring(info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure), 8);
                             }
                         }
 
-                        var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == info.WorkingProcedureCurrent && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
+                        var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID && o.WorkingProcedureCurrent == info.WorkingProcedureCurrent && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
                         if (pro == null || pro.WorkPieceID.Length < 1)
                         {
                             WorkPieceProcess process = new WorkPieceProcess();
@@ -1097,22 +1112,22 @@
                             process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
                             process.StartTime = DateTimeHelper.GetDateTime();
                             process.EndTime = DateTimeHelper.GetDateTime();
-                            if (loginfo.WorkingProcedure.Equals("OP80"))
+                            if (logMiddle.WorkingProcedure.Equals("OP80"))
                             {//OP80鐨勮川閲忔暟鎹槸鍚庢潵鑾峰彇鏂囦欢鎼炵殑
                             }
                             else
                             {
-                                process.QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value : (int)QualityState.OK;
+                                process.QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value : (int)QualityState.OK;
                             }
-                            process.CreatedUserName = loginfo.MonitoringPoint;
+                            process.CreatedUserName = logMiddle.MonitoringPoint;
                             process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
-                            process.UpdatedUserName = loginfo.MonitoringPoint;
+                            process.UpdatedUserName = logMiddle.MonitoringPoint;
                             process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                             process.OperationType = OperationType.鐢熶骇.ToString();
                             process.Remarks = "";
-                            if (loginfo.WorkingProcedure.Equals("OP80"))
+                            if (logMiddle.WorkingProcedure.Equals("OP80"))
                             {
-                                process.GetQcDataFlag = loginfo.GetQcDataFlag;//璧嬪�兼爣璁� [Editby shaocx,2024-06-15]
+                                process.GetQcDataFlag = logMiddle.GetQcDataFlag;//璧嬪�兼爣璁� [Editby shaocx,2024-06-15]
                             }
                             if (op80id > 0)
                             {
@@ -1127,13 +1142,13 @@
                                 pro.QualityDataInfoID = op80id;
                             }
                             pro.EndTime = DateTimeHelper.GetDateTime();
-                            pro.UpdatedUserName = loginfo.MonitoringPoint;
+                            pro.UpdatedUserName = logMiddle.MonitoringPoint;
                             pro.UpdatedTime = DateTimeHelper.GetDateTime();
-                            if (loginfo.WorkingProcedure.Equals("OP80"))
+                            if (logMiddle.WorkingProcedure.Equals("OP80"))
                             {
                                 if (pro.GetQcDataFlag != 0)
                                 {
-                                    pro.GetQcDataFlag = loginfo.GetQcDataFlag;//璧嬪�兼爣璁� [Editby shaocx,2024-06-15]
+                                    pro.GetQcDataFlag = logMiddle.GetQcDataFlag;//璧嬪�兼爣璁� [Editby shaocx,2024-06-15]
                                 }
                             }
                         }
@@ -1147,14 +1162,14 @@
                     }
                     else
                     {
-                        loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"涓嬬嚎瀹屾垚璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父";
-                        Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}宸ュ簭涓嬬嚎 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
+                        loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"涓嬬嚎瀹屾垚璇诲彇浜岀淮鐮亄logMiddle.WorkPieceID ?? "绌�"}寮傚父";
+                        Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭涓嬬嚎 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
 
                     }
                 }
                 catch (Exception e)
                 {
-                    loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}";
+                    loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璇诲彇浜岀淮鐮亄logMiddle.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}";
                 }
                 db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛�
                 db.SaveChanges();
@@ -1942,11 +1957,11 @@
         #region 涓氬姟鏂规硶
 
         /// <summary>
-        /// dict涓墠闈竴涓槸鍘熷璞★紝鍚庨潰涓�涓槸鐩爣瀵硅薄
+        ///  銆愯川閲忔暟鎹洿鏂颁笓鐢ㄣ�� dict涓墠闈竴涓槸鍘熷璞★紝鍚庨潰涓�涓槸鐩爣瀵硅薄
         /// </summary>
         /// <param name="WorkingProcedure"></param>
         /// <returns></returns>
-        public static Dictionary<string, string> GetQualityDataInfoUpdate(string WorkingProcedure = "", string MonitoringPoint = "")
+        public static Dictionary<string, string> GetQualityDataInfoUpdate(WorkPieceLogMiddle logMiddle, string WorkingProcedure = "", string MonitoringPoint = "")
         {
             Dictionary<string, string> dict = new Dictionary<string, string>();
 
@@ -1961,11 +1976,20 @@
             {
                 case "OP10":
                     dict.Add("QualityOP10To1", "QualityOP10To1");
+
+                    dict.Add("QualityNoOk", "QualityNoOk_OP10");
+                    dict.Add("QualityNoOkReason", "QualityNoOkReason_OP10");
                     break;
                 case "OP20":
                     dict.Add("QualityOP20To1", "QualityOP20To1");
+
+                    dict.Add("QualityNoOk", "QualityNoOk_OP20");
+                    dict.Add("QualityNoOkReason", "QualityNoOkReason_OP20");
                     break;
                 case "OP30":
+                    dict.Add("QualityNoOk", "QualityNoOk_OP30");
+                    dict.Add("QualityNoOkReason", "QualityNoOkReason_OP30");
+
                     switch (MonitoringPoint)
                     {
                         case "OP3002CH3":
@@ -1994,13 +2018,24 @@
                 case "OP35":
                     dict.Add("QualityOP35To1", "QualityOP35To1");
                     dict.Add("QualityOP35To2", "QualityOP35To2");
+
+                    dict.Add("QualityNoOk", "QualityNoOk_OP35");
+                    dict.Add("QualityNoOkReason", "QualityNoOkReason_OP35");
+
                     break;
                 case "OP40":
                     dict.Add("QualityOP40To1", "QualityOP40To1");
+
+                    dict.Add("QualityNoOk", "QualityNoOk_OP40");
+                    dict.Add("QualityNoOkReason", "QualityNoOkReason_OP40");
                     break;
                 case "OP60":
                     dict.Add("QualityOP60To1", "QualityOP60To1");
                     dict.Add("QualityOP60To2", "QualityOP60To2");
+
+                    dict.Add("QualityNoOk", "QualityNoOk_OP60");
+                    dict.Add("QualityNoOkReason", "QualityNoOkReason_OP60");
+
                     break;
                 case "OP70":
                     dict.Add("QualityOP70To1", "QualityOP70To1");
@@ -2036,7 +2071,10 @@
                     dict.Add("QualityOP80_X_S_Y", "QualityOP80_X_S_Y");
                     dict.Add("QualityOP80_X_X_X", "QualityOP80_X_X_X");
                     dict.Add("QualityOP80_X_X_Y", "QualityOP80_X_X_Y");
-                  
+
+
+                    dict.Add("QualityNoOk", "QualityNoOk_OP80");
+                    dict.Add("QualityNoOkReason", "QualityNoOkReason_OP80");
 
                     break;
                 default:
@@ -2045,6 +2083,42 @@
             return dict;
         }
 
+        /// <summary>
+        ///  銆愬伐浠舵垨宸ュ簭鏁版嵁鏁版嵁鏇存柊涓撶敤銆� dict涓墠闈竴涓槸鍘熷璞★紝鍚庨潰涓�涓槸鐩爣瀵硅薄
+        /// </summary>
+        /// <param name="WorkingProcedure"></param>
+        /// <returns></returns>
+        public static Dictionary<string, string> GetWorkPieceInfoUpdateForQualityNoOk(WorkPieceLogMiddle loginfo)
+        {
+            Dictionary<string, string> dict = new Dictionary<string, string>();
+
+            //if (loginfo.QualityState != null)
+            //{
+            //    QualityState qualityState;
+            //    bool isRight = Enum.TryParse<QualityState>(loginfo.QualityState.ToString(), out qualityState);
+            //    if (isRight && (qualityState == QualityState.NG || qualityState == QualityState.Suspected))
+            //    {
+
+            //    }
+            //}
+
+            dict.Add("QualityNoOk", "QualityNoOk");
+            dict.Add("QualityNoOkReason", "QualityNoOkReason");
+
+            return dict;
+        }
+
+        public static void SetQualityNoOk_WorkPieceInfo(WorkPieceLogMiddle logMiddle, ref WorkPieceInfo pieceInfo)
+        {
+            pieceInfo.QualityNoOk = logMiddle.QualityNoOk;
+            pieceInfo.QualityNoOkReason = logMiddle.QualityNoOkReason;
+        }
+        public static void SetQualityNoOk_WorkPieceProcess(WorkPieceLogMiddle logMiddle, ref WorkPieceProcess pieceProcess)
+        {
+            pieceProcess.QualityNoOk = logMiddle.QualityNoOk;
+            pieceProcess.QualityNoOkReason = logMiddle.QualityNoOkReason;
+        }
+
 
         /// <summary>
         /// 鍒ゆ柇鏄惁璺冲簭

--
Gitblit v1.9.3