834 lines
		
	
	
		
			45 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
			
		
		
	
	
			834 lines
		
	
	
		
			45 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
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
 | 
						||
 | 
						||
 | 
						||
 | 
						||
 | 
						||
 | 
						||
 | 
						||
 | 
						||
 |