From f04d2a8fce3ffe25ea0b43ed16fd4f65a2574468 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周二, 03 9月 2024 10:03:19 +0800
Subject: [PATCH] //修正:查询的工序是当前线程的工序,而不是当前数据的工序 【Editby shaocx,2024-09-03】

---
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs |   35 +++++++++++++++++++++++++++++++----
 1 files changed, 31 insertions(+), 4 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 6c27978..bfd5f84 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -190,6 +190,7 @@
                             info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();
                             info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80";
                             info.CreatedUserName = loginfo.MonitoringPoint;
+                            SystemBussinessHelper.SetWorkPieceInfoMiddleForCreatedUserName(ref info, loginfo.DataCapturePointCname);
                             info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                             info = ParseQRCode(info);
                             isAddWorkPieceInfo = true;
@@ -210,6 +211,7 @@
                         info.QualityStateUpdateTime = loginfo.UpdatedTime.Value.LocalDateTime;
                         info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
                         info.UpdatedUserName = loginfo.MonitoringPoint;
+                        SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref info, loginfo.DataCapturePointCname);
                         info.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                         info.WorkPieceCurrentPosition = loginfo.WorkingProcedure;
                         info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
@@ -230,6 +232,7 @@
                             {
                                 pro.EndTime = DateTimeHelper.GetDateTime();
                                 pro.UpdatedUserName = loginfo.MonitoringPoint;
+                                pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
                                 pro.UpdatedTime = DateTimeHelper.GetDateTime();
                                 pro.Remarks = "鍙堜竴娆′笂绾匡紝鏇存柊缁撴潫鏃堕棿";
                             }
@@ -253,8 +256,10 @@
 
                             new_process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
                             new_process.CreatedUserName = loginfo.MonitoringPoint;
+                            new_process.DataCapturePointCname = loginfo.DataCapturePointCname;
                             new_process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                             new_process.UpdatedUserName = loginfo.MonitoringPoint;
+                            new_process.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
                             new_process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                             new_process.OperationType = OperationType.鐢熶骇.ToString();
                             new_process.Remarks = "";
@@ -550,6 +555,7 @@
                                 pieceInfo.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();
                                 pieceInfo.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80";
                                 pieceInfo.CreatedUserName = ResetUpdatedUserName(logMiddle);
+                                SystemBussinessHelper.SetWorkPieceInfoMiddleForCreatedUserName(ref pieceInfo, logMiddle.DataCapturePointCname);
                                 pieceInfo.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                                 pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();//
                                 pieceInfo.WorkingProcedureEndTime = null;
@@ -606,6 +612,8 @@
                             #endregion
                             //UpdateKnifeToolLift(db, loginfo);//鏇存柊鍒�鍏峰鍛戒俊鎭�
                         }
+
+                        pieceInfo.WorkingProcedureCurrent = logMiddle.WorkingProcedure;//鏇存柊褰撳墠宸ュ簭  銆怑ditby shaocx,2024-09-03銆�
                         pieceInfo.WorkPieceState = (int)WorkPieceState.WIP;//鎺ㄥ嚭鍚庡拰SPC鎶芥鍚� 璐ㄩ噺褰曞叆鏃剁姸鎬佷慨鏀瑰洖鍦ㄥ埗鍝�
                         pieceInfo.EquipmentID = logMiddle.EquipmentID;
                         pieceInfo.QualityStateUpdateUser = logMiddle.UpdatedUserName;
@@ -613,6 +621,7 @@
                         pieceInfo.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
                         pieceInfo.Remarks = $"{logMiddle.WorkingProcedure}璐ㄩ噺妫�娴嬪畬鎴愪慨鏀�";
                         pieceInfo.UpdatedUserName = ResetUpdatedUserName(logMiddle);
+                        SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref pieceInfo, logMiddle.DataCapturePointCname);
                         pieceInfo.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                         if (!(pieceInfo.WorkingProcedureStartTime.HasValue && pieceInfo.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
                         {//宸ュ簭寮�濮嬫椂闂存病鏈夊垯璧嬪��
@@ -760,7 +769,11 @@
                             qualityData.OP80QualityReceiveTime = DateTimeHelper.GetDateTime();
                         }
 
-                        var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID && o.WorkingProcedureCurrent == pieceInfo.WorkingProcedureCurrent && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
+                        var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID
+                        //淇锛氭煡璇㈢殑宸ュ簭鏄綋鍓嶇嚎绋嬬殑宸ュ簭锛岃�屼笉鏄綋鍓嶆暟鎹殑宸ュ簭 銆怑ditby shaocx,2024-09-03銆�
+                        //&& o.WorkingProcedureCurrent == pieceInfo.WorkingProcedureCurrent
+                        && o.WorkingProcedureCurrent == logMiddle.WorkingProcedure
+                        && 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 娌℃湁涓婄嚎鎵爜鏋紝绾﹀畾鐢ㄦ祴閲忓畬鎴愪俊鍙峰綋涓婄嚎鏍囪锛屾墍浠ヤ笂绾块渶瑕佷慨鏀圭殑瀛楁鏀捐繖閲�
                          //涓婄嚎鏄瘡娆¢兘鎻掑叆
@@ -787,8 +800,10 @@
 
                             process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
                             process.CreatedUserName = ResetUpdatedUserName(logMiddle);
+                            process.DataCapturePointCname = logMiddle.DataCapturePointCname;
                             process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                             process.UpdatedUserName = ResetUpdatedUserName(logMiddle);
+                            process.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
                             process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                             process.OperationType = OperationType.鐢熶骇.ToString();
                             process.QualityDataInfoID = qualityData.Id;
@@ -799,6 +814,7 @@
                         {//鍏朵粬鐨勯兘鍙槸淇敼
                             pro.QualityDataInfoID = qualityData.Id;
                             pro.UpdatedUserName = ResetUpdatedUserName(logMiddle);
+                            pro.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
                             pro.UpdatedTime = DateTimeHelper.GetDateTime();
 
                             //涓嶅啀榛樿璧嬪�间负鍚堟牸 銆怑ditby shaocx,2024-08-16銆�
@@ -812,7 +828,7 @@
                             if (logMiddle.WorkingProcedure == "OP60")
                             {
                                 pro.CreatedUserName = ResetUpdatedUserName(logMiddle);
-
+                                pro.DataCapturePointCname = logMiddle.DataCapturePointCname;
                             }
                         }
 
@@ -843,8 +859,8 @@
                 }
                 catch (Exception ex)
                 {
-                    loginfo2.Remarks = $"璐ㄩ噺妫�娴嬪畬鎴恵logMiddle.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{ex.Message}++{ex.StackTrace}";
-                    Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
+                    loginfo2.Remarks = $"璐ㄩ噺妫�娴嬪畬鎴�,鏇存柊鏁版嵁寮傚父{ex.Message}";
+                    Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}璐ㄩ噺妫�娴嬪畬鎴� 宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細" + ex.Message, ex);
                 }
                 finally
                 {
@@ -990,6 +1006,7 @@
                             }
                             cur_db_info.WorkPieceState = (int)WorkPieceState.NOOKPush;
                             cur_db_info.UpdatedUserName = loginfo.MonitoringPoint;
