2
schangxiang@126.com
2024-07-03 e8cbb2cb2bda1fb0bb60c7a8f29383fcc73eb76c
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -625,21 +625,57 @@
                                    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 = 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 = 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 = 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;
@@ -2198,11 +2234,29 @@
            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")
@@ -2245,9 +2299,92 @@
                }
                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.OK)
                if (logMiddle.QualityState == (int)QualityState.NG)
                {
                    qualityNoOkEnum = QualityNoOkEnum.OP10厚度超差;
                }
@@ -2255,7 +2392,7 @@
            }
            else if (logMiddle.WorkingProcedure == "OP20")
            {
                if (logMiddle.QualityState != (int)QualityState.OK)
                if (logMiddle.QualityState == (int)QualityState.NG)
                {
                    qualityNoOkEnum = QualityNoOkEnum.OP20小头孔直径超差;
                }
@@ -2263,7 +2400,7 @@
            }
            else if (logMiddle.WorkingProcedure == "OP35")
            {
                if (logMiddle.QualityState != (int)QualityState.OK)
                if (logMiddle.QualityState == (int)QualityState.NG)
                {
                    qualityNoOkEnum = QualityNoOkEnum.OP35滚压力不合格;
                }
@@ -2271,7 +2408,7 @@
            }
            else if (logMiddle.WorkingProcedure == "OP40")
            {
                if (logMiddle.QualityState != (int)QualityState.OK)
                if (logMiddle.QualityState == (int)QualityState.NG)
                {
                    qualityNoOkEnum = QualityNoOkEnum.OP40厚度超差;
                }