Basf_TCC7/HJGL/DataBase/版本日志/BSFDB_2019.06.29.sql

144 lines
11 KiB
Transact-SQL
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

 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
/*因为最后字串包括R1K1所以这么处理*/
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