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