DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -2197,6 +2197,90 @@ loginfo.WorkPieceIDTo7 = loginfo.WorkPieceID.Substring(20, 2); return loginfo; } /// <summary> /// 计算OP 质量数据是否合格 /// </summary> public static QualityState CalcQualityStateForOP(WorkPieceLogMiddle logMiddle, ref QualityNoOkEnum? qualityNoOkEnum) { QualityState qualityState = QualityState.Suspected; if (logMiddle.WorkingProcedure == "OP60") { decimal _QualityOP60To1 = SystemHelper.GetDecimal(logMiddle.QualityOP60To1); decimal _QualityOP60To2 = SystemHelper.GetDecimal(logMiddle.QualityOP60To2); var isPass_QualityOP60To1 = false; var isPass_QualityOP60To2 = false; if (_QualityOP60To1 >= (decimal)53.018 && _QualityOP60To1 <= (decimal)53.030) { isPass_QualityOP60To1 = true; } else { qualityNoOkEnum = QualityNoOkEnum.OP60大头孔直径超差; } if (_QualityOP60To2 >= (decimal)22.005 && _QualityOP60To2 <= (decimal)22.011) { isPass_QualityOP60To2 = true; } else { qualityNoOkEnum = QualityNoOkEnum.OP60小头孔直径超差; } if (isPass_QualityOP60To1 && isPass_QualityOP60To2) { qualityState = QualityState.OK; } else { qualityState = QualityState.NG; } if (_QualityOP60To1 == 0 || _QualityOP60To2 == 0) { qualityState = QualityState.Suspected; return qualityState; } return qualityState; } else if (logMiddle.WorkingProcedure == "OP10") { if (logMiddle.QualityState != (int)QualityState.OK) { qualityNoOkEnum = QualityNoOkEnum.OP10厚度超差; } return qualityState; } else if (logMiddle.WorkingProcedure == "OP20") { if (logMiddle.QualityState != (int)QualityState.OK) { qualityNoOkEnum = QualityNoOkEnum.OP20小头孔直径超差; } return qualityState; } else if (logMiddle.WorkingProcedure == "OP35") { if (logMiddle.QualityState != (int)QualityState.OK) { qualityNoOkEnum = QualityNoOkEnum.OP35滚压力不合格; } return qualityState; } else if (logMiddle.WorkingProcedure == "OP40") { if (logMiddle.QualityState != (int)QualityState.OK) { qualityNoOkEnum = QualityNoOkEnum.OP40厚度超差; } return qualityState; } return qualityState; } #endregion } } DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_02.cs
@@ -610,7 +610,7 @@ //根据质量数据判断是否合格/不合格 【Editby shaocx,2024-06-25】 QualityNoOkEnum? qualityNoOkEnum = null; QualityState qualityState = CalcQualityStateForOP(logMiddle, ref qualityNoOkEnum); QualityState qualityState = WorkPieceInfoManager.CalcQualityStateForOP(logMiddle, ref qualityNoOkEnum); logMiddle.QualityState = (int)qualityState; if (qualityNoOkEnum != null) { @@ -873,87 +873,6 @@ } /// <summary> /// 计算OP 质量数据是否合格 /// </summary> public QualityState CalcQualityStateForOP(WorkPieceLogMiddle logMiddle, ref QualityNoOkEnum? qualityNoOkEnum) { QualityState qualityState = QualityState.Suspected; if (logMiddle.WorkingProcedure == "OP60") { decimal _QualityOP60To1 = SystemHelper.GetDecimal(logMiddle.QualityOP60To1); decimal _QualityOP60To2 = SystemHelper.GetDecimal(logMiddle.QualityOP60To2); var isPass_QualityOP60To1 = false; var isPass_QualityOP60To2 = false; if (_QualityOP60To1 >= (decimal)53.018 && _QualityOP60To1 <= (decimal)53.030) { isPass_QualityOP60To1 = true; } else { qualityNoOkEnum = QualityNoOkEnum.OP60大头孔直径超差; } if (_QualityOP60To2 >= (decimal)22.005 && _QualityOP60To2 <= (decimal)22.011) { isPass_QualityOP60To2 = true; } else { qualityNoOkEnum = QualityNoOkEnum.OP60小头孔直径超差; } if (isPass_QualityOP60To1 && isPass_QualityOP60To2) { qualityState = QualityState.OK; } else { qualityState = QualityState.NG; } if (_QualityOP60To1 == 0 || _QualityOP60To2 == 0) { qualityState = QualityState.Suspected; return qualityState; } return qualityState; } else if (logMiddle.WorkingProcedure == "OP10") { if (logMiddle.QualityState != (int)QualityState.OK) { qualityNoOkEnum = QualityNoOkEnum.OP10厚度超差; } return qualityState; } else if (logMiddle.WorkingProcedure == "OP20") { if (logMiddle.QualityState != (int)QualityState.OK) { qualityNoOkEnum = QualityNoOkEnum.OP20小头孔直径超差; } return qualityState; } else if (logMiddle.WorkingProcedure == "OP35") { if (logMiddle.QualityState != (int)QualityState.OK) { qualityNoOkEnum = QualityNoOkEnum.OP35滚压力不合格; } return qualityState; } else if (logMiddle.WorkingProcedure == "OP40") { if (logMiddle.QualityState != (int)QualityState.OK) { qualityNoOkEnum = QualityNoOkEnum.OP40厚度超差; } return qualityState; } return qualityState; } } DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Test/UnitTest1.cs
@@ -1,4 +1,5 @@ using iWare_SCADA_BusinessLogical.BLL; using iWare_SCADA_BusinessLogical; using iWare_SCADA_BusinessLogical.BLL; using iWare_SCADA_BusinessLogical.Utils; using iWare_SCADA_Model; using Microsoft.VisualStudio.TestTools.UnitTesting; @@ -65,5 +66,38 @@ string cc = ""; } [TestMethod] public void pp() { Yitter.IdGenerator.IdGeneratorOptions options = new Yitter.IdGenerator.IdGeneratorOptions(1); Yitter.IdGenerator.YitIdHelper.SetIdGenerator(options); WorkPieceLogMiddle logMiddle = new WorkPieceLogMiddle( ) { WorkingProcedure = "OP30", WorkPieceID = "DZ045L2406240103521TAS", UpdatedTime = DateTime.Now, MonitoringPoint = "", QualityStateStr="OK" } ; string WorkingProcedure = logMiddle.WorkingProcedure; //根据质量数据判断是否合格/不合格 【Editby shaocx,2024-06-25】 QualityNoOkEnum? qualityNoOkEnum = null; QualityState qualityState = WorkPieceInfoManager.CalcQualityStateForOP(logMiddle, ref qualityNoOkEnum); logMiddle.QualityState = (int)qualityState; if (qualityNoOkEnum != null) { logMiddle.QualityNoOk = (int)qualityNoOkEnum; logMiddle.QualityNoOkReason = qualityNoOkEnum.ToString(); } //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表 WorkPieceInfoManager.QualityInfoComplete(logMiddle, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure)); string cc = ""; } } } DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_Test/iWare_SCADA_Test.csproj
@@ -39,6 +39,13 @@ <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath> </Reference> <Reference Include="EntityFramework.SqlServer"> <HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath> </Reference> <Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <HintPath>..\packages\MSTest.TestFramework.2.2.7\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath> </Reference> @@ -47,6 +54,10 @@ </Reference> <Reference Include="System" /> <Reference Include="System.Core" /> <Reference Include="Yitter.IdGenerator.Net45, Version=1.0.0.4, Culture=neutral, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\packages\Yitter.IdGenerator.Net45.1.0.0\lib\net452\Yitter.IdGenerator.Net45.dll</HintPath> </Reference> </ItemGroup> <ItemGroup> <Compile Include="UnitTest1.cs" />