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;
}
}
}