人力看板指标第二版:使用组织映射表关联

This commit is contained in:
yangkunan 2024-10-25 18:05:24 +08:00
parent b4b656c681
commit 1bcba21c50
6 changed files with 238 additions and 232 deletions

View File

@ -19,6 +19,8 @@
<file url="file://$PROJECT_DIR$/dw/dwd/dwd_law_trans_record_d.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/dw/dwd/dwd_law_trans_record_d.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/dws/dws_business_bill_m.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/dw/dws/dws_business_bill_m.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/dws/dws_business_rent_rate_d.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/dw/dws/dws_business_rent_rate_d.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/dws/dws_cost_ac_summary_d.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/dws/dws_cost_lc_summary_d.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/dws/dws_engine_equipment_in_good_d.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/dw/dws/dws_engine_equipment_in_good_d.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/dws/dws_engine_equipment_inspect_task_m.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/dw/dws/dws_engine_equipment_inspect_task_m.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/dws/dws_engine_stat_exception_rate_w.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/dw/dws/dws_engine_stat_exception_rate_w.sql" dialect="MySQL" />
@ -28,10 +30,12 @@
<file url="file://$PROJECT_DIR$/dw/dws/dws_law_not_tran_payment_m.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/dw/dws/dws_law_not_tran_payment_m.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/dws/dws_law_tran_coll_d.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/dw/dws/dws_law_tran_coll_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/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_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/mobile/创新生态_mobile.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/finereport/kanban/mobile/创新生态_mobile.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/finereport/kanban/mobile/工程_mobile.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/finereport/kanban/mobile/工程_mobile.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/finereport/kanban/mobile/物业_mobile.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/finereport/kanban/mobile/物业_mobile.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/finereport/kanban/pc/人力.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/finereport/kanban/pc/创新生态.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/finereport/kanban/pc/创新生态.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/finereport/kanban/pc/商业.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/finereport/kanban/pc/商业.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/finereport/kanban/pc/工程.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/finereport/kanban/pc/工程.sql" dialect="MySQL" />

View File

@ -17,9 +17,9 @@ CREATE TABLE IF NOT EXISTS dw.dwd_cost_budget_data_d (
,budgetfee_rate VARCHAR(50) COMMENT '预算执行率' ,budgetfee_rate VARCHAR(50) COMMENT '预算执行率'
)COMMENT = '费控预算金额明细表' )COMMENT = '费控预算金额明细表'
------------------------------------- -- -----------------------------------
-- 费控预算金额明细表转换 -- 费控预算金额明细表转换
------------------------------------- -- -----------------------------------
INSERT INTO dw.dwd_cost_budget_data_d INSERT INTO dw.dwd_cost_budget_data_d
select select
dimaccountcode -- 预算科目编码 dimaccountcode -- 预算科目编码

View File

@ -1,25 +1,25 @@
DROP TABLE IF EXISTS dw.dws_cost_ac_summary_d; DROP TABLE IF EXISTS dw.dws_cost_ac_summary_d;
CREATE TABLE IF NOT EXISTS dw.dws_cost_ac_summary_d ( CREATE TABLE IF NOT EXISTS dw.dws_cost_ac_summary_d (
yearname VARCHAR(50) COMMENT '' yearname VARCHAR(50) COMMENT ''
,monthname VARCHAR(50) COMMENT '' ,monthname VARCHAR(50) COMMENT ''
,organ_code VARCHAR(255) COMMENT '片区ID' ,organ_code VARCHAR(100) COMMENT '片区ID'
,organ_name VARCHAR(255) COMMENT '片区名称' ,organ_name VARCHAR(100) COMMENT '片区名称'
,dimsubjectcode VARCHAR(255) COMMENT '组织机构编码' ,dimsubjectcode VARCHAR(100) COMMENT '组织机构编码'
,dimsubjectname VARCHAR(255) COMMENT '组织机构名称' ,dimsubjectname VARCHAR(100) COMMENT '组织机构名称'
,office_rent VARCHAR(255) COMMENT '办公室租金' ,salary_fee VARCHAR(100) COMMENT '工资'
,office_repair_fee VARCHAR(255) COMMENT '办公维修费' ,year_performance_fee VARCHAR(100) COMMENT '季度/年终绩效'
,office_fee VARCHAR(255) COMMENT '办公费' ,social_insur_fee VARCHAR(100) COMMENT '社会保险'
,travel_fee VARCHAR(255) COMMENT '差旅费' ,accumu_fund_fee VARCHAR(100) COMMENT '公积金'
,phone_fee VARCHAR(255) COMMENT '电话费' ,liab_insur_fee VARCHAR(100) COMMENT '雇主责任险'
,ad_fee VARCHAR(255) COMMENT '广告宣传费' ,smock_fee VARCHAR(100) COMMENT '工作服'
,business_fee VARCHAR(255) COMMENT '业务接待费' ,train_fee VARCHAR(100) COMMENT '培训'
,water_power_fee VARCHAR(255) COMMENT '水电费' ,recr_fee VARCHAR(100) COMMENT '招聘'
,management_fee VARCHAR(255) COMMENT '物管费' ,emp_bene_fee VARCHAR(100) COMMENT '员工福利'
,book_fee VARCHAR(255) COMMENT '书报资料费' ,laborrela_fee VARCHAR(100) COMMENT '劳动关系成本'
,other_fee VARCHAR(255) COMMENT '其他费用' ,other_fee VARCHAR(100) COMMENT '其他费用'
,total_fee VARCHAR(255) COMMENT '当期小计' ,total_fee VARCHAR(100) COMMENT '当期小计'
,fee_type VARCHAR(50) COMMENT '费用类型' ,fee_type VARCHAR(100) COMMENT '费用类型'
)COMMENT = '费控人力成本科目汇总表' )COMMENT = '费控人力成本科目汇总表';

View File

@ -1,7 +1,7 @@
drop table if exists dw.ods_cost_adjust_data_d; drop table if exists dw.ods_cost_adjust_data_d;
CREATE TABLE IF NOT EXISTS dw.ods_cost_adjust_data_d ( CREATE TABLE IF NOT EXISTS dw.ods_cost_adjust_data_d (
originalcurrency VARCHAR(255) COMMENT '调整金额' originalcurrency VARCHAR(255) COMMENT '调整金额'
,dimaccountcode VARCHAR(255) COMMENT '调整预算科目编码' ,dimaccountcode VARCHAR(255) COMMENT '调整预算科目编码'
,dimaccountname VARCHAR(255) COMMENT '调整预算科目名称' ,dimaccountname VARCHAR(255) COMMENT '调整预算科目名称'
,dimsubjectcode VARCHAR(255) COMMENT '调整组织机构编码' ,dimsubjectcode VARCHAR(255) COMMENT '调整组织机构编码'
@ -12,13 +12,13 @@ CREATE TABLE IF NOT EXISTS dw.ods_cost_adjust_data_d (
select select
sum(originalcurrency) as originalcurrency -- sum(originalcurrency) as originalcurrency -- 调整金
,dimaccountcode as dimaccountcode -- ,dimaccountcode as dimaccountcode -- 调整预算科目编
,dimaccountname as dimaccountname -- ,dimaccountname as dimaccountname -- 调整预算科目名
,DimSubjectcode as DimSubjectcode -- ,DimSubjectcode as DimSubjectcode -- 调整组织机构编
,DimSubjectname as DimSubjectname -- ,DimSubjectname as DimSubjectname -- 调整组织结构名
,year as year -- ,year as year --
,month as month -- ,month as month --
from from
( (
select select
@ -30,7 +30,7 @@ from
,substr(d.budgetdetaildate,0,4)as year ,substr(d.budgetdetaildate,0,4)as year
,substr(d.budgetdetaildate,6,7)as month ,substr(d.budgetdetaildate,6,7)as month
,d.originalcurrency ,d.originalcurrency
from e7fssc_ld.t_cc_billmaindata m from(SELECT * FROM e7fssc_ld.t_cc_billmaindata where billtype=6 and currentstate=21) m
left join e7fssc_ld.t_cc_billdetaildata d on d.billmaindataid=d.billmaindataid left join e7fssc_ld.t_cc_billdetaildata d on d.billmaindataid=d.billmaindataid
left join e7fssc_ld.t_cc_object o on o.objectid=d.dimaccount left join e7fssc_ld.t_cc_object o on o.objectid=d.dimaccount
left join e7fssc_ld.t_cc_object o1 on o1.objectid=d.dimsubject left join e7fssc_ld.t_cc_object o1 on o1.objectid=d.dimsubject
@ -39,12 +39,12 @@ from
and budgetdetaildate is not null and budgetdetaildate is not null
) a ) a
where 1=1 where 1=1
--- start -- 根据实际业务需求去添加 start
-- and a.dimaccountcode='' --调整预算科目编码,如果查该组织机构下所有的科目,把该条件注释掉即可 -- and a.dimaccountcode='' -- 调整预算科目编码,如果查该组织机构下所有的科目,把该条件注释掉即可
--and a.DimSubjectcode='010201011105' -- -- and a.DimSubjectcode='010201011105' -- 调整预算组织名
and a.year='2024' -- and a.year='2024' --
--and a.month='01' -- -- and a.month='01' --调整
--- end -- 根据实际业务需求去添加 end
group by group by
dimaccountcode dimaccountcode
,dimaccountname ,dimaccountname

View File

@ -70,40 +70,33 @@ CREATE TABLE IF NOT EXISTS dw.ods_cost_budget_data_d(
,decbudgetrate VARCHAR(100) COMMENT '12月预算执行率' ,decbudgetrate VARCHAR(100) COMMENT '12月预算执行率'
)COMMENT = '费控预算数据' )COMMENT = '费控预算数据'
;
select select
dimaccountcode as dimaccountcode -- dimaccountcode as dimaccountcode --
,dimaccountname as dimaccountname -- ,dimaccountname as dimaccountname --
,DimSubjectcode as DimSubjectcode -- ,DimSubjectcode as DimSubjectcode --
,DimSubjectname as DimSubjectname -- ,DimSubjectname as DimSubjectname --
,yearname as yearname -- ,yearname as yearname --
,totalcode as totalcode -- ,totalcode as totalcode --
,z.Janbuget as Janbuget --1 ,z.Janbuget as Janbuget --1
,z.Janocc as Janocc --1 ,z.Janocc as Janocc --1
,z.Janreal as Janreal --1使 ,z.Janreal as Janreal --1使
,z.Janbuget-z.Janocc-z.Janreal as Janavailable --1 ,z.Janbuget-z.Janocc-z.Janreal as Janavailable --1
,case when z.Janbuget<> 0 then (round(((z.Janocc+z.Janreal)/z.Janbuget)*100,2) ||'%') else '0%' end ,case when z.Janbuget<> 0 then (round(((z.Janocc+z.Janreal)/z.Janbuget)*100,2) ||'%') else '0%' end
as Janbugetrate --1 as Janbugetrate --1
,z.Febbudget as Febbudget --2 ,z.Febbudget as Febbudget --2
,z.Febocc as Febocc --2 ,z.Febocc as Febocc --2
,z.Febreal as Febreal --2使 ,z.Febreal as Febreal --2使
,z.Febbudget-z.Febocc-z.Febreal as Febavailable --2 ,z.Febbudget-z.Febocc-z.Febreal as Febavailable --2
,case when z.Febbudget<> 0 then (round(((z.Febocc+z.Febreal)/z.Febbudget)*100,2) ||'%') else '0%' end ,case when z.Febbudget<> 0 then (round(((z.Febocc+z.Febreal)/z.Febbudget)*100,2) ||'%') else '0%' end
as Febbudgetrate --2 as Febbudgetrate --2
,z.Marbudget as Marbudget --3 ,z.Marbudget as Marbudget --3
,z.Marocc as Marocc --3 ,z.Marocc as Marocc --3
,z.Marreal as Marreal --3使 ,z.Marreal as Marreal --3使
,z.Marbudget-z.Marocc-z.Marreal as Maravailable -- 3月剩余可用金额 ,z.Marbudget-z.Marocc-z.Marreal as Maravailable -- 3月剩余可用金额
,case when z.Marbudget<> 0 then (round(((z.Marocc+z.Marreal)/z.Marbudget)*100,2) ||'%') else '0%' end ,case when z.Marbudget<> 0 then (round(((z.Marocc+z.Marreal)/z.Marbudget)*100,2) ||'%') else '0%' end
as Marbudgetrate --3 as Marbudgetrate --3
,z.Aprilbudget as Aprilbudget --4 ,z.Aprilbudget as Aprilbudget --4
,z.Aprilocc as Aprilocc --4 ,z.Aprilocc as Aprilocc --4
,z.Aprilreal as Aprilreal --4使 ,z.Aprilreal as Aprilreal --4使
@ -117,50 +110,42 @@ select
,z.Maybudget-z.Mayocc-z.Mayreal as Mayavailable --5 ,z.Maybudget-z.Mayocc-z.Mayreal as Mayavailable --5
,case when z.Maybudget<> 0 then (round(((z.Mayocc+z.Mayreal)/z.Maybudget)*100,2) ||'%') else '0%' end ,case when z.Maybudget<> 0 then (round(((z.Mayocc+z.Mayreal)/z.Maybudget)*100,2) ||'%') else '0%' end
as Maybudgetrate --5 as Maybudgetrate --5
,z.Junebudget as Junebudget --6 ,z.Junebudget as Junebudget --6
,z.Juneocc as Juneocc --6 ,z.Juneocc as Juneocc --6
,z.Junereal as Junereal --6使 ,z.Junereal as Junereal --6使
,z.Junebudget-z.Juneocc-z.Junereal as Juneavailable --6 ,z.Junebudget-z.Juneocc-z.Junereal as Juneavailable --6
,case when z.Junebudget<> 0 then (round(((z.Juneocc+z.Junereal)/z.Junebudget)*100,2) ||'%') else '0%' end ,case when z.Junebudget<> 0 then (round(((z.Juneocc+z.Junereal)/z.Junebudget)*100,2) ||'%') else '0%' end
as Junebudgetrate --6 as Junebudgetrate --6
,z.Julybudget as Julybudget --7 ,z.Julybudget as Julybudget --7
,z.Julyocc as Julyocc --7 ,z.Julyocc as Julyocc --7
,z.Julyreal as Julyreal --7使 ,z.Julyreal as Julyreal --7使
,z.Julybudget-z.Julyocc-z.Julyreal as Julyavailable --7 ,z.Julybudget-z.Julyocc-z.Julyreal as Julyavailable --7
,case when z.Julybudget<> 0 then (round(((z.Julyocc+z.Julyreal)/z.Julybudget)*100,2) ||'%') else '0%' end ,case when z.Julybudget<> 0 then (round(((z.Julyocc+z.Julyreal)/z.Julybudget)*100,2) ||'%') else '0%' end
as Julybudgetrate --7 as Julybudgetrate --7
,z.Augbudget as Augbudget --8 ,z.Augbudget as Augbudget --8
,z.Augocc as Augocc --8 ,z.Augocc as Augocc --8
,z.Augreal as Augreal --8使 ,z.Augreal as Augreal --8使
,z.Augbudget-z.Augocc-z.Augreal as Augavailable -- 8月剩余可用金额 ,z.Augbudget-z.Augocc-z.Augreal as Augavailable -- 8月剩余可用金额
,case when z.Augbudget<> 0 then (round(((z.Augocc+z.Augreal)/z.Augbudget)*100,2) ||'%') else '0%' end ,case when z.Augbudget<> 0 then (round(((z.Augocc+z.Augreal)/z.Augbudget)*100,2) ||'%') else '0%' end
as Augbudgetrate --8 as Augbudgetrate --8
,z.Sepbudget as Sepbudget --9 ,z.Sepbudget as Sepbudget --9
,z.Sepocc as Sepocc --9 ,z.Sepocc as Sepocc --9
,z.Sepreal as Sepreal --9使 ,z.Sepreal as Sepreal --9使
,z.Sepbudget-z.Sepocc-z.Sepreal as Sepavailable --9 ,z.Sepbudget-z.Sepocc-z.Sepreal as Sepavailable --9
,case when z.Sepbudget<> 0 then (round(((z.Sepocc+z.Sepreal)/z.Sepbudget)*100,2) ||'%') else '0%' end ,case when z.Sepbudget<> 0 then (round(((z.Sepocc+z.Sepreal)/z.Sepbudget)*100,2) ||'%') else '0%' end
as Sepbudgetrate --9 as Sepbudgetrate --9
,z.Octbudget as Octbudget --10 ,z.Octbudget as Octbudget --10
,z.Octocc as Octocc --10 ,z.Octocc as Octocc --10
,z.Octreal as Octreal --10使 ,z.Octreal as Octreal --10使
,z.Octbudget-z.Octocc-z.Octreal as Octavailable --10 ,z.Octbudget-z.Octocc-z.Octreal as Octavailable --10
,case when z.Octbudget<> 0 then (round(((z.Octocc+z.Octreal)/z.Octbudget)*100,2) ||'%') else '0%' end ,case when z.Octbudget<> 0 then (round(((z.Octocc+z.Octreal)/z.Octbudget)*100,2) ||'%') else '0%' end
as Octbudgetrate --10 as Octbudgetrate --10
,z.Novbudget as Novbudget --11 ,z.Novbudget as Novbudget --11
,z.Novocc as Novocc --11 ,z.Novocc as Novocc --11
,z.Novreal as Novreal --11使 ,z.Novreal as Novreal --11使
,z.Novbudget-z.Novocc-z.Novreal as Novavailable --11 ,z.Novbudget-z.Novocc-z.Novreal as Novavailable --11
,case when z.Novbudget<> 0 then (round(((z.Novocc+z.Novreal)/z.Novbudget)*100,2) ||'%') else '0%' end ,case when z.Novbudget<> 0 then (round(((z.Novocc+z.Novreal)/z.Novbudget)*100,2) ||'%') else '0%' end
as Novbudgetrate --11 as Novbudgetrate --11
,z.Decbudget as Decbudget --12 ,z.Decbudget as Decbudget --12
,z.DecOcc as DecOcc --12 ,z.DecOcc as DecOcc --12
,z.Decreal as Decreal --12使 ,z.Decreal as Decreal --12使
@ -299,7 +284,8 @@ from
,totalcode ,totalcode
)z )z
-- where条件需要根据实际业务需求去添加 -- where条件需要根据实际业务需求去添加
where z.yearname='2024' where 1 = 1
-- AND z.yearname='2024'
-- and z.dimsubjectcode='010201011105' -- and z.dimsubjectcode='010201011105'
and totalcode like '0001,1001,2002,3000%' -- and totalcode like '0001,1001,2002,3000%' --
order by totalcode -- order by totalcode

