diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index c12c47d..2fb7519 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -52,5 +52,17 @@ $ProjectFileDir$ + + sqlserver.ms + true + com.microsoft.sqlserver.jdbc.SQLServerDriver + jdbc:sqlserver://172.18.96.50:1433 + + + + + + $ProjectFileDir$ + \ No newline at end of file diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml index 92c3800..5edfc00 100644 --- a/.idea/sqldialects.xml +++ b/.idea/sqldialects.xml @@ -52,6 +52,7 @@ + diff --git a/finereport/kanban/pc/人力.sql b/finereport/kanban/pc/人力.sql index a3955f2..bb09d07 100644 --- a/finereport/kanban/pc/人力.sql +++ b/finereport/kanban/pc/人力.sql @@ -82,23 +82,26 @@ FROM SELECT organ_code ,organ_name - ,comm_id - ,comm_name ,hr_organ_id ,hr_organ_name ,hr_comm_id ,hr_comm_name - FROM dim_organ_mapping_kunan_tmp - + FROM dim_organ_mapping GROUP BY organ_code ,organ_name - ,comm_id - ,comm_name ,hr_organ_id ,hr_organ_name ,hr_comm_id ,hr_comm_name + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'' AS organ_name -- erp片区名称 + ,'153' AS hr_organ_id -- hr片区编码 + ,'领悦集团总部' AS hr_organ_name -- hr片区名称 + ,'153' AS hr_comm_id -- hr项目id + ,'领悦集团总部' AS hr_comm_name -- hr项目名称 )B ON A.pq = B.hr_organ_id and A.xm = b.hr_comm_id @@ -124,24 +127,28 @@ FROM LEFT JOIN ( SELECT - organ_code - ,organ_name - ,comm_id - ,comm_name - ,hr_organ_id - ,hr_organ_name - ,hr_comm_id - ,hr_comm_name - FROM dim_organ_mapping_kunan_tmp - GROUP BY - organ_code - ,organ_name - ,comm_id - ,comm_name - ,hr_organ_id - ,hr_organ_name - ,hr_comm_id - ,hr_comm_name + organ_code + ,organ_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name + FROM dim_organ_mapping + GROUP BY + organ_code + ,organ_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'' AS organ_name -- erp片区名称 + ,'153' AS hr_organ_id -- hr片区编码 + ,'领悦集团总部' AS hr_organ_name -- hr片区名称 + ,'153' AS hr_comm_id -- hr项目id + ,'领悦集团总部' AS hr_comm_name -- hr项目名称 )B ON A.pq = B.hr_organ_id and A.xm = B.hr_comm_id @@ -180,12 +187,8 @@ SELECT ,A.xm AS xm -- 项目 ,A.zzs AS zzs -- 在职数 ,A.bzs AS bzs -- 编制数 -,A.datedif AS datedif -- 结束日期--开始日期 -,A.total_zzs AS total_zzs -- 累计在职人数 -,A.total_bzs AS total_bzs -- 累计编制人数 -,A.avg_zzs AS avg_zzs -- 平均在职人数 -,A.avg_bzs AS avg_bzs -- 平均编制人数 -,A.rate AS rate -- 满编率 + ,CASE WHEN A.bzs = 0 THEN 0 + ELSE A.zzs / A.bzs END AS rate -- 满编率 FROM ( SELECT @@ -195,38 +198,39 @@ FROM ,xm -- 项目 ,zzs -- 在职数 ,bzs -- 编制数 - ,datediff(current_date(),rq) AS datedif -- 结束日期--开始日期 - ,sum(zzs) over(PARTITION BY rq,pq,xm) AS total_zzs -- 累计在职人数 - ,sum(bzs) over(PARTITION BY rq,pq,xm) AS total_bzs -- 累计编制人数 - ,sum(zzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq) AS avg_zzs -- 平均在职人数 - ,sum(bzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq) AS avg_bzs -- 平均编制人数 - ,CASE WHEN sum(bzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq) = 0 THEN 0 - ELSE (sum(zzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq)) / (sum(bzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq)) - END as rate FROM ods_hr_view_mbl_d + where nd = left('${p_ym}',4) )A LEFT JOIN ( - SELECT - organ_code -- erp片区编码 - ,organ_name -- erp片区名称 - ,hr_organ_id -- hr片区编码 - ,hr_organ_name -- hr片区名称 - ,hr_comm_id -- hr项目id - ,hr_comm_name -- hr项目名称 - FROM dim_organ_mapping_kunan_tmp - GROUP BY - organ_code - ,organ_name - ,hr_organ_id - ,hr_organ_name - ,hr_comm_id - ,hr_comm_name + SELECT + organ_code + ,organ_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name + FROM dim_organ_mapping + GROUP BY + organ_code + ,organ_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'' AS organ_name -- erp片区名称 + ,'153' AS hr_organ_id -- hr片区编码 + ,'领悦集团总部' AS hr_organ_name -- hr片区名称 + ,'153' AS hr_comm_id -- hr项目id + ,'领悦集团总部' AS hr_comm_name -- hr项目名称 )B ON A.pq = B.hr_organ_id and A.xm = b.hr_comm_id where 1 = 1 - ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} +${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} -- ====================================== @@ -244,7 +248,7 @@ FROM ( SELECT ${IF(LEN(p_area)>0,"B.hr_comm_name", "B.hr_organ_name")} AS organ_comm - ,CASE WHEN SUM(avg_bzs) = 0 THEN 0 ELSE SUM(avg_zzs) / SUM(avg_bzs) END AS RATE + ,CASE WHEN SUM(bzs) = 0 THEN 0 ELSE SUM(zzs) / SUM(bzs) END AS RATE FROM ( SELECT @@ -252,38 +256,41 @@ FROM ,xm -- 项目 ,zzs -- 在职数 ,bzs -- 编制数 - ,rq - ,datediff(current_date(),rq) AS datedif -- 结束日期--开始日期 - ,sum(zzs) over(PARTITION BY rq,pq,xm) AS total_zzs -- 累计在职人数 - ,sum(bzs) over(PARTITION BY rq,pq,xm) AS total_bzs -- 累计编制人数 - ,sum(zzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq) AS avg_zzs -- 平均在职人数 - ,sum(bzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq) AS avg_bzs -- 平均编制人数 + ,rq -- 日期 FROM ods_hr_view_mbl_d - WHERE CONCAT(nd,'-',yd) = '${p_ym}' + WHERE rq = '${p_ym}' -- 注意 目前会有一个空的排名 是因为佳美物业未做映射 - AND pq <> '89' + AND pq NOT IN ('89','267') -- 这里剔除了佳美物业公司/悦汇发展公司 )A LEFT JOIN ( SELECT - organ_code -- erp片区编码 - ,organ_name -- erp片区名称 - ,hr_organ_id -- hr片区编码 - ,hr_organ_name -- hr片区名称 - ,hr_comm_id -- hr项目id - ,hr_comm_name -- hr项目名称 - FROM dim_organ_mapping_kunan_tmp - WHERE hr_organ_name IS NOT NULL + organ_code + ,organ_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name + FROM dim_organ_mapping GROUP BY - organ_code - ,organ_name - ,hr_organ_id - ,hr_organ_name - ,hr_comm_id - ,hr_comm_name + organ_code + ,organ_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'' AS organ_name -- erp片区名称 + ,'153' AS hr_organ_id -- hr片区编码 + ,'领悦集团总部' AS hr_organ_name -- hr片区名称 + ,'153' AS hr_comm_id -- hr项目id + ,'领悦集团总部' AS hr_comm_name -- hr项目名称 )B ON A.pq = B.hr_organ_id and A.xm = B.hr_comm_id + WHERE 1=1 ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} GROUP BY ${IF(LEN(p_area)>0,"B.hr_comm_name", "B.hr_organ_name")} @@ -316,13 +323,13 @@ FROM LEFT JOIN ( SELECT - organ_code -- erp片区编码 - ,organ_name -- erp片区名称 - ,hr_organ_id -- hr片区编码 - ,hr_organ_name -- hr片区名称 - ,hr_comm_id -- hr项目id - ,hr_comm_name -- hr项目名称 - FROM dim_organ_mapping_kunan_tmp + organ_code + ,organ_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name + FROM dim_organ_mapping GROUP BY organ_code ,organ_name @@ -330,6 +337,14 @@ LEFT JOIN ,hr_organ_name ,hr_comm_id ,hr_comm_name + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'' AS organ_name -- erp片区名称 + ,'153' AS hr_organ_id -- hr片区编码 + ,'领悦集团总部' AS hr_organ_name -- hr片区名称 + ,'153' AS hr_comm_id -- hr项目id + ,'领悦集团总部' AS hr_comm_name -- hr项目名称 )B ON A.pq = B.hr_organ_id and A.xm = B.hr_comm_id @@ -691,7 +706,7 @@ FROM ,CASE WHEN rq = LAST_DAY(CONCAT('${p_ym}','-01')) THEN zzrs ELSE 0 END AS EndOfmonth_zsrs -- 月末在职人数 FROM ods_hr_view_lzbl_d WHERE LEFT(rq,7) = '${p_ym}' - AND pq not in('89','153','267') + AND pq not in('89','267') -- 排除了: -- 89:佳美物业公司 -- 153:领悦集团总部 @@ -700,13 +715,13 @@ FROM LEFT JOIN ( SELECT - organ_code -- erp片区编码 - ,organ_name -- erp片区名称 - ,hr_organ_id -- hr片区编码 - ,hr_organ_name -- hr片区名称 - ,hr_comm_id -- hr项目id - ,hr_comm_name -- hr项目名称 - FROM dim_organ_mapping_kunan_tmp + organ_code + ,organ_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name + FROM dim_organ_mapping GROUP BY organ_code ,organ_name @@ -714,6 +729,14 @@ FROM ,hr_organ_name ,hr_comm_id ,hr_comm_name + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'' AS organ_name -- erp片区名称 + ,'153' AS hr_organ_id -- hr片区编码 + ,'领悦集团总部' AS hr_organ_name -- hr片区名称 + ,'153' AS hr_comm_id -- hr项目id + ,'领悦集团总部' AS hr_comm_name -- hr项目名称 )B ON A.pq = B.hr_organ_id and A.xm = b.hr_comm_id @@ -822,10 +845,9 @@ FROM -- 指标卡_在职人数满编率/目标值 -- ====================================== - SELECT -CASE WHEN SUM(avg_bzs) = 0 THEN 0 ELSE SUM(avg_zzs) / SUM(avg_bzs) END AS full_rate -- 满编率 -,0 AS full_rate_target +CASE WHEN SUM(bzs) = 0 THEN 0 ELSE SUM(zzs) / SUM(bzs) END AS full_rate -- 满编率 +,0 AS full_rate_target -- 满编率目标值 FROM ( SELECT @@ -833,16 +855,10 @@ FROM ,xm -- 项目 ,zzs -- 在职数 ,bzs -- 编制数 - ,rq - ,datediff(current_date(),rq) AS datedif -- 结束日期--开始日期 - ,sum(zzs) over(PARTITION BY rq,pq,xm) AS total_zzs -- 累计在职人数 - ,sum(bzs) over(PARTITION BY rq,pq,xm) AS total_bzs -- 累计编制人数 - ,sum(zzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq) AS avg_zzs -- 平均在职人数 - ,sum(bzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq) AS avg_bzs -- 平均编制人数 FROM ods_hr_view_mbl_d - WHERE CONCAT(nd,'-',yd) = '${p_ym}' + WHERE rq = '${p_ym}' -- 注意 目前会有一个空的排名 是因为佳美物业未做映射 - AND pq <> '89' + AND pq not in('89','267') -- 排除了佳美、悦汇 )A LEFT JOIN ( @@ -853,8 +869,7 @@ LEFT JOIN ,hr_organ_name -- hr片区名称 ,hr_comm_id -- hr项目id ,hr_comm_name -- hr项目名称 - FROM dim_organ_mapping_kunan_tmp - WHERE hr_organ_name IS NOT NULL + FROM dim_organ_mapping GROUP BY organ_code ,organ_name @@ -862,9 +877,36 @@ LEFT JOIN ,hr_organ_name ,hr_comm_id ,hr_comm_name + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'' AS organ_name -- erp片区名称 + ,'153' AS hr_organ_id -- hr片区编码 + ,'领悦集团总部' AS hr_organ_name -- hr片区名称 + ,'153' AS hr_comm_id -- hr项目id + ,'领悦集团总部' AS hr_comm_name -- hr项目名称 )B ON A.pq = B.hr_organ_id and A.xm = B.hr_comm_id +LEFT JOIN +( + SELECT + organ_code -- erp片区code + ,organ_name -- erp片区名称 + ,comm_id -- 项目id + ,comm_name -- 项目名称 + ,ym -- 日期(yyyy-MM格式) + ,full_rate_target -- 满编率目标 + ,lz_rate_target -- 离职率目标 + ,lc_fee_rate_target -- 人力成本费率目标 + ,ac_fee_rate_target -- 行政成本费率目标 + FROM ods_hr_collection_target -- 目标值收集 + WHERE ym = '${p_ym}' + +)C +ON A.pq = C.organ_code +AND A.xm = c.comm_id +WHERE 1 = 1 ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} @@ -878,7 +920,7 @@ SELECT CASE WHEN ((SUM(StartOfmonth_zzrs) + SUM(EndOfmonth_zsrs)) / 2) = 0 THEN 0 ELSE SUM(zlzrs) / ((SUM(StartOfmonth_zzrs) + SUM(EndOfmonth_zsrs)) / 2) END AS lz_rate -,0 AS lz_rate_target +,'0.002' AS lz_rate_target FROM ( SELECT @@ -897,7 +939,7 @@ FROM ,CASE WHEN rq = LAST_DAY(CONCAT('${p_ym}','-01')) THEN zzrs ELSE 0 END AS EndOfmonth_zsrs -- 月末在职人数 FROM ods_hr_view_lzbl_d WHERE LEFT(rq,7) = '${p_ym}' - AND pq not in('89','153','267') + AND pq not in('89','267') -- 排除了佳美、悦汇 -- 排除了: -- 89:佳美物业公司 -- 153:领悦集团总部 @@ -906,20 +948,28 @@ FROM LEFT JOIN ( SELECT - organ_code -- erp片区编码 - ,organ_name -- erp片区名称 - ,hr_organ_id -- hr片区编码 - ,hr_organ_name -- hr片区名称 - ,hr_comm_id -- hr项目id - ,hr_comm_name -- hr项目名称 - FROM dim_organ_mapping_kunan_tmp + organ_code -- erp片区编码 + ,organ_name -- erp片区名称 + ,hr_organ_id -- hr片区编码 + ,hr_organ_name -- hr片区名称 + ,hr_comm_id -- hr项目id + ,hr_comm_name -- hr项目名称 + FROM dim_organ_mapping GROUP BY - organ_code - ,organ_name - ,hr_organ_id - ,hr_organ_name - ,hr_comm_id - ,hr_comm_name + organ_code + ,organ_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'' AS organ_name -- erp片区名称 + ,'153' AS hr_organ_id -- hr片区编码 + ,'领悦集团总部' AS hr_organ_name -- hr片区名称 + ,'153' AS hr_comm_id -- hr项目id + ,'领悦集团总部' AS hr_comm_name -- hr项目名称 )B ON A.pq = B.hr_organ_id and A.xm = b.hr_comm_id diff --git a/finereport/tianbao/5_manpower/人力看板目标值填报.sql b/finereport/tianbao/5_manpower/人力看板目标值填报.sql index c48ae52..757e81e 100644 --- a/finereport/tianbao/5_manpower/人力看板目标值填报.sql +++ b/finereport/tianbao/5_manpower/人力看板目标值填报.sql @@ -28,8 +28,10 @@ SELECT ,ac_fee_rate_target -- 行政成本费率目标 FROM ods_hr_collection_target WHERE ym = '${p_ym}' +; + +TRUNCATE TABLE ods_hr_collection_target; - - VALUE("dict_片区",1,2,B2) - VALUE("dict_片区_项目",3,4,C2) \ No newline at end of file +-- VALUE("dict_片区",1,2,B2) +-- VALUE("dict_片区_项目",3,4,C2) \ No newline at end of file diff --git a/finereport/xiazuan/5_manpower/2_员工满编率明细.sql b/finereport/xiazuan/5_manpower/2_员工满编率明细.sql index 23c9078..0a962f5 100644 --- a/finereport/xiazuan/5_manpower/2_员工满编率明细.sql +++ b/finereport/xiazuan/5_manpower/2_员工满编率明细.sql @@ -15,7 +15,7 @@ FROM ,B.hr_organ_name AS hr_organ_name ,SUM(A.bzs) AS bzs ,SUM(A.zzs) AS zzs - ,CASE WHEN SUM(avg_bzs) = 0 THEN 0 ELSE SUM(avg_zzs) / SUM(avg_bzs) END AS RATE + ,CASE WHEN SUM(bzs) = 0 THEN 0 ELSE SUM(zzs) / SUM(bzs) END AS RATE FROM ( SELECT @@ -24,15 +24,10 @@ FROM ,zzs -- 在职数 ,bzs -- 编制数 ,rq - ,datediff(current_date(),rq) AS datedif -- 结束日期--开始日期 - ,sum(zzs) over(PARTITION BY rq,pq,xm) AS total_zzs -- 累计在职人数 - ,sum(bzs) over(PARTITION BY rq,pq,xm) AS total_bzs -- 累计编制人数 - ,sum(zzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq) AS avg_zzs -- 平均在职人数 - ,sum(bzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq) AS avg_bzs -- 平均编制人数 FROM ods_hr_view_mbl_d - WHERE CONCAT(nd,'-',yd) = '${p_ym}' + WHERE rq = '${p_ym}' -- 注意 目前会有一个空的排名 是因为佳美物业未做映射 - AND pq <> '89' + AND pq NOT IN('89','267') )A LEFT JOIN ( @@ -43,7 +38,7 @@ FROM ,hr_organ_name -- hr片区名称 ,hr_comm_id -- hr项目id ,hr_comm_name -- hr项目名称 - FROM dim_organ_mapping_kunan_tmp + FROM dim_organ_mapping WHERE hr_organ_name IS NOT NULL GROUP BY organ_code @@ -52,9 +47,20 @@ FROM ,hr_organ_name ,hr_comm_id ,hr_comm_name + + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'' AS organ_name -- erp片区名称 + ,'153' AS hr_organ_id -- hr片区编码 + ,'领悦集团总部' AS hr_organ_name -- hr片区名称 + ,'153' AS hr_comm_id -- hr项目id + ,'领悦集团总部' AS hr_comm_name -- hr项目名称 + FROM dual )B - ON A.pq = B.hr_organ_id + ON A.pq = B.hr_organ_id and A.xm = B.hr_comm_id + WHERE 1=1 ${IF(LEN(p_area)>0," AND B.organ_code IN ('" + p_area +"')", "")} GROUP BY B.hr_comm_name diff --git a/finereport/xiazuan/5_manpower/3_员工离职率明细.sql b/finereport/xiazuan/5_manpower/3_员工离职率明细.sql index f1353d4..af22985 100644 --- a/finereport/xiazuan/5_manpower/3_员工离职率明细.sql +++ b/finereport/xiazuan/5_manpower/3_员工离职率明细.sql @@ -1,6 +1,3 @@ - - - SELECT ${IF(LEN(p_area)>0,"B.hr_comm_name", "hr_organ_name")} AS hr_organ_name ,CASE WHEN ((SUM(StartOfmonth_zzrs) + SUM(EndOfmonth_zsrs)) / 2) = 0 THEN 0 @@ -29,7 +26,7 @@ FROM ,CASE WHEN rq = LAST_DAY(CONCAT('${p_ym}','-01')) THEN zzrs ELSE 0 END AS EndOfmonth_zsrs -- 月末在职人数 FROM ods_hr_view_lzbl_d WHERE LEFT(rq,7) = '${p_ym}' - AND pq not in('89','153','267') + AND pq not in('89','267') -- 排除了: -- 89:佳美物业公司 -- 153:领悦集团总部 @@ -44,7 +41,7 @@ LEFT JOIN ,hr_organ_name -- hr片区名称 ,hr_comm_id -- hr项目id ,hr_comm_name -- hr项目名称 - FROM dim_organ_mapping_kunan_tmp + FROM dim_organ_mapping GROUP BY organ_code ,organ_name @@ -52,6 +49,15 @@ LEFT JOIN ,hr_organ_name ,hr_comm_id ,hr_comm_name + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'' AS organ_name -- erp片区名称 + ,'153' AS hr_organ_id -- hr片区编码 + ,'领悦集团总部' AS hr_organ_name -- hr片区名称 + ,'153' AS hr_comm_id -- hr项目id + ,'领悦集团总部' AS hr_comm_name -- hr项目名称 + FROM dual )B ON A.pq = B.hr_organ_id and A.xm = b.hr_comm_id @@ -59,3 +65,56 @@ where 1 = 1 ${IF(LEN(p_area)>0," AND B.organ_code IN ('" + p_area +"')", "")} GROUP BY ${IF(LEN(p_area)>0,"B.hr_comm_name", "hr_organ_name")} + +-- 离职原因占比 + +SELECT + A.lzlx AS lzlx -- 离职类型id + ,A.lzlxname AS lzlxname -- 离职类型名称 + ,A.lzyy AS lzyy -- 离职原因id + ,A.lzyyname AS lzyyname -- 离职原因名称 + ,A.lzrs AS lzrs -- 离职人数 +FROM + ( + SELECT + pq -- 片区 + ,xm -- 项目 + ,lzlx -- 离职类型id + ,lzlxname -- 离职类型名称 + ,lzyy -- 离职原因id + ,lzyyname -- 离职原因名称 + ,lzrs -- 离职人数 + FROM ods_hr_view_lzrs_fl_d + WHERE LEFT(rq,7) = '${p_ym}' + )A + LEFT JOIN + ( + SELECT + organ_code -- erp片区编码 + ,organ_name -- erp片区名称 + ,hr_organ_id -- hr片区编码 + ,hr_organ_name -- hr片区名称 + ,hr_comm_id -- hr项目id + ,hr_comm_name -- hr项目名称 + FROM dim_organ_mapping + GROUP BY + organ_code + ,organ_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'' AS organ_name -- erp片区名称 + ,'153' AS hr_organ_id -- hr片区编码 + ,'领悦集团总部' AS hr_organ_name -- hr片区名称 + ,'153' AS hr_comm_id -- hr项目id + ,'领悦集团总部' AS hr_comm_name -- hr项目名称 +)B + ON A.pq = B.hr_organ_id + and A.xm = B.hr_comm_id +where 1 = 1 + ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} + diff --git a/finereport/xiazuan/5_manpower/5_在职人员明细.sql b/finereport/xiazuan/5_manpower/5_在职人员明细.sql index 3c13b62..39da933 100644 --- a/finereport/xiazuan/5_manpower/5_在职人员明细.sql +++ b/finereport/xiazuan/5_manpower/5_在职人员明细.sql @@ -21,11 +21,17 @@ LEFT JOIN organ_code ,hr_organ_id ,hr_comm_id - FROM dim_organ_mapping_kunan_tmp + FROM dim_organ_mapping GROUP BY organ_code ,hr_organ_id ,hr_comm_id + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'153' AS hr_organ_id -- hr片区编码 + ,'153' AS hr_comm_id -- hr项目id + FROM dual )B ON A.pq = B.hr_organ_id @@ -59,11 +65,17 @@ FROM organ_code ,hr_organ_id ,hr_comm_id - FROM dim_organ_mapping_kunan_tmp + FROM dim_organ_mapping GROUP BY organ_code ,hr_organ_id ,hr_comm_id + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'153' AS hr_organ_id -- hr片区编码 + ,'153' AS hr_comm_id -- hr项目id + FROM dual )B ON A.pq = B.hr_organ_id @@ -100,11 +112,17 @@ FROM organ_code ,hr_organ_id ,hr_comm_id - FROM dim_organ_mapping_kunan_tmp + FROM dim_organ_mapping GROUP BY organ_code ,hr_organ_id ,hr_comm_id + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'153' AS hr_organ_id -- hr片区编码 + ,'153' AS hr_comm_id -- hr项目id + FROM dual )B ON A.pq = B.hr_organ_id @@ -139,11 +157,17 @@ FROM organ_code ,hr_organ_id ,hr_comm_id - FROM dim_organ_mapping_kunan_tmp + FROM dim_organ_mapping GROUP BY organ_code ,hr_organ_id ,hr_comm_id + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'153' AS hr_organ_id -- hr片区编码 + ,'153' AS hr_comm_id -- hr项目id + FROM dual )B ON A.pq = B.hr_organ_id @@ -181,12 +205,17 @@ FROM organ_code ,hr_organ_id ,hr_comm_id - FROM dim_organ_mapping_kunan_tmp + FROM dim_organ_mapping GROUP BY organ_code ,hr_organ_id ,hr_comm_id - + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'153' AS hr_organ_id -- hr片区编码 + ,'153' AS hr_comm_id -- hr项目id + FROM dual )B ON A.pq = B.hr_organ_id and A.xm = b.hr_comm_id @@ -222,11 +251,17 @@ FROM organ_code ,hr_organ_id ,hr_comm_id - FROM dim_organ_mapping_kunan_tmp + FROM dim_organ_mapping GROUP BY organ_code ,hr_organ_id ,hr_comm_id + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'153' AS hr_organ_id -- hr片区编码 + ,'153' AS hr_comm_id -- hr项目id + FROM dual )B ON A.pq = B.hr_organ_id @@ -234,6 +269,84 @@ FROM where 1 = 1 ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} GROUP BY zytx +; +-- ====================================== +-- 人员明细 +-- ====================================== +SELECT + A.pq AS pq -- 片区 + ,B.hr_organ_name AS hr_organ_name + ,A.xm AS xm -- 项目 + ,B.hr_comm_name AS hr_comm_name + ,A.bm AS bm -- 部门id + ,A.bmmc AS bmmc -- 部门名称 + ,A.gwid AS gwid -- 岗位id + ,A.gwmc AS gwmc -- 岗位名称 + ,A.id AS id -- 人员id + ,A.workcode AS workcode -- 工号 + ,A.lastname AS lastname -- 姓名 + ,A.nl AS nl -- 年龄 + ,A.sl AS sl -- 司龄 + ,A.zwid AS zwid -- 职务角色id + ,A.zwmc AS zwmc -- 职务角色名称 + ,A.zytxid AS zytxid -- 专业条线id + ,A.zytxmc AS zytxmc -- 专业条线名称 + ,A.zycjid AS zycjid -- 职员层级id + ,A.zycjname AS zycjname -- 职员层级名称 +FROM +( + SELECT + pq -- 片区 + ,xm -- 项目 + ,bm -- 部门id + ,bmmc -- 部门名称 + ,gwid -- 岗位id + ,gwmc -- 岗位名称 + ,id -- 人员id + ,workcode -- 工号 + ,lastname -- 姓名 + ,nl -- 年龄 + ,sl -- 司龄 + ,zwid -- 职务角色id + ,zwmc -- 职务角色名称 + ,zytxid -- 专业条线id + ,zytxmc -- 专业条线名称 + ,zycjid -- 职员层级id + ,zycjname -- 职员层级名称 + FROM ods_hr_view_zaizhi_user_d + WHERE LEFT(ny,7) = '${p_ym}' +)A +LEFT JOIN +( + SELECT + organ_code -- erp片区编码 + ,organ_name -- erp片区名称 + ,hr_organ_id -- hr片区编码 + ,hr_organ_name -- hr片区名称 + ,hr_comm_id -- hr项目id + ,hr_comm_name -- hr项目名称 + FROM dim_organ_mapping + GROUP BY + organ_code + ,organ_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name + UNION ALL + SELECT + '0000' AS organ_code -- erp片区编码 + ,'' AS organ_name -- erp片区名称 + ,'153' AS hr_organ_id -- hr片区编码 + ,'领悦集团总部' AS hr_organ_name -- hr片区名称 + ,'153' AS hr_comm_id -- hr项目id + ,'领悦集团总部' AS hr_comm_name -- hr项目名称 + FROM dual +)B +ON A.pq = B.hr_organ_id +and A.xm = b.hr_comm_id +where 1 = 1 +${IF(LEN(p_area)>0," AND B.organ_code IN ('"+ p_area +"')", "")} \ No newline at end of file