阈值填报+看板离职率取数优化

This commit is contained in:
yangkunan 2024-12-10 19:51:51 +08:00
parent 7c3ffcb24d
commit fb6a2b6da6
6 changed files with 56 additions and 261 deletions

View File

@ -32,6 +32,8 @@
<file url="file://$PROJECT_DIR$/dw/dws/dws_operation_subcompany_plan_level_d.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/dw/dws/dws_operation_subcompany_plan_level_d.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/ods/ods_cost_adjust_data_d.sql" dialect="Oracle" /> <file url="file://$PROJECT_DIR$/dw/ods/ods_cost_adjust_data_d.sql" dialect="Oracle" />
<file url="file://$PROJECT_DIR$/dw/ods/ods_cost_budget_data_d.sql" dialect="Oracle" /> <file url="file://$PROJECT_DIR$/dw/ods/ods_cost_budget_data_d.sql" dialect="Oracle" />
<file url="file://$PROJECT_DIR$/finereport/kanban/pc/商业.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/finereport/tianbao/2_operation/住服比、接房率阈值填报.sql" dialect="MySQL" />
<file url="PROJECT" dialect="MySQL" /> <file url="PROJECT" dialect="MySQL" />
</component> </component>
</project> </project>

View File

@ -309,7 +309,7 @@ CASE WHEN SUM(zzrs) = 0 THEN 0
FROM FROM
( (
SELECT SELECT
SUM(A1.zzrs) AS zzrs SUM(CASE WHEN A1.ny = '${p_ym}' THEN A1.zzrs ELSE 0 END) AS zzrs -- 在职人数
,SUM(A1.zlzrs) AS zlzrs ,SUM(A1.zlzrs) AS zlzrs
FROM FROM
( (
@ -447,7 +447,8 @@ FROM
)T1 )T1
GROUP BY T1.ym GROUP BY T1.ym
)A1 )A1
WHERE A1.ny = '${p_ym}' WHERE left(A1.ny,4) = '${left(p_ym,4)}'
AND A1.ny <= '${p_ym}'
)A )A
UNION ALL UNION ALL
SELECT SELECT
@ -475,7 +476,7 @@ FROM
( (
SELECT SELECT
A1.pq AS pq A1.pq AS pq
,A1.zzrs AS zzrs ,CASE WHEN A1.ny = '${p_ym}' THEN A1.zzrs ELSE 0 END AS zzrs -- 在职人数
,A1.zlzrs AS zlzrs ,A1.zlzrs AS zlzrs
FROM FROM
( (
@ -601,7 +602,8 @@ FROM
FROM ods_hr_history_erp_date) T1 FROM ods_hr_history_erp_date) T1
GROUP BY T1.ym, T1.organ_code GROUP BY T1.ym, T1.organ_code
)A1 )A1
WHERE A1.ny = '${p_ym}' WHERE left(A1.ny,4) = '${left(p_ym,4)}'
AND A1.ny <= '${p_ym}'
)A )A
LEFT JOIN LEFT JOIN
( (
@ -1418,7 +1420,7 @@ FROM
SELECT SELECT
T.pq as pq T.pq as pq
,SUM(T.zzrs) AS zzrs ,SUM(CASE WHEN T.ym = '${p_ym}' THEN T.zzrs ELSE 0 END) AS zzrs -- 在职人数
,SUM(T.zlzrs) AS zlzrs ,SUM(T.zlzrs) AS zlzrs
FROM FROM
( (
@ -1553,7 +1555,8 @@ FROM
)T1 )T1
GROUP BY T1.organ_code ,T1.ym GROUP BY T1.organ_code ,T1.ym
)T )T
WHERE LEFT(ym,7) = '${p_ym}' WHERE left(T.ym,4) = '${left(p_ym,4)}'
AND T.ym <= '${p_ym}'
AND pq not in('89','267') -- 排除了佳美、悦汇 AND pq not in('89','267') -- 排除了佳美、悦汇
group by T.pq group by T.pq
)A )A
@ -1618,7 +1621,7 @@ FROM
SELECT SELECT
T.pq as pq T.pq as pq
,T.xm AS xm ,T.xm AS xm
,SUM(T.zzrs) AS zzrs ,SUM(CASE WHEN T.ym = '${p_ym}' THEN T.zzrs ELSE 0 END) AS zzrs -- 在职人数
,sum(T.zlzrs) AS zlzrs ,sum(T.zlzrs) AS zlzrs
FROM FROM
( (
@ -1753,7 +1756,8 @@ FROM
)T1 )T1
GROUP BY T1.organ_code, T1.comm_id ,T1.ym GROUP BY T1.organ_code, T1.comm_id ,T1.ym
)T )T
WHERE LEFT(ym,7) = '${p_ym}' WHERE left(T.ym,4) = '${left(p_ym,4)}'
AND T.ym <= '${p_ym}'
AND pq not in('89','267') -- 排除了佳美、悦汇 AND pq not in('89','267') -- 排除了佳美、悦汇
AND (pq is NOT NULL OR xm IS NOT NULL ) AND (pq is NOT NULL OR xm IS NOT NULL )
group by T.pq,T.xm group by T.pq,T.xm

