CNCEC_SUBQHSE_WUHUAN/DataBase/版本日志/SGGLDB_WH_V2025-03-25-xiaj.sql

80 lines
4.6 KiB
Transact-SQL

--关键事项
ALTER PROCEDURE [dbo].[Sp_GJSX_getlist]
-- Add the parameters for the stored procedure here
@ProjectId nvarchar(max),
@sql_where varchar(max)
AS
BEGIN
IF EXISTS(select * from tempdb..sysobjects where id=object_id('tempdb..#GJSX_List'))
BEGIN
DROP TABLE #GJSX_List
END
DECLARE @Sql NVARCHAR(max)
select * into #GJSX_List
from(
select
a.GJSXID
,a.ProjectId
,a.detail
,b.username
,a.createDate
,User_ReceiveID=STUFF(( SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%',',' +a.User_ReceiveID + ',') >0 FOR XML PATH('')), 1, 1,'')
, CNProfessionalId=STUFF(( SELECT ',' + Base_CNProfessional.ProfessionalName FROM dbo.Base_CNProfessional where PATINDEX('%,' + RTRIM(Base_CNProfessional.CNProfessionalId) + ',%',',' +a.CNProfessional_ID + ',') >0 FOR XML PATH('')), 1, 1,'')
,Base_Project.ProjectName
,Base_Unit.unitname
,a.CloseDate
--,a.state
--,case a.state when 2 then '正在进行' when 3 then '正在进行' when 0 then '已关闭' when 1 then '编辑中' end as stateStr
,case a.state when 2 then (case when GETDATE()>a.CompleteDate then 4 else a.state end) when 3 then (case when GETDATE()>a.CompleteDate then 4 else a.state end) when 0 then a.state when 1 then a.state end as state
,case a.state when 2 then (case when GETDATE()>a.CompleteDate then '已超期' else '正在进行' end) when 3 then (case when GETDATE()>a.CompleteDate then '已超期' else '正在进行' end) when 0 then '已关闭' when 1 then '编辑中' end as stateStr
,QuestionTypeName=STUFF(( SELECT ',' + Base_QuestionType.QuestionTypeName FROM dbo.Base_QuestionType where PATINDEX('%,' + RTRIM(Base_QuestionType.QuestionTypeID) + ',%',',' +a.QuestionTypeID + ',') >0 FOR XML PATH('')), 1, 1,'')
,GJSXTypeName = STUFF((SELECT ',' + Base_GJSXType.GJSXTypeName FROM dbo.Base_GJSXType where PATINDEX('%,' + RTRIM(Base_GJSXType.GJSXTypeID) + ',%', ',' + a.GJSXTypeID + ',') > 0 FOR XML PATH('')), 1, 1,'')
,a.IsManypeople
,a.CompleteDate
,a.AttachUrl
,user_Acceptance =STUFF(( SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%',',' +a.user_Acceptance + ',') >0 FOR XML PATH('')), 1, 1,'')
from GJSX as a left join Sys_User as b on a.UserId=b.UserId
left join [dbo].[Base_Project] on a.ProjectId =Base_Project.ProjectId
left join [dbo].[Base_Unit] on a.UnitId=Base_Unit.UnitId
--left join [dbo].[Base_QuestionType] on a.QuestionTypeID=Base_QuestionType.QuestionTypeID
--left join[dbo].[Base_GJSXType] on a.GJSXTypeID = Base_GJSXType.GJSXTypeID
where a.ProjectId=@ProjectId
) as a
set @Sql ='select * from #GJSX_List where 1=1 ' +@sql_where +' order by state desc,GJSXID asc'
exec(@Sql)
--select
--a.GJSXID
--,a.ProjectId
--,a.detail
--,b.username
--,a.createDate
--,User_ReceiveID=STUFF(( SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%',',' +a.User_ReceiveID + ',') >0 FOR XML PATH('')), 1, 1,'')
--, CNProfessionalId=STUFF(( SELECT ',' + Base_CNProfessional.ProfessionalName FROM dbo.Base_CNProfessional where PATINDEX('%,' + RTRIM(Base_CNProfessional.CNProfessionalId) + ',%',',' +a.CNProfessional_ID + ',') >0 FOR XML PATH('')), 1, 1,'')
--,Base_Project.ProjectName
--,Base_Unit.unitname
--,a.CloseDate
--,case a.state when 2 then '正在进行' when 3 then '待办' when 0 then '已关闭' when 1 then '开放' end as state
--,QuestionTypeName=STUFF(( SELECT ',' + Base_QuestionType.QuestionTypeName FROM dbo.Base_QuestionType where PATINDEX('%,' + RTRIM(Base_QuestionType.QuestionTypeID) + ',%',',' +a.QuestionTypeID + ',') >0 FOR XML PATH('')), 1, 1,'')
--,GJSXTypeName = STUFF((SELECT ',' + Base_GJSXType.GJSXTypeName FROM dbo.Base_GJSXType where PATINDEX('%,' + RTRIM(Base_GJSXType.GJSXTypeID) + ',%', ',' + a.GJSXTypeID + ',') > 0 FOR XML PATH('')), 1, 1,'')
--,a.IsManypeople
--,a.CompleteDate
--,a.AttachUrl
--,user_Acceptance =STUFF(( SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%',',' +a.user_Acceptance + ',') >0 FOR XML PATH('')), 1, 1,'')
--from GJSX as a left join Sys_User as b on a.UserId=b.UserId
--left join [dbo].[Base_Project] on a.ProjectId =Base_Project.ProjectId
--left join [dbo].[Base_Unit] on a.UnitId=Base_Unit.UnitId
----left join [dbo].[Base_QuestionType] on a.QuestionTypeID=Base_QuestionType.QuestionTypeID
----left join[dbo].[Base_GJSXType] on a.GJSXTypeID = Base_GJSXType.GJSXTypeID
--where a.ProjectId=@ProjectId
END
GO