using iWare_SCADA_Model; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace iWare_SCADA_BusinessLogical.Utils { /// /// 质量状态变更帮助类 /// public class QualityStateHelper { /// /// 重置不合格原因,当新建工序时 /// /// public static void ResetQualityNoOkForNewProcess(ref WorkPieceProcess new_process) { new_process.QualityNoOk = null; new_process.QualityNoOkReason = ""; } /// /// OP80专门获取某些点位,配置质量状态 /// /// /// /// public static void SetQualityStateForOP80(WorkPieceLogMiddle logMiddle, ref WorkPieceInfo info, ref WorkPieceProcess pro) { QualityState setQualityState = QualityState.OK; QualityNoOkEnum? qualityNoOkEnum = null; if (logMiddle.St5_Mark_OK == false) { qualityNoOkEnum = QualityNoOkEnum.OP80打标不合格; setQualityState = QualityState.NG; } else if (logMiddle.ST6_Camera_OK == false) { qualityNoOkEnum = QualityNoOkEnum.OP80打标识别不合格; setQualityState = QualityState.NG; } info.QualityState = (int)setQualityState; if (qualityNoOkEnum != null) { info.QualityNoOk = (int)qualityNoOkEnum; info.QualityNoOkReason = qualityNoOkEnum.ToString(); } pro.QualityState = (int)setQualityState; if (qualityNoOkEnum != null) { pro.QualityNoOk = (int)qualityNoOkEnum; pro.QualityNoOkReason = qualityNoOkEnum.ToString(); } } /// /// NOOK推出时,更新质量状态 【Editby shaocx,2024-08-23】 /// /// /// public static void SetQualityStateForNoOk(ref WorkPieceInfo info, ref WorkPieceProcess pro, ref QualityDataInfo qualityData) { try { QualityState setQualityState = QualityState.NG; QualityNoOkEnum? qualityNoOkEnum = null; info.QualityState = (int)setQualityState; if (info.QualityNoOk == null) { SetQualityNoOkEnum(info, ref qualityNoOkEnum); if (qualityNoOkEnum != null) { info.QualityNoOk = (int)qualityNoOkEnum; info.QualityNoOkReason = qualityNoOkEnum.ToString(); } } if (pro != null) { pro.QualityState = (int)setQualityState; if (qualityNoOkEnum != null) { info.QualityNoOk = (int)qualityNoOkEnum; info.QualityNoOkReason = qualityNoOkEnum.ToString(); } } if (qualityData != null) { qualityData.QualityState = (int)setQualityState; } } catch (Exception ex) { } } /// /// 获取不合格原因 /// private static void SetQualityNoOkEnum(WorkPieceInfo logMiddle, ref QualityNoOkEnum? qualityNoOkEnum) { qualityNoOkEnum = null; if (logMiddle.WorkingProcedureCurrent == "OP60") { return; } else if (logMiddle.WorkingProcedureCurrent == "OP80") { return; } else if (logMiddle.WorkingProcedureCurrent == "OP10") { qualityNoOkEnum = QualityNoOkEnum.OP10厚度超差; return; } else if (logMiddle.WorkingProcedureCurrent == "OP20") { qualityNoOkEnum = QualityNoOkEnum.OP20小头孔直径超差; return; } else if (logMiddle.WorkingProcedureCurrent == "OP30") { return; } else if (logMiddle.WorkingProcedureCurrent == "OP35") { qualityNoOkEnum = QualityNoOkEnum.OP35滚压力超差; return; } else if (logMiddle.WorkingProcedureCurrent == "OP40") { qualityNoOkEnum = QualityNoOkEnum.OP40厚度超差; return; } return; } } }