Commit fe589ad8 authored by solho's avatar solho

fix:案件統計 新申請修正

fix:可視權限 exists 改用 in 做法
parent 43a36ac6
BALTER PROCEDURE [dbo].[rpt_NotFinishPoint]
......
Balter procedure [dbo].[rpt_PerformanceMonth_Flow]
......
......@@ -53,7 +53,8 @@ BEGIN
--, case when c.Emp_LeaveDate<>'' OR LEFT(CAST(ISNULL(a.hiredate,'') as char(30)),10)<>'' THEN 1 ELSE 0 END IsEmpLeave,
-- ISNULL((select value from dbo.[ufn_split](EmpCompTypeList,',') a where a.ID=1),'') as FirstEmpCompType
from [dbo].evw_Employee a
where exists(select user_id from #tempfurther tb where a.user_id=tb.user_id)
--where exists(select user_id from #tempfurther tb where a.user_id=tb.user_id)
where a.user_id in(select user_id from #tempfurther)
)
-- 取得 員工data (因員工有多個部別, 所以先抓 DISTINCT Emp_ID資料)
SELECT Emp_ID, Emp_Name, Emp_DS, Emp_DSNum, Emp_Item
......@@ -193,26 +194,29 @@ BEGIN
--select cast(@SqlString as varchar(max)); --debug query
Exec (@SqlString);
IF OBJECT_ID('tempdb..#tmpEmp', 'U') IS NOT NULL DROP TABLE #tmpEmp
IF OBJECT_ID('tempdb..#tmpTodos', 'U') IS NOT NULL DROP TABLE #tmpTodos
IF OBJECT_ID('tempdb..#tmpAG', 'U') IS NOT NULL DROP TABLE #tmpAG
IF OBJECT_ID('tempdb..#TmpResult', 'U') IS NOT NULL DROP TABLE #TmpResult
IF OBJECT_ID('tempdb..#tempfurther', 'U') IS NOT NULL DROP TABLE #tempfurther
END
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[rpt_PointFinish_YM]
@p_YM_F = N'2020-01',
@p_YM_T = N'2020-03',
@p_RptType = N'bypeople',
@p_EmpID = N'cb76971e-22d1-4f81-ade1-03c280f68cce',
@p_QryEmpItem = N'',
@p_EmpShow = N'showall',
@furtherSql ='select eemp.user_id from [dbo].[evw_Employee] eemp left join [dbo].[evw_qResult_EmpDS] eqeds on eemp.Emp_DS_TargetID=eqeds.id left join [dbo].evw_qResult_EmpItem eqeit on eemp.Emp_Item_TargetID=eqeit.id left join evw_qResult_Dept eqd on eqd.targetID=eemp.Emp_DeptNum '
SELECT 'Return Value' = @return_value
GO
--DECLARE @return_value int
--EXEC @return_value = [dbo].[rpt_PointFinish_YM]
-- @p_YM_F = N'2020-01',
-- @p_YM_T = N'2020-03',
-- @p_RptType = N'bypeople',
-- @p_EmpID = N'cb76971e-22d1-4f81-ade1-03c280f68cce',
-- @p_QryEmpItem = N'',
-- @p_EmpShow = N'showall',
-- @furtherSql ='select eemp.user_id from [dbo].[evw_Employee] eemp left join [dbo].[evw_qResult_EmpDS] eqeds on eemp.Emp_DS_TargetID=eqeds.id left join [dbo].evw_qResult_EmpItem eqeit on eemp.Emp_Item_TargetID=eqeit.id left join evw_qResult_Dept eqd on eqd.targetID=eemp.Emp_DeptNum '
--SELECT 'Return Value' = @return_value
--GO
--select * from dbo.tempdb..#TmpResult
--[dbo].rpt_PointFinish_YM '2019-06','2019-12','byDS','ninakuo','','showAll';
......
......@@ -49,31 +49,45 @@ declare
SELECT @QryEmpItem= manager_EmpItem, @QryEmpDS=manager_DeptName from evw_qResult_EmpItemLeader where manager_wadeID=@p_EmpID
END
print('1-1:'+convert(varchar(20),getdate(),126))
select DISTINCT a.USER_NAME AS Emp_ID,a.user_id, a.cn_name as Emp_Name, a.Emp_DS, a.Emp_DSNum, a.Emp_Item
--, a.Emp_ItemNum
,'' as Emp_Sort,job_status
,cast( (CASE WHEN Emp_Item='' THEN 'N' ELSE Emp_ItemNum END) as varchar(2)) as Emp_ItemNum
--,ISNULL((select value from dbo.[ufn_split](EmpCompTypeList,',') a where a.ID=1),'') as FirstEmpCompType
, case when a.job_status in ('離職','已離職') THEN 1 ELSE 0 END IsEmpLeave
into #tmpEmp
;With tmpemp0 as(
select DISTINCT a.USER_NAME AS Emp_ID,a.user_id
--, CASE WHEN Emp_ID like '12%' THEN Emp_DS2 ELSE Emp_Name END as Emp_Name
, a.cn_name as Emp_Name
, a.Emp_DS, a.Emp_DSNum, a.Emp_Item, a.Emp_ItemNum
,'' as Emp_Sort,job_status --2020/09/07
--, case when c.Emp_LeaveDate<>'' OR LEFT(CAST(ISNULL(a.hiredate,'') as char(30)),10)<>'' THEN 1 ELSE 0 END IsEmpLeave,
-- ISNULL((select value from dbo.[ufn_split](EmpCompTypeList,',') a where a.ID=1),'') as FirstEmpCompType
from [dbo].evw_Employee a
-- left join
--(
-- select LoginID,
-- (STUFF ((SELECT distinct ',' + a.EmpCompType from evw_qresult_EmpEMail a where a.LoginID=b.LoginID FOR XML PATH('')), 1, 1, N''))
-- as EmpCompTypeList
-- --STRING_AGG(EmpCompType, ',')
-- from evw_qresult_EmpEMail b
-- group by LoginID
-- ) b on a.USER_NAME=b.LoginID
where exists(select user_id from #tempfurther tb where a.user_id=tb.user_id)
)
-- 取得 員工data (因員工有多個部別, 所以先抓 DISTINCT Emp_ID資料)
SELECT Emp_ID, Emp_Name, Emp_DS, Emp_DSNum, Emp_Item
,cast( (CASE WHEN Emp_Item='' THEN 'N' ELSE Emp_ItemNum END) as varchar(2)) as Emp_ItemNum
, Emp_Sort, IsEmpLeave, FirstEmpCompType,user_id
INTO #tmpEmp
FROM (
select DISTINCT a.*
, case when a.job_status in ('離職','已離職') THEN 1 ELSE 0 END IsEmpLeave,
ISNULL((select value from dbo.[ufn_split](EmpCompTypeList,',') a where a.ID=1),'') as FirstEmpCompType
from tmpemp0 a
left join
(
select LoginID,
(STUFF ((SELECT distinct ',' + a.EmpCompType from evw_qresult_EmpEMail a where a.LoginID=b.LoginID FOR XML PATH('')), 1, 1, N''))
as EmpCompTypeList
--STRING_AGG(EmpCompType, ',')
from evw_qresult_EmpEMail b
group by LoginID
) b on a.Emp_ID=b.LoginID
--inner join [evw_qResult_Emp] c on a.user_id=c.Wade_user_ID
) a ;
print('2:'+convert(varchar(20),getdate(),126))
--return
-- 設定深圳所, 分為翼勝、紫藤
--update #tmpEmp SET Emp_DS=(CASE WHEN FirstEmpCompType='' THEN Emp_DS+'-未設定'ELSE Emp_DS+'-'+FirstEmpCompType END ),
-- Emp_DSNum=Emp_DSNum+(CASE FirstEmpCompType WHEN '翼勝' THEN 1 WHEN '紫藤' THEN 2 ELSE 3 END)
--where Emp_DS='深圳所';
update #tmpEmp SET Emp_DS=(CASE WHEN FirstEmpCompType='' THEN Emp_DS+'-未設定'ELSE Emp_DS+'-'+FirstEmpCompType END ),
Emp_DSNum=Emp_DSNum+(CASE FirstEmpCompType WHEN '翼勝' THEN 1 WHEN '紫藤' THEN 2 ELSE 3 END)
where Emp_DS='深圳所';
-- 取得 TODOS Data
print('3:'+convert(varchar(20),getdate(),126))
SELECT a.FinishedDate,
......@@ -84,7 +98,8 @@ declare
inner join #tmpEmp b on a.AssignedTo_userid=b.user_id
Inner join p_proc_info c on a.proc_id=c.proc_id
WHERE a.FinishedDate between @p_StartDate and @p_EndDate
--AND ISNULL(b.Emp_ID ,'')<>'' AND b.Emp_ID NOT IN ('0','55','56','69') -- 55=TP程序, 56=SH程序, 69=等待, 0=SZ程序
--AND ((b.user_id = @p_EmpID AND @p_EmpShow='showEmp') OR ( @p_EmpShow='showAll'))
;
print('4:'+convert(varchar(20),getdate(),126))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment