From e8cbb2cb2bda1fb0bb60c7a8f29383fcc73eb76c Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周三, 03 7月 2024 09:32:06 +0800 Subject: [PATCH] 2 --- DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs | 637 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 487 insertions(+), 150 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 d9aa9db..e431e54 100644 --- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs +++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs @@ -456,9 +456,9 @@ /// <summary> /// 璐ㄩ噺妫�娴嬪畬鎴� /// </summary> - /// <param name="loginfo"></param> + /// <param name="logMiddle"></param> /// <param name="type"></param> - public static void QualityInfoComplete(WorkPieceLogMiddle loginfo, LogType type) + public static void QualityInfoComplete(WorkPieceLogMiddle logMiddle, LogType type) { //姝ゅ鍚屾椂鎻掑叆浜哤orkPieceLog锛學orkPieceInfoLog琛紝骞舵柊澧炴垨淇敼WorkPieceInfo琛� //鎻掑叆璐ㄩ噺鐩稿叧琛≦ualityDataInfo @@ -468,79 +468,79 @@ bool isAddWorkPieceInfo = false; WorkPieceLog loginfo2 = new WorkPieceLog(); - loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(loginfo); + loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(logMiddle); try { - if (loginfo.WorkPieceID.Length == 22) + if (logMiddle.WorkPieceID.Length == 22) {//鑾峰彇鍒扮殑宸ヤ欢鍙峰紓甯� - WorkPieceInfo info = new WorkPieceInfo(); - info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); - if (info == null || info.WorkPieceID.Length < 1) + WorkPieceInfo pieceInfo = new WorkPieceInfo(); + pieceInfo = db.WorkPieceInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault(); + if (pieceInfo == null || pieceInfo.WorkPieceID.Length < 1) {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂� - if (loginfo.MonitoringPoint.Equals("OP1002") || loginfo.MonitoringPoint.Equals("OP1003") || loginfo.MonitoringPoint.Contains("OP2002")) + if (logMiddle.MonitoringPoint.Equals("OP1002") || logMiddle.MonitoringPoint.Equals("OP1003") || logMiddle.MonitoringPoint.Contains("OP2002")) {//OP10 娌℃湁涓婄嚎鎵爜鏋紝绾﹀畾鐢ㄦ祴閲忓畬鎴愪俊鍙峰綋涓婄嚎鏍囪 - info = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLogMiddle>(loginfo); + pieceInfo = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLogMiddle>(logMiddle); //EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict()); - if (!loginfo.WorkingProcedure.Equals("OP05")) + if (!logMiddle.WorkingProcedure.Equals("OP05")) {//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬� - info.QualityState = (int)QualityState.Suspected; - info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; - info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; + pieceInfo.QualityState = (int)QualityState.Suspected; + pieceInfo.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; + pieceInfo.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; } else { - info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� - info.Remarks = "OP05鏂板宸ヤ欢淇℃伅"; + pieceInfo.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� + pieceInfo.Remarks = "OP05鏂板宸ヤ欢淇℃伅"; } - info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime(); - info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80"; - info.CreatedUserName = loginfo.MonitoringPoint; - info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();// - info.WorkingProcedureEndTime = null; - info = ParseQRCode(info); + pieceInfo.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime(); + pieceInfo.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80"; + pieceInfo.CreatedUserName = logMiddle.MonitoringPoint; + pieceInfo.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); + pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();// + pieceInfo.WorkingProcedureEndTime = null; + pieceInfo = ParseQRCode(pieceInfo); isAddWorkPieceInfo = true; } else { - loginfo2.Remarks = loginfo2.Remarks ?? "" + $"|宸ヤ欢{loginfo.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡loginfo.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"; - Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{loginfo.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡loginfo.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"); + loginfo2.Remarks = loginfo2.Remarks ?? "" + $"|宸ヤ欢{logMiddle.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡logMiddle.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"; + Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{logMiddle.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡logMiddle.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"); return; } } - if (loginfo.MonitoringPoint.Equals("OP1002") || loginfo.MonitoringPoint.Equals("OP1003") || loginfo.MonitoringPoint.Contains("OP2002")) + if (logMiddle.MonitoringPoint.Equals("OP1002") || logMiddle.MonitoringPoint.Equals("OP1003") || logMiddle.MonitoringPoint.Contains("OP2002")) {// OP10 娌℃湁涓婄嚎鎵爜鏋紝绾﹀畾鐢ㄦ祴閲忓畬鎴愪俊鍙峰綋涓婄嚎鏍囪锛屾墍浠ヤ笂绾块渶瑕佷慨鏀圭殑瀛楁鏀捐繖閲� - if (loginfo.WorkingProcedure.Equals("OP10")) + if (logMiddle.WorkingProcedure.Equals("OP10")) { - var WorkingProcedure = (loginfo.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40"); + var WorkingProcedure = (logMiddle.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40"); loginfo2.WorkingProcedure = WorkingProcedure;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂 - loginfo.WorkingProcedure = WorkingProcedure;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂 + logMiddle.WorkingProcedure = WorkingProcedure;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂 } - info.WorkPieceCurrentPosition = loginfo.WorkingProcedure; - info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2; - info.WorkingProcedureCurrent = loginfo.WorkingProcedure; - info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime(); + pieceInfo.WorkPieceCurrentPosition = logMiddle.WorkingProcedure; + pieceInfo.WorkPieceCurrentPositionOrder = pieceInfo.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) / 2; + pieceInfo.WorkingProcedureCurrent = logMiddle.WorkingProcedure; + pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime(); #region 鏇存柊璁惧瀹炴椂琛� bool isAddEquipmentCurrentMonitor = false; EquipmentCurrentMonitor equinfo = new EquipmentCurrentMonitor(); - equinfo = db.EquipmentCurrentMonitor.Where(o => o.EquipmentID == loginfo.EquipmentID).FirstOrDefault(); + equinfo = db.EquipmentCurrentMonitor.Where(o => o.EquipmentID == logMiddle.EquipmentID).FirstOrDefault(); if (equinfo == null || equinfo.Id < 1) {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂� - Log4NetHelper.WriteErrorLog(type, $"璁惧{loginfo.EquipmentID} 鍛婅鐩戞帶{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒拌澶囩洃鎺т俊鎭紝鐜版柊澧�"); - equinfo = EntityPropHelper.Mapper<EquipmentCurrentMonitor, WorkPieceLog>(loginfo); + Log4NetHelper.WriteErrorLog(type, $"璁惧{logMiddle.EquipmentID} 鍛婅鐩戞帶{logMiddle.WorkingProcedure} 娌℃湁鑾峰彇鍒拌澶囩洃鎺т俊鎭紝鐜版柊澧�"); + equinfo = EntityPropHelper.Mapper<EquipmentCurrentMonitor, WorkPieceLog>(logMiddle); equinfo.OnlineTime = DateTime.Now; isAddEquipmentCurrentMonitor = true; } else {//鏇存柊宸ヤ欢 - equinfo.WorkPieceID = loginfo.WorkPieceID; - equinfo.UpdatedUserName = loginfo.MonitoringPoint; + equinfo.WorkPieceID = logMiddle.WorkPieceID; + equinfo.UpdatedUserName = logMiddle.MonitoringPoint; equinfo.UpdatedTime = DateTime.Now; equinfo.OnlineTime = DateTime.Now; } @@ -552,91 +552,130 @@ #endregion //UpdateKnifeToolLift(db, loginfo);//鏇存柊鍒�鍏峰鍛戒俊鎭� } - info.WorkPieceState = (int)WorkPieceState.WIP;//鎺ㄥ嚭鍚庡拰SPC鎶芥鍚� 璐ㄩ噺褰曞叆鏃剁姸鎬佷慨鏀瑰洖鍦ㄥ埗鍝� - info.EquipmentID = loginfo.EquipmentID; - info.QualityStateUpdateUser = loginfo.UpdatedUserName; - info.QualityStateUpdateTime = loginfo.UpdatedTime.Value.LocalDateTime; - info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); - info.Remarks = info.Remarks ?? "" + $"{loginfo.WorkingProcedure}璐ㄩ噺妫�娴嬪畬鎴愪慨鏀�"; - info.UpdatedUserName = loginfo.MonitoringPoint; - info.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - if (!(info.WorkingProcedureStartTime.HasValue && info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01"))) + pieceInfo.WorkPieceState = (int)WorkPieceState.WIP;//鎺ㄥ嚭鍚庡拰SPC鎶芥鍚� 璐ㄩ噺褰曞叆鏃剁姸鎬佷慨鏀瑰洖鍦ㄥ埗鍝� + pieceInfo.EquipmentID = logMiddle.EquipmentID; + pieceInfo.QualityStateUpdateUser = logMiddle.UpdatedUserName; + pieceInfo.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime; + pieceInfo.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); + pieceInfo.Remarks = pieceInfo.Remarks ?? "" + $"{logMiddle.WorkingProcedure}璐ㄩ噺妫�娴嬪畬鎴愪慨鏀�"; + pieceInfo.UpdatedUserName = logMiddle.MonitoringPoint; + pieceInfo.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); + if (!(pieceInfo.WorkingProcedureStartTime.HasValue && pieceInfo.WorkingProcedureStartTime > DateTime.Parse("1900/01/01"))) {//宸ュ簭寮�濮嬫椂闂存病鏈夊垯璧嬪�� - info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime(); + pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime(); } - info.QualityState = (int)((loginfo.QualityStateStr.Equals("OK") || loginfo.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG); + pieceInfo.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG); + //璧嬪�间笉鍚堟牸鍘熷洜 + SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo); - if (!info.QualityState.Equals(((int)QualityState.OK).ToString())) + + if (!pieceInfo.QualityState.Equals(((int)QualityState.OK).ToString())) { - info.QualityErrorInfo = $"{loginfo.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍納info.QualityState}"; + pieceInfo.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍納pieceInfo.QualityState}"; } else { - info.QualityErrorInfo = ""; + pieceInfo.QualityErrorInfo = ""; } - loginfo.QualityState = info.QualityState; + logMiddle.QualityState = pieceInfo.QualityState; if (isAddWorkPieceInfo) { - db.WorkPieceInfo.Add(info); + db.WorkPieceInfo.Add(pieceInfo); } #region 鏍规嵁鏍囧噯鍊兼洿鏂版渶鏂拌川閲忔暟鎹紙OP10/OP40/OP20/OP60锛� - var qcofig = db.EquipmentQualityConfig.Where(o => o.WorkingProcedure.Equals(loginfo.WorkingProcedure) && o.ParamType != 1 && o.IsDeleted == false).ToList(); + var qcofig = db.EquipmentQualityConfig.Where(o => o.WorkingProcedure.Equals(logMiddle.WorkingProcedure) && o.ParamType != 1 && o.IsDeleted == false).ToList(); if (qcofig.Count > 0) { - QualityDataHand(loginfo, qcofig); + QualityDataHand(logMiddle, qcofig); } #endregion - var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); + var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault(); if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1) {//鎻掑叆QualityDataInfo琛� - qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(loginfo); + qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(logMiddle); db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData)); } //淇敼QualityDataInfo琛� //閲嶅鏀跺埌璐ㄩ噺淇℃伅锛屼細瑕嗙洊涔嬪墠鐨� - EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(loginfo, qualityData, GetQualityDataInfoUpdate(loginfo.WorkingProcedure, loginfo.MonitoringPoint));//鎸囧畾淇敼瀛楁 + EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(logMiddle, qualityData, GetQualityDataInfoUpdate(logMiddle, logMiddle.WorkingProcedure, logMiddle.MonitoringPoint));//鎸囧畾淇敼瀛楁 - qualityData.QualityStateUpdateUser = info.UpdatedUserName; - qualityData.QualityReceiveTime = info.UpdatedTime.Value.LocalDateTime; - qualityData.QualityStateUpdateMode = info.QualityStateUpdateMode; - if (loginfo.WorkingProcedure.Equals("OP10")) + qualityData.QualityStateUpdateUser = pieceInfo.UpdatedUserName; + qualityData.QualityReceiveTime = pieceInfo.UpdatedTime.Value.LocalDateTime; + qualityData.QualityStateUpdateMode = pieceInfo.QualityStateUpdateMode; + if (logMiddle.WorkingProcedure.Equals("OP10")) { - qualityData.OP10QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; + qualityData.OP10QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; qualityData.OP10QualityReceiveTime = DateTimeHelper.GetDateTime(); } - else if (loginfo.WorkingProcedure.Equals("OP20")) + else if (logMiddle.WorkingProcedure.Equals("OP20")) { //Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}璐ㄩ噺淇℃伅銆恵loginfo.QualityStateStr ?? "绌�"}銆�" + // $"銆恵(loginfo.QualityState.HasValue? loginfo.QualityState.Value:999)}銆戙�恵(info.QualityState.HasValue ? info.QualityState.Value : 888)}銆� 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]"); - qualityData.OP20QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; + qualityData.OP20QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; qualityData.OP20QualityReceiveTime = DateTimeHelper.GetDateTime(); - qualityData.OP20QualityFilePath = loginfo.OP20QualityFilePath; + qualityData.OP20QualityFilePath = logMiddle.OP20QualityFilePath; } - else if (loginfo.WorkingProcedure.Equals("OP30")) + else if (logMiddle.WorkingProcedure.Equals("OP30")) { - switch (loginfo.MonitoringPoint) + switch (logMiddle.MonitoringPoint) { case "OP3002CH3": - qualityData.OP30QualityFilePathCH3 = loginfo.OP30QualityFilePathCH3; - qualityData.OP30QualityStateCH3 = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; + qualityData.OP30QualityFilePathCH3 = logMiddle.OP30QualityFilePathCH3; + qualityData.OP30QualityStateCH3 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; qualityData.OP30QualityReceiveTimeCH3 = DateTimeHelper.GetDateTime(); + + if (qualityData.OP30QualityStateCH3 == ((int)QualityState.NG).ToString()) + { + logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩澶�; + logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩澶�.ToString(); + //璧嬪�间笉鍚堟牸鍘熷洜 + SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo); + } + break; case "OP3002CH4": - qualityData.OP30QualityFilePathCH4 = loginfo.OP30QualityFilePathCH4; - qualityData.OP30QualityStateCH4 = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; + qualityData.OP30QualityFilePathCH4 = logMiddle.OP30QualityFilePathCH4; + qualityData.OP30QualityStateCH4 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; qualityData.OP30QualityReceiveTimeCH4 = DateTimeHelper.GetDateTime(); + + if (qualityData.OP30QualityStateCH4 == ((int)QualityState.NG).ToString()) + { + logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30棰勬嫥绱у伐浣嶅姏鐭╁ぇ; + logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30棰勬嫥绱у伐浣嶅姏鐭╁ぇ.ToString(); + //璧嬪�间笉鍚堟牸鍘熷洜 + SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo); + } + break; case "OP3002CH5": - qualityData.OP30QualityFilePathCH5 = loginfo.OP30QualityFilePathCH5; - qualityData.OP30QualityStateCH5 = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; + qualityData.OP30QualityFilePathCH5 = logMiddle.OP30QualityFilePathCH5; + qualityData.OP30QualityStateCH5 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; qualityData.OP30QualityReceiveTimeCH5 = DateTimeHelper.GetDateTime(); + + if (qualityData.OP30QualityStateCH5 == ((int)QualityState.NG).ToString()) + { + logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30缁堟嫥绱у伐浣嶅姏鐭╁ぇ; + logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30缁堟嫥绱у伐浣嶅姏鐭╁ぇ.ToString(); + //璧嬪�间笉鍚堟牸鍘熷洜 + SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo); + } + break; case "OP3002CH6": - qualityData.OP30QualityFilePathCH6 = loginfo.OP30QualityFilePathCH6; - qualityData.OP30QualityStateCH6 = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; + qualityData.OP30QualityFilePathCH6 = logMiddle.OP30QualityFilePathCH6; + qualityData.OP30QualityStateCH6 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; qualityData.OP30QualityReceiveTimeCH6 = DateTimeHelper.GetDateTime(); + + if (qualityData.OP30QualityStateCH6 == ((int)QualityState.NG).ToString()) + { + logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30鍘嬭‖濂楀伐浣嶅姏鐭╁ぇ; + logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30鍘嬭‖濂楀伐浣嶅姏鐭╁ぇ.ToString(); + //璧嬪�间笉鍚堟牸鍘熷洜 + SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo); + } + break; default: break; @@ -644,42 +683,46 @@ //qualityData.OP30QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; //qualityData.OP30QualityReceiveTime = DateTimeHelper.GetDateTime(); } - else if (loginfo.WorkingProcedure.Equals("OP35")) + else if (logMiddle.WorkingProcedure.Equals("OP35")) { - qualityData.OP35QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; + qualityData.OP35QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; qualityData.OP35QualityReceiveTime = DateTimeHelper.GetDateTime(); } - else if (loginfo.WorkingProcedure.Equals("OP40")) + else if (logMiddle.WorkingProcedure.Equals("OP40")) { - qualityData.OP40QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; + qualityData.OP40QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; qualityData.OP40QualityReceiveTime = DateTimeHelper.GetDateTime(); } - else if (loginfo.WorkingProcedure.Equals("OP60")) + else if (logMiddle.WorkingProcedure.Equals("OP60")) { - qualityData.OP60QualityFilePath = loginfo.OP60QualityFilePath; - qualityData.OP60QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; + qualityData.OP60QualityFilePath = logMiddle.OP60QualityFilePath; + qualityData.OP60QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; qualityData.OP60QualityReceiveTime = DateTimeHelper.GetDateTime(); } - else if (loginfo.WorkingProcedure.Equals("OP80")) + else if (logMiddle.WorkingProcedure.Equals("OP80")) { - qualityData.OP80QualityFilePath = loginfo.OP80QualityFilePath; - qualityData.OP80QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; + qualityData.OP80QualityFilePath = logMiddle.OP80QualityFilePath; + qualityData.OP80QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; qualityData.OP80QualityReceiveTime = DateTimeHelper.GetDateTime(); } - var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == info.WorkingProcedureCurrent && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault(); - if (pro == null || pro.WorkPieceID.Length < 1 || loginfo.MonitoringPoint.Equals("OP1002") || loginfo.MonitoringPoint.Equals("OP1003") || loginfo.MonitoringPoint.Contains("OP2002")) + var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID && o.WorkingProcedureCurrent == pieceInfo.WorkingProcedureCurrent && 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 娌℃湁涓婄嚎鎵爜鏋紝绾﹀畾鐢ㄦ祴閲忓畬鎴愪俊鍙峰綋涓婄嚎鏍囪锛屾墍浠ヤ笂绾块渶瑕佷慨鏀圭殑瀛楁鏀捐繖閲� //涓婄嚎鏄瘡娆¢兘鎻掑叆 WorkPieceProcess process = new WorkPieceProcess(); - process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info); + process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(pieceInfo); process.StartTime = DateTimeHelper.GetDateTime(); - process.QualityState = info.QualityState.HasValue ? info.QualityState.Value : (int)QualityState.OK; + process.QualityState = pieceInfo.QualityState.HasValue ? pieceInfo.QualityState.Value : (int)QualityState.OK; + //璁板綍璐ㄩ噺涓嶅悎鏍煎師鍥� 銆怑ditby shaocx,2024-06-26銆� + //璧嬪�间笉鍚堟牸鍘熷洜 + SetQualityNoOk_WorkPieceProcess(logMiddle, ref process); + process.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - process.CreatedUserName = loginfo.MonitoringPoint; + process.CreatedUserName = logMiddle.MonitoringPoint; process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - process.UpdatedUserName = loginfo.MonitoringPoint; + process.UpdatedUserName = logMiddle.MonitoringPoint; process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); process.OperationType = OperationType.鐢熶骇.ToString(); process.QualityDataInfoID = qualityData.Id; @@ -689,21 +732,23 @@ else {//鍏朵粬鐨勯兘鍙槸淇敼 pro.QualityDataInfoID = qualityData.Id; - pro.UpdatedUserName = loginfo.MonitoringPoint; + pro.UpdatedUserName = logMiddle.MonitoringPoint; pro.UpdatedTime = DateTimeHelper.GetDateTime(); - pro.QualityState = info.QualityState.HasValue ? info.QualityState.Value : 9; + pro.QualityState = pieceInfo.QualityState.HasValue ? pieceInfo.QualityState.Value : 9; + //璧嬪�间笉鍚堟牸鍘熷洜 + SetQualityNoOk_WorkPieceProcess(logMiddle, ref pro); //TODO:鍒ゆ柇濡傛灉鏄�60宸ュ簭锛岄偅涔堝氨瑕佹洿鏂皃ro琛ㄧ殑鍒涘缓浜轰负loginfo.MonitoringPoint 銆怑ditby shaocx,2024-06-05銆� - if (loginfo.WorkingProcedure == "OP60") + if (logMiddle.WorkingProcedure == "OP60") { - pro.CreatedUserName = loginfo.MonitoringPoint; + pro.CreatedUserName = logMiddle.MonitoringPoint; } } - if (loginfo.QualityType != null && loginfo.QualityType.Equals(QualityType.SPC.ToString())) + if (logMiddle.QualityType != null && logMiddle.QualityType.Equals(QualityType.SPC.ToString())) {//SPC鍙嶉锛� - if (loginfo.QualityState != (int)QualityState.OK) + if (logMiddle.QualityState != (int)QualityState.OK) { //褰撴煇鍒板伐搴忔娴嬪埌涓嶅悎鏍煎伐浠舵椂锛屼粠璇ュ伐浠跺姞宸ュ畬鎴愭椂鍒诲墠鎸囧畾鏃堕棿璧疯嚦鎶ユ涓嶅悎鏍兼椂闂存锛岀郴缁熷皢璇ュ伐浠剁殑鏈�鍚庡姞宸ュ伐搴忓湪璇ユ椂闂存鍐呭姞宸ョ殑鎵�鏈夊伐浠躲�佹鍦ㄥ姞宸ョ殑宸ヤ欢銆佽宸ュ簭鍏ュ彛澶勭殑绗竴涓伐浠跺叏閮ㄦ爣璁颁负鐤戜技鐘舵�侊紝鐢变汉宸ュ妫�宸ヤ欢骞朵慨鏀圭姸鎬侊紝骞舵敮鎸佹壒閲忓彉鏇淬�� //绛斿锛氬湪绾挎祴閲忎笉闇�瑕佽蛋杩欎釜娴佺▼锛屽彧鏈塖PC鎶芥鎵嶉渶瑕侊紝闇�瑕佹妸杩欐椂闂存鐨勫伐浠跺叏閮ㄧ疆涓虹枒浼硷紝鍝�曟槸宸插畬鎴愬伐浠� @@ -716,24 +761,24 @@ } } - db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info)); + db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(pieceInfo)); db.QualityDataInfoLog.Add(GetAddQualityDataInfoLog(qualityData));//鎻掑叆鏃ュ織 } else { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺妫�娴嬪畬鎴愯鍙栦簩缁寸爜{loginfo.WorkPieceID ?? "绌�"}寮傚父"; - Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細"); + loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺妫�娴嬪畬鎴愯鍙栦簩缁寸爜{logMiddle.WorkPieceID ?? "绌�"}寮傚父"; + Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細"); } } catch (Exception ex) { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺妫�娴嬪畬鎴恵loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{ex.Message}++{ex.StackTrace}"; - Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細"); + loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺妫�娴嬪畬鎴恵logMiddle.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{ex.Message}++{ex.StackTrace}"; + Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細"); } finally { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿loginfo.QualityStateStr ?? "绌�"}"; + loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿logMiddle.QualityStateStr ?? "绌�"}"; db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛� db.SaveChanges(); } @@ -941,37 +986,43 @@ /// <summary> /// 宸ュ簭瀹屾垚 /// </summary> - /// <param name="loginfo"></param> + /// <param name="logMiddle"></param> /// <param name="type"></param> - public static void WorkingProcedureComplete(WorkPieceLogMiddle loginfo, LogType type) + public static void WorkingProcedureComplete(WorkPieceLogMiddle logMiddle, LogType type) { using (DbModel db = new DbModel()) { + if (logMiddle.WorkingProcedure.Equals("OP70")) + { + logMiddle.QualityState = (int)QualityState.OK; //濡傛灉鏄疧P70锛屽垯榛樿鏄悎鏍� 銆怑ditby shaocx,2024-06-25銆� + } + WorkPieceLog loginfo2 = new WorkPieceLog(); - loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(loginfo); + loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(logMiddle); try { - if (loginfo.WorkPieceID != null && loginfo.WorkPieceID.Trim('\0').Length == 22) + if (logMiddle.WorkPieceID != null && logMiddle.WorkPieceID.Trim('\0').Length == 22) { + bool isAddWorkPieceInfo = false; WorkPieceInfo info = new WorkPieceInfo(); - info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); + info = db.WorkPieceInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault(); if (info == null || info.WorkPieceID.Length < 1) {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂� 锛堜负浜嗘祴璇曞厛鍏堟柊澧烇級 - Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{loginfo.WorkPieceID} 宸ヤ欢鎺ㄥ嚭宸ュ簭{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"); + Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{logMiddle.WorkPieceID} 宸ヤ欢鎺ㄥ嚭宸ュ簭{logMiddle.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�"); //db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛� //db.SaveChanges(); - loginfo2 = CommonManager.Instance.GetWorkPieceID(loginfo, type); - info = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLog>(loginfo); + loginfo2 = CommonManager.Instance.GetWorkPieceID(logMiddle, type); + info = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLog>(logMiddle); //EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict()); - if (!loginfo.WorkingProcedure.Equals("OP05")) + if (!logMiddle.WorkingProcedure.Equals("OP05")) {//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬� info.QualityState = (int)QualityState.Suspected; - info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; - info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; + info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; + info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒"; } else { @@ -980,53 +1031,58 @@ } info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();//WorkPieceInitOnlineTime info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80"; - info.CreatedUserName = loginfo.MonitoringPoint; + info.CreatedUserName = logMiddle.MonitoringPoint; info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - info.WorkingProcedureCurrent = loginfo.WorkingProcedure; + info.WorkingProcedureCurrent = logMiddle.WorkingProcedure; info.WorkingProcedureEndTime = null; info = ParseQRCode(info); isAddWorkPieceInfo = true; } - if (loginfo.WorkingProcedure.Equals("OP10")) + if (logMiddle.WorkingProcedure.Equals("OP10")) { //var WorkingProcedure = (loginfo.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40"); loginfo2.WorkingProcedure = info.WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂 - loginfo.WorkingProcedure = info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂 + logMiddle.WorkingProcedure = info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂 } - info.UpdatedUserName = loginfo.MonitoringPoint; + info.UpdatedUserName = logMiddle.MonitoringPoint; info.UpdatedTime = DateTimeHelper.GetDateTime(); - info.WorkingProcedureCompleted = info.WorkingProcedureCompleted + loginfo.WorkingProcedure;//宸插畬鎴愬伐搴� + info.WorkingProcedureCompleted = info.WorkingProcedureCompleted + logMiddle.WorkingProcedure;//宸插畬鎴愬伐搴� if (!(info.WorkingProcedureStartTime.HasValue && info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01"))) {//鑻ヤ竴鐩存病鏈夊伐搴忓紑濮嬫椂闂达紝鍒欒祴鍊煎綋鍓嶆椂闂� info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime(); } info.WorkingProcedureEndTime = DateTimeHelper.GetDateTime(); - info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2; - info.Remarks = $"{loginfo.WorkingProcedure}宸ュ簭瀹屾垚"; + info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) / 2; + info.Remarks = $"{logMiddle.WorkingProcedure}宸ュ簭瀹屾垚"; long op80id = 0; - if (loginfo.WorkingProcedure.Equals("OP80")) + if (logMiddle.WorkingProcedure.Equals("OP80")) { info.WorkPieceState = (int)WorkPieceState.FinishedProducts; info.WorkPieceLastOfflineTime = DateTimeHelper.GetDateTime(); info.WorkPieceCurrentPosition = "OP80"; info.CompleteTime = DateTimeHelper.GetDateTime(); - info.OP80NewCode = loginfo.OP80NewCode; + info.OP80NewCode = logMiddle.OP80NewCode; + //璐ㄦ鏁版嵁鏀逛负 鑾峰彇鏂囦欢鍚庝慨鏀� 銆怑ditby shaocx,2024-06-15銆� + /* info.QualityState = (int)((loginfo.QualityStateStr.Equals("OK") || loginfo.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG); loginfo.QualityState = info.QualityState; info.QualityStateUpdateUser = loginfo.UpdatedUserName; info.QualityStateUpdateTime = loginfo.UpdatedTime.Value.LocalDateTime; info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); + //*/ - var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); + var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault(); if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1) {//鎻掑叆QualityDataInfo琛� - qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(loginfo); + qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(logMiddle); db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData)); } //淇敼QualityDataInfo琛� //閲嶅鏀跺埌璐ㄩ噺淇℃伅锛屼細瑕嗙洊涔嬪墠鐨� - EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(loginfo, qualityData, GetQualityDataInfoUpdate(loginfo.WorkingProcedure, loginfo.MonitoringPoint));//鎸囧畾淇敼瀛楁 + EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(logMiddle, qualityData, GetQualityDataInfoUpdate(logMiddle, logMiddle.WorkingProcedure, logMiddle.MonitoringPoint));//鎸囧畾淇敼瀛楁 + //璐ㄦ鏁版嵁鏀逛负 鑾峰彇鏂囦欢鍚庝慨鏀� 銆怑ditby shaocx,2024-06-15銆� + /* qualityData.QualityStateUpdateUser = info.UpdatedUserName; qualityData.QualityReceiveTime = info.UpdatedTime.Value.LocalDateTime; qualityData.QualityStateUpdateMode = info.QualityStateUpdateMode; @@ -1043,31 +1099,32 @@ { info.QualityErrorInfo = ""; } + //*/ } - else if (loginfo.WorkingProcedure.Equals("OP30")) + else if (logMiddle.WorkingProcedure.Equals("OP30")) { - info.QualityState = (int)((loginfo.QualityStateStr.Equals("OK") || loginfo.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG); - loginfo.QualityState = info.QualityState; - info.QualityStateUpdateUser = loginfo.UpdatedUserName; - info.QualityStateUpdateTime = loginfo.UpdatedTime.Value.LocalDateTime; + info.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG); + logMiddle.QualityState = info.QualityState; + info.QualityStateUpdateUser = logMiddle.UpdatedUserName; + info.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime; info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); - var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); + var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault(); if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1) {//鎻掑叆QualityDataInfo琛� - qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(loginfo); + qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(logMiddle); db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData)); } qualityData.QualityStateUpdateUser = info.UpdatedUserName; qualityData.QualityReceiveTime = info.UpdatedTime.Value.LocalDateTime; qualityData.QualityStateUpdateMode = info.QualityStateUpdateMode; - qualityData.OP30QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3"; + qualityData.OP30QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3"; qualityData.OP30QualityReceiveTime = DateTimeHelper.GetDateTime(); - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿loginfo.QualityStateStr ?? "绌�"}"; + loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿logMiddle.QualityStateStr ?? "绌�"}"; if (!info.QualityState.Equals(((int)QualityState.OK).ToString())) { - info.QualityErrorInfo = $"{loginfo.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�"; + info.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�"; } else { @@ -1077,13 +1134,13 @@ else { info.WorkPieceState = (int)WorkPieceState.WIP; - if (info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) + 4 <= info.WorkingProcedurePlan.Length) + if (info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) + 4 <= info.WorkingProcedurePlan.Length) { - info.WorkPieceCurrentPosition = info.WorkingProcedurePlan.Substring(info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure), 8); + info.WorkPieceCurrentPosition = info.WorkingProcedurePlan.Substring(info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure), 8); } } - var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == info.WorkingProcedureCurrent && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault(); + var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID && o.WorkingProcedureCurrent == info.WorkingProcedureCurrent && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault(); if (pro == null || pro.WorkPieceID.Length < 1) { WorkPieceProcess process = new WorkPieceProcess(); @@ -1091,13 +1148,23 @@ process.Id = Yitter.IdGenerator.YitIdHelper.NextId(); process.StartTime = DateTimeHelper.GetDateTime(); process.EndTime = DateTimeHelper.GetDateTime(); - process.QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value : (int)QualityState.OK; - process.CreatedUserName = loginfo.MonitoringPoint; + if (logMiddle.WorkingProcedure.Equals("OP80")) + {//OP80鐨勮川閲忔暟鎹槸鍚庢潵鑾峰彇鏂囦欢鎼炵殑 + } + else + { + process.QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value : (int)QualityState.OK; + } + process.CreatedUserName = logMiddle.MonitoringPoint; process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - process.UpdatedUserName = loginfo.MonitoringPoint; + process.UpdatedUserName = logMiddle.MonitoringPoint; process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); process.OperationType = OperationType.鐢熶骇.ToString(); process.Remarks = ""; + if (logMiddle.WorkingProcedure.Equals("OP80")) + { + process.GetQcDataFlag = logMiddle.GetQcDataFlag;//璧嬪�兼爣璁� [Editby shaocx,2024-06-15] + } if (op80id > 0) { process.QualityDataInfoID = op80id; @@ -1111,8 +1178,15 @@ pro.QualityDataInfoID = op80id; } pro.EndTime = DateTimeHelper.GetDateTime(); - pro.UpdatedUserName = loginfo.MonitoringPoint; + pro.UpdatedUserName = logMiddle.MonitoringPoint; pro.UpdatedTime = DateTimeHelper.GetDateTime(); + if (logMiddle.WorkingProcedure.Equals("OP80")) + { + if (pro.GetQcDataFlag != 0) + { + pro.GetQcDataFlag = logMiddle.GetQcDataFlag;//璧嬪�兼爣璁� [Editby shaocx,2024-06-15] + } + } } @@ -1124,14 +1198,14 @@ } else { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"涓嬬嚎瀹屾垚璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父"; - Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}宸ュ簭涓嬬嚎 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細"); + loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"涓嬬嚎瀹屾垚璇诲彇浜岀淮鐮亄logMiddle.WorkPieceID ?? "绌�"}寮傚父"; + Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭涓嬬嚎 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細"); } } catch (Exception e) { - loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}"; + loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璇诲彇浜岀淮鐮亄logMiddle.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}"; } db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛� db.SaveChanges(); @@ -1919,11 +1993,11 @@ #region 涓氬姟鏂规硶 /// <summary> - /// dict涓墠闈竴涓槸鍘熷璞★紝鍚庨潰涓�涓槸鐩爣瀵硅薄 + /// 銆愯川閲忔暟鎹洿鏂颁笓鐢ㄣ�� dict涓墠闈竴涓槸鍘熷璞★紝鍚庨潰涓�涓槸鐩爣瀵硅薄 /// </summary> /// <param name="WorkingProcedure"></param> /// <returns></returns> - public static Dictionary<string, string> GetQualityDataInfoUpdate(string WorkingProcedure = "", string MonitoringPoint = "") + public static Dictionary<string, string> GetQualityDataInfoUpdate(WorkPieceLogMiddle logMiddle, string WorkingProcedure = "", string MonitoringPoint = "") { Dictionary<string, string> dict = new Dictionary<string, string>(); @@ -1938,11 +2012,20 @@ { case "OP10": dict.Add("QualityOP10To1", "QualityOP10To1"); + + dict.Add("QualityNoOk", "QualityNoOk_OP10"); + dict.Add("QualityNoOkReason", "QualityNoOkReason_OP10"); break; case "OP20": dict.Add("QualityOP20To1", "QualityOP20To1"); + + dict.Add("QualityNoOk", "QualityNoOk_OP20"); + dict.Add("QualityNoOkReason", "QualityNoOkReason_OP20"); break; case "OP30": + dict.Add("QualityNoOk", "QualityNoOk_OP30"); + dict.Add("QualityNoOkReason", "QualityNoOkReason_OP30"); + switch (MonitoringPoint) { case "OP3002CH3": @@ -1971,13 +2054,24 @@ case "OP35": dict.Add("QualityOP35To1", "QualityOP35To1"); dict.Add("QualityOP35To2", "QualityOP35To2"); + + dict.Add("QualityNoOk", "QualityNoOk_OP35"); + dict.Add("QualityNoOkReason", "QualityNoOkReason_OP35"); + break; case "OP40": dict.Add("QualityOP40To1", "QualityOP40To1"); + + dict.Add("QualityNoOk", "QualityNoOk_OP40"); + dict.Add("QualityNoOkReason", "QualityNoOkReason_OP40"); break; case "OP60": dict.Add("QualityOP60To1", "QualityOP60To1"); dict.Add("QualityOP60To2", "QualityOP60To2"); + + dict.Add("QualityNoOk", "QualityNoOk_OP60"); + dict.Add("QualityNoOkReason", "QualityNoOkReason_OP60"); + break; case "OP70": dict.Add("QualityOP70To1", "QualityOP70To1"); @@ -1996,11 +2090,69 @@ dict.Add("QualityOP80To8", "QualityOP80To8"); dict.Add("QualityOP80To9", "QualityOP80To9"); dict.Add("QualityOP80To10", "QualityOP80To10"); + + //鏂板 銆怑ditby shaocx,2024-06-16銆� + dict.Add("QualityOP80_Houdu", "QualityOP80_Houdu"); + dict.Add("QualityOP80_ZXJ", "QualityOP80_ZXJ"); + dict.Add("QualityOP80_DTKYZD", "QualityOP80_DTKYZD"); + dict.Add("QualityOP80_XTSMYD", "QualityOP80_XTSMYD"); + dict.Add("QualityOP80_XTXMYD", "QualityOP80_XTXMYD"); + dict.Add("QualityOP80_D_TKZJ", "QualityOP80_D_TKZJ"); + dict.Add("QualityOP80_D_S_X", "QualityOP80_D_S_X"); + dict.Add("QualityOP80_D_S_Y", "QualityOP80_D_S_Y"); + dict.Add("QualityOP80_D_X_X", "QualityOP80_D_X_X"); + dict.Add("QualityOP80_D_X_Y", "QualityOP80_D_X_Y"); + dict.Add("QualityOP80_X_TKZJ", "QualityOP80_X_TKZJ"); + dict.Add("QualityOP80_X_S_X", "QualityOP80_X_S_X"); + dict.Add("QualityOP80_X_S_Y", "QualityOP80_X_S_Y"); + dict.Add("QualityOP80_X_X_X", "QualityOP80_X_X_X"); + dict.Add("QualityOP80_X_X_Y", "QualityOP80_X_X_Y"); + + + dict.Add("QualityNoOk", "QualityNoOk_OP80"); + dict.Add("QualityNoOkReason", "QualityNoOkReason_OP80"); + break; default: break; } return dict; + } + + /// <summary> + /// 銆愬伐浠舵垨宸ュ簭鏁版嵁鏁版嵁鏇存柊涓撶敤銆� dict涓墠闈竴涓槸鍘熷璞★紝鍚庨潰涓�涓槸鐩爣瀵硅薄 + /// </summary> + /// <param name="WorkingProcedure"></param> + /// <returns></returns> + public static Dictionary<string, string> GetWorkPieceInfoUpdateForQualityNoOk(WorkPieceLogMiddle loginfo) + { + Dictionary<string, string> dict = new Dictionary<string, string>(); + + //if (loginfo.QualityState != null) + //{ + // QualityState qualityState; + // bool isRight = Enum.TryParse<QualityState>(loginfo.QualityState.ToString(), out qualityState); + // if (isRight && (qualityState == QualityState.NG || qualityState == QualityState.Suspected)) + // { + + // } + //} + + dict.Add("QualityNoOk", "QualityNoOk"); + dict.Add("QualityNoOkReason", "QualityNoOkReason"); + + return dict; + } + + public static void SetQualityNoOk_WorkPieceInfo(WorkPieceLogMiddle logMiddle, ref WorkPieceInfo pieceInfo) + { + pieceInfo.QualityNoOk = logMiddle.QualityNoOk; + pieceInfo.QualityNoOkReason = logMiddle.QualityNoOkReason; + } + public static void SetQualityNoOk_WorkPieceProcess(WorkPieceLogMiddle logMiddle, ref WorkPieceProcess pieceProcess) + { + pieceProcess.QualityNoOk = logMiddle.QualityNoOk; + pieceProcess.QualityNoOkReason = logMiddle.QualityNoOkReason; } @@ -2081,6 +2233,191 @@ loginfo.WorkPieceIDTo7 = loginfo.WorkPieceID.Substring(20, 2); return loginfo; } + + /// <summary> + /// 璁剧疆涓棿鍙橀噺鐨勮川閲忔暟鎹� + /// </summary> + /// <param name="logMiddle"></param> + public static void SetLogMiddleForQuality(ref WorkPieceLogMiddle logMiddle) + { + + //鏍规嵁璐ㄩ噺鏁版嵁鍒ゆ柇鏄惁鍚堟牸/涓嶅悎鏍� 銆怑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> + private static QualityState CalcQualityStateForOP(WorkPieceLogMiddle logMiddle, ref QualityNoOkEnum? qualityNoOkEnum) + { + QualityState qualityState = QualityState.Suspected; + if (logMiddle.WorkingProcedure == "OP60") + { + decimal _QualityOP60To1 = SystemHelper.GetDecimal(logMiddle.QualityOP60To1); + decimal _QualityOP60To2 = SystemHelper.GetDecimal(logMiddle.QualityOP60To2); + var isPass_QualityOP60To1 = false; + var isPass_QualityOP60To2 = false; + + + if (_QualityOP60To1 >= (decimal)53.018 && _QualityOP60To1 <= (decimal)53.030) + { + isPass_QualityOP60To1 = true; + } + else + { + qualityNoOkEnum = QualityNoOkEnum.OP60澶уご瀛旂洿寰勮秴宸�; + } + if (_QualityOP60To2 >= (decimal)22.005 && _QualityOP60To2 <= (decimal)22.011) + { + isPass_QualityOP60To2 = true; + } + else + { + qualityNoOkEnum = QualityNoOkEnum.OP60灏忓ご瀛旂洿寰勮秴宸�; + } + + if (isPass_QualityOP60To1 && isPass_QualityOP60To2) + { + qualityState = QualityState.OK; + } + else + { + qualityState = QualityState.NG; + } + if (_QualityOP60To1 == 0 || _QualityOP60To2 == 0) + { + qualityState = QualityState.Suspected; + return qualityState; + } + return qualityState; + } + if (logMiddle.WorkingProcedure == "OP80") + { + 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 && _QualityOP80To4 <= (decimal)0.075)) + { + qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿钩琛屽害寮洸瓒呭樊; + } + + decimal _QualityOP80To5 = SystemHelper.GetDecimal(logMiddle.QualityOP80To5); + if (!(_QualityOP80To5 >= (decimal)0 && _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.NG) + { + qualityNoOkEnum = QualityNoOkEnum.OP10鍘氬害瓒呭樊; + } + return qualityState; + } + else if (logMiddle.WorkingProcedure == "OP20") + { + if (logMiddle.QualityState == (int)QualityState.NG) + { + qualityNoOkEnum = QualityNoOkEnum.OP20灏忓ご瀛旂洿寰勮秴宸�; + } + return qualityState; + } + else if (logMiddle.WorkingProcedure == "OP35") + { + if (logMiddle.QualityState == (int)QualityState.NG) + { + qualityNoOkEnum = QualityNoOkEnum.OP35婊氬帇鍔涗笉鍚堟牸; + } + return qualityState; + } + else if (logMiddle.WorkingProcedure == "OP40") + { + if (logMiddle.QualityState == (int)QualityState.NG) + { + qualityNoOkEnum = QualityNoOkEnum.OP40鍘氬害瓒呭樊; + } + return qualityState; + } + return qualityState; + } + + #endregion } } -- Gitblit v1.9.3