From a0d2f70a2578ad8160bf4c9b983bf6b40c0f4f77 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周一, 26 8月 2024 13:32:22 +0800 Subject: [PATCH] 2 --- DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs | 410 ++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 364 insertions(+), 46 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 5f6a644..02e6fd5 100644 --- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs +++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs @@ -182,7 +182,7 @@ } else { - info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� + info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍� info.Remarks = "OP05鏂板宸ヤ欢淇℃伅"; } info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime(); @@ -226,7 +226,16 @@ WorkPieceProcess process = new WorkPieceProcess(); process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info); process.StartTime = DateTimeHelper.GetDateTime(); - process.QualityState = info.QualityState.HasValue ? info.QualityState.Value : (int)QualityState.OK; + + //涓嶅啀榛樿璧嬪�间负鍚堟牸 銆怑ditby shaocx,2024-08-16銆� + //process.QualityState = info.QualityState.HasValue ? info.QualityState.Value : (int)QualityState.OK;//榛樿鍚堟牸锛屽凡澶勭悊 + process.QualityState = GetQualityStateValue(info.QualityState); + + if (process.WorkingProcedureCurrent == WorkingProcedureForHMI.OP70.ToString()) + { //鐗规畩澶勭悊OP70锛屽洜涓篛P70娌℃湁娴嬮噺锛岄粯璁ゅ悎鏍� [Editby shaocx,2024-07-03] + process.QualityState = (int)QualityState.OK;//榛樿鍚堟牸锛孫P70榛樿鏄悎鏍� + } + process.Id = Yitter.IdGenerator.YitIdHelper.NextId(); process.CreatedUserName = loginfo.MonitoringPoint; process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); @@ -490,12 +499,12 @@ } else { - pieceInfo.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� + pieceInfo.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍� pieceInfo.Remarks = "OP05鏂板宸ヤ欢淇℃伅"; } pieceInfo.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime(); pieceInfo.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80"; - pieceInfo.CreatedUserName = logMiddle.MonitoringPoint; + pieceInfo.CreatedUserName = ResetUpdatedUserName(logMiddle); pieceInfo.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();// pieceInfo.WorkingProcedureEndTime = null; @@ -540,7 +549,7 @@ else {//鏇存柊宸ヤ欢 equinfo.WorkPieceID = logMiddle.WorkPieceID; - equinfo.UpdatedUserName = logMiddle.MonitoringPoint; + equinfo.UpdatedUserName = ResetUpdatedUserName(logMiddle); equinfo.UpdatedTime = DateTime.Now; equinfo.OnlineTime = DateTime.Now; } @@ -558,7 +567,7 @@ pieceInfo.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime; pieceInfo.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); pieceInfo.Remarks = pieceInfo.Remarks ?? "" + $"{logMiddle.WorkingProcedure}璐ㄩ噺妫�娴嬪畬鎴愪慨鏀�"; - pieceInfo.UpdatedUserName = logMiddle.MonitoringPoint; + pieceInfo.UpdatedUserName = ResetUpdatedUserName(logMiddle); pieceInfo.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); if (!(pieceInfo.WorkingProcedureStartTime.HasValue && pieceInfo.WorkingProcedureStartTime > DateTime.Parse("1900/01/01"))) {//宸ュ簭寮�濮嬫椂闂存病鏈夊垯璧嬪�� @@ -714,15 +723,20 @@ WorkPieceProcess process = new WorkPieceProcess(); process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(pieceInfo); process.StartTime = DateTimeHelper.GetDateTime(); - process.QualityState = pieceInfo.QualityState.HasValue ? pieceInfo.QualityState.Value : (int)QualityState.OK; + + //涓嶅啀榛樿璧嬪�间负鍚堟牸 銆怑ditby shaocx,2024-08-16銆� + //process.QualityState = pieceInfo.QualityState.HasValue ? pieceInfo.QualityState.Value : (int)QualityState.OK;//榛樿鍚堟牸锛屽凡澶勭悊 + process.QualityState = WorkPieceInfoManager.GetQualityStateValue(pieceInfo.QualityState); + + //璁板綍璐ㄩ噺涓嶅悎鏍煎師鍥� 銆怑ditby shaocx,2024-06-26銆� //璧嬪�间笉鍚堟牸鍘熷洜 SetQualityNoOk_WorkPieceProcess(logMiddle, ref process); process.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - process.CreatedUserName = logMiddle.MonitoringPoint; + process.CreatedUserName = ResetUpdatedUserName(logMiddle); process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - process.UpdatedUserName = logMiddle.MonitoringPoint; + process.UpdatedUserName = ResetUpdatedUserName(logMiddle); process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); process.OperationType = OperationType.鐢熶骇.ToString(); process.QualityDataInfoID = qualityData.Id; @@ -732,16 +746,20 @@ else {//鍏朵粬鐨勯兘鍙槸淇敼 pro.QualityDataInfoID = qualityData.Id; - pro.UpdatedUserName = logMiddle.MonitoringPoint; + pro.UpdatedUserName = ResetUpdatedUserName(logMiddle); pro.UpdatedTime = DateTimeHelper.GetDateTime(); - pro.QualityState = pieceInfo.QualityState.HasValue ? pieceInfo.QualityState.Value : 9; + + //涓嶅啀榛樿璧嬪�间负鍚堟牸 銆怑ditby shaocx,2024-08-16銆� + //pro.QualityState = pieceInfo.QualityState.HasValue ? pieceInfo.QualityState.Value : 9; + pro.QualityState = WorkPieceInfoManager.GetQualityStateValue(pieceInfo.QualityState); + //璧嬪�间笉鍚堟牸鍘熷洜 SetQualityNoOk_WorkPieceProcess(logMiddle, ref pro); //TODO:鍒ゆ柇濡傛灉鏄�60宸ュ簭锛岄偅涔堝氨瑕佹洿鏂皃ro琛ㄧ殑鍒涘缓浜轰负loginfo.MonitoringPoint 銆怑ditby shaocx,2024-06-05銆� if (logMiddle.WorkingProcedure == "OP60") { - pro.CreatedUserName = logMiddle.MonitoringPoint; + pro.CreatedUserName = ResetUpdatedUserName(logMiddle); } } @@ -784,6 +802,89 @@ } } } + + /// <summary> + /// 璐ㄩ噺妫�娴嬪畬鎴�-OP70涓撶敤 + /// </summary> + /// <param name="logMiddle"></param> + /// <param name="type"></param> + public static void QualityInfoCompleteForOP70(WorkPieceLogMiddle logMiddle, LogType type) + { + if (string.IsNullOrEmpty(logMiddle.QualityOP70To1) && string.IsNullOrEmpty(logMiddle.QualityOP70To2) && string.IsNullOrEmpty(logMiddle.QualityOP70To3)) + { + Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶娓呮礂鏈烘暟鎹� 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鑾峰彇鐨勪笁涓�奸兘鏄┖鐨勶紝涓嶅鐞嗚繑鍥�"); + return; + } + using (DbModel db = new DbModel()) + { + try + { + bool isAdd = false; + if (logMiddle.WorkPieceID.Length == 22) + { + var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault(); + if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1) + {//鎻掑叆QualityDataInfo琛� + isAdd = true; + qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(logMiddle); + } + + qualityData.QualityStateUpdateUser = "OP7009"; + qualityData.QualityReceiveTime = DateTime.Now; + + //鐗规畩澶勭悊OP70鐨勮川閲忔暟鎹� + if (string.IsNullOrEmpty(qualityData.QualityOP70To1) && !string.IsNullOrEmpty(SystemHelper.GetStrForQualityOP70(logMiddle.QualityOP70To1))) + { + qualityData.QualityOP70To1 = logMiddle.QualityOP70To1; + } + if (string.IsNullOrEmpty(qualityData.QualityOP70To2) && !string.IsNullOrEmpty(SystemHelper.GetStrForQualityOP70(logMiddle.QualityOP70To2))) + { + qualityData.QualityOP70To2 = logMiddle.QualityOP70To2; + } + if (string.IsNullOrEmpty(qualityData.QualityOP70To3) && !string.IsNullOrEmpty(SystemHelper.GetStrForQualityOP70(logMiddle.QualityOP70To3))) + { + qualityData.QualityOP70To3 = logMiddle.QualityOP70To3; + } + + + db.QualityDataInfoLog.Add(GetAddQualityDataInfoLog(qualityData));//鎻掑叆鏃ュ織 + + if (isAdd) + { + db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData)); + } + db.SaveChanges();//淇濆瓨鏁版嵁 + } + else + { + Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶娓呮礂鏈烘暟鎹� 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細"); + + } + } + catch (Exception ex) + { + Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶娓呮礂鏈烘暟鎹� 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細", ex); + } + finally + { + } + } + } + + /// <summary> + /// 璧嬪�� 淇敼浜� 銆怑ditby shaocx,2024-07-05銆� + /// </summary> + /// <param name="logMiddle"></param> + /// <returns></returns> + public static string ResetUpdatedUserName(WorkPieceLogMiddle logMiddle) + { + if (logMiddle.MonitoringPoint.Equals("OP1003")) + {//鍥犱负OP10鍜孫P40鏄竴鍙版満鍣紝OP1003涓撻棬鏄疧P40娴嬮噺鐨勩�� + return "OP4003"; + } + return logMiddle.MonitoringPoint; + } + /// <summary> /// 宸ヤ欢鎺ㄥ嚭NOOK /// </summary> @@ -832,6 +933,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() : "绌�")}"; @@ -846,7 +949,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"; @@ -863,6 +966,8 @@ pro.UpdatedUserName = loginfo.MonitoringPoint; pro.UpdatedTime = DateTimeHelper.GetDateTime(); } + + QualityStateHelper.SetQualityStateForNoOk(ref info, ref pro, ref qualityData); db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info)); @@ -902,9 +1007,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} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"); @@ -914,33 +1019,50 @@ {//鏇存柊琛╓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") + { + if (cur_db_info.WorkingProcedureCurrent == "OP05") + { + set_WorkingProcedureCurrent = "OP10"; + } + else if (cur_db_info.WorkingProcedureCurrent == "OP35") + { + set_WorkingProcedureCurrent = "OP40"; + } + } + 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(); @@ -950,7 +1072,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; @@ -963,7 +1085,7 @@ db.WorkPieceProcess.Add(process); - db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info)); + db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(cur_db_info)); } else { @@ -1026,7 +1148,7 @@ } else { - info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� + info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍� info.Remarks = "OP05鏂板宸ヤ欢淇℃伅"; } info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();//WorkPieceInitOnlineTime @@ -1153,7 +1275,9 @@ } else { - process.QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value : (int)QualityState.OK; + //涓嶅啀榛樿璧嬪�间负鍚堟牸 銆怑ditby shaocx,2024-08-16銆� + //process.QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value : (int)QualityState.OK;//榛樿鍚堟牸锛屽凡澶勭悊 + process.QualityState = WorkPieceInfoManager.GetQualityStateValue(logMiddle.QualityState); } process.CreatedUserName = logMiddle.MonitoringPoint; process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); @@ -2146,13 +2270,47 @@ public static void SetQualityNoOk_WorkPieceInfo(WorkPieceLogMiddle logMiddle, ref WorkPieceInfo pieceInfo) { + if (!IsWirteQualityNoOk(logMiddle, pieceInfo.QualityNoOk)) return; + pieceInfo.QualityNoOk = logMiddle.QualityNoOk; pieceInfo.QualityNoOkReason = logMiddle.QualityNoOkReason; } public static void SetQualityNoOk_WorkPieceProcess(WorkPieceLogMiddle logMiddle, ref WorkPieceProcess pieceProcess) { + if (!IsWirteQualityNoOk(logMiddle, pieceProcess.QualityNoOk)) return; + pieceProcess.QualityNoOk = logMiddle.QualityNoOk; pieceProcess.QualityNoOkReason = logMiddle.QualityNoOkReason; + } + + /// <summary> + /// 鏄惁闇�瑕侀噸鍐� NOOK鍘熷洜 + /// </summary> + /// <param name="logMiddle"></param> + /// <param name="pieceInfo"></param> + /// <returns></returns> + public static bool IsWirteQualityNoOk(WorkPieceLogMiddle logMiddle, int? qualityNoOk) + { + if (logMiddle.WorkingProcedure == (WorkingProcedureForHMI.OP30).ToString()) + { + //鐗规畩閫昏緫锛氭寜鐓P30鐨勯『搴忓垽鏂� + if (logMiddle.QualityNoOk != null && qualityNoOk != null + && ( + qualityNoOk == (int)QualityNoOkEnum.OP30鍘嬭‖濂楀伐浣嶅姏鐭╁ぇ + || qualityNoOk == (int)QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩澶� + || qualityNoOk == (int)QualityNoOkEnum.OP30缁堟嫥绱у伐浣嶅姏鐭╁ぇ + || qualityNoOk == (int)QualityNoOkEnum.OP30棰勬嫥绱у伐浣嶅姏鐭╁ぇ + ) + ) + { + if ((int)logMiddle.QualityNoOk > (int)qualityNoOk) + {//涓嶉渶瑕侀噸鏂拌祴鍊� + return false; + } + } + } + + return true; } @@ -2234,15 +2392,35 @@ return loginfo; } + /// <summary> + /// 璁剧疆涓棿鍙橀噺鐨勮川閲忔暟鎹� + /// </summary> + /// <param name="logMiddle"></param> + public static void SetLogMiddleForQuality(ref WorkPieceLogMiddle logMiddle) + { + + logMiddle.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG); + + //鏍规嵁璐ㄩ噺鏁版嵁鍒ゆ柇鏄惁鍚堟牸/涓嶅悎鏍� 銆怑ditby shaocx,2024-06-25銆� + QualityNoOkEnum? qualityNoOkEnum = null; + QualityState qualityState = WorkPieceInfoManager.CalcQualityStateForOP(logMiddle, ref qualityNoOkEnum); + logMiddle.QualityState = (int)qualityState; + logMiddle.QualityStateStr = qualityState.ToString(); + if (qualityNoOkEnum != null) + { + logMiddle.QualityNoOk = (int)qualityNoOkEnum; + logMiddle.QualityNoOkReason = qualityNoOkEnum.ToString(); + } + } /// <summary> /// 璁$畻OP 璐ㄩ噺鏁版嵁鏄惁鍚堟牸 /// </summary> - public static QualityState CalcQualityStateForOP(WorkPieceLogMiddle logMiddle, ref QualityNoOkEnum? qualityNoOkEnum) + private static QualityState CalcQualityStateForOP(WorkPieceLogMiddle logMiddle, ref QualityNoOkEnum? qualityNoOkEnum) { QualityState qualityState = QualityState.Suspected; if (logMiddle.WorkingProcedure == "OP60") - { + {//鍚堟牸/涓嶅悎鏍肩敱 WMS鑷鍒ゆ柇 decimal _QualityOP60To1 = SystemHelper.GetDecimal(logMiddle.QualityOP60To1); decimal _QualityOP60To2 = SystemHelper.GetDecimal(logMiddle.QualityOP60To2); var isPass_QualityOP60To1 = false; @@ -2281,35 +2459,152 @@ } return qualityState; } + else if (logMiddle.WorkingProcedure == "OP80") + {//鍚堟牸/涓嶅悎鏍肩敱 OP80 鍒ゆ柇锛孮ualityState 鍜� QualityStateStr 閮藉湪璋冪敤褰撳墠鏂规硶鍓� 鍐欏叆鍊间簡 + if (logMiddle.QualityState == (int)QualityState.OK) + { + qualityState = QualityState.OK; + return qualityState; + } + + decimal _QualityOP80_D_TKZJ = SystemHelper.GetDecimal(logMiddle.QualityOP80_D_TKZJ); + if (!(_QualityOP80_D_TKZJ >= (decimal)53.018 && _QualityOP80_D_TKZJ <= (decimal)53.03)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80澶уご瀛旂洿寰勮秴宸�; + } + + decimal _QualityOP80_X_TKZJ = SystemHelper.GetDecimal(logMiddle.QualityOP80_X_TKZJ); + if (!(_QualityOP80_X_TKZJ >= (decimal)22.005 && _QualityOP80_X_TKZJ <= (decimal)22.011)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛旂洿寰勮秴宸�; + } + + decimal _QualityOP80_ZXJ = SystemHelper.GetDecimal(logMiddle.QualityOP80_ZXJ); + if (!(_QualityOP80_ZXJ >= (decimal)144.475 && _QualityOP80_ZXJ <= (decimal)144.525)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80涓績璺濊秴宸�; + } + + decimal _QualityOP80_DTKYZD = SystemHelper.GetDecimal(logMiddle.QualityOP80_DTKYZD); + if (!(_QualityOP80_DTKYZD >= (decimal)0 && _QualityOP80_DTKYZD <= (decimal)0.005)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80澶уご瀛斿渾鏌卞害瓒呭樊; + } + + decimal _QualityOP80_XTSMYD = SystemHelper.GetDecimal(logMiddle.QualityOP80_XTSMYD); + if (!(_QualityOP80_XTSMYD >= (decimal)0 && _QualityOP80_XTSMYD <= (decimal)0.003)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿渾搴︿笂闈㈣秴宸�; + } + + decimal _QualityOP80_XTXMYD = SystemHelper.GetDecimal(logMiddle.QualityOP80_XTXMYD); + if (!(_QualityOP80_XTXMYD >= (decimal)0 && _QualityOP80_XTXMYD <= (decimal)0.003)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿渾搴︿笅闈㈣秴宸�; + } + + decimal _QualityOP80To4 = SystemHelper.GetDecimal(logMiddle.QualityOP80To4); + if (!(_QualityOP80To4 >= (decimal)(-0.075) && _QualityOP80To4 <= (decimal)0.075)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿钩琛屽害寮洸瓒呭樊; + } + + decimal _QualityOP80To5 = SystemHelper.GetDecimal(logMiddle.QualityOP80To5); + if (!(_QualityOP80To5 >= (decimal)(-0.2) && _QualityOP80To5 <= (decimal)0.2)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿钩琛屽害鎵洸瓒呭樊; + } + + decimal _QualityOP80To6 = SystemHelper.GetDecimal(logMiddle.QualityOP80To6); + if (!(_QualityOP80To6 >= (decimal)0 && _QualityOP80To6 <= (decimal)0.04)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80澶уご瀛斿瀭鐩村害瓒呭樊; + } + + decimal _QualityOP80To10 = SystemHelper.GetDecimal(logMiddle.QualityOP80To10); + if (!(_QualityOP80To10 >= (decimal)0 && _QualityOP80To10 <= (decimal)0.04)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿瀭鐩村害瓒呭樊; + } + + decimal _QualityOP80_Houdu = SystemHelper.GetDecimal(logMiddle.QualityOP80_Houdu); + if (!(_QualityOP80_Houdu >= (decimal)21.80 && _QualityOP80_Houdu <= (decimal)21.85)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80鍘氬害瓒呭樊; + } + + decimal _QualityOP80To1 = SystemHelper.GetDecimal(logMiddle.QualityOP80To1); + if (!(_QualityOP80To1 >= (decimal)364 && _QualityOP80To1 <= (decimal)385)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80澶уご绔噸閲忚秴宸�; + } + + decimal _QualityOP80To2 = SystemHelper.GetDecimal(logMiddle.QualityOP80To2); + if (!(_QualityOP80To2 >= (decimal)143 && _QualityOP80To2 <= (decimal)155)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご绔噸閲忚秴宸�; + } + + + return qualityState; + } else if (logMiddle.WorkingProcedure == "OP10") - { - if (logMiddle.QualityState != (int)QualityState.OK) + {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂� + if (logMiddle.QualityState == (int)QualityState.NG) { qualityNoOkEnum = QualityNoOkEnum.OP10鍘氬害瓒呭樊; + } + else + { + qualityState = QualityState.OK; } return qualityState; } else if (logMiddle.WorkingProcedure == "OP20") - { - if (logMiddle.QualityState != (int)QualityState.OK) + {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂� + if (logMiddle.QualityState == (int)QualityState.NG) { qualityNoOkEnum = QualityNoOkEnum.OP20灏忓ご瀛旂洿寰勮秴宸�; + } + else + { + qualityState = QualityState.OK; + } + return qualityState; + } + else if (logMiddle.WorkingProcedure == "OP30") + {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂� + if (logMiddle.QualityStateStr.Equals("OK")) + { + qualityState = QualityState.OK; + } + else + { + qualityState = QualityState.NG; } return qualityState; } else if (logMiddle.WorkingProcedure == "OP35") - { - if (logMiddle.QualityState != (int)QualityState.OK) + {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂� + if (logMiddle.QualityState == (int)QualityState.NG) { qualityNoOkEnum = QualityNoOkEnum.OP35婊氬帇鍔涗笉鍚堟牸; + } + else + { + qualityState = QualityState.OK; } return qualityState; } else if (logMiddle.WorkingProcedure == "OP40") - { - if (logMiddle.QualityState != (int)QualityState.OK) + {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂� + if (logMiddle.QualityState == (int)QualityState.NG) { qualityNoOkEnum = QualityNoOkEnum.OP40鍘氬害瓒呭樊; + } + else + { + qualityState = QualityState.OK; } return qualityState; } @@ -2317,6 +2612,29 @@ } + /// <summary> + /// 鑾峰彇璐ㄩ噺鐘舵�佸�� + /// </summary> + /// <param name="qualityState"></param> + /// <returns></returns> + public static int GetQualityStateValue(int? qualityState) + { + if (qualityState.HasValue == false) + { + return (int)QualityState.Suspected; + } + if (qualityState.Value == 1) + { + return (int)QualityState.OK; + } + if (qualityState.Value == 2) + { + return (int)QualityState.NG; + } + return (int)QualityState.Suspected; + } + + #endregion } } -- Gitblit v1.9.3