View File

@ -67,33 +67,43 @@ FROM third_department
-- ====================================== -- ======================================
SELECT SELECT
SUM(sl) AS SL SUM(zzs) AS SL
FROM FROM
( (
SELECT SELECT
pq pq -- 片区
,zb ,xm -- 项目
,xm ,zzs -- 在职人数
,sl FROM ods_hr_view_mbl_d -- 在职与编制人数
FROM ods_hr_view_zaizhi_all_d -- 在职人数 WHERE left(rq,7) = '${p_ym}'
WHERE 1=1
${IF(LEN(p_area)>0," AND pq IN ('"+JOINARRAY(p_area,"','")+"')", "")}
)A )A
JOIN LEFT JOIN
( (
SELECT SELECT
* organ_code
FROM ods_hr_hrmsubcompany_d ,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
)B )B
ON A.pq = B.id ON A.pq = B.hr_organ_id
JOIN and A.xm = b.hr_comm_id
( where 1 = 1
SELECT ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
*
FROM ods_hr_hrmsubcompany_d
)C
ON A.xm = C.id
-- ====================================== -- ======================================
-- 指标卡_离职人数 -- 指标卡_离职人数
@ -104,106 +114,83 @@ SELECT
FROM FROM
( (
SELECT SELECT
pq pq -- 片区
,zb ,xm -- 项目
,xm ,lzrs -- 离职人数
,lzrs ,concat(nd,'-',yd) AS YM -- 年月
,concat(nd,'-',yd) AS YM
FROM ods_hr_view_lzrs_d -- 离职人数 FROM ods_hr_view_lzrs_d -- 离职人数
WHERE concat(nd,'-',yd) = '${p_ym}' WHERE left(rq,7) = '${p_ym}'
${IF(LEN(p_area)>0," AND pq IN ('"+JOINARRAY(p_area,"','")+"')", "")}
)A )A
JOIN LEFT JOIN
( (
SELECT SELECT
* organ_code
FROM ods_hr_hrmsubcompany_d ,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
)B )B
ON A.pq = B.id ON A.pq = B.hr_organ_id
JOIN and A.xm = B.hr_comm_id
( where 1 = 1
SELECT ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
*
FROM ods_hr_hrmsubcompany_d
)C
ON A.xm = C.id
-- ====================================== -- ======================================
-- 指标卡_人力成本 -- 指标卡_人力成本
-- ====================================== -- ======================================
SELECT SELECT
sum(A.total_fee) AS total_fee sum(total_fee) AS total_fee
FROM from dw.dws_cost_lc_summary_d -- 人力成本实际值
( WHERE fee_type = '实际值'
select AND concat(yearname,'-',monthname) = '${p_ym}'
organ_name ${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
,sum(total_fee) AS total_fee
from dw.dws_cost_lc_summary_d
WHERE fee_type = '实际值'
AND concat(yearname,'-',monthname) = '${p_ym}'
GROUP BY
organ_name
)A
LEFT JOIN
(
SELECT
id
,subcompanyname
FROM ods_hr_hrmsubcompany_d
WHERE tlevel = '2'
GROUP BY
id
,subcompanyname
)B
ON A.organ_name = B.subcompanyname
WHERE 1 = 1
${IF(LEN(p_area)>0," AND B.id IN ('"+JOINARRAY(p_area,"','")+"')", "")}
-- ====================================== -- ======================================
-- 指标卡_行政成本 -- 指标卡_行政成本
-- ====================================== -- ======================================
SELECT SELECT
sum(A.total_fee) AS total_fee sum(total_fee) AS total_fee
FROM FROM dw.dws_cost_ac_summary_d -- 费控行政成本实际值
( WHERE fee_type = '实际值'
select AND concat(yearname,'-',monthname) = '${p_ym}'
organ_name ${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
,sum(total_fee) AS total_fee
from dw.dws_cost_ac_summary_d
WHERE fee_type = '实际值'
AND concat(yearname,'-',monthname) = '${p_ym}'
GROUP BY
organ_name
)A
LEFT JOIN
(
SELECT
id
,subcompanyname
FROM ods_hr_hrmsubcompany_d
WHERE tlevel = '2'
GROUP BY
id
,subcompanyname
)B
ON A.organ_name = B.subcompanyname
WHERE 1 = 1
${IF(LEN(p_area)>0," AND B.id IN ('"+JOINARRAY(p_area,"','")+"')", "")}
-- ====================================== -- ======================================
-- 员工满编率柱状图 -- 员工满编率柱状图
-- ====================================== -- ======================================
SELECT SELECT
nd -- 年度 A.yd AS yd -- 月度
,jd -- 季度 ,A.pq AS pq -- 片区
,yd -- 月度 ,A.xm AS xm -- 项目
,rq -- 日期 ,A.zzs AS zzs -- 在职数
,zb -- 总部 ,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 -- 满编率
FROM
(
SELECT
yd -- 月度
,pq -- 片区 ,pq -- 片区
,xm -- 项目 ,xm -- 项目
,zzs -- 在职数 ,zzs -- 在职数
@ -216,29 +203,51 @@ SELECT
,CASE WHEN sum(bzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq) = 0 THEN 0 ,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)) 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 END as rate
FROM ods_hr_view_mbl_d FROM ods_hr_view_mbl_d
WHERE 1 = 1 )A
${IF(LEN(p_area)>0," AND pq IN ('"+JOINARRAY(p_area,"','")+"')", "")} 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
)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,"','")+"')", "")}
-- ====================================== -- ======================================
-- 员工满编率排名 -- 员工满编率排名
-- ====================================== -- ======================================
-- 注意 目前会有一个空的排名 是因为佳美物业未做映射
SELECT SELECT
T.subcompanyname AS subcompanyname T1.organ_comm AS organ_comm
,ROW_NUMBER() OVER(ORDER BY T.RATE DESC) ,ROW_NUMBER() OVER(ORDER BY T1.RATE DESC)
,T.RATE ,T1.rate
,'0' AS TARGET_RATE ,'0' AS target_rate
FROM FROM
( (
SELECT SELECT
${IF(LEN(p_area)>0,"c.subcompanyname", "b.subcompanyname")} ${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(avg_bzs) = 0 THEN 0 ELSE SUM(avg_zzs) / SUM(avg_bzs) END AS RATE
FROM FROM
( (
SELECT SELECT
pq -- 片区 pq -- 片区
,xm -- 项目 ,xm -- 项目
,zzs -- 在职数 ,zzs -- 在职数
@ -251,26 +260,34 @@ FROM
,sum(bzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq) AS avg_bzs -- 平均编制人数 ,sum(bzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq) AS avg_bzs -- 平均编制人数
FROM ods_hr_view_mbl_d FROM ods_hr_view_mbl_d
WHERE CONCAT(nd,'-',yd) = '${p_ym}' WHERE CONCAT(nd,'-',yd) = '${p_ym}'
${IF(LEN(p_area)>0," AND pq IN ('"+JOINARRAY(p_area,"','")+"')", "")} -- 注意 目前会有一个空的排名 是因为佳美物业未做映射
AND pq <> '89'
)A )A
LEFT JOIN LEFT JOIN
( (
SELECT SELECT
id organ_code -- erp片区编码
,subcompanyname ,organ_name -- erp片区名称
FROM ods_hr_hrmsubcompany_d ,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
GROUP BY
organ_code
,organ_name
,hr_organ_id
,hr_organ_name
,hr_comm_id
,hr_comm_name
)B )B
ON A.pq = B.id ON A.pq = B.hr_organ_id
LEFT JOIN and A.xm = B.hr_comm_id
( ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
SELECT
id GROUP BY ${IF(LEN(p_area)>0,"B.hr_comm_name", "B.hr_organ_name")}
,subcompanyname )T1
FROM ods_hr_hrmsubcompany_d
)C
ON A.xm = C.id
GROUP BY ${IF(LEN(p_area)>0,"c.subcompanyname", "b.subcompanyname")}
)T
-- ====================================== -- ======================================
@ -278,22 +295,46 @@ FROM
-- ====================================== -- ======================================
SELECT SELECT
nd -- 年度 A.lzlx AS lzlx -- 离职类型id
,jd -- 季度 ,A.lzlxname AS lzlxname -- 离职类型名称
,yd -- 月度 ,A.lzyy AS lzyy -- 离职原因id
,rq -- 日期 ,A.lzyyname AS lzyyname -- 离职原因名称
,zb -- 总部 ,A.lzrs AS lzrs -- 离职人数
,pq -- 片区 FROM
(
SELECT
pq -- 片区
,xm -- 项目 ,xm -- 项目
,lzlx -- 离职类型id ,lzlx -- 离职类型id
,lzlxname -- 离职类型名称 ,lzlxname -- 离职类型名称
,lzyy -- 离职原因id ,lzyy -- 离职原因id
,lzyyname -- 离职原因名称 ,lzyyname -- 离职原因名称
,lzrs -- 离职人数 ,lzrs -- 离职人数
FROM ods_hr_view_lzrs_fl_d FROM ods_hr_view_lzrs_fl_d
WHERE LEFT(rq,7) = '${p_ym}' WHERE LEFT(rq,7) = '${p_ym}'
${IF(LEN(p_area)>0," AND pq IN ('"+JOINARRAY(p_area,"','")+"')", "")} )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
)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,"','")+"')", "")}
-- ====================================== -- ======================================
-- 人力行政成本费率柱状图 -- 人力行政成本费率柱状图
@ -318,42 +359,29 @@ FROM
( (
-- 费控人力成本科目汇总表 -- 费控人力成本科目汇总表
SELECT SELECT
organ_name organ_code
,CONCAT(yearname,'-',monthname) AS yr_month ,CONCAT(yearname,'-',monthname) AS yr_month
,SUM(CASE WHEN fee_type IN('实际值','目标值') THEN total_fee ELSE 0 END) / 10000 AS actual_cost -- 人力成本 ,SUM(CASE WHEN fee_type IN('实际值','目标值') THEN total_fee ELSE 0 END) / 10000 AS actual_cost -- 人力成本
from dw.dws_cost_ac_summary_d from dw.dws_cost_ac_summary_d
WHERE yearname = left('${p_ym}',4) WHERE yearname = left('${p_ym}',4)
AND CONCAT(yearname,'-',monthname) < '${p_ym}' AND CONCAT(yearname,'-',monthname) < '${p_ym}'
GROUP BY CONCAT(yearname,'-',monthname),organ_name GROUP BY CONCAT(yearname,'-',monthname),organ_code
)A )A
LEFT JOIN LEFT JOIN
(-- 公司实际收入 (-- 公司实际收入
SELECT SELECT
yr_month yr_month
,organ_name ,organ_code
,SUM(index_income_fact) AS index_income_fact -- 实际收入 ,SUM(index_income_fact) AS index_income_fact -- 实际收入
FROM ods_caiwu_feecollection FROM ods_caiwu_feecollection
WHERE category = '物业' WHERE category = '物业'
AND LEFT(yr_month,4) = left('${p_ym}',4) AND LEFT(yr_month,4) = left('${p_ym}',4)
GROUP BY yr_month,organ_name GROUP BY yr_month,organ_code
)B )B
ON A.yr_month = B.yr_month ON A.yr_month = B.yr_month
AND A.organ_name = B.organ_name AND A.organ_code = B.organ_code
LEFT JOIN WHERE 1 = 1
( ${IF(LEN(p_area)>0," AND A.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
SELECT
id
,subcompanyname
FROM ods_hr_hrmsubcompany_d
WHERE tlevel = '2'
GROUP BY
id
,subcompanyname
)C
ON A.organ_name = C.subcompanyname
WHERE 1=1
${IF(LEN(p_area)>0," AND C.id IN ('"+JOINARRAY(p_area,"','")+"')", "")}
)T1 )T1
ORDER BY T1.yr_month ORDER BY T1.yr_month
${if(p_type='人力',"","*/")} ${if(p_type='人力',"","*/")}
@ -378,44 +406,32 @@ FROM
( (
-- 费控人力成本科目汇总表 -- 费控人力成本科目汇总表
SELECT SELECT
organ_name organ_code
,CONCAT(yearname, '-', monthname) AS yr_month ,CONCAT(yearname, '-', monthname) AS yr_month
,SUM(CASE WHEN fee_type IN ('实际值', '目标值') THEN total_fee ELSE 0 END) / 10000 AS actual_cost -- 人力成本 ,SUM(CASE WHEN fee_type IN ('实际值', '目标值') THEN total_fee ELSE 0 END) / 10000 AS actual_cost -- 人力成本
FROM dw.dws_cost_lc_summary_d FROM dw.dws_cost_lc_summary_d
WHERE yearname = LEFT('${p_ym}', 4) WHERE yearname = LEFT('${p_ym}', 4)
AND CONCAT(yearname, '-', monthname) < '${p_ym}' AND CONCAT(yearname, '-', monthname) < '${p_ym}'
GROUP BY CONCAT(yearname, '-', monthname),organ_name GROUP BY CONCAT(yearname, '-', monthname),organ_code
) A ) A
LEFT JOIN LEFT JOIN
(-- 公司实际收入 (-- 公司实际收入
SELECT SELECT
yr_month yr_month
,organ_name ,organ_code
, SUM(index_income_fact) AS index_income_fact -- 实际收入 , SUM(index_income_fact) AS index_income_fact -- 实际收入
FROM ods_caiwu_feecollection FROM ods_caiwu_feecollection
WHERE category = '物业' WHERE category = '物业'
AND LEFT(yr_month, 4) = LEFT('${p_ym}', 4) AND LEFT(yr_month, 4) = LEFT('${p_ym}', 4)
GROUP BY yr_month,organ_name GROUP BY yr_month,organ_code
)B )B
ON A.yr_month = B.yr_month ON A.yr_month = B.yr_month
AND A.organ_name = B.organ_name AND A.organ_code = B.organ_code
LEFT JOIN
(
SELECT
id
,subcompanyname
FROM ods_hr_hrmsubcompany_d
WHERE tlevel = '2'
GROUP BY
id
,subcompanyname
)C
ON A.organ_name = C.subcompanyname
WHERE 1=1 WHERE 1=1
${IF(LEN(p_area)>0," AND C.id IN ('"+JOINARRAY(p_area,"','")+"')", "")} ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
)T1 )T1
ORDER BY T1.yr_month ORDER BY T1.yr_month
${if(p_type='行政',"","*/")} ${if(p_type='行政',"","*/")}