|
@@ -0,0 +1,154 @@
|
|
|
+USE [MES]
|
|
|
+GO
|
|
|
+
|
|
|
+/****** Object: StoredProcedure [dbo].[AMResultTRProc] Script Date: 12/14/2021 16:10:17 ******/
|
|
|
+IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[AMResultTRProc]') AND type in (N'P', N'PC'))
|
|
|
+DROP PROCEDURE [dbo].[AMResultTRProc]
|
|
|
+GO
|
|
|
+
|
|
|
+USE [MES]
|
|
|
+GO
|
|
|
+
|
|
|
+/****** Object: StoredProcedure [dbo].[AMResultTRProc] Script Date: 12/14/2021 16:10:17 ******/
|
|
|
+SET ANSI_NULLS ON
|
|
|
+GO
|
|
|
+
|
|
|
+SET QUOTED_IDENTIFIER ON
|
|
|
+GO
|
|
|
+
|
|
|
+CREATE PROCEDURE [dbo].[AMResultTRProc](
|
|
|
+ @Line varchar(30), --线体
|
|
|
+ @Station varchar(30), --工站
|
|
|
+ @TestDate DATE, --日期
|
|
|
+ @TestHour INT, --整点
|
|
|
+ @TestTime DATETIME, --时间
|
|
|
+ @SN varchar(30), --SN
|
|
|
+ @DSN varchar(30), --DSN
|
|
|
+ @ODF varchar(30), --GetMaInfo.ODF
|
|
|
+ @Model varchar(30), --GetMaInfo.Model
|
|
|
+ @Dimension varchar(30), --GetMaInfo.SIZE
|
|
|
+ @LastSN INT, --=0,表示上一次抄写的SN与当前SN不相同,=1表示相同
|
|
|
+ @Result INT, --=0,表示抄写失败,=1表示抄写成功
|
|
|
+ @ErrMsg varchar(300), --出错描述;
|
|
|
+ @Remark varchar(100) --备注;
|
|
|
+ )
|
|
|
+AS BEGIN
|
|
|
+ --注意:试产NTF ResultType只有三种类型:OncePass、NTF、RealFail,量产也将同步些规则。
|
|
|
+ --而且测试次数最多只有3次.
|
|
|
+ DECLARE @Count INT
|
|
|
+ DECLARE @RedoCount INT
|
|
|
+ DECLARE @Test01 varchar(30)
|
|
|
+ DECLARE @Test02 varchar(30)
|
|
|
+ DECLARE @Test03 varchar(30)
|
|
|
+ DECLARE @FinalTest varchar(30)
|
|
|
+ DECLARE @ResultType varchar(30)
|
|
|
+ -- 查询是否有记录;
|
|
|
+ SELECT @Count=COUNT(1) FROM AMResult_TR WHERE SN=@SN and Station=@Station
|
|
|
+ --根据抄写结果:新增记录时的默认设置;
|
|
|
+ IF @Result = 1 --抄写成功;
|
|
|
+ BEGIN
|
|
|
+ SET @Test01='PASS'
|
|
|
+ SET @Test02='NULL'
|
|
|
+ SET @Test03='NULL'
|
|
|
+ SET @FinalTest='PASS'
|
|
|
+ SET @ResultType='OncePass'
|
|
|
+ END
|
|
|
+ ELSE --抄写失败;
|
|
|
+ BEGIN
|
|
|
+ SET @Test01='FAIL'
|
|
|
+ SET @Test02='NULL'
|
|
|
+ SET @Test03='NULL'
|
|
|
+ SET @FinalTest='FAIL'
|
|
|
+ SET @ResultType='RealFail'
|
|
|
+ END
|
|
|
+
|
|
|
+ --无记录则添加,有则更新处理;
|
|
|
+ IF @Count = 0
|
|
|
+ BEGIN
|
|
|
+ PRINT '无记录,插入新记录'
|
|
|
+ --插入新记录;
|
|
|
+ INSERT INTO [AMResult_TR]([TestDate], [TestHour], [Line], [Station], [Model], [Dimension], [TestTime], [ODF], [SN],
|
|
|
+ [FinalTest], [ResultType], [ErrorMsg], [ReDo], [Remark], [Test01], [Test02], [Test03], [DSN])
|
|
|
+ VALUES (@TestDate, @TestHour, @Line, @Station, @Model, @Dimension, @TestTime, @ODF, @SN, @FinalTest, @ResultType, @ErrMsg, '0', @Remark, @Test01, @Test02, @Test03, @DSN);
|
|
|
+ END
|
|
|
+ ELSE
|
|
|
+ BEGIN
|
|
|
+ IF @LastSN = 0 --非连续抄写,新增记录;
|
|
|
+ BEGIN
|
|
|
+ PRINT '有记录,非连续抄写,新增记录'
|
|
|
+ --查询最大ReDo值;
|
|
|
+ SELECT @RedoCount=MAX(ReDo) FROM AMResult_TR WHERE SN=@SN and Station=@Station
|
|
|
+ --更新当前Redo=0的记录为Redo=MAX(Redo)+1;
|
|
|
+ UPDATE AMResult_TR SET ReDo=convert(varchar(30),@RedoCount+1) WHERE SN=@SN and Station=@Station and ReDo='0'
|
|
|
+ --然后新增记录;
|
|
|
+ INSERT INTO [AMResult_TR]([TestDate], [TestHour], [Line], [Station], [Model], [Dimension], [TestTime], [ODF], [SN],
|
|
|
+ [FinalTest], [ResultType], [ErrorMsg], [ReDo], [Remark], [Test01], [Test02], [Test03], [DSN])
|
|
|
+ VALUES (@TestDate, @TestHour, @Line, @Station, @Model, @Dimension, @TestTime, @ODF, @SN, @FinalTest, @ResultType, @ErrMsg, '0', @Remark, @Test01, @Test02, @Test03, @DSN);
|
|
|
+ END
|
|
|
+ ELSE --连续抄写,更新记录;
|
|
|
+ BEGIN
|
|
|
+ PRINT '有记录,连续抄写,更新记录'
|
|
|
+ DECLARE @ReDo0Test01 varchar(30)
|
|
|
+ DECLARE @ReDo0Test02 varchar(30)
|
|
|
+ DECLARE @ReDo0Test03 varchar(30)
|
|
|
+ DECLARE @ReDo0FinalTest varchar(30)
|
|
|
+ DECLARE @ReDo0ResultType varchar(30)
|
|
|
+ --查询Redo=0的状态;
|
|
|
+ SELECT @ReDo0Test01=lower(Test01), @ReDo0Test02=lower(isnull(Test02,'null')), @ReDo0Test03=lower(isnull(Test03,'null')), @ReDo0FinalTest=lower(FinalTest), @ReDo0ResultType=lower(ResultType) FROM AMResult_TR WHERE SN=@SN and Station=@Station and ReDo='0'
|
|
|
+
|
|
|
+ --test02=null & test03=null
|
|
|
+ --test01=pass <&resulttype=oncepass>
|
|
|
+ --result=pass
|
|
|
+ --test02=pass;test03=null;finaltest=pass;resulttype=oncepass
|
|
|
+ --result=fail
|
|
|
+ --test02=fail;test03=null;finaltest=fail;resulttype=realfail
|
|
|
+ --test01=fail <&resulttype=realfail>
|
|
|
+ --result=pass
|
|
|
+ --test02=pass;test03=null;finaltest=fail;resulttype=realfail
|
|
|
+ --result=fail
|
|
|
+ --test02=fail;test03=null;finaltest=fail;resulttype=realfail
|
|
|
+
|
|
|
+ --test02!=null & test03=null
|
|
|
+ --test01=pass&test02=pass <&resulttype=oncepass>
|
|
|
+ --result=pass
|
|
|
+ --test03=pass;finaltest=pass;resulttype=oncepass
|
|
|
+ --result=fail
|
|
|
+ --test03=fail;finaltest=fail;resulttype=realfail
|
|
|
+ --test01=pass&test02=fail <&resulttype=realfail>
|
|
|
+ --result=pass
|
|
|
+ --test03=pass;finaltest=pass;resulttype=ntf
|
|
|
+ --result=fail
|
|
|
+ --test03=fail;finaltest=fail;resulttype=realfail
|
|
|
+ --test01=fail&test02=pass <&resulttype=realfail>
|
|
|
+ --result=pass
|
|
|
+ --test03=pass;finaltest=pass;resulttype=ntf
|
|
|
+ --result=fail
|
|
|
+ --test03=fail;finaltest=fail;resulttype=realfail
|
|
|
+ --test01=fail&test02=fail <&resulttype=realfail>
|
|
|
+ --连续2次fail这种情况产生,测试被锁定,数据也锁定,需要后台解锁;
|
|
|
+
|
|
|
+ --test03!=null
|
|
|
+ --test01=pass&test02=fail&test03=pass&finaltest=pass&resulttype=ntf
|
|
|
+ --result=fail
|
|
|
+ --finaltest=fail
|
|
|
+ --resulttype=realfial
|
|
|
+ --result=pass
|
|
|
+ --忽略,不变更状态;
|
|
|
+ --其他情况忽略,不变更任何状态.
|
|
|
+
|
|
|
+
|
|
|
+ PRINT '当前抄写(0=失败,1=成功):'+convert(varchar(30),@Result)+' 是否重流(0=重流,1=非重流):'+convert(varchar(30),@LastSN)
|
|
|
+ PRINT '现在状态(Test01\Test02\Test03\FinalTest\ResultType):'+@Test01+'\'+@Test02+'\'+@Test03+'\'+@FinalTest+'\'+@ResultType
|
|
|
+ PRINT '之前状态(Test01\Test02\Test03\FinalTest\ResultType):'+@ReDo0Test01+'\'+@ReDo0Test02+'\'+@ReDo0Test03+'\'+@ReDo0FinalTest+'\'+@ReDo0ResultType
|
|
|
+ --更新Redo=0的状态;
|
|
|
+ UPDATE AMResult_TR SET Test01=@Test01, Test02=@Test02, FinalTest=@FinalTest, ResultType=@ResultType, ErrorMsg=@ErrMsg, Remark=@Remark WHERE SN=@SN and Station=@Station and ReDo='0'
|
|
|
+ END
|
|
|
+ END
|
|
|
+ --默认返回;
|
|
|
+END
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+GO
|
|
|
+
|
|
|
+
|