INSERT INTO dbo.Base_UnitType(UnitTypeId, UnitTypeName) VALUES ( '1','建设方') INSERT INTO dbo.Base_UnitType(UnitTypeId, UnitTypeName) VALUES ( '2','总承包商') INSERT INTO dbo.Base_UnitType(UnitTypeId, UnitTypeName) VALUES ( '3','监理') INSERT INTO dbo.Base_UnitType(UnitTypeId, UnitTypeName) VALUES ( '4','检测') INSERT INTO dbo.Base_UnitType(UnitTypeId, UnitTypeName) VALUES ( '5','施工') GO ALTER TABLE dbo.Sys_DataInTemp ADD Value35 nvarchar(100) NULL GO IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Sys_RolePower]') AND name = N'IX_Sys_RolePower_RoleId_ProjectId') DROP INDEX [IX_Sys_RolePower_RoleId_ProjectId] ON [dbo].[Sys_RolePower] WITH ( ONLINE = OFF ) GO CREATE UNIQUE NONCLUSTERED INDEX [IX_Sys_RolePower_RoleId_MenuId] ON [dbo].[Sys_RolePower] ( [RoleId] ASC, [MenuId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO ALTER PROCEDURE [dbo].[SpGetNewCode] @tableName VARCHAR(50),/*表名*/ @columnName VARCHAR(50),/*列名*/ @projectId NVARCHAR(50),/*项目*/ @prefix VARCHAR(50),/*流水号编码前缀*/ @returnVal NVARCHAR(50) OUTPUT AS /*获取一个新的流水号(后五位上增加)*/ DECLARE @sql NVARCHAR(500), @old NVARCHAR(50), @newid VARCHAR(50), @maxId NVARCHAR(50)/*已分配的最大值*/ SELECT @sql=N'SELECT @maxId=MAX('+@columnName+') from '+@tableName+' where ProjectId = ''' + @projectId + ''' and ' + @columnName+' like ' + '''%' + @prefix + '%''' EXEC sp_executesql @sql, N'@maxId nvarchar(50) OUTPUT', @maxId OUTPUT /*因为最后字串包括R1,K1,所以这么处理*/ SET @old=REVERSE(SUBSTRING(REVERSE(@maxId),1,CHARINDEX('-',REVERSE(@maxId))-1)) IF(@old IS NULL) BEGIN SET @newid=@prefix+'00001' END ELSE BEGIN SET @newid = (SELECT MAX(LEFT(@old,5)))+1 SET @newid = @prefix +RIGHT('00000'+@newid,5) END SET @returnVal=@newid GO CREATE PROCEDURE [dbo].[SpGetThreeNumber] @tableName VARCHAR(50),/*表名*/ @columnName VARCHAR(50),/*列名*/ @projectId NVARCHAR(50),/*项目*/ @prefix VARCHAR(50),/*流水号编码前缀*/ @returnVal NVARCHAR(50) OUTPUT AS /*获取三位流水号(后三位上增加)*/ DECLARE @sql NVARCHAR(500), @old NVARCHAR(50), @newid VARCHAR(50), @maxId NVARCHAR(50)/*已分配的最大值*/ SELECT @sql=N'SELECT @maxId=MAX('+@columnName+') from '+@tableName+' where ProjectId = ''' + @projectId + ''' and ' + @columnName+' like ' + '''%' + @prefix + '%''' EXEC sp_executesql @sql, N'@maxId nvarchar(50) OUTPUT', @maxId OUTPUT SET @old=@maxId IF(@old IS NULL) BEGIN SET @newid=@prefix+'001' END ELSE BEGIN SET @newid = (SELECT MAX(RIGHT(@old,3)))+1 SET @newid = @prefix +RIGHT('000'+@newid,3) END SET @returnVal=@newid GO ALTER VIEW [dbo].[View_GenerateTrust] AS -------正常点口生成委托----------- SELECT point.ProjectId,point.InstallationId,pipe.WorkAreaId ,point.UnitId,point.DetectionTypeId, jot.PipelineId,'1' AS PointState,CAST(0 AS BIT) AS IsCheckRepair, NULL AS TrustBatchCode FROM dbo.Batch_PointBatchItem pointItem LEFT JOIN dbo.Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId LEFT JOIN dbo.Pipeline_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId LEFT JOIN dbo.Pipeline_Pipeline pipe ON pipe.PipelineId = jot.PipelineId WHERE pointItem.PointState ='1' AND point.EndDate IS NOT NULL AND pointItem.CutDate IS NULL AND (pointItem.IsBuildTrust IS NULL OR pointItem.IsBuildTrust=0) AND point.IsTrust=0 AND pointItem.IsCheckRepair=0 GROUP BY point.ProjectId,point.InstallationId,pipe.WorkAreaId,point.UnitId,point.DetectionTypeId, jot.PipelineId UNION ALL -------扩透生成委托----------- SELECT point.ProjectId,point.InstallationId,pipe.WorkAreaId ,point.UnitId,point.DetectionTypeId, jot.PipelineId,'2' AS PointState,CAST(0 AS BIT) AS IsCheckRepair, trust.TrustBatchCode FROM dbo.Batch_PointBatchItem pointItem LEFT JOIN dbo.Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId LEFT JOIN dbo.Pipeline_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId LEFT JOIN dbo.Pipeline_Pipeline pipe ON pipe.PipelineId = jot.PipelineId LEFT JOIN dbo.Batch_BatchTrustItem trustItem ON trustItem.PointBatchItemId=pointItem.ToPointBatchItemId LEFT JOIN dbo.Batch_BatchTrust trust ON trust.TrustBatchId = trustItem.TrustBatchId WHERE pointItem.PointState ='2' AND point.EndDate IS NOT NULL AND pointItem.CutDate IS NULL AND (pointItem.IsBuildTrust IS NULL OR pointItem.IsBuildTrust=0) AND point.IsTrust=0 GROUP BY point.ProjectId,point.InstallationId,pipe.WorkAreaId,point.UnitId,point.DetectionTypeId, jot.PipelineId,trust.TrustBatchCode UNION ALL -------返修生成委托----------- SELECT point.ProjectId,point.InstallationId,pipe.WorkAreaId ,point.UnitId,point.DetectionTypeId, jot.PipelineId,'1' AS PointState,CAST(1 AS BIT) AS IsCheckRepair, trust.TrustBatchCode FROM dbo.Batch_PointBatchItem pointItem LEFT JOIN dbo.Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId LEFT JOIN dbo.Pipeline_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId LEFT JOIN dbo.Pipeline_Pipeline pipe ON pipe.PipelineId = jot.PipelineId LEFT JOIN dbo.Batch_BatchTrustItem trustItem ON trustItem.PointBatchItemId=pointItem.PointBatchItemId LEFT JOIN dbo.Batch_BatchTrust trust ON trust.TrustBatchId = trustItem.TrustBatchId WHERE pointItem.PointState ='1' AND pointItem.IsCheckRepair=1 AND point.EndDate IS NOT NULL AND pointItem.CutDate IS NULL AND (pointItem.IsBuildTrust IS NULL OR pointItem.IsBuildTrust=0) AND point.IsTrust=0 GROUP BY point.ProjectId,point.InstallationId,pipe.WorkAreaId,point.UnitId,point.DetectionTypeId, jot.PipelineId,trust.TrustBatchCode GO