From 350e1111aa34534fa6074072142deaf319f8d6b4 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周一, 26 8月 2024 15:13:09 +0800 Subject: [PATCH] 我的疑问是 为啥 不合格,没有不合格原因? --- DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs | 99 +++++++++++++++++++++++++++++++++++++------------ 1 files changed, 74 insertions(+), 25 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 04403fd..5183090 100644 --- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs +++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs @@ -469,6 +469,9 @@ /// <param name="type"></param> public static void QualityInfoComplete(WorkPieceLogMiddle logMiddle, LogType type) { + //鏍规嵁璐ㄩ噺鏁版嵁鍒ゆ柇鏄惁鍚堟牸/涓嶅悎鏍� 銆怑ditby shaocx,2024-06-25銆� + WorkPieceInfoManager.SetLogMiddleForQuality(ref logMiddle); + //姝ゅ鍚屾椂鎻掑叆浜哤orkPieceLog锛學orkPieceInfoLog琛紝骞舵柊澧炴垨淇敼WorkPieceInfo琛� //鎻掑叆璐ㄩ噺鐩稿叧琛≦ualityDataInfo @@ -833,18 +836,19 @@ qualityData.QualityReceiveTime = DateTime.Now; //鐗规畩澶勭悊OP70鐨勮川閲忔暟鎹� - if (!string.IsNullOrEmpty(logMiddle.QualityOP70To1) && !string.IsNullOrEmpty(qualityData.QualityOP70To1)) + if (string.IsNullOrEmpty(qualityData.QualityOP70To1) && !string.IsNullOrEmpty(SystemHelper.GetStrForQualityOP70(logMiddle.QualityOP70To1))) { qualityData.QualityOP70To1 = logMiddle.QualityOP70To1; } - if (!string.IsNullOrEmpty(logMiddle.QualityOP70To2) && !string.IsNullOrEmpty(qualityData.QualityOP70To2)) + if (string.IsNullOrEmpty(qualityData.QualityOP70To2) && !string.IsNullOrEmpty(SystemHelper.GetStrForQualityOP70(logMiddle.QualityOP70To2))) { qualityData.QualityOP70To2 = logMiddle.QualityOP70To2; } - if (!string.IsNullOrEmpty(logMiddle.QualityOP70To3) && !string.IsNullOrEmpty(qualityData.QualityOP70To3)) + if (string.IsNullOrEmpty(qualityData.QualityOP70To3) && !string.IsNullOrEmpty(SystemHelper.GetStrForQualityOP70(logMiddle.QualityOP70To3))) { qualityData.QualityOP70To3 = logMiddle.QualityOP70To3; } + db.QualityDataInfoLog.Add(GetAddQualityDataInfoLog(qualityData));//鎻掑叆鏃ュ織 @@ -932,6 +936,8 @@ info.WorkingProcedureCompleted = info.WorkingProcedureCompleted + loginfo.WorkingProcedure;//宸插畬鎴愬伐搴� info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2; } + QualityDataInfo qualityData = null; + qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); if (loginfo.WorkingProcedure.Equals("OP35")) {//涓轰簡瑙e喅OP35鐨勯噰闆嗗埌鐨勮川閲忎俊鎭槸OK杩楴OOK鐨勬儏鍐碉紝OP35 NOOK鏃舵洿鏂拌川閲忎俊鎭� loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"OP35NOOK鍘熻川閲忎俊鎭瘂(info.QualityState.HasValue ? info.QualityState.Value.ToString() : "绌�")}"; @@ -946,7 +952,7 @@ } loginfo.QualityState = info.QualityState; - var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); + if (qualityData != null) { qualityData.OP35QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; @@ -963,6 +969,8 @@ pro.UpdatedUserName = loginfo.MonitoringPoint; pro.UpdatedTime = DateTimeHelper.GetDateTime(); } + + QualityStateHelper.SetQualityStateForNoOk(ref info, ref pro, ref qualityData); db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info)); @@ -1002,9 +1010,9 @@ //|| !((loginfo.WorkingProcedure.Equals("OP10") || loginfo.WorkingProcedure.Equals("OP40")) && loginfo.Remarks.Length > 0) ) { - WorkPieceInfo info = new WorkPieceInfo(); - info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); - if (info == null || info.WorkPieceID.Length < 1) + WorkPieceInfo cur_db_info = new WorkPieceInfo(); + cur_db_info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); + if (cur_db_info == null || cur_db_info.WorkPieceID.Length < 1) {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂� loginfo2.Remarks = $"宸ヤ欢{loginfo.WorkPieceID} 宸ヤ欢SPC鎺ㄥ嚭宸ュ簭{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"; Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{loginfo.WorkPieceID} 宸ヤ欢SPC鎺ㄥ嚭宸ュ簭{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"); @@ -1014,33 +1022,43 @@ {//鏇存柊琛╓orkPieceInfo if (loginfo.WorkingProcedure.Equals("OP10")) { - info.WorkPieceCurrentPosition = info.WorkingProcedureCurrent + "SPC"; - //var WorkingProcedure = (loginfo.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40"); - loginfo2.WorkingProcedure = info.WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂 - loginfo.WorkingProcedure = info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂 + //淇 閿欒璁板綍鎴怬P05鐨勯棶棰� 銆怑ditby shaocx,2024-08-26銆� + var set_WorkingProcedureCurrent = ""; + if (cur_db_info.WorkingProcedureCurrent != "OP10" && cur_db_info.WorkingProcedureCurrent != "OP40") + { + SetWorkingProcedureCurrentForOP10(cur_db_info, ref set_WorkingProcedureCurrent); + } + else + { + set_WorkingProcedureCurrent = cur_db_info.WorkingProcedureCurrent; + } + cur_db_info.WorkPieceCurrentPosition = set_WorkingProcedureCurrent + "SPC"; + loginfo2.WorkingProcedure = set_WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂 + loginfo.WorkingProcedure = set_WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂 } else { - info.WorkingProcedureCurrent = loginfo.WorkingProcedure; - info.WorkPieceCurrentPosition = loginfo.WorkingProcedure + "SPC"; + cur_db_info.WorkingProcedureCurrent = loginfo.WorkingProcedure; + cur_db_info.WorkPieceCurrentPosition = loginfo.WorkingProcedure + "SPC"; } - info.WorkPieceState = (int)WorkPieceState.SPCPush; - info.UpdatedUserName = loginfo.MonitoringPoint; - info.UpdatedTime = DateTime.Now; - info.WorkingProcedureEndTime = DateTimeHelper.GetDateTime(); - if (!(info.WorkingProcedureStartTime.HasValue && info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01"))) + cur_db_info.WorkPieceState = (int)WorkPieceState.SPCPush; + cur_db_info.UpdatedUserName = loginfo.MonitoringPoint; + 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"))) { - info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime(); + cur_db_info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime(); } - info.WorkingProcedureCompleted = info.WorkingProcedureCompleted + loginfo.WorkingProcedure;//宸插畬鎴愬伐搴� - info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2; + cur_db_info.WorkingProcedureCompleted = cur_db_info.WorkingProcedureCompleted + loginfo.WorkingProcedure;//宸插畬鎴愬伐搴� + cur_db_info.WorkPieceCurrentPositionOrder = cur_db_info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2; } - info.Remarks = "宸ヤ欢SPC鎶芥鎺ㄥ嚭"; + cur_db_info.Remarks = "宸ヤ欢SPC鎶芥鎺ㄥ嚭"; //鏇存柊涓婁竴宸ュ簭鐨勭粨鏉熸椂闂� - var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == loginfo.WorkingProcedure && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault(); + var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == loginfo.WorkingProcedure + && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault(); if (pro != null && pro.WorkPieceID.Length > 0) { pro.EndTime = DateTimeHelper.GetDateTime(); @@ -1050,7 +1068,7 @@ } //姣忔SPC 閮芥彃鍏ヨ拷婧〃 WorkPieceProcess process = new WorkPieceProcess(); - process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info); + process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(cur_db_info); process.StartTime = DateTimeHelper.GetDateTime(); process.OperationType = OperationType.SPC.ToString(); process.QualityState = (int)QualityState.Suspected; @@ -1063,7 +1081,7 @@ db.WorkPieceProcess.Add(process); - db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info)); + db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(cur_db_info)); } else { @@ -1083,6 +1101,37 @@ } } + + + public static void SetWorkingProcedureCurrentForOP10(WorkPieceInfo cur_db_info, ref string set_WorkingProcedureCurrent) + { + //鎴柇瀛楃涓� + if (cur_db_info.WorkingProcedureCurrent.Length == 4) + { + try + { + var bb = cur_db_info.WorkingProcedureCurrent.Substring(2, 2); + int ii = Convert.ToInt32(bb); + if (ii <= 10) + { + set_WorkingProcedureCurrent = "OP10"; + } + else + { + set_WorkingProcedureCurrent = "OP40"; + } + } + catch (Exception) + { + set_WorkingProcedureCurrent = cur_db_info.WorkingProcedureCurrent; + } + } + else + { + set_WorkingProcedureCurrent = cur_db_info.WorkingProcedureCurrent; + } + } + /// <summary> /// 宸ュ簭瀹屾垚 /// </summary> -- Gitblit v1.9.3