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

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

@ -2,24 +2,24 @@ 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

@ -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,7 +70,7 @@ 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 --
@ -79,31 +79,24 @@ select
,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='行政',"","*/")}