ALTER PROC [dbo].[PTS_DeleteOrUpdateWorkRemark] @ID int, @UserName nvarchar(50), @CommondType int, @RemarkScore float, @Remark text AS BEGIN DECLARE @ReportOwn nvarchar(50),@Reviewer nvarchar(50),@TempCount int,@UpLeader1 nvarchar(50),@UpLeader2 nvarchar(50) SET @TempCount=0; SELECT @ReportOwn=UserName FROM PTS_WorkRemark INNER JOIN PTS_WorkReport ON PTS_WorkRemark.ReportID=PTS_WorkReport.ID WHERE PTS_WorkRemark.ID=@ID; SELECT @Reviewer=Reviewer FROM PTS_WorkRemark WHERE ID=@ID; BEGIN IF @Reviewer<>@UserName SELECT 11; --不是自己的点评,不能操作 ELSE IF @ReportOwn=@UserName SELECT 1; --自评不能操作 ELSE BEGIN SELECT @UpLeader1=Name from person where Name in(select superior FROM subgroup WHERE junior=@UserName and treelevel=1) and Coding in (1,2); SELECT @UpLeader2=Name from person where Name in(select superior FROM subgroup WHERE junior=@UpLeader1 and treelevel=1) and Coding in (1,2); SELECT @TempCount=Count(1) FROM PTS_WorkRemark WHERE Reviewer IN(ISNULL(@UpLeader1,'NULL'),ISNULL(@UpLeader2,'NULL')) and ReportID=(SELECT ReportID FROM PTS_WorkRemark WHERE ID=@ID) IF @TempCount>0 BEGIN SELECT 2; ---上级领导已评,不能操作 END ELSE BEGIN IF @CommondType=0 BEGIN DELETE FROM PTS_WorkRemark WHERE ID=@ID IF @@ERROR<>0 SELECT 3; --删除失败 ELSE SELECT 4; --删除成功 END ELSE IF @CommondType=1 BEGIN IF @RemarkScore=-1 SELECT 5; --可以编辑 ELSE BEGIN UPDATE PTS_WorkRemark SET RemarkScore=@RemarkScore,Remark=@Remark WHERE ID=@ID IF @@ERROR<>0 SELECT 6 --编辑失败 ELSE SELECT 7 --编辑成功 END END END END END END