View File

@ -1553,7 +1553,7 @@ FROM
( (
SELECT SELECT
T.pq as pq T.pq as pq
,SUM(T.zzrs) AS zzrs ,SUM(CASE WHEN T.ym = '${p_ym}' THEN T.zzrs ELSE 0 END) AS zzrs -- 在职人数
,SUM(T.zlzrs) AS zlzrs ,SUM(T.zlzrs) AS zlzrs
FROM FROM
( (
@ -1688,7 +1688,8 @@ FROM
)T1 )T1
GROUP BY T1.organ_code ,T1.ym GROUP BY T1.organ_code ,T1.ym
)T )T
WHERE LEFT(ym,7) = '${p_ym}' WHERE left(T.ym,4) = '${left(p_ym,4)}'
AND T.ym <= '${p_ym}'
AND pq not in('89','267') -- 排除了佳美、悦汇 AND pq not in('89','267') -- 排除了佳美、悦汇
group by T.pq group by T.pq
)A )A
@ -1760,7 +1761,7 @@ FROM
SELECT SELECT
T.pq as pq T.pq as pq
,T.xm AS xm ,T.xm AS xm
,SUM(T.zzrs) AS zzrs ,SUM(CASE WHEN T.ym = '${p_ym}' THEN T.zzrs ELSE 0 END) AS zzrs -- 在职人数
,sum(T.zlzrs) AS zlzrs ,sum(T.zlzrs) AS zlzrs
FROM FROM
( (
@ -1895,7 +1896,8 @@ FROM
)T1 )T1
GROUP BY T1.organ_code, T1.comm_id ,T1.ym GROUP BY T1.organ_code, T1.comm_id ,T1.ym
)T )T
WHERE LEFT(ym,7) = '${p_ym}' WHERE left(T.ym,4) = '${left(p_ym,4)}'
AND T.ym <= '${p_ym}'
AND pq not in('89','267') -- 排除了佳美、悦汇 AND pq not in('89','267') -- 排除了佳美、悦汇
AND (pq is NOT NULL OR xm IS NOT NULL ) AND (pq is NOT NULL OR xm IS NOT NULL )
group by T.pq,T.xm group by T.pq,T.xm
@ -2214,7 +2216,7 @@ CASE WHEN SUM(zzrs) = 0 THEN 0
FROM FROM
( (
SELECT SELECT
SUM(A1.zzrs) AS zzrs SUM(CASE WHEN A1.ny = '${p_ym}' THEN A1.zzrs ELSE 0 END) AS zzrs -- 在职人数
,SUM(A1.zlzrs) AS zlzrs ,SUM(A1.zlzrs) AS zlzrs
FROM FROM
( (
@ -2348,7 +2350,8 @@ FROM
)T1 )T1
GROUP BY T1.ym GROUP BY T1.ym
)A1 )A1
WHERE A1.ny = '${p_ym}' WHERE left(A1.ny,4) = '${left(p_ym,4)}'
AND A1.ny <= '${p_ym}'
)A )A
UNION ALL UNION ALL
SELECT SELECT
@ -2376,8 +2379,8 @@ FROM
( (
SELECT SELECT
A1.pq AS pq A1.pq AS pq
,A1.zzrs AS zzrs ,SUM(CASE WHEN A1.ny = '${p_ym}' THEN A1.zzrs ELSE 0 END) AS zzrs -- 在职人数
,A1.zlzrs AS zlzrs ,SUM(A1.zlzrs) AS zlzrs
FROM FROM
( (
SELECT SELECT
@ -2502,7 +2505,9 @@ FROM
FROM ods_hr_history_erp_date) T1 FROM ods_hr_history_erp_date) T1
GROUP BY T1.ym, T1.organ_code GROUP BY T1.ym, T1.organ_code
)A1 )A1
WHERE A1.ny = '${p_ym}' WHERE left(A1.ny,4) = '${left(p_ym,4)}'
AND A1.ny <= '${p_ym}'
group by A1.pq
)A )A
LEFT JOIN LEFT JOIN
( (

View File

@ -0,0 +1,16 @@
DROP TABLE ods_operation_live_pick;
CREATE TABLE ods_operation_live_pick (
exce_thrd_type varchar(50) COMMENT '异常阈值类型'
,outliers decimal(8,4) COMMENT '异常阈值'
,update_by varchar(50) COMMENT '数据更新人'
,update_time datetime COMMENT '数据更新时间'
-- ,PRIMARY KEY (contract_code)
) COMMENT='住服比接房率阈值填报';
select * from ods_operation_live_pick;
select exce_thrd_type,outliers from ods_operation_live_pick;
SELECT outliers FROM ods_operation_live_pick WHERE exce_thrd_type = '住服比';

View File

@ -12,16 +12,23 @@ ${IF(LEN(p_area)>0,"B.hr_comm_name", "hr_organ_name")} AS hr_organ_name
,SUM(A.StartOfmonth_zzrs) AS StartOfmonth_zzrs -- 月初在职人数 ,SUM(A.StartOfmonth_zzrs) AS StartOfmonth_zzrs -- 月初在职人数
,SUM(A.EndOfmonth_zsrs) AS EndOfmonth_zsrs -- 月末在职人数 ,SUM(A.EndOfmonth_zsrs) AS EndOfmonth_zsrs -- 月末在职人数
,sum(A.zdlzrs) AS zdlzrs -- 主动离职人数 ,sum(A.zdlzrs) AS zdlzrs -- 主动离职人数
,CASE WHEN SUM(A.zzrs) = 0 THEN 0 ELSE sum(A.zdlzrs) / SUM(A.zzrs) END AS zdlz_rate ,CASE WHEN SUM(A.zzrs) = 0 THEN 0 ELSE sum(A.zdlzrs) / SUM(A.zzrs) END AS zdlz_rate -- 主动离职率
,sum(A.bdlzrs) AS bdlzrs -- 当天被动离职人数 ,sum(A.bdlzrs) AS bdlzrs -- 当天被动离职人数
,CASE WHEN SUM(A.zzrs) = 0 THEN 0 ELSE sum(A.bdlzrs) / SUM(A.zzrs) END AS bdlz_rate ,CASE WHEN SUM(A.zzrs) = 0 THEN 0 ELSE sum(A.bdlzrs) / SUM(A.zzrs) END AS bdlz_rate -- 被动离职率
,SUM(A.zlzrs) AS zlzrs -- 总离职人数 ,SUM(A.zlzrs) AS zlzrs -- 总离职人数
,CASE WHEN SUM(A.zzrs) = 0 THEN 0 ELSE sum(A.zlzrs) / SUM(A.zzrs) END AS lz_rate ,CASE WHEN SUM(A.zzrs) = 0 THEN 0 ELSE sum(A.zlzrs) / SUM(A.zzrs) END AS lz_rate -- 离职率
FROM FROM
( (
SELECT SELECT
pq, xm, ym, StartOfmonth_zzrs, EndOfmonth_zsrs, zdlzrs, bdlzrs, zlzrs pq -- 片区
,(StartOfmonth_zzrs + EndOfmonth_zsrs) / 2 AS zzrs ,xm -- 项目
,ym -- 年月
,StartOfmonth_zzrs -- 月初在职人数
,EndOfmonth_zsrs -- 月末在职人数
,zdlzrs -- 主动离职人数
,bdlzrs -- 被动离职人数
,zlzrs -- 总离职人数
,(StartOfmonth_zzrs + EndOfmonth_zsrs) / 2 AS zzrs -- 平均在职人数
FROM FROM
( (
SELECT SELECT

View File

@ -2,47 +2,6 @@
-- 年龄分布 -- 年龄分布
-- ====================================== -- ======================================
SELECT
nld
,sum(sl) AS sl
FROM
(
SELECT
zb -- 总部
,pq -- 片区
,xm -- 项目
,nld -- 年龄段
,sl -- 数量
FROM ods_hr_view_nld_d
)A
LEFT JOIN
(
SELECT
organ_code
,hr_organ_id
,hr_comm_id
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
where 1 = 1
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
GROUP BY nld
-- 年龄分布 -- 年龄分布
-- 年龄30岁30岁≤年龄40岁40岁≤年龄50岁50岁≤年龄60岁60岁≤年龄65岁年龄≥65岁 -- 年龄30岁30岁≤年龄40岁40岁≤年龄50岁50岁≤年龄60岁60岁≤年龄65岁年龄≥65岁
with one_to_many AS( with one_to_many AS(
@ -127,44 +86,6 @@ GROUP BY
-- 司龄分布 -- 司龄分布
-- ====================================== -- ======================================
SELECT
sld
,sum(sl) AS sl
FROM
(
SELECT
zb -- 总部
,pq -- 片区
,xm -- 项目
,sld -- 司龄段
,sl -- 数量
FROM ods_hr_view_sld_d
)A
LEFT JOIN
(
SELECT
organ_code
,hr_organ_id
,hr_comm_id
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
where 1 = 1
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
GROUP BY sld
-- 司龄3个月内3个月≤司龄1年1年≤司龄3年3年≤司龄5年5年≤司龄10年10年≤司龄15年司龄≥15年 -- 司龄3个月内3个月≤司龄1年1年≤司龄3年3年≤司龄5年5年≤司龄10年10年≤司龄15年司龄≥15年
with one_to_many AS( with one_to_many AS(
SELECT SELECT
@ -250,47 +171,6 @@ GROUP BY
-- 学历分布 -- 学历分布
-- ====================================== -- ======================================
SELECT
xl
,sum(sl) AS sl
FROM
(
SELECT
zb -- 总部
,pq -- 片区
,xm -- 项目
,xl -- 学历
,sl -- 数量
FROM ods_hr_view_xl_d
)A
LEFT JOIN
(
SELECT
organ_code
,hr_organ_id
,hr_comm_id
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
where 1 = 1
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
GROUP BY xl
with one_to_many AS( with one_to_many AS(
SELECT SELECT
a.username AS username -- 用户名 a.username AS username -- 用户名
@ -363,44 +243,6 @@ GROUP BY
-- ====================================== -- ======================================
SELECT
zwje
,sum(sl) AS sl
FROM
(
SELECT
zb -- 总部
,pq -- 片区
,xm -- 项目
,zwje -- 职务角色
,sl -- 数量
FROM dw.ods_hr_view_zwjs_d
)A
LEFT JOIN
(
SELECT
organ_code
,hr_organ_id
,hr_comm_id
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
where 1 = 1
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
GROUP BY zwje
-- 总部职能中心/一级部门负责人及以上人员 -- 总部职能中心/一级部门负责人及以上人员
-- 总部二级职能部门负责人 -- 总部二级职能部门负责人
-- 片区负责人 -- 片区负责人
@ -484,46 +326,6 @@ GROUP BY
-- 职务层级 -- 职务层级
-- ====================================== -- ======================================
SELECT
swtx
,sum(sl) AS sl
FROM
(
SELECT
zb -- 总部
,pq -- 片区
,xm -- 项目
,swtx -- 职务层级
,sl -- 数量
FROM dw.ods_hr_view_swtx_d
)A
LEFT JOIN
(
SELECT
organ_code
,hr_organ_id
,hr_comm_id
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
where 1 = 1
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
GROUP BY swtx
with one_to_many AS( with one_to_many AS(
SELECT SELECT
a.username AS username -- 用户名 a.username AS username -- 用户名
@ -596,47 +398,6 @@ GROUP BY
-- ====================================== -- ======================================
SELECT
zytx
,sum(sl) AS sl
FROM
(
SELECT
zb -- 总部
,pq -- 片区
,xm -- 项目
,zytx -- 一级专业条线
,sl -- 数量
FROM dw.ods_hr_view_zytx_d
)A
LEFT JOIN
(
SELECT
organ_code
,hr_organ_id
,hr_comm_id
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
where 1 = 1
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
GROUP BY zytx
;
with one_to_many AS( with one_to_many AS(