141 lines
8.8 KiB
Transact-SQL
141 lines
8.8 KiB
Transact-SQL
INSERT INTO Sys_ButtonToMenu VALUES (NEWID(),'7E2A5BAA-1F3C-4930-9E76-0FBABBA40B20','安全业绩加分值','Add',2)
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[SafetyPerformance](
|
|
[SafetyPerformanceId] [nvarchar](50) NOT NULL,
|
|
[ContractorId] [nvarchar](50) NULL,
|
|
[Years] [nvarchar](10) NULL,
|
|
[YearPrize] [nvarchar](20) NULL,
|
|
[Bonus] [decimal](9, 2) NULL,
|
|
CONSTRAINT [PK_SafetyPerformance] PRIMARY KEY CLUSTERED
|
|
(
|
|
[SafetyPerformanceId] ASC
|
|
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
|
|
) ON [PRIMARY]
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[SafetyPerformance] WITH CHECK ADD CONSTRAINT [FK_SafetyPerformance_Base_Contractor] FOREIGN KEY([ContractorId])
|
|
REFERENCES [dbo].[Base_Contractor] ([ContractorId])
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[SafetyPerformance] CHECK CONSTRAINT [FK_SafetyPerformance_Base_Contractor]
|
|
GO
|
|
|
|
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'承包商ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SafetyPerformance', @level2type=N'COLUMN',@level2name=N'ContractorId'
|
|
GO
|
|
|
|
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年度' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SafetyPerformance', @level2type=N'COLUMN',@level2name=N'Years'
|
|
GO
|
|
|
|
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年度奖项' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SafetyPerformance', @level2type=N'COLUMN',@level2name=N'YearPrize'
|
|
GO
|
|
|
|
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'加分值' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SafetyPerformance', @level2type=N'COLUMN',@level2name=N'Bonus'
|
|
GO
|
|
|
|
|
|
|
|
ALTER VIEW [dbo].[View_Contractor_Evaluation]
|
|
AS
|
|
/*********框架承包商评估表**********/
|
|
SELECT t.*,(t.Spending_commitment+t.Forecasted) AS Total,
|
|
(CASE WHEN t.YearDiff<>0 THEN CONVERT(DECIMAL(18,2),(t.Spending_commitment+t.Forecasted)/t.YearDiff) ELSE NULL END) AS YearAvg
|
|
FROM
|
|
(SELECT datas.ID, datas.FO_NO, datas.TechnicalBonus,datas.SafetyBonus,
|
|
(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,
|
|
datas.DisciplineId,
|
|
(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.Buyer,
|
|
datas.BuyerId,
|
|
datas.Main_Coordinator AS Main_CoordinatorId,
|
|
u2.UserName AS Main_Coordinator,
|
|
datas.Contract_Admin,
|
|
datas.Validate_Date,
|
|
datas.Expire_Date,
|
|
datas.FC_Status,
|
|
(CASE WHEN datas.Validate_Date IS NOT NULL AND datas.Expire_Date IS NOT NULL THEN CONVERT(DECIMAL(9,2),DATEDIFF(DAY,datas.Validate_Date,datas.Expire_Date)*1.00/365) ELSE 0 END ) AS YearDiff,
|
|
v.Spending_commitment AS Spending_commitment,
|
|
(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 VolumeAllocation,
|
|
ISNULL(datas.Forecasted,0) AS Forecasted,
|
|
datas.ReviewOfFC,datas.PriceEvaluation1,datas.PriceEvaluation2,datas.PriceLevel,datas.enumeration,datas.NCRIsReview,datas.NCRReviewNum,
|
|
datas.IsInquiry,datas.InquiryNum,datas.AuditResult,datas.BoQIsAudit,datas.BoQAuditComments,datas.IsOthers,ISNULL(datas.OthersNum,0) as OthersNum,datas.OtherDef,datas.Proposed
|
|
|
|
,(case when datas.IfExtend=1
|
|
then isnull(Interview.InterviewTimes,0)+isnull(InterviewPrevious.InterviewTimes,0)
|
|
else isnull(Interview.InterviewTimes,0) end) as InterviewTimes --约谈次数
|
|
,(case when datas.IfExtend=1
|
|
then isnull(NCR.NCRTimes,0)+ISNULL(NCRPrevious.NCRTimes,0)
|
|
else isnull(NCR.NCRTimes,0) end) as NCRTimes --NCR次数
|
|
,(case when datas.IfExtend=1
|
|
then isnull(Rectification.RectificationTimes,0)+isnull(RectificationPrevious.RectificationTimes,0)
|
|
else isnull(Rectification.RectificationTimes,0) end) as RectificationTimes --停工整改次数
|
|
|
|
--,isnull(Interview.InterviewTimes,0) as InterviewTimes --约谈次数
|
|
--,isnull(NCR.NCRTimes,0) as NCRTimes
|
|
--,isnull(Rectification.RectificationTimes,0) as RectificationTimes --停工整改次数
|
|
,isnull(Green.GreenTimes,0) as GreenTimes --审计绿区次数
|
|
,isnull(YellowGreen.YellowGreenTimes,0) as YellowGreenTimes --审计黄绿区次数
|
|
,isnull(Yellow.YellowTimes,0) as YellowTimes --审计黄区次数
|
|
,isnull(RedYellow.RedYellowTimes,0) as RedYellowTimes --审计红黄区次数
|
|
,isnull(Red.RedTimes,0) as RedTimes --审计红区次数
|
|
,(case when isnull(Green.GreenTimes,0)+isnull(YellowGreen.YellowGreenTimes,0)+isnull(Yellow.YellowTimes,0)+isnull(RedYellow.RedYellowTimes,0) +isnull(Red.RedTimes,0)=0 then '√'else '□' end ) as NotAudit
|
|
,(case when datas.IfExtend=1 then 'Y' else 'N' end) as IfExtend--是否为续签合同
|
|
,datas.PreviousFO --上一轮合同号
|
|
|
|
,-((case when
|
|
((case when datas.IfExtend=1 then isnull(Interview.InterviewTimes,0)+isnull(InterviewPrevious.InterviewTimes,0) else isnull(Interview.InterviewTimes,0) end)*0.005) +
|
|
((case when datas.IfExtend=1 then isnull(Rectification.RectificationTimes,0)+isnull(RectificationPrevious.RectificationTimes,0) else isnull(Rectification.RectificationTimes,0) end)*0.005) < 2
|
|
then ((case when datas.IfExtend=1 then isnull(NCR.NCRTimes,0)+ISNULL(NCRPrevious.NCRTimes,0)else isnull(NCR.NCRTimes,0) end)*0.02) +
|
|
((case when datas.IfExtend=1 then isnull(Interview.InterviewTimes,0)+isnull(InterviewPrevious.InterviewTimes,0) else isnull(Interview.InterviewTimes,0) end)*0.005) +
|
|
((case when datas.IfExtend=1 then isnull(Rectification.RectificationTimes,0)+isnull(RectificationPrevious.RectificationTimes,0) else isnull(Rectification.RectificationTimes,0) end)*0.005)
|
|
else (case when datas.IfExtend=1 then isnull(NCR.NCRTimes,0)+ISNULL(NCRPrevious.NCRTimes,0)else isnull(NCR.NCRTimes,0) end)*0.02+2 end)*100) as TechnicalBonusMalus --技术减值%
|
|
|
|
FROM FC_SESRelatedData AS datas
|
|
left join FC_SESRelatedData AS previous on previous.FO_NO = datas.PreviousFO
|
|
LEFT JOIN dbo.Base_Contractor AS con ON con.ContractorId = datas.Contractor
|
|
LEFT JOIN dbo.Sys_User AS u2 ON u2.UserId = datas.Main_Coordinator
|
|
LEFT JOIN dbo.Base_Discipline AS dis ON dis.DisciplineId = datas.DisciplineId
|
|
LEFT JOIN
|
|
(SELECT datas.FO_NO,
|
|
(CONVERT(DECIMAL(18,2),ISNULL(c.CheckedValue,0))+CONVERT(DECIMAL(18,2),ISNULL(a.Commitment,0))) AS Spending_commitment
|
|
FROM FC_SESRelatedData AS datas
|
|
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
|
|
|
|
)v ON v.FO_NO = datas.FO_NO
|
|
|
|
left join (select count(*) as InterviewTimes,FC_ID from FC_ContractManagement where FileTypeId='7' group by FC_ID) as Interview on Interview.FC_ID = datas.ID
|
|
left join (select count(*) as NCRTimes,FC_ID from FC_ContractManagement where FileTypeId='6' group by FC_ID) as NCR on NCR.FC_ID = datas.ID
|
|
left join (select count(*) as RectificationTimes,FC_ID from FC_ContractManagement where FileTypeId='10' group by FC_ID) as Rectification on Rectification.FC_ID = datas.ID
|
|
left join (select count(*) as GreenTimes,FC_ID from FC_ContractManagement where FileTypeId='5' and AuditResult='绿' group by FC_ID) as Green on Green.FC_ID = datas.ID
|
|
left join (select count(*) as YellowGreenTimes,FC_ID from FC_ContractManagement where FileTypeId='5' and AuditResult='黄绿' group by FC_ID) as YellowGreen on YellowGreen.FC_ID = datas.ID
|
|
left join (select count(*) as YellowTimes,FC_ID from FC_ContractManagement where FileTypeId='5' and AuditResult='黄' group by FC_ID) as Yellow on Yellow.FC_ID = datas.ID
|
|
left join (select count(*) as RedYellowTimes,FC_ID from FC_ContractManagement where FileTypeId='5' and AuditResult='红黄' group by FC_ID) as RedYellow on RedYellow.FC_ID = datas.ID
|
|
left join (select count(*) as RedTimes,FC_ID from FC_ContractManagement where FileTypeId='5' and AuditResult='红' group by FC_ID) as Red on Red.FC_ID = datas.ID
|
|
|
|
left join (select count(*) as InterviewTimes,FC_ID from FC_ContractManagement where FileTypeId='7' group by FC_ID) as InterviewPrevious on InterviewPrevious.FC_ID = previous.ID
|
|
left join (select count(*) as NCRTimes,FC_ID from FC_ContractManagement where FileTypeId='6' group by FC_ID) as NCRPrevious on NCRPrevious.FC_ID = previous.ID
|
|
left join (select count(*) as RectificationTimes,FC_ID from FC_ContractManagement where FileTypeId='10' group by FC_ID) as RectificationPrevious on RectificationPrevious.FC_ID = previous.ID
|
|
|
|
|
|
)t
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
|
|
|
|
|
|
|
|