DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -1250,6 +1250,7 @@ info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); //*/ var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault(); if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1) {//插入QualityDataInfo表 @@ -1335,6 +1336,8 @@ process.EndTime = DateTimeHelper.GetDateTime(); if (logMiddle.WorkingProcedure.Equals("OP80")) {//OP80的质量数据是后来获取文件搞的 //质检数据,再考虑 另外两种状态 【Editby shaocx,2024-08-27】 QualityStateHelper.SetQualityStateForOP80(logMiddle, ref info, ref process); } else { DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/OP80QualityDataHandler.cs
@@ -154,7 +154,8 @@ } } private void Do_One(bool isAdd_WorkPieceInfo, bool isAdd_WorkPieceProcess, bool isAdd_QualityDataInfo, List<FileInfo> allFiles, DbModel db, WorkPieceInfo info, WorkPieceProcess pieceProcess, QualityDataInfo qualityData, private void Do_One(bool isAdd_WorkPieceInfo, bool isAdd_WorkPieceProcess, bool isAdd_QualityDataInfo, List<FileInfo> allFiles, DbModel db, WorkPieceInfo info, WorkPieceProcess pieceProcess, QualityDataInfo qualityData, List<FileInfo> findFiles) { try @@ -326,19 +327,28 @@ //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表 info.OP80NewCode = logMiddle.OP80NewCode;//更新成品吗 //如果OP80下线,已经更改了质检状态,并且质检状态等于不合格,则这里就不要继续更改质检状态了 【Editby shaocx,2024-08-28】 bool isNeedUpdateQualityState = true; var ooDateTime = Convert.ToDateTime("0001-01-01"); if (pieceProcess.EndTime != ooDateTime && pieceProcess.QualityState == (int)QualityState.NG) { isNeedUpdateQualityState = false; } if (isNeedUpdateQualityState) { info.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG); logMiddle.QualityState = info.QualityState; //根据质量数据判断是否合格/不合格 【Editby shaocx,2024-06-25】 WorkPieceInfoManager.SetLogMiddleForQuality(ref logMiddle); //赋值不合格原因 //TODO:需要配置OP80质量不合格的原因是啥?? WorkPieceInfoManager.SetQualityNoOk_WorkPieceInfo(logMiddle, ref info); info.QualityStateUpdateUser = logMiddle.UpdatedUserName; info.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime; info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); } //var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == wplog.WorkPieceID).FirstOrDefault(); //if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1) //{//插入QualityDataInfo表 @@ -374,13 +384,15 @@ pieceProcess.GetQcDataFlag_Remark = "找到文件"; pieceProcess.GetQcDataFlag = 1; if (isNeedUpdateQualityState) { //不再默认赋值为合格 【Editby shaocx,2024-08-16】 //pieceProcess.QualityState = info.QualityState.HasValue ? info.QualityState.Value : (int)QualityState.OK;//默认合格,已处理 pieceProcess.QualityState = WorkPieceInfoManager.GetQualityStateValue(info.QualityState); //赋值不合格原因 //TODO:需要配置OP80质量不合格的原因是啥?? WorkPieceInfoManager.SetQualityNoOk_WorkPieceProcess(logMiddle, ref pieceProcess); } pieceProcess.EndTime = file.LastWriteTime;//下线时间改为 文件最后修改时间 【Editby shaocx,2024-06-17】 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/QualityStateHelper.cs
@@ -15,6 +15,45 @@ public class QualityStateHelper { /// <summary> /// OP80专门获取某些点位,配置质量状态 /// </summary> /// <param name="logMiddle"></param> /// <param name="info"></param> /// <param name="pro"></param> 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(); } } /// <summary> /// NOOK推出时,更新质量状态 【Editby shaocx,2024-08-23】 /// </summary> /// <param name="value"></param> DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Model/Enums.cs
@@ -114,6 +114,10 @@ OP80大头端重量超差 = 27, OP80小头端重量超差 = 28, OP80打标不合格 = 30, OP80打标识别不合格 = 31, } /// <summary>