| | |
| | | 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; |
| | | |
| | | if (process.WorkingProcedureCurrent == WorkingProcedureForHMI.OP70.ToString()) |
| | | { //特殊处理OP70,因为OP70没有测量,默认合格 [Editby shaocx,2024-07-03] |
| | | process.QualityState = (int)QualityState.OK; |
| | | } |
| | | |
| | | process.Id = Yitter.IdGenerator.YitIdHelper.NextId(); |
| | | process.CreatedUserName = loginfo.MonitoringPoint; |
| | | process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); |
| | |
| | | return loginfo; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置中间变量的质量数据 |
| | | /// </summary> |
| | | /// <param name="logMiddle"></param> |
| | | public static void SetLogMiddleForQuality(ref WorkPieceLogMiddle logMiddle) |
| | | { |
| | | |
| | | //根据质量数据判断是否合格/不合格 【Editby 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") |
| | |
| | | } |
| | | return qualityState; |
| | | } |
| | | if (logMiddle.WorkingProcedure == "OP80") |
| | | { |
| | | 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.NG) |
| | | { |
| | | qualityNoOkEnum = QualityNoOkEnum.OP10厚度超差; |
| | | } |
| | | else |
| | | { |
| | | qualityState = QualityState.OK; |
| | | } |
| | | return qualityState; |
| | | } |
| | | else if (logMiddle.WorkingProcedure == "OP20") |
| | | { |
| | | {//合格/不合格 是根据PLC判断的 |
| | | if (logMiddle.QualityState == (int)QualityState.NG) |
| | | { |
| | | qualityNoOkEnum = QualityNoOkEnum.OP20小头孔直径超差; |
| | | } |
| | | else |
| | | { |
| | | qualityState = QualityState.OK; |
| | | } |
| | | return qualityState; |
| | | } |
| | |
| | | { |
| | | qualityNoOkEnum = QualityNoOkEnum.OP35滚压力不合格; |
| | | } |
| | | else |
| | | { |
| | | qualityState = QualityState.OK; |
| | | } |
| | | return qualityState; |
| | | } |
| | | else if (logMiddle.WorkingProcedure == "OP40") |
| | |
| | | { |
| | | qualityNoOkEnum = QualityNoOkEnum.OP40厚度超差; |
| | | } |
| | | else |
| | | { |
| | | qualityState = QualityState.OK; |
| | | } |
| | | return qualityState; |
| | | } |
| | | return qualityState; |