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 |   85 ++++++++++++++++++++++++++++--------------
 1 files changed, 57 insertions(+), 28 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 418ff32..bfd5f84 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -23,32 +23,32 @@
 {
     public class WorkPieceInfoManager
     {
-        public static WorkPieceInfo GetWorkPieceInfo(string WorkPieceID)
-        {
-            using (DbModel db = new DbModel())
-            {
-                //鏌ヨ鎵�鏈�
-                var query = db.WorkPieceInfo.Where(o => o.WorkPieceID == WorkPieceID).FirstOrDefault();
-                return query;
-            }
-        }
+        //public static WorkPieceInfo GetWorkPieceInfo(string WorkPieceID)
+        //{
+        //    using (DbModel db = new DbModel())
+        //    {
+        //        //鏌ヨ鎵�鏈�
+        //        var query = db.WorkPieceInfo.Where(o => o.WorkPieceID == WorkPieceID).FirstOrDefault();
+        //        return query;
+        //    }
+        //}
 
 
-        public static long InsertWorkPieceInfo(WorkPieceInfo workPiece)
-        {
-            using (DbModel db = new DbModel())
-            {
-                db.WorkPieceInfo.Add(workPiece);
-                db.SaveChanges();
-                return workPiece.Id;
-            }
-        }
+        //public static long InsertWorkPieceInfo(WorkPieceInfo workPiece)
+        //{
+        //    using (DbModel db = new DbModel())
+        //    {
+        //        db.WorkPieceInfo.Add(workPiece);
+        //        db.SaveChanges();
+        //        return workPiece.Id;
+        //    }
+        //}
 
-        public static WorkPieceLogMiddle GetAddWorkPieceLog(WorkPieceLogMiddle loginfo)
-        {
-            loginfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
-            return loginfo;
-        }
+        //public static WorkPieceLogMiddle GetAddWorkPieceLog(WorkPieceLogMiddle loginfo)
+        //{
+        //    loginfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+        //    return loginfo;
+        //}
 
         /// <summary>
         /// 缁橶orkPieceLog涓婚敭绛夊叕鍏辩殑鐨勫睘鎬ц祴鍊�
@@ -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,8 +1006,10 @@
                             }
                             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;
                             if (!(cur_db_info.WorkingProcedureStartTime.HasValue && cur_db_info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
                             {
                                 cur_db_info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
@@ -1004,7 +1022,7 @@
                         qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
                         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() : "绌�")}";
+                            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()))
                             {
@@ -1031,6 +1049,7 @@
                             pro.EndTime = DateTimeHelper.GetDateTime();
                             pro.Remarks = (pro.Remarks ?? "") + "NOOK缁撴潫";
                             pro.UpdatedUserName = loginfo.MonitoringPoint;
+                            pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
                             pro.UpdatedTime = DateTimeHelper.GetDateTime();
                         }
 
@@ -1108,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")))
@@ -1120,6 +1140,7 @@
                             cur_db_info.WorkPieceCurrentPositionOrder = cur_db_info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
                         }
                         cur_db_info.Remarks = "宸ヤ欢SPC鎶芥鎺ㄥ嚭";
+                        loginfo2.Remarks = cur_db_info.Remarks;
 
                         //鏇存柊涓婁竴宸ュ簭鐨勭粨鏉熸椂闂�
                         var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == loginfo.WorkingProcedure
@@ -1129,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 閮芥彃鍏ヨ拷婧〃
@@ -1140,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);
@@ -1247,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;
@@ -1260,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")))
@@ -1384,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 = "";
@@ -1412,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