Basf_FCL/DataBase/版本日志/FCLDB_2024.03.11.sql

834 lines
45 KiB
MySQL
Raw Normal View History

2024-05-08 10:17:02 +08:00
INSERT INTO dbo.Sys_Menu VALUES('D0B76B55-E322-40BE-A4FD-F327F5435177','绩效报告','Performance Report','Evaluation/PerformanceReport.aspx',40,'9CC692E1-B425-4FFD-B708-FFF59E384B19')
GO
INSERT INTO Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,ButtonEnName,SortIndex)
VALUES('76A8E960-7F32-4DF7-84E0-B234B61B2DF1','D0B76B55-E322-40BE-A4FD-F327F5435177','导出','Export',5)
GO
ALTER TABLE dbo.FC_ContractManagement ADD OccurDate DATETIME NULL
GO
ALTER TABLE dbo.FC_ContractManagement ADD BycDept NVARCHAR(50) NULL
GO
ALTER TABLE dbo.EMC_Punishment ADD ViolationRelatedSes NVARCHAR(50)
GO
CREATE TABLE [dbo].[SyncDataUserLogs](
[id] [int] IDENTITY(1,1) NOT NULL,
[batchNo] [nvarchar](50) NOT NULL,
[dataType] [int] NOT NULL,
[depatId] [nvarchar](50) NULL,
[userId] [nvarchar](50) NULL,
[createdTime] [datetime] NULL,
[IsSuccess] [bit] NULL,
[Remark] [nvarchar](max) NULL,
CONSTRAINT [PK__SyncData__3213E83F85A6E9AD] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE PROCEDURE [dbo].[SpGetNewCode3]
@tableName VARCHAR(50),/*表名*/
@columnName VARCHAR(50),/*列名*/
@prefix VARCHAR(50),/*流水号编码前缀*/
@returnVal NVARCHAR(100) OUTPUT
AS
/*获取一个新的流水号(后三位上增加)*/
DECLARE
@sql NVARCHAR(500),
@old NVARCHAR(50),
@newid VARCHAR(50),
@prefix2 NVARCHAR(100),
@maxId NVARCHAR(50)/*已分配的最大值*/
SET @prefix2= REPLACE(@prefix, @columnName, '')
SELECT @sql=N'SELECT @maxId=MAX('+@columnName+') from '+@tableName+' where ' + @columnName + ' like ' + '''' + @prefix2 + '%'''
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_EMC_Punishment]
AS
/*********扣款视图**********/
SELECT punish.PunishmentId,punish.PunishDate,punish.FO_NO,punish.SES_No,punish.Location,punish.Description,punish.Company, punish.Individual,
(ISNULL(punish.Company,0)+ISNULL(punish.Individual,0)) AS Backcharge, punish.CompletionDate,punish.PunishDate AS PunishTime,
(CASE WHEN punish.ViolationDegree='1' THEN '一般违章' WHEN punish.ViolationDegree='2' THEN '严重违章' WHEN punish.ViolationDegree='3' THEN '零容忍违章' END) AS ViolationDegree,
(CASE WHEN con.Contractor IS NULL THEN con.ContractorCN WHEN con.ContractorCN IS NULL THEN con.Contractor ELSE con.Contractor+con.ContractorCN END)AS Contractor,
datas.Contractor AS ContractorId,dis.Discipline AS DisciplineEn,dis.DisciplineCN,con.Contractor AS ContractorEn,con.ContractorCN,
(CASE WHEN dis.Discipline IS NULL THEN dis.DisciplineCN WHEN dis.DisciplineCN IS NULL THEN dis.Discipline ELSE dis.Discipline+dis.DisciplineCN END) AS Discipline,
datas.Contract_Admin AS Contract_AdminId, u.UserName AS Contract_Admin, u2.UserName AS Main_Coordinator,mcdep.DepartName AS MCDept, u3.UserName AS User_Representative, bycDep.DepartName AS BYCRU,
u4.UserName AS Violation_Inspector_Name,viDep.DepartName AS InspectionDep,punish.BYC_RU,punish.Violation_Inspector,punish.ViolationRelatedSes,punish.Flag
FROM dbo.EMC_Punishment punish
LEFT JOIN dbo.FC_SESRelatedData datas ON datas.FO_NO = punish.FO_NO
LEFT JOIN dbo.Base_Contractor AS con ON con.ContractorId = datas.Contractor
LEFT JOIN dbo.Base_Discipline AS dis ON dis.DisciplineId = datas.DisciplineId
LEFT JOIN dbo.Sys_User AS u ON u.UserId = datas.Contract_Admin
LEFT JOIN dbo.Sys_User AS u2 ON u2.UserId = datas.Main_Coordinator
LEFT JOIN dbo.Sys_User AS u3 ON u3.UserId=datas.User_Representative
LEFT JOIN dbo.Base_Depart mcdep ON mcdep.DepartId = u2.DepartId
LEFT JOIN dbo.Base_Depart bycDep ON bycdep.DepartId=punish.BYC_RU
LEFT JOIN dbo.Sys_User AS u4 ON u4.UserId=punish.Violation_Inspector
LEFT JOIN dbo.Base_Depart viDep ON viDep.DepartId=u4.DepartId
GO
CREATE VIEW [dbo].[View_FC_ContractManagement]
AS
SELECT cm.OccurDate,fc.FO_NO,dis.Discipline AS DisciplineEn,dis.DisciplineCN,con.Contractor AS ContractorEn,con.ContractorCN,
(CASE WHEN con.Contractor IS NULL THEN con.ContractorCN WHEN con.ContractorCN IS NULL THEN con.Contractor ELSE con.Contractor+con.ContractorCN END)AS Contractor,
(CASE WHEN dis.Discipline IS NULL THEN dis.DisciplineCN WHEN dis.DisciplineCN IS NULL THEN dis.Discipline ELSE dis.Discipline+dis.DisciplineCN END) AS Discipline,
cm.Remark,ftype.FileType,u.UserName AS Contract_Admin, u2.UserName AS Main_Coordinator,mcdep.DepartName AS MCDept,
u3.UserName AS User_Representative, bycDep.DepartCode AS BycDept
FROM dbo.FC_ContractManagement cm
LEFT JOIN dbo.FC_SESRelatedData fc ON fc.ID = cm.FC_ID
LEFT JOIN dbo.Base_Discipline AS dis ON dis.DisciplineId = fc.DisciplineId
LEFT JOIN dbo.Base_Contractor AS con ON con.ContractorId = fc.Contractor
LEFT JOIN dbo.Base_FileType ftype ON ftype.FileTypeId = cm.FileTypeId
LEFT JOIN dbo.Sys_User AS u ON u.UserId = fc.Contract_Admin
LEFT JOIN dbo.Sys_User AS u2 ON u2.UserId = fc.Main_Coordinator
LEFT JOIN dbo.Sys_User AS u3 ON u3.UserId=fc.User_Representative
LEFT JOIN dbo.Base_Depart mcdep ON mcdep.DepartId = u2.DepartId
LEFT JOIN dbo.Base_Depart bycDep ON bycDep.DepartId=cm.BycDept
GO
CREATE VIEW [dbo].[View_FC_Contractor]
AS
SELECT (CASE WHEN con.Contractor IS NULL THEN con.ContractorCN WHEN con.ContractorCN IS NULL THEN con.Contractor ELSE con.Contractor+con.ContractorCN END)AS Contractor,
fc.FO_NO,fc.FC_Status,fc.Expire_Date
FROM dbo.FC_SESRelatedData fc
LEFT JOIN dbo.Base_Contractor AS con ON con.ContractorId = fc.Contractor
GO
ALTER PROCEDURE [dbo].[FN_OverviewReport]
@StartTime DATETIME,
@EndTime DATETIME
AS
BEGIN
SELECT
tab.FO_NO,tab.Work_Description,tab.Contractor,tab.Main_Coordinator,tab.UserNum,tab.EvaluateNum,
--Score1
tab.DepYpScore1,tab.DepZpScore1,
--Score2
tab.DepYpScore2,tab.DepZpScore2,
--Score3
tab.DepYpScore3,tab.DepZpScore3,
--Score4
tab.DepYpScore4,tab.DepZpScore4,
--Score5
tab.DepYpScore5,tab.DepZpScore5,
--Score6
tab.DepYpScore6,tab.DepZpScore6,
--CONVERT(DECIMAL(9,1),
--(ISNULL(tab.AvgEvaScore1,0)+
--ISNULL(tab.AvgEvaScore2,0)+
--ISNULL(tab.AvgEvaScore3,0)+
--ISNULL(tab.AvgEvaScore4,0)+
--ISNULL(tab.AvgEvaScore5,0)+
--ISNULL(tab.AvgEvaScore6,0)+
--ISNULL(tab.CTSSAvgScore,0)+
--ISNULL(tab.CTSCAvgScore,0) +
--ISNULL(tab.MainCoordinatorAvgScore,0) +
--ISNULL(tab.UserRepresentativeAvgScore,0) +
--ISNULL(tab.CTSTAvgScore,0) +
--ISNULL(tab.CTEDAvgScore,0)+
--ISNULL(tab.TimelyAvgSocre,0)+
--ISNULL(tab.HonestyAvgScore,0)))
--AS Total,
--60%40%
CONVERT(DECIMAL(9,1),((CASE WHEN tab.EvaluateNum>0 THEN (ISNULL(tab.AvgEvaScore1,0)+
ISNULL(tab.AvgEvaScore2,0)+
ISNULL(tab.AvgEvaScore3,0)+
ISNULL(tab.AvgEvaScore4,0)+
ISNULL(tab.AvgEvaScore5,0)+
ISNULL(tab.AvgEvaScore6,0))*60/60 ELSE 0 END)+
(CASE WHEN ((CASE WHEN tab.CTSSAvgScore>=0 THEN 5 ELSE 0 END)+(CASE WHEN tab.CTSCAvgScore>=0 THEN 5 ELSE 0 END)+
(CASE WHEN tab.MainCoordinatorAvgScore>=0 THEN 5 ELSE 0 END)+(CASE WHEN tab.UserRepresentativeAvgScore>=0 THEN 5 ELSE 0 END)+
(CASE WHEN tab.CTSTAvgScore>=0 THEN 5 ELSE 0 END)+(CASE WHEN tab.CTEDAvgScore>=0 THEN 5 ELSE 0 END)+
(CASE WHEN tab.TimelyAvgSocre IS NOT NULL THEN 5 ELSE 0 END)+
(CASE WHEN tab.HonestyAvgScore IS NOT NULL THEN 5 ELSE 0 END))>0 THEN
((ISNULL(tab.CTSSAvgScore,0)+ ISNULL(tab.CTSCAvgScore,0)+ISNULL(tab.MainCoordinatorAvgScore,0)+
ISNULL(tab.UserRepresentativeAvgScore,0)+ISNULL(tab.CTSTAvgScore,0)+ISNULL(tab.CTEDAvgScore,0)+
ISNULL(tab.TimelyAvgSocre,0)+ISNULL(tab.HonestyAvgScore,0))*40) /
((CASE WHEN tab.CTSSAvgScore>=0 THEN 5 ELSE 0 END)+(CASE WHEN tab.CTSCAvgScore>=0 THEN 5 ELSE 0 END)+
(CASE WHEN tab.MainCoordinatorAvgScore>=0 THEN 5 ELSE 0 END)+(CASE WHEN tab.UserRepresentativeAvgScore>=0 THEN 5 ELSE 0 END)+
(CASE WHEN tab.CTSTAvgScore>=0 THEN 5 ELSE 0 END)+(CASE WHEN tab.CTEDAvgScore>=0 THEN 5 ELSE 0 END)+
(CASE WHEN tab.TimelyAvgSocre IS NOT NULL THEN 5 ELSE 0 END)+
(CASE WHEN tab.HonestyAvgScore IS NOT NULL THEN 5 ELSE 0 END)) ELSE 0 END)
)) AS Total,
(CASE WHEN (CONVERT(DECIMAL(18,2),(tab.EvaluateNum*6)+DepYpScore1+DepYpScore2+DepYpScore3+DepYpScore4+DepYpScore5+DepYpScore6)/
CONVERT(DECIMAL(18,2),(tab.UserNum*6)+DepZpScore1+DepZpScore2+DepZpScore3+DepZpScore4+DepZpScore5+DepZpScore6
))>1 THEN 100.00
ELSE CONVERT(DECIMAL(18,2),(CONVERT(DECIMAL(18,2),(tab.EvaluateNum*6)+DepYpScore1+DepYpScore2+DepYpScore3+DepYpScore4+DepYpScore5+DepYpScore6)/
CONVERT(DECIMAL(18,2),(tab.UserNum*6)+DepZpScore1+DepZpScore2+DepZpScore3+DepZpScore4+DepZpScore5+DepZpScore6
))*100) END) AS Participation_Rate,--
tab.AvgEvaScore1,--()
tab.TotalAvgScore1,--
tab.AvgEvaScore2,
tab.TotalAvgScore2,
tab.AvgEvaScore3,
tab.TotalAvgScore3,
tab.AvgEvaScore4,
tab.TotalAvgScore4,
tab.AvgEvaScore5,
tab.TotalAvgScore5,
tab.AvgEvaScore6,
tab.TotalAvgScore6,
tab.TimelyAvgSocre,
tab.HonestyAvgScore,
tab.CTSSAvgScore,
tab.CTSCAvgScore,
tab.MainCoordinatorAvgScore,
tab.UserRepresentativeAvgScore,
tab.CTSTAvgScore,
tab.CTEDAvgScore,
FORMAT(DATEADD(MONTH,-1,@StartTime),'yyyy-MM') AS ReportMonth
FROM (SELECT a.FO_NO,(ISNULL(dis.Discipline,'')+ISNULL(dis.DisciplineCN,'')) AS Work_Description,(d.Contractor+d.ContractorCN)AS Contractor,u.UserName AS Main_Coordinator,
--
COUNT(DISTINCT(Requisitioner)) AS UserNum,
--
(SELECT COUNT(DISTINCT(UserName)) FROM FC_Score
WHERE ISNULL(UserName,'')!='' AND DateIn>=@StartTime AND DateIn<@EndTime
AND Contract_No=b.FO AND [Role]='User' AND ISNULL(Remark,'')!='Auto') AS EvaluateNum,
--score1
(SELECT COUNT(DISTINCT(UserName)) FROM FC_Score
WHERE ISNULL(UserName,'')!='' AND DateIn>=@StartTime AND DateIn<@EndTime
AND Contract_No=b.FO AND [Role]='Dep' AND Score1>=0 AND ISNULL(Remark,'')!='Auto') AS DepYpScore1,
--score1
(SELECT COUNT(1) FROM Sys_User WHERE RoleId='39e35a17-8fa2-447c-b1da-bf92bff36ad4') AS DepZpScore1,
--score2
(SELECT COUNT(DISTINCT(UserName)) FROM FC_Score
WHERE ISNULL(UserName,'')!='' AND DateIn>=@StartTime AND DateIn<@EndTime
AND Contract_No=b.FO AND [Role]='Dep' AND Score2>=0 AND ISNULL(Remark,'')!='Auto') AS DepYpScore2,
--score2
(SELECT COUNT(1) FROM Sys_User WHERE RoleId='b76dec7a-ba1c-46f1-8859-ece4b18252b1') AS DepZpScore2,
--score3
(SELECT COUNT(DISTINCT(UserName)) FROM FC_Score
WHERE ISNULL(UserName,'')!='' AND DateIn>=@StartTime AND DateIn<@EndTime
AND Contract_No=b.FO AND [Role]='Dep' AND Score3>=0 AND ISNULL(Remark,'')!='Auto') AS DepYpScore3,
--score3
(SELECT COUNT(DISTINCT(ma.Account)) FROM Sys_User AS ma WHERE ma.UserId=a.Main_Coordinator) AS DepZpScore3,
--score4
(SELECT COUNT(DISTINCT(UserName)) FROM FC_Score
WHERE ISNULL(UserName,'')!='' AND DateIn>=@StartTime AND DateIn<@EndTime
AND Contract_No=b.FO AND [Role]='Dep' AND Score4>=0 AND ISNULL(Remark,'')!='Auto') AS DepYpScore4,
--score4
(SELECT COUNT(DISTINCT(ma.Account)) FROM Sys_User AS ma WHERE ma.UserId=a.User_Representative) AS DepZpScore4,
--score5
(SELECT COUNT(DISTINCT(UserName)) FROM FC_Score
WHERE ISNULL(UserName,'')!='' AND DateIn>=@StartTime AND DateIn<@EndTime
AND Contract_No=b.FO AND [Role]='Dep' AND Score5>=0 AND ISNULL(Remark,'')!='Auto') AS DepYpScore5,
--score4
(SELECT COUNT(1) FROM Sys_User WHERE RoleId='111eb3c5-a3b7-49de-a40b-e5bb3fd10944') AS DepZpScore5,
--score6
(SELECT COUNT(DISTINCT(UserName)) FROM FC_Score
WHERE ISNULL(UserName,'')!='' AND DateIn>=@StartTime AND DateIn<@EndTime
AND Contract_No=b.FO AND [Role]='Dep' AND Score6>=0 AND ISNULL(Remark,'')!='Auto') AS DepYpScore6,
--score4
(SELECT COUNT(DISTINCT(ma.Account)) FROM Sys_User AS ma WHERE ma.UserId=a.Contract_Admin) AS DepZpScore6,
--Preparation
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score1)) FROM FC_Score AS f WHERE f.DateIn>=@StartTime AND f.DateIn<@EndTime AND Contract_No=a.FO_NO AND f.Score1>=0 AND f.[Role]='User' AND ISNULL(f.Remark,'')!='Auto') AS AvgEvaScore1,
--Preparation
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score1)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='User' AND f.DateIn>=@StartTime AND f.DateIn<@EndTime) AS TotalAvgScore1,
--Performance
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score2)) FROM FC_Score AS f WHERE f.DateIn>=@StartTime AND f.DateIn<@EndTime AND Contract_No=a.FO_NO AND f.Score2>=0 AND f.[Role]='User' AND ISNULL(f.Remark,'')!='Auto') AS AvgEvaScore2,
--Performance
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score2)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='User' AND f.DateIn>=@StartTime AND f.DateIn<@EndTime) AS TotalAvgScore2,
--EHSS管理
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score3)) FROM FC_Score AS f WHERE f.DateIn>=@StartTime AND f.DateIn<@EndTime AND Contract_No=a.FO_NO AND f.Score3>=0 AND f.[Role]='User' AND ISNULL(f.Remark,'')!='Auto') AS AvgEvaScore3,
--EHSS管理
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score3)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='User' AND f.DateIn>=@StartTime AND f.DateIn<@EndTime) AS TotalAvgScore3,
--Quality Control
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score4)) FROM FC_Score AS f WHERE f.DateIn>=@StartTime AND f.DateIn<@EndTime AND Contract_No=a.FO_NO AND f.Score4>=0 AND f.[Role]='User' AND ISNULL(f.Remark,'')!='Auto') AS AvgEvaScore4,
--Quality Control
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score4)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='User' AND f.DateIn>=@StartTime AND f.DateIn<@EndTime) AS TotalAvgScore4,
--Timeline Management
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score5)) FROM FC_Score AS f WHERE f.DateIn>=@StartTime AND f.DateIn<@EndTime AND Contract_No=a.FO_NO AND f.Score5>=0 AND f.[Role]='User' AND ISNULL(f.Remark,'')!='Auto') AS AvgEvaScore5,
--Timeline Management
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score5)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='User' AND f.DateIn>=@StartTime AND f.DateIn<@EndTime) AS TotalAvgScore5,
--Documentation
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score6)) FROM FC_Score AS f WHERE f.DateIn>=@StartTime AND f.DateIn<@EndTime AND Contract_No=a.FO_NO AND f.Score6>=0 AND f.[Role]='User' AND ISNULL(f.Remark,'')!='Auto') AS AvgEvaScore6,
--Documentation
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score6)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='User' AND f.DateIn>=@StartTime AND f.DateIn<@EndTime) AS TotalAvgScore6,
--"及时性Timely submission"
(CASE WHEN a.FOTypeId='e3dd9ecc-4474-4e94-85ff-22dc073fd8b0' THEN --FC
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Timely)) FROM HonestyTimelyView AS f WHERE f.Contract_No=a.FO_NO AND f.DateIn>=DATEADD(MONTH,-1,@EndTime) AND f.DateIn<@EndTime)
WHEN a.FOTypeId='eb846026-639f-4063-8d3d-a253905ddfe0' THEN --TAR
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Timely)) FROM dbo.TAR_HonestyTimelyView AS f WHERE f.Contract_No=a.FO_NO AND f.DateIn>=DATEADD(MONTH,-1,@EndTime) AND f.DateIn<@EndTime)
WHEN a.FOTypeId='58544360-5d26-4358-8459-928aa5f6e3ab' AND (SELECT COUNT(*) FROM HonestyTimelyView AS f WHERE f.Contract_No=a.FO_NO AND f.DateIn>=DATEADD(MONTH,-1,@EndTime) AND f.DateIn<@EndTime)>0 THEN --OEM
CONVERT(DECIMAL(18,2),5.0) END) AS TimelyAvgSocre,
--"诚实度Honesty"
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Honesty)) FROM HonestyTimelyView AS f WHERE f.Contract_No=a.FO_NO AND f.DateIn>=DATEADD(MONTH,-1,@EndTime) AND f.DateIn<@EndTime) AS HonestyAvgScore,
--CTS/S
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score1)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='Dep' AND f.Score1>=0 AND f.DateIn>=@StartTime AND f.DateIn<@EndTime AND ISNULL(f.Remark,'')!='Auto') AS CTSSAvgScore,
--CTS/C
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score2)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='Dep' AND f.Score2>=0 AND f.DateIn>=@StartTime AND f.DateIn<@EndTime AND ISNULL(f.Remark,'')!='Auto') AS CTSCAvgScore,
--Main Coordinator
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score3)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='Dep' AND f.Score3>=0 AND f.DateIn>=@StartTime AND f.DateIn<@EndTime AND ISNULL(f.Remark,'')!='Auto') AS MainCoordinatorAvgScore,
--User Representative
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score4)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='Dep' AND f.Score4>=0 AND f.DateIn>=@StartTime AND f.DateIn<@EndTime AND ISNULL(f.Remark,'')!='Auto') AS UserRepresentativeAvgScore,
--CTM/T
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score5)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='Dep' AND f.Score5>=0 AND f.DateIn>=@StartTime AND f.DateIn<@EndTime AND ISNULL(f.Remark,'')!='Auto') AS CTSTAvgScore,
--CTE/D
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score6)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='Dep' AND f.Score6>=0 AND f.DateIn>=@StartTime AND f.DateIn<@EndTime AND ISNULL(f.Remark,'')!='Auto') AS CTEDAvgScore
--
--(SELECT ISNULL(CONVERT(DECIMAL(18,2),AVG(f.Score1+f.Score2+f.Score3+f.Score4+f.Score5+f.Score6+f.Score7)),0.00)FROM FC_Score AS f WHERE Contract_No=a.FO_NO AND Role='User' AND DateIn>=@StartTime AND DateIn<@EndTime) AS UserTotalScore
FROM FC_SESRelatedData AS a
INNER JOIN FC_SESReport AS b ON a.FO_NO=b.FO
LEFT JOIN Score_JournalEvaluation AS c ON b.SES_No=c.SES_No
LEFT JOIN Base_Contractor AS d ON d.ContractorId=a.Contractor
LEFT JOIN dbo.Sys_User AS u ON u.UserId = a.Main_Coordinator
LEFT JOIN Base_Discipline AS dis ON dis.DisciplineId = a.DisciplineId
WHERE ISNULL(b.Requisitioner,'')!=''
AND a.DisciplineId<>'ddcd51c2-1059-4cc8-8f6f-8936da88a4c4'
AND (ISNULL(b.Claim_sheets_receive,'')!='' OR ISNULL(b.TECO_Date,'')!='')
AND ISNULL(b.Deleted,'')='' AND ISNULL(b.Blocked,'')=''
AND c.Evaluate_Time>=@StartTime AND c.Evaluate_Time<@EndTime
GROUP BY a.FO_NO,a.FOTypeId,b.FO,dis.Discipline,dis.DisciplineCN,d.Contractor,d.ContractorCN,u.UserName,a.Main_Coordinator,a.User_Representative,a.Contract_Admin
) AS tab
--WHERE tab.Work_Description NOT LIKE '%特殊作业安全监护%'
END
GO
ALTER PROCEDURE [dbo].[FN_Safety_OverviewReport]
@StartTime DATETIME,
@EndTime DATETIME
AS
BEGIN
SELECT
tab.FO_NO,tab.Work_Description,tab.Contractor,tab.Main_Coordinator,tab.UserNum,tab.EvaluateNum,
--Score1
tab.DepYpScore1,tab.DepZpScore1,
--Score2
tab.DepYpScore2,tab.DepZpScore2,
--Score3
tab.DepYpScore3,tab.DepZpScore3,
--Score4
tab.DepYpScore4,tab.DepZpScore4,
--Score5
tab.DepYpScore5,tab.DepZpScore5,
--Score6
tab.DepYpScore6,tab.DepZpScore6,
--35%60%
CONVERT(DECIMAL(9,1),((CASE WHEN tab.EvaluateNum>0 THEN (ISNULL(tab.AvgEvaScore1,0)+
ISNULL(tab.AvgEvaScore2,0)+
ISNULL(tab.AvgEvaScore3,0)+
--ISNULL(tab.AvgEvaScore4,0)+
ISNULL(tab.AvgEvaScore5,0)+
ISNULL(tab.AvgEvaScore6,0))*35/35 ELSE 0 END)+
(CASE WHEN ((CASE WHEN tab.CTSSAvgScore>=0 THEN 5 ELSE 0 END)+(CASE WHEN tab.CTSCAvgScore>=0 THEN 5 ELSE 0 END)+
(CASE WHEN tab.MainCoordinatorAvgScore>=0 THEN 5 ELSE 0 END)+(CASE WHEN tab.UserRepresentativeAvgScore>=0 THEN 5 ELSE 0 END)+
(CASE WHEN tab.CTSTAvgScore>=0 THEN 5 ELSE 0 END)+(CASE WHEN tab.CTEDAvgScore>=0 THEN 5 ELSE 0 END)+
(CASE WHEN tab.TimelyAvgSocre IS NOT NULL THEN 5 ELSE 0 END)+
(CASE WHEN tab.HonestyAvgScore IS NOT NULL THEN 5 ELSE 0 END))>0 THEN
((ISNULL(tab.CTSSAvgScore,0)+ ISNULL(tab.CTSCAvgScore,0)+ISNULL(tab.MainCoordinatorAvgScore,0)+
ISNULL(tab.UserRepresentativeAvgScore,0)+ISNULL(tab.CTSTAvgScore,0)+ISNULL(tab.CTEDAvgScore,0)+
ISNULL(tab.TimelyAvgSocre,0)+ISNULL(tab.HonestyAvgScore,0))*65) /
((CASE WHEN tab.CTSSAvgScore>=0 THEN 15 ELSE 0 END)+(CASE WHEN tab.CTSCAvgScore>=0 THEN 5 ELSE 0 END)+
(CASE WHEN tab.MainCoordinatorAvgScore>=0 THEN 10 ELSE 0 END)+(CASE WHEN tab.UserRepresentativeAvgScore>=0 THEN 15 ELSE 0 END)+
(CASE WHEN tab.CTSTAvgScore>=0 THEN 5 ELSE 0 END)+(CASE WHEN tab.CTEDAvgScore>=0 THEN 5 ELSE 0 END)+
(CASE WHEN tab.TimelyAvgSocre IS NOT NULL THEN 5 ELSE 0 END)+
(CASE WHEN tab.HonestyAvgScore IS NOT NULL THEN 5 ELSE 0 END)) ELSE 0 END)
)) AS Total,
(CASE WHEN (CONVERT(DECIMAL(18,2),(tab.EvaluateNum*5)+DepYpScore1+DepYpScore2+DepYpScore3+DepYpScore4+DepYpScore5+DepYpScore6)/
CONVERT(DECIMAL(18,2),(tab.UserNum*5)+DepZpScore1+DepZpScore2+DepZpScore3+DepZpScore4+DepZpScore5+DepZpScore6
))>1 THEN 100.00
ELSE CONVERT(DECIMAL(18,2),(CONVERT(DECIMAL(18,2),(tab.EvaluateNum*5)+DepYpScore1+DepYpScore2+DepYpScore3+DepYpScore4+DepYpScore5+DepYpScore6)/
CONVERT(DECIMAL(18,2),(tab.UserNum*5)+DepZpScore1+DepZpScore2+DepZpScore3+DepZpScore4+DepZpScore5+DepZpScore6
))*100) END) AS Participation_Rate,--
tab.AvgEvaScore1,--()
tab.TotalAvgScore1,--
tab.AvgEvaScore2,
tab.TotalAvgScore2,
tab.AvgEvaScore3,
tab.TotalAvgScore3,
--tab.AvgEvaScore4,
--tab.TotalAvgScore4,
tab.AvgEvaScore5,
tab.TotalAvgScore5,
tab.AvgEvaScore6,
tab.TotalAvgScore6,
tab.TimelyAvgSocre,
tab.HonestyAvgScore,
tab.CTSSAvgScore,
tab.CTSCAvgScore,
tab.MainCoordinatorAvgScore,
tab.UserRepresentativeAvgScore,
tab.CTSTAvgScore,
tab.CTEDAvgScore,
FORMAT(DATEADD(MONTH,-1,@StartTime),'yyyy-MM') AS ReportMonth
FROM (SELECT a.FO_NO,(ISNULL(dis.Discipline,'')+ISNULL(dis.DisciplineCN,'')) AS Work_Description,(d.Contractor+d.ContractorCN)AS Contractor,u.UserName AS Main_Coordinator,
--
COUNT(DISTINCT(Requisitioner)) AS UserNum,
--
(SELECT COUNT(DISTINCT(UserName)) FROM FC_Score
WHERE ISNULL(UserName,'')!='' AND DateIn>=@StartTime AND DateIn<@EndTime
AND Contract_No=b.FO AND [Role]='User' AND ISNULL(Remark,'')!='Auto') AS EvaluateNum,
--score1
(SELECT COUNT(DISTINCT(UserName)) FROM FC_Score
WHERE ISNULL(UserName,'')!='' AND DateIn>=@StartTime AND DateIn<@EndTime
AND Contract_No=b.FO AND [Role]='Dep' AND Score1>=0 AND ISNULL(Remark,'')!='Auto') AS DepYpScore1,
--score1 CTS/S
(SELECT COUNT(1) FROM Sys_User WHERE RoleId='39e35a17-8fa2-447c-b1da-bf92bff36ad4') AS DepZpScore1,
--score2
(SELECT COUNT(DISTINCT(UserName)) FROM FC_Score
WHERE ISNULL(UserName,'')!='' AND DateIn>=@StartTime AND DateIn<@EndTime
AND Contract_No=b.FO AND [Role]='Dep' AND Score2>=0 AND ISNULL(Remark,'')!='Auto') AS DepYpScore2,
--score2 CTS/C
(SELECT COUNT(1) FROM Sys_User WHERE RoleId='b76dec7a-ba1c-46f1-8859-ece4b18252b1') AS DepZpScore2,
--score3
(SELECT COUNT(DISTINCT(UserName)) FROM FC_Score
WHERE ISNULL(UserName,'')!='' AND DateIn>=@StartTime AND DateIn<@EndTime
AND Contract_No=b.FO AND [Role]='Dep' AND Score3>=0 AND ISNULL(Remark,'')!='Auto') AS DepYpScore3,
--score3
(SELECT COUNT(DISTINCT(ma.Account)) FROM Sys_User AS ma WHERE ma.UserId=a.Main_Coordinator) AS DepZpScore3,
--score4
(SELECT COUNT(DISTINCT(UserName)) FROM FC_Score
WHERE ISNULL(UserName,'')!='' AND DateIn>=@StartTime AND DateIn<@EndTime
AND Contract_No=b.FO AND [Role]='Dep' AND Score4>=0 AND ISNULL(Remark,'')!='Auto') AS DepYpScore4,
--score4
(SELECT COUNT(DISTINCT(ma.Account)) FROM Sys_User AS ma WHERE ma.UserId=a.User_Representative) AS DepZpScore4,
--score5
(SELECT COUNT(DISTINCT(UserName)) FROM FC_Score
WHERE ISNULL(UserName,'')!='' AND DateIn>=@StartTime AND DateIn<@EndTime
AND Contract_No=b.FO AND [Role]='Dep' AND Score5>=0 AND ISNULL(Remark,'')!='Auto') AS DepYpScore5,
--score5 CTM/T
(SELECT COUNT(1) FROM Sys_User WHERE RoleId='111eb3c5-a3b7-49de-a40b-e5bb3fd10944') AS DepZpScore5,
--score6
(SELECT COUNT(DISTINCT(UserName)) FROM FC_Score
WHERE ISNULL(UserName,'')!='' AND DateIn>=@StartTime AND DateIn<@EndTime
AND Contract_No=b.FO AND [Role]='Dep' AND Score6>=0 AND ISNULL(Remark,'')!='Auto') AS DepYpScore6,
--score6
(SELECT COUNT(DISTINCT(ma.Account)) FROM Sys_User AS ma WHERE ma.UserId=a.Contract_Admin) AS DepZpScore6,
--Preparation
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score1)) FROM FC_Score AS f WHERE f.DateIn>=@StartTime AND f.DateIn<@EndTime AND Contract_No=a.FO_NO AND f.Score1>=0 AND f.[Role]='User' AND ISNULL(f.Remark,'')!='Auto') AS AvgEvaScore1,
--Preparation
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score1)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='User' AND f.DateIn>=@StartTime AND f.DateIn<@EndTime) AS TotalAvgScore1,
--Performance
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score2)) FROM FC_Score AS f WHERE f.DateIn>=@StartTime AND f.DateIn<@EndTime AND Contract_No=a.FO_NO AND f.Score2>=0 AND f.[Role]='User' AND ISNULL(f.Remark,'')!='Auto') AS AvgEvaScore2,
--Performance
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score2)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='User' AND f.DateIn>=@StartTime AND f.DateIn<@EndTime) AS TotalAvgScore2,
--EHSS管理
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score3)) FROM FC_Score AS f WHERE f.DateIn>=@StartTime AND f.DateIn<@EndTime AND Contract_No=a.FO_NO AND f.Score3>=0 AND f.[Role]='User' AND ISNULL(f.Remark,'')!='Auto') AS AvgEvaScore3,
--EHSS管理
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score3)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='User' AND f.DateIn>=@StartTime AND f.DateIn<@EndTime) AS TotalAvgScore3,
--Quality Control
--(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score4)) FROM FC_Score AS f WHERE f.DateIn>=@StartTime AND f.DateIn<@EndTime AND Contract_No=a.FO_NO AND f.Score4>=0 AND f.[Role]='User' AND ISNULL(f.Remark,'')!='Auto') AS AvgEvaScore4,
--Quality Control
--(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score4)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='User' AND f.DateIn>=@StartTime AND f.DateIn<@EndTime) AS TotalAvgScore4,
--Timeline Management
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score5)) FROM FC_Score AS f WHERE f.DateIn>=@StartTime AND f.DateIn<@EndTime AND Contract_No=a.FO_NO AND f.Score5>=0 AND f.[Role]='User' AND ISNULL(f.Remark,'')!='Auto') AS AvgEvaScore5,
--Timeline Management
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score5)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='User' AND f.DateIn>=@StartTime AND f.DateIn<@EndTime) AS TotalAvgScore5,
--Documentation
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score6)) FROM FC_Score AS f WHERE f.DateIn>=@StartTime AND f.DateIn<@EndTime AND Contract_No=a.FO_NO AND f.Score6>=0 AND f.[Role]='User' AND ISNULL(f.Remark,'')!='Auto') AS AvgEvaScore6,
--Documentation
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score6)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='User' AND f.DateIn>=@StartTime AND f.DateIn<@EndTime) AS TotalAvgScore6,
--"及时性Timely submission"
(CASE WHEN a.FOTypeId='e3dd9ecc-4474-4e94-85ff-22dc073fd8b0' THEN --FC
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Timely)) FROM HonestyTimelyView AS f WHERE f.Contract_No=a.FO_NO AND f.DateIn>=DATEADD(MONTH,-1,@EndTime) AND f.DateIn<@EndTime)
WHEN a.FOTypeId='eb846026-639f-4063-8d3d-a253905ddfe0' THEN --TAR
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Timely)) FROM dbo.TAR_HonestyTimelyView AS f WHERE f.Contract_No=a.FO_NO AND f.DateIn>=DATEADD(MONTH,-1,@EndTime) AND f.DateIn<@EndTime)
WHEN a.FOTypeId='58544360-5d26-4358-8459-928aa5f6e3ab' AND (SELECT COUNT(*) FROM HonestyTimelyView AS f WHERE f.Contract_No=a.FO_NO AND f.DateIn>=DATEADD(MONTH,-1,@EndTime) AND f.DateIn<@EndTime)>0 THEN --OEM
CONVERT(DECIMAL(18,2),5.0) END) AS TimelyAvgSocre,
--"诚实度Honesty"
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Honesty)) FROM HonestyTimelyView AS f WHERE f.Contract_No=a.FO_NO AND f.DateIn>=DATEADD(MONTH,-1,@EndTime) AND f.DateIn<@EndTime) AS HonestyAvgScore,
--CTS/S
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score1)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='Dep' AND f.Score1>=0 AND f.DateIn>=@StartTime AND f.DateIn<@EndTime AND ISNULL(f.Remark,'')!='Auto') AS CTSSAvgScore,
--CTS/C
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score2)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='Dep' AND f.Score2>=0 AND f.DateIn>=@StartTime AND f.DateIn<@EndTime AND ISNULL(f.Remark,'')!='Auto') AS CTSCAvgScore,
--Main Coordinator
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score3)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='Dep' AND f.Score3>=0 AND f.DateIn>=@StartTime AND f.DateIn<@EndTime AND ISNULL(f.Remark,'')!='Auto') AS MainCoordinatorAvgScore,
--User Representative
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score4)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='Dep' AND f.Score4>=0 AND f.DateIn>=@StartTime AND f.DateIn<@EndTime AND ISNULL(f.Remark,'')!='Auto') AS UserRepresentativeAvgScore,
--CTM/T
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score5)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='Dep' AND f.Score5>=0 AND f.DateIn>=@StartTime AND f.DateIn<@EndTime AND ISNULL(f.Remark,'')!='Auto') AS CTSTAvgScore,
--CTE/D
(SELECT CONVERT(DECIMAL(18,2),AVG(f.Score6)) FROM FC_Score AS f WHERE f.Contract_No=a.FO_NO AND f.[Role]='Dep' AND f.Score6>=0 AND f.DateIn>=@StartTime AND f.DateIn<@EndTime AND ISNULL(f.Remark,'')!='Auto') AS CTEDAvgScore
--
--(SELECT ISNULL(CONVERT(DECIMAL(18,2),AVG(f.Score1+f.Score2+f.Score3+f.Score4+f.Score5+f.Score6+f.Score7)),0.00)FROM FC_Score AS f WHERE Contract_No=a.FO_NO AND Role='User' AND DateIn>=@StartTime AND DateIn<@EndTime) AS UserTotalScore
FROM FC_SESRelatedData AS a
INNER JOIN FC_SESReport AS b ON a.FO_NO=b.FO
LEFT JOIN Score_JournalEvaluation AS c ON b.SES_No=c.SES_No
LEFT JOIN Base_Contractor AS d ON d.ContractorId=a.Contractor
LEFT JOIN dbo.Sys_User AS u ON u.UserId = a.Main_Coordinator
LEFT JOIN Base_Discipline AS dis ON dis.DisciplineId = a.DisciplineId
WHERE ISNULL(b.Requisitioner,'')!=''
AND a.DisciplineId='ddcd51c2-1059-4cc8-8f6f-8936da88a4c4'
AND (ISNULL(b.Claim_sheets_receive,'')!='' OR ISNULL(b.TECO_Date,'')!='')
AND ISNULL(b.Deleted,'')='' AND ISNULL(b.Blocked,'')=''
AND c.Evaluate_Time>=@StartTime AND c.Evaluate_Time<@EndTime
GROUP BY a.FO_NO,a.FOTypeId,b.FO,dis.Discipline,dis.DisciplineCN,d.Contractor,d.ContractorCN,u.UserName,a.Main_Coordinator,a.User_Representative,a.Contract_Admin
) AS tab
--WHERE tab.Work_Description LIKE '%特殊作业安全监护%'
END
GO
CREATE TABLE [dbo].[FC_OverviewReport](
[Id] [INT] IDENTITY(1,1) NOT NULL,
[ReportMonth] [NVARCHAR](50) NULL,
[FO_NO] [NVARCHAR](50) NULL,
[Work_Description] [NVARCHAR](300) NULL,
[Contractor] [NVARCHAR](300) NULL,
[Main_Coordinator] [NVARCHAR](50) NULL,
[Total] [DECIMAL](9, 1) NULL,
[Participation_Rate] [DECIMAL](18, 2) NULL,
[EvaluateNum] [INT] NULL,
[UserNum] [INT] NULL,
[AvgEvaScore1] [DECIMAL](18, 2) NULL,
[TotalAvgScore1] [DECIMAL](18, 2) NULL,
[AvgEvaScore2] [DECIMAL](18, 2) NULL,
[TotalAvgScore2] [DECIMAL](18, 2) NULL,
[AvgEvaScore3] [DECIMAL](18, 2) NULL,
[TotalAvgScore3] [DECIMAL](18, 2) NULL,
[AvgEvaScore4] [DECIMAL](18, 2) NULL,
[TotalAvgScore4] [DECIMAL](18, 2) NULL,
[AvgEvaScore5] [DECIMAL](18, 2) NULL,
[TotalAvgScore5] [DECIMAL](18, 2) NULL,
[AvgEvaScore6] [DECIMAL](18, 2) NULL,
[TotalAvgScore6] [DECIMAL](18, 2) NULL,
[TimelyAvgSocre] [DECIMAL](18, 2) NULL,
[HonestyAvgScore] [DECIMAL](18, 2) NULL,
[CTSSAvgScore] [DECIMAL](18, 2) NULL,
[CTSCAvgScore] [DECIMAL](18, 2) NULL,
[MainCoordinatorAvgScore] [DECIMAL](18, 2) NULL,
[UserRepresentativeAvgScore] [DECIMAL](18, 2) NULL,
[CTSTAvgScore] [DECIMAL](18, 2) NULL,
[CTEDAvgScore] [DECIMAL](18, 2) NULL,
[IsSafe] [BIT] NULL,
CONSTRAINT [PK_FC_OverviewReport] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER PROCEDURE [dbo].[FN_NoEvaluationUsersReport]
@StartTime datetime,
@EndTime datetime
AS
BEGIN
SELECT
NEWID() as FoGuid,
a.Contract_No,
a.UserName as Evaluate_UserName,
s.UserName,
'No' as isEvaluate,
a.[Role] as RoleName,
c.DepartName,
FORMAT(DATEADD(MONTH,-1,@StartTime),'yyyy-MM') AS ReportMonth,
(CASE WHEN a.Score1>0 THEN (SELECT TOP 1 UserId FROM dbo.Sys_User WHERE RoleId=(SELECT TOP 1 RoleId FROM dbo.Sys_Role WHERE RoleName='CTS/S'))
ELSE '' END) AS CTSSEva,
(CASE WHEN a.Score2>0 THEN (SELECT TOP 1 UserId FROM dbo.Sys_User WHERE RoleId=(SELECT TOP 1 RoleId FROM dbo.Sys_Role WHERE RoleName='CTS/C'))
ELSE '' END) AS CTSCEva,
(CASE WHEN a.Score3>0 THEN (SELECT TOP 1 Main_Coordinator FROM dbo.FC_SESRelatedData WHERE FO_NO=a.Contract_No)
ELSE '' END) AS MainCEva,
(CASE WHEN a.Score4>0 THEN (SELECT TOP 1 User_Representative FROM dbo.FC_SESRelatedData WHERE FO_NO=a.Contract_No)
ELSE '' END) AS UserREva,
(CASE WHEN a.Score5>0 THEN (SELECT TOP 1 UserId FROM dbo.Sys_User WHERE RoleId=(SELECT TOP 1 RoleId FROM dbo.Sys_Role WHERE RoleName='CTM/T') ORDER BY UserId)
ELSE '' END) AS CTMT1Eva,
(CASE WHEN a.Score5>0 THEN (SELECT TOP 1 UserId FROM dbo.Sys_User WHERE RoleId=(SELECT TOP 1 RoleId FROM dbo.Sys_Role WHERE RoleName='CTM/T') ORDER BY UserId DESC)
ELSE '' END) AS CTMT2Eva,
(CASE WHEN a.Score6>0 THEN (SELECT TOP 1 Contract_Admin FROM dbo.FC_SESRelatedData WHERE FO_NO=a.Contract_No)
ELSE '' END) AS ConAREva
FROM FC_Score as a
LEFT join Sys_User as s on s.Account=a.UserName
LEFT join Base_Depart as c on c.DepartId=s.DepartId
LEFT join dbo.FC_SESRelatedData as fc on a.Contract_No=fc.FO_NO
where a.DateIn>=@StartTime AND a.DateIn<@EndTime
AND fc.DisciplineId<>'ddcd51c2-1059-4cc8-8f6f-8936da88a4c4' --AND dis.DisciplineCN NOT LIKE '%特殊作业安全监护%'
AND a.Remark='Auto'
ORDER BY a.Role DESC
END
GO
ALTER PROCEDURE [dbo].[FN_Safety_NoEvaluationUsersReport]
@StartTime datetime,
@EndTime datetime
AS
BEGIN
SELECT
NEWID() as FoGuid,
a.Contract_No,
a.UserName as Evaluate_UserName,
s.UserName,
'No' as isEvaluate,
a.[Role] as RoleName,
c.DepartName,
FORMAT(DATEADD(MONTH,-1,@StartTime),'yyyy-MM') AS ReportMonth,
(CASE WHEN a.Score1>0 THEN (SELECT TOP 1 UserId FROM dbo.Sys_User WHERE RoleId=(SELECT TOP 1 RoleId FROM dbo.Sys_Role WHERE RoleName='CTS/S'))
ELSE '' END) AS CTSSEva,
(CASE WHEN a.Score2>0 THEN (SELECT TOP 1 UserId FROM dbo.Sys_User WHERE RoleId=(SELECT TOP 1 RoleId FROM dbo.Sys_Role WHERE RoleName='CTS/C'))
ELSE '' END) AS CTSCEva,
(CASE WHEN a.Score3>0 THEN (SELECT TOP 1 Main_Coordinator FROM dbo.FC_SESRelatedData WHERE FO_NO=a.Contract_No)
ELSE '' END) AS MainCEva,
(CASE WHEN a.Score4>0 THEN (SELECT TOP 1 User_Representative FROM dbo.FC_SESRelatedData WHERE FO_NO=a.Contract_No)
ELSE '' END) AS UserREva,
(CASE WHEN a.Score5>0 THEN (SELECT TOP 1 UserId FROM dbo.Sys_User WHERE RoleId=(SELECT TOP 1 RoleId FROM dbo.Sys_Role WHERE RoleName='CTM/T') ORDER BY UserId)
ELSE '' END) AS CTMT1Eva,
(CASE WHEN a.Score5>0 THEN (SELECT TOP 1 UserId FROM dbo.Sys_User WHERE RoleId=(SELECT TOP 1 RoleId FROM dbo.Sys_Role WHERE RoleName='CTM/T') ORDER BY UserId DESC)
ELSE '' END) AS CTMT2Eva,
(CASE WHEN a.Score6>0 THEN (SELECT TOP 1 Contract_Admin FROM dbo.FC_SESRelatedData WHERE FO_NO=a.Contract_No)
ELSE '' END) AS ConAREva
FROM FC_Score as a
LEFT join Sys_User as s on s.Account=a.UserName
LEFT join Base_Depart as c on c.DepartId=s.DepartId
LEFT join dbo.FC_SESRelatedData as fc on a.Contract_No=fc.FO_NO
where a.DateIn>=@StartTime AND a.DateIn<@EndTime
AND fc.DisciplineId='ddcd51c2-1059-4cc8-8f6f-8936da88a4c4' --AND dis.DisciplineCN LIKE '%特殊作业安全监护%'
AND a.Remark='Auto'
ORDER BY a.Role DESC
END
GO
CREATE TABLE [dbo].[FC_NoEvaluatedUser](
[Id] [INT] IDENTITY(1,1) NOT NULL,
[ReportMonth] [NVARCHAR](50) NULL,
[NotEvaluatedFoNo] [NVARCHAR](2000) NULL,
[Account] [NVARCHAR](50) NULL,
[UserName] [NVARCHAR](50) NULL,
[isEvaluate] [NVARCHAR](10) NULL,
[RoleName] [NVARCHAR](50) NULL,
[DepartName] [NVARCHAR](50) NULL,
[IsSafe] [BIT] NULL,
CONSTRAINT [PK_FC_NoEvaluatedUser] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER VIEW [dbo].[View_FC_SESRelatedData]
AS
/*********合同视图**********/
SELECT datas.ID,
datas.FO_NO,
datas.FOTypeId,
ft.FOType,
datas.Pricing_Scheme AS Pricing_SchemeId,
ps.PriceScheme AS Pricing_Scheme,
datas.Contractor AS ContractorId,
con.Contractor AS Contractor_Eng,
con.ContractorCN AS Contraor_CN,
(CASE WHEN con.Contractor IS NULL THEN con.ContractorCN
WHEN con.ContractorCN IS NULL THEN con.Contractor ELSE con.Contractor+con.ContractorCN END)AS Contractor,
datas.Vendor_NO,
item.Item,
datas.DisciplineId,
dis.Discipline AS Discipline_Eng,
dis.DisciplineCN AS Discipline_CN,
(CASE WHEN dis.Discipline IS NULL THEN dis.DisciplineCN
WHEN dis.DisciplineCN IS NULL THEN dis.Discipline
ELSE dis.Discipline+dis.DisciplineCN END) AS Discipline,
datas.Original_WC AS DisciplineCategory,
cur.Currency,
datas.Material_Group,
datas.Purchase_Group,
datas.Cost_Element,
t.[Type],
datas.Contract_Admin AS Contract_AdminId,
u.UserName AS Contract_Admin,
u.ChineseName AS ChineseName,
ch.UserName AS Cost_Checker,
datas.Buyer,
datas.Main_Coordinator AS Main_CoordinatorId,
u2.UserName AS Main_Coordinator,
--datas.Applicant AS MCDept,
dep.DepartCode AS MCDept,
u3.UserName AS User_Representative,
datas.User_Representative AS User_RepresentativeId,
datas.Validate_Date,
datas.Expire_Date,
datas.FC_Status,
datas.Contract_Person,
datas.Contract_Tel,
datas.Allocation,
(CASE WHEN datas.Proportion_of_FC_Definition IS NOT NULL THEN CONVERT(VARCHAR(10),CONVERT(DECIMAL(9,2),datas.Proportion_of_FC_Definition*100.0))+'%' END) AS StrVolumeAllocation,
datas.Proportion_of_FC_Definition AS VolumeAllocation,
datas.Actual_Budget,
datas.Connectedtransaction,
CONVERT(DECIMAL(18,2),ISNULL(c.CheckedValue,0)) AS CheckedValue,
CONVERT(DECIMAL(18,2),(ISNULL(datas.Actual_Budget,0)-ISNULL(c.CheckedValue,0))) AS RemainingBudget,
CONVERT(VARCHAR(10),CONVERT(DECIMAL(18,2),(datas.Actual_Budget-ISNULL(c.CheckedValue,0))/datas.Actual_Budget*100))+'%' AS RemainingBudgetRate,--=Remaining Budget/Contract Budget
(CASE WHEN DATEDIFF(DAY,datas.Validate_Date,datas.Expire_Date)>0
THEN CONVERT(VARCHAR(10),CONVERT(DECIMAL(18,2),CONVERT(DECIMAL(18,2),DATEDIFF(DAY,GETDATE(),datas.Expire_Date))/CONVERT(DECIMAL(18,2),DATEDIFF(DAY,datas.Validate_Date,datas.Expire_Date))*100))+'%'
ELSE ''END) AS RemainingDuration, --=- /
datas.Email,
datas.MainHead,
datas.MainHeadContact,
datas.SafetyOfficer,
datas.SafetyOfficerContact,
datas.ProjectManager,
datas.ProjectManagerContact,
datas.ConstRecords,
datas.ExceedLimit,
datas.Remark
FROM FC_SESRelatedData AS datas
LEFT JOIN dbo.Base_Contractor AS con ON con.ContractorId = datas.Contractor
LEFT JOIN dbo.Base_PriceScheme AS ps ON ps.PriceSchemeId = datas.Pricing_Scheme
LEFT JOIN dbo.Base_Item AS item ON item.ItemId = datas.Item
LEFT JOIN dbo.Base_Currency AS cur ON cur.CurrencyId = datas.Currency
LEFT JOIN dbo.Base_Type AS t ON t.TypeId = datas.Type
LEFT JOIN dbo.Sys_User AS u ON u.UserId = datas.Contract_Admin
LEFT JOIN dbo.Sys_User AS ch ON ch.UserId = datas.Cost_Checker
LEFT JOIN dbo.Sys_User AS u2 ON u2.UserId = datas.Main_Coordinator
LEFT JOIN dbo.Sys_User AS u3 ON u3.UserId=datas.User_Representative
LEFT JOIN dbo.Base_Depart dep ON dep.DepartId=u2.DepartId
LEFT JOIN dbo.Base_Discipline AS dis ON dis.DisciplineId = datas.DisciplineId
LEFT JOIN dbo.Base_FOType AS ft ON ft.FOTypeId = datas.FOTypeId
--LEFT JOIN(SELECT SUM(Net_Value) AS CheckedValue,CPTList.Contract_No FROM dbo.SESList
-- LEFT JOIN dbo.CPTList ON CPTList.CPT_No = SESList.CPT_No GROUP BY CPTList.Contract_No) AS c ON c.Contract_No=datas.FO_NO
LEFT JOIN(SELECT SUM(ISNULL(SSR_Actual_cost,0)) AS CheckedValue,FO FROM dbo.FC_SESReport
WHERE Accepted='X' GROUP BY FO) AS c ON c.FO=datas.FO_NO
GO
ALTER VIEW [dbo].[View_FC_Report]
AS
/*********ºÏͬÊÓͼ**********/
SELECT t.ID,t.FO_NO, t.Contractor,t.DisciplineId,t.Discipline,t.Contract_Admin,t.Buyer,t.Main_Coordinator,
t.ContractorId,t.MCDept,t.FC_Status,t.ConstRecords,t.Contract_AdminId,t.Main_CoordinatorId,
t.Budget,t.Actual_Cost,t.Commitment, t.Spending_commitment,
t.Validate_Date,t.Expire_Date, t.UnusedBudget,t.UnusedBudgetRate,t.Volume_Allocation,
CONVERT(VARCHAR(10),CONVERT(DECIMAL(18,2),t.Target_Volume*100))+'%' AS Target_Volume,
(CASE WHEN t.Volume_Allocation='N' THEN NULL ELSE
CONVERT(VARCHAR(10),CAST(
(CASE WHEN t.Sum_Spending_commitment>0 THEN 100.0*t.Spending_commitment1/t.Sum_Spending_commitment
ELSE CONVERT(VARCHAR(10),CONVERT(DECIMAL(18,2),t.Target_Volume*100)) END)
AS DECIMAL(18,2)))+'%' END) AS Actual_Volume,
(CASE WHEN t.Volume_Allocation='N' THEN NULL ELSE
CONVERT(VARCHAR(10),CAST((CASE WHEN t.Sum_Spending_commitment>0 THEN 1.0*t.Spending_commitment1/t.Sum_Spending_commitment ELSE 0 END-t.Target_Volume)*100 AS DECIMAL(18,2)))+'%'
END) AS Volume_Deviation,
(CASE WHEN t.Volume_Allocation='N' THEN NULL ELSE
CASE WHEN((CASE WHEN t.Sum_Spending_commitment>0 THEN 1.0*t.Spending_commitment1/t.Sum_Spending_commitment ELSE 0 END)-t.Target_Volume)>0.1
OR (t.Target_Volume-(CASE WHEN t.Sum_Spending_commitment>0 THEN 1.0*t.Spending_commitment1/t.Sum_Spending_commitment ELSE 0 END))>0.1
THEN 'Y' ELSE 'OK' END
END) AS Volume_allocation_deviation,
(CASE WHEN t.Sum_Spending_commitment=0 THEN 'OK' ELSE (CASE WHEN t.UnusedBudget<0.1 THEN 'Y' ELSE 'OK' END) END) AS Budget_Running_out,
(CASE WHEN t.Budget_progress=0 THEN 'OK' ELSE
CASE WHEN ((t.Spending_commitment-t.Budget_progress)/t.Budget_progress)>0.5 THEN 'Y' ELSE 'OK' END
END) AS Budget_progress_VS_Time
FROM
(SELECT datas.ID, datas.FO_NO, datas.DisciplineId,datas.Contractor AS ContractorId,
datas.Contract_Admin AS Contract_AdminId,datas.Main_Coordinator AS Main_CoordinatorId,
(CASE WHEN con.Contractor IS NULL THEN con.ContractorCN
WHEN con.ContractorCN IS NULL THEN con.Contractor
ELSE con.Contractor+con.ContractorCN END)AS Contractor,
(CASE WHEN dis.Discipline IS NULL THEN dis.DisciplineCN
WHEN dis.DisciplineCN IS NULL THEN dis.Discipline
ELSE dis.Discipline+dis.DisciplineCN END) AS Discipline,
u.UserName AS Contract_Admin, datas.Buyer, u2.UserName AS Main_Coordinator,
dep.DepartCode AS MCDept,--datas.Applicant AS MCDept,
datas.FC_Status, datas.ConstRecords,datas.Actual_Budget AS Budget,
CONVERT(DECIMAL(18,2),ISNULL(c.CheckedValue,0)) AS Actual_Cost,
CONVERT(DECIMAL(18,2),ISNULL(a.Commitment,0)) AS Commitment,
(CASE WHEN datas.FO_NO='4970925603' THEN (CONVERT(DECIMAL(18,2),ISNULL(c.CheckedValue,0))+CONVERT(DECIMAL(18,2),ISNULL(a.Commitment,0))
-(SELECT TOP 1 CONVERT(DECIMAL(18,2),ISNULL(s.Offset,0)) FROM dbo.Base_FOOffset s WHERE s.FO_NO=datas.FO_NO))
ELSE (CONVERT(DECIMAL(18,2),ISNULL(c.CheckedValue,0))+CONVERT(DECIMAL(18,2),ISNULL(a.Commitment,0))) END) AS Spending_commitment1,
(CONVERT(DECIMAL(18,2),ISNULL(c.CheckedValue,0))+CONVERT(DECIMAL(18,2),ISNULL(a.Commitment,0))) AS Spending_commitment,
(CASE WHEN datas.FO_NO='4970925603' OR datas.FO_NO='4974804732'
THEN (SELECT SUM(ISNULL(Spending_commitment,0)) FROM View_Sum_Spending_Commitment t WHERE t.DisciplineId= datas.DisciplineId)-(SELECT TOP 1 CONVERT(DECIMAL(18,2),ISNULL(s.Offset,0)) FROM dbo.Base_FOOffset s WHERE s.FO_NO=datas.FO_NO)
ELSE (SELECT SUM(ISNULL(Spending_commitment,0)) FROM View_Sum_Spending_Commitment t WHERE t.DisciplineId= datas.DisciplineId ) END) AS Sum_Spending_commitment,
datas.Validate_Date, datas.Expire_Date,
CONVERT(DECIMAL(18,2),(ISNULL(datas.Actual_Budget,0)-ISNULL(c.CheckedValue,0)-ISNULL(a.Commitment,0))) AS UnusedBudget,
CONVERT(VARCHAR(10),CONVERT(DECIMAL(18,2),(datas.Actual_Budget-ISNULL(c.CheckedValue,0)-ISNULL(a.Commitment,0))*100/datas.Actual_Budget))+'%' AS UnusedBudgetRate,--Öµ=Remaining Budget/Contract Budget
(CASE WHEN datas.Proportion_of_FC_Definition=1 THEN 'N' ELSE 'Y' END) AS Volume_Allocation,
datas.Proportion_of_FC_Definition AS Target_Volume,
(CASE WHEN DATEDIFF(DAY,datas.Validate_Date,datas.Expire_Date)>0
THEN CONVERT(DECIMAL(18,2),(datas.Actual_Budget*DATEDIFF(DAY,datas.Validate_Date,GETDATE()))/DATEDIFF(DAY,datas.Validate_Date,datas.Expire_Date))
ELSE 0 END) AS Budget_progress
FROM FC_SESRelatedData AS datas
LEFT JOIN dbo.Base_Contractor AS con ON con.ContractorId = datas.Contractor
LEFT JOIN dbo.Sys_User AS u ON u.UserId = datas.Contract_Admin
LEFT JOIN dbo.Sys_User AS u2 ON u2.UserId = datas.Main_Coordinator
LEFT JOIN dbo.Base_Depart dep ON dep.DepartId=u2.DepartId
LEFT JOIN dbo.Base_Discipline AS dis ON dis.DisciplineId = datas.DisciplineId
LEFT JOIN dbo.Base_FOType AS ft ON ft.FOTypeId = datas.FOTypeId
LEFT JOIN(SELECT SUM(ISNULL(SSR_Actual_cost,0)) AS CheckedValue,FO FROM dbo.FC_SESReport
WHERE Accepted='X' AND Deleted <> 'X' AND Blocked <> 'X' GROUP BY FO) AS c ON c.FO=datas.FO_NO
LEFT JOIN(SELECT SUM(ISNULL(SSR_budget,0)) AS Commitment,FO FROM dbo.FC_SESReport
WHERE Accepted <> 'X' AND Deleted <> 'X' AND Blocked <> 'X' GROUP BY FO) AS a ON a.FO=datas.FO_NO
WHERE ft.FOType!='OEM' AND dis.Discipline NOT LIKE '%Basf Expert Service%' AND datas.Expire_Date<>'2099-01-01'
AND datas.FC_Status!='Closed' AND (datas.Expire_Date IS NOT NULL AND DATEDIFF(MONTH,datas.Expire_Date,GETDATE())<=1) --Ò»¸öÔÂ
) t
GO