CREATE PROCEDURE [QuickTeam].[usp_VerifyWorkSheetById] @WorkSheetId bigint ,@VersionId int ,@NextVersionCode nvarchar(50) ,@NextOperator nvarchar(50) ,@Percent int ,@Operator nvarchar(50) AS BEGIN declare @ParentEffortStatus nvarchar(10),@PreEffortStatus nvarchar(5)='Y',@NextVersionId int,@Count int,@CurrentVersionId int select @ParentEffortStatus=replace(str(status+1,2,0),' ','0') from [QuickTeam].[WorkSheet] where WorkSheetId=@WorkSheetId select @Count= count(*) from [QuickTeam].[WorkSheetVersion] where NextOperator='CustomerLeader' and WorkSheetId=@WorkSheetId if(@Count=2) begin --update [QuickTeam].[WorkSheet] set Status=@ParentEffortStatus where WorkSheetId=@WorkSheetId update [QuickTeam].[WorkSheetVersion] set VersionStatus=@PreEffortStatus,Operator=@Operator,UpdateTime=getdate() where WorkSheetId=@WorkSheetId and VersionId=@VersionId select @CurrentVersionId=max(VersionId) from [QuickTeam].[WorkSheetVersion] where WorkSheetId=@WorkSheetId and VersionStatus='Y' update [QuickTeam].[WorkSheet] set Status=@ParentEffortStatus,CurrentVersionId=@CurrentVersionId ,UpdateTime=GETDATE(),Operation=N'Verify',OperateUserName=@Operator where WorkSheetId=@WorkSheetId end else begin --插入下一版本 insert into [QuickTeam].[WorkSheetVersion]([VersionCode] ,[VersionStatus] ,[NextOperator] ,[WorkSheetId] ,Operator ,UpdateTime ) select @NextVersionCode,'N',@NextOperator,@WorkSheetId,'',GETDATE() ---更新当前版本 update [QuickTeam].[WorkSheetVersion] set VersionStatus=@PreEffortStatus ,Operator=@Operator,UpdateTime=getdate() where WorkSheetId=@WorkSheetId and VersionId=@VersionId set @NextVersionId=scope_identity() insert into QuickTeam.WorkSheetTask([FeatureId] ,[VersionId] ,[TaskCode] ,[Effort]) select [FeatureId] ,@NextVersionId ,[TaskCode] ,Effort from QuickTeam.WorkSheetTask where VersionId=@VersionId select @CurrentVersionId=max(VersionId) from [QuickTeam].[WorkSheetVersion] where WorkSheetId=@WorkSheetId and VersionStatus='Y' update [QuickTeam].[WorkSheet] set Status=@ParentEffortStatus,CurrentVersionId=@CurrentVersionId ,UpdateTime=GETDATE() where WorkSheetId=@WorkSheetId end select @@ERROR As Result END