+                            SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref cur_db_info, loginfo.DataCapturePointCname);
                             cur_db_info.UpdatedTime = DateTime.Now;
                             cur_db_info.Remarks = "宸ヤ欢NOOK鎺ㄥ嚭";
                             loginfo2.Remarks = cur_db_info.Remarks;
@@ -1032,6 +1049,7 @@
                             pro.EndTime = DateTimeHelper.GetDateTime();
                             pro.Remarks = (pro.Remarks ?? "") + "NOOK缁撴潫";
                             pro.UpdatedUserName = loginfo.MonitoringPoint;
+                            pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
                             pro.UpdatedTime = DateTimeHelper.GetDateTime();
                         }
 
@@ -1109,6 +1127,7 @@
                             }
                             cur_db_info.WorkPieceState = (int)WorkPieceState.SPCPush;
                             cur_db_info.UpdatedUserName = loginfo.MonitoringPoint;
+                            SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref cur_db_info, loginfo.DataCapturePointCname);
                             cur_db_info.UpdatedTime = DateTime.Now;
                             cur_db_info.WorkingProcedureEndTime = DateTimeHelper.GetDateTime();
                             if (!(cur_db_info.WorkingProcedureStartTime.HasValue && cur_db_info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
@@ -1131,6 +1150,7 @@
                             pro.EndTime = DateTimeHelper.GetDateTime();
                             pro.Remarks = (pro.Remarks ?? "") + "SPC鎶芥缁撴潫";
                             pro.UpdatedUserName = loginfo.MonitoringPoint;
+                            pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
                             pro.UpdatedTime = DateTimeHelper.GetDateTime();
                         }
                         //姣忔SPC 閮芥彃鍏ヨ拷婧〃
@@ -1142,8 +1162,10 @@
                         process.QualityState = (int)QualityState.Suspected;
                         process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
                         process.CreatedUserName = loginfo.MonitoringPoint;
+                        process.DataCapturePointCname = loginfo.DataCapturePointCname;
                         process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                         process.UpdatedUserName = loginfo.MonitoringPoint;
+                        process.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
                         process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                         process.Remarks = "宸ヤ欢SPC鎶芥鎺ㄥ嚭";
                         db.WorkPieceProcess.Add(process);
@@ -1249,6 +1271,7 @@
                             info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();//WorkPieceInitOnlineTime
                             info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80";
                             info.CreatedUserName = logMiddle.MonitoringPoint;
+                            SystemBussinessHelper.SetWorkPieceInfoMiddleForCreatedUserName(ref info, logMiddle.DataCapturePointCname);
                             info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                             info.WorkingProcedureCurrent = logMiddle.WorkingProcedure;
                             info.WorkingProcedureEndTime = null;
@@ -1262,6 +1285,7 @@
                             logMiddle.WorkingProcedure = info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂
                         }
                         info.UpdatedUserName = logMiddle.MonitoringPoint;
+                        SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref info, logMiddle.DataCapturePointCname);
                         info.UpdatedTime = DateTimeHelper.GetDateTime();
                         info.WorkingProcedureCompleted = info.WorkingProcedureCompleted + logMiddle.WorkingProcedure;//宸插畬鎴愬伐搴�
                         if (!(info.WorkingProcedureStartTime.HasValue && info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
@@ -1386,8 +1410,10 @@
                                 process.QualityState = WorkPieceInfoManager.GetQualityStateValue(logMiddle.QualityState);
                             }
                             process.CreatedUserName = logMiddle.MonitoringPoint;
+                            process.DataCapturePointCname = logMiddle.DataCapturePointCname;
                             process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                             process.UpdatedUserName = logMiddle.MonitoringPoint;
+                            process.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
                             process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                             process.OperationType = OperationType.鐢熶骇.ToString();
                             process.Remarks = "";
@@ -1414,6 +1440,7 @@
                             }
                             pro.EndTime = DateTimeHelper.GetDateTime();
                             pro.UpdatedUserName = logMiddle.MonitoringPoint;
+                            pro.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
                             pro.UpdatedTime = DateTimeHelper.GetDateTime();
                             if (logMiddle.WorkingProcedure.Equals("OP80"))
                             {

--
Gitblit v1.9.3