目录结构优化+部分明细表修改为多选

This commit is contained in:
yangkunan 2024-07-23 12:00:17 +08:00
parent 1d02adcc54
commit 3ec7aa29be
7 changed files with 77 additions and 262 deletions

View File

@ -6,8 +6,9 @@
<file url="file://$PROJECT_DIR$/dw/dim/dim_project_base_info_d.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/dw/dim/dim_project_base_info_d.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/dws/dws_finance_fees_serial_m.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/dw/dws/dws_finance_fees_serial_m.sql" dialect="MySQL" />
<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/detail/住服比异常项目.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/finereport/xiazuan/2_operation/住服比异常项目.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/finereport/detail/项目明细弹窗.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/finereport/xiazuan/2_operation/计划到期明细.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/finereport/xiazuan/2_operation/项目明细弹窗.sql" dialect="MySQL" />
<file url="PROJECT" dialect="MySQL" /> <file url="PROJECT" dialect="MySQL" />
</component> </component>
</project> </project>

View File

@ -1,4 +1,3 @@
-- ----------------------------------- -- -----------------------------------
-- 费控明细表建表 -- 费控明细表建表
-- ----------------------------------- -- -----------------------------------
@ -27,7 +26,6 @@ CREATE TABLE IF NOT EXISTS dw.dwd_cost_detail_data_d (
,implementation_rate VARCHAR(50) COMMENT '执行率' ,implementation_rate VARCHAR(50) COMMENT '执行率'
)COMMENT = '费控明细表'; )COMMENT = '费控明细表';
-- **************************************** -- ****************************************
-- 创建人员: 杨坤安 -- 创建人员: 杨坤安
-- 创建日期: 2024-07-19 -- 创建日期: 2024-07-19

View File

@ -1,194 +0,0 @@
-------------------------------------
-- 费控明细表建表
-------------------------------------
DROP TABLE IF EXISTS dw.dwd_cost_detail_data_d;
CREATE TABLE IF NOT EXISTS dw.dwd_cost_detail_data_d (
yearname VARCHAR(50) COMMENT ''
,monthname VARCHAR(50) COMMENT ''
,organ_code VARCHAR(255) COMMENT '片区ID'
,organ_name VARCHAR(255) COMMENT '片区名称'
,cost_code VARCHAR(50) COMMENT '成本类型编码: LC:行政成本 AC:人力成本'
,cost_name VARCHAR(50) COMMENT '成本类型名称'
,dimsubjectcode VARCHAR(255) COMMENT '组织机构编码'
,dimsubjectname VARCHAR(255) COMMENT '组织机构名称'
,totalcode VARCHAR(255) COMMENT '组织机构层级编码'
,dimaccountcode VARCHAR(255) COMMENT '预算科目编码'
,dimaccountname VARCHAR(255) COMMENT '预算科目名称'
,buget VARCHAR(255) COMMENT '预算金额'
,occ VARCHAR(255) COMMENT '已占用金额'
,realfee VARCHAR(255) COMMENT '已使用金额'
,available VARCHAR(255) COMMENT '剩余可用金额'
,budgetfee_rate VARCHAR(50) COMMENT '预算执行率'
,originalcurrency VARCHAR(255) COMMENT '调整金额'
,target_fee VARCHAR(255) COMMENT '目标值'
,actual_fee VARCHAR(255) COMMENT '实际值'
,diff_amount VARCHAR(255) COMMENT '差额'
,implementation_rate VARCHAR(50) COMMENT '执行率'
)COMMENT = '费控明细表'
------------------------------------------------------------------------------------------------
-- 【指标计算】
-- 预算金额 - 调整金额 = 预算初期金额
-- 查询预算sql的预算金额年月需要和调整金额sql中的年月一致-调整金额sql的调整金额=预算初期金额
-- 目标值 = 预算金额 - 调整金额
-- 实际值 = 已使用金额
-- 差额 = 目标值 - 实际值
-- 执行率 = 实际值 / 目标值
------------------------------------------------------------------------------------------------
truncate dw.dwd_cost_detail_data_d;
INSERT into dw.dwd_cost_detail_data_d
SELECT
T1.yearname AS yearname -- 年
,T1.monthname AS monthname -- 月
,T2.organ_code AS organ_code -- 片区ID
,T2.organ_name AS organ_name -- 片区名称
,T1.cost_code AS cost_code -- 成本类型编码: LC:行政成本 AC:人力成本
,T1.cost_name AS cost_name -- 成本类型名称
,T1.dimsubjectcode AS dimsubjectcode -- 组织机构编码
,T1.dimsubjectname AS dimsubjectname -- 组织机构名称
,T1.totalcode AS totalcode -- 组织机构层级编码
,T1.dimaccountcode AS dimaccountcode -- 预算科目编码
,T1.dimaccountname AS dimaccountname -- 预算科目名称
,T1.buget AS buget -- 预算金额
,T1.occ AS occ -- 已占用金额
,T1.realfee AS realfee -- 已使用金额
,T1.available AS available -- 剩余可用金额
,T1.budgetfee_rate AS budgetfee_rate -- 预算执行率
,T1.originalcurrency AS originalcurrency -- 调整金额
,T1.target_fee AS target_fee -- 目标值
,T1.actual_fee AS actual_fee -- 实际值
,ROUND((T1.target_fee - T1.actual_fee),2) AS diff_amount -- 差额
,case when T1.target_fee = 0 then '0%' else concat(ROUND((T1.actual_fee / T1.target_fee)*100,2),'%') end AS implementation_rate -- 执行率
FROM
(
SELECT
A.yearname AS yearname -- 年
,A.monthname AS monthname -- 月
,'LC' AS cost_code -- 成本类型编码: LC:行政成本 AC:人力成本
,'行政成本' AS cost_name -- 成本类型名称
,A.dimsubjectcode AS dimsubjectcode -- 组织机构编码
,A.dimsubjectname AS dimsubjectname -- 组织机构名称
,A.totalcode AS totalcode -- 组织机构层级编码
,A.dimaccountcode AS dimaccountcode -- 预算科目编码
,A.dimaccountname AS dimaccountname -- 预算科目名称
,A.buget AS buget -- 预算金额
,A.occ AS occ -- 已占用金额
,A.realfee AS realfee -- 已使用金额
,A.available AS available -- 剩余可用金额
,A.budgetfee_rate AS budgetfee_rate -- 预算执行率
,COALESCE(B.originalcurrency,0) AS originalcurrency -- 调整金额
,ROUND((A.buget - COALESCE(B.originalcurrency,0)),2) AS target_fee -- 目标值
,A.realfee AS actual_fee -- 实际值
-- ,'' AS diff_amount -- 差额
-- ,'' AS implementation_rate -- 执行率
FROM
(
SELECT
dimaccountcode -- 预算科目编码
,dimaccountname -- 预算科目名称
,dimsubjectcode -- 组织机构编码
,dimsubjectname -- 组织机构名称
,yearname -- 年
,totalcode -- 组织机构层级编码
,monthname -- 月
,buget -- 预算金额
,occ -- 已占用金额
,realfee -- 已使用金额
,available -- 剩余可用金额
,budgetfee_rate -- 预算执行率
FROM dw.dwd_cost_budget_data_d -- 预算金额明细表
WHERE dimaccountcode IN('WY0402','WY040201','WY040202','WY040203','WY040204','WY040205','WY040206','WY040207','WY040208','WY040209','WY040210','WY040211','WY040212','WY040213','WY040214','WY040215','WY040216')
)A
LEFT JOIN
(
SELECT
year -- 年
,month -- 月
,dimsubjectcode -- 调整组织机构编码
,dimaccountcode -- 调整预算科目编码
,originalcurrency -- 调整金额
FROM dw.dwd_cost_adjust_data_d -- 调整金额明细表
WHERE dimaccountcode IN('WY0402','WY040201','WY040202','WY040203','WY040204','WY040205','WY040206','WY040207','WY040208','WY040209','WY040210','WY040211','WY040212','WY040213','WY040214','WY040215','WY040216')
)B
ON A.dimaccountcode = B.dimaccountcode
AND A.dimsubjectcode = B.dimsubjectcode
AND A.yearname = B.year
AND A.monthname = B.month
UNION ALL
SELECT
A.yearname AS yearname -- 年
,A.monthname AS monthname -- 月
,'AC' AS cost_code -- 成本类型编码: LC:行政成本 AC:人力成本
,'人力成本' AS cost_name -- 成本类型名称
,A.dimsubjectcode AS dimsubjectcode -- 组织机构编码
,A.dimsubjectname AS dimsubjectname -- 组织机构名称
,A.totalcode AS totalcode -- 组织机构层级编码
,A.dimaccountcode AS dimaccountcode -- 预算科目编码
,A.dimaccountname AS dimaccountname -- 预算科目名称
,A.buget AS buget -- 预算金额
,A.occ AS occ -- 已占用金额
,A.realfee AS realfee -- 已使用金额
,A.available AS available -- 剩余可用金额
,A.budgetfee_rate AS budgetfee_rate -- 预算执行率
,COALESCE(B.originalcurrency,0) AS originalcurrency -- 调整金额
,ROUND((A.buget - COALESCE(B.originalcurrency,0)),2) AS target_fee -- 目标值
,A.realfee AS actual_fee -- 实际值
-- ,'' AS diff_amount -- 差额
-- ,'' AS implementation_rate -- 执行率
FROM
(
SELECT
dimaccountcode -- 预算科目编码
,dimaccountname -- 预算科目名称
,dimsubjectcode -- 组织机构编码
,dimsubjectname -- 组织机构名称
,yearname -- 年
,totalcode -- 组织机构层级编码
,monthname -- 月
,buget -- 预算金额
,occ -- 已占用金额
,realfee -- 已使用金额
,available -- 剩余可用金额
,budgetfee_rate -- 预算执行率
FROM dw.dwd_cost_budget_data_d -- 预算金额明细表
WHERE dimaccountcode IN('WY0401','WY040101','WY040102','WY040103','WY040104','WY040105','WY040106','WY040107','WY040108','WY040109','WY040110','WY040111','WY040112','WY040113','WY040114')
)A
LEFT JOIN
(
SELECT
year -- 年
,month -- 月
,dimsubjectcode -- 调整组织机构编码
,dimaccountcode -- 调整预算科目编码
,originalcurrency -- 调整金额
FROM dw.dwd_cost_adjust_data_d -- 调整金额明细表
WHERE dimaccountcode IN('WY0401','WY040101','WY040102','WY040103','WY040104','WY040105','WY040106','WY040107','WY040108','WY040109','WY040110','WY040111','WY040112','WY040113','WY040114')
)B
ON A.dimaccountcode = B.dimaccountcode
AND A.dimsubjectcode = B.dimsubjectcode
AND A.yearname = B.year
AND A.monthname = B.month
)T1
LEFT JOIN
(
SELECT
organ_code -- erp片区id
,organ_name -- erp片区名称
,cost_comm_id -- 费控项目id
FROM dw.dim_organ_mapping -- 片区项目映射维度表
where cost_comm_id is not null
GROUP BY
organ_code -- erp片区id
,organ_name -- erp片区名称
,cost_comm_id -- 费控项目id
)T2
ON T1.dimsubjectcode = T2.cost_comm_id
;

View File

@ -20,6 +20,14 @@ select
end as occupancy_rate -- 入住率 end as occupancy_rate -- 入住率
from dws_operation_room_park_info_d from dws_operation_room_park_info_d
where 1=1 where 1=1
${if(len(p_area) == 0,"","and organ_code = '" + p_area+ "'")} ${IF(LEN(p_area)!=0," and organ_code IN ('"+p_area+"')","")}
group by group by
${if(len(p_area) == 0,"organ_name","comm_name")} -- 片区/项目 ${if(len(p_area) == 0,"organ_name","comm_name")}
-- 【筛选框数据集: dic_erp片区】
SELECT DISTINCT
organ_code AS id,
organ_name AS
FROM dim_organ_mapping

View File

@ -7,25 +7,27 @@
-- 【数据集: report_计划到期】 -- 【数据集: report_计划到期】
select select
${if(len(p_area) == 0,"coalesce(d.oa_organ_name,c.subcompanyname)","c.subcompanyname")} as p_area ${if(len(p_area) == 0,"c.organ_name","c.comm_name")} as p_area
,d.oa_comm_id as oa_comm_id -- 项目id ,c.oa_comm_id as oa_comm_id -- oa项目id
,d.oa_comm_name as oa_comm_name -- 项目名称 ,c.oa_comm_name as oa_comm_name -- oa项目名称
,d.oa_organ_code as oa_organ_code -- 片区id ,c.oa_organ_code as oa_organ_code -- oa片区id
,d.oa_organ_name as oa_organ_name -- 片区名称 ,c.oa_organ_name as oa_organ_name -- oa片区名称
,b.subcompanyid1 as subcompanyid1 -- 公司id ,c.organ_code as organ_code -- erp片区编码
,c.subcompanyname as subcompanyname -- 公司名称 ,c.organ_name as organ_name -- erp片区名称
,c.supsubcomid as supsubcomid -- 父公司id ,c.comm_id as comm_id -- erp项目id
,a.plan_name as plan_name -- 计划名称 ,c.comm_name as comm_name -- erp项目名称
,a.eval_criteria as plan_desc -- 计划内容 ,b.subcompanyid1 as subcompanyid1 -- 公司id
,a.plan_level as plan_level -- 计划等级 ,a.plan_name as plan_name -- 计划名称
,left(a.start_date,7) as ym -- 计划开始年月 ,a.eval_criteria as plan_desc -- 计划内容
,a.start_dt as start_dt -- 计划开始时 ,a.plan_level as plan_level -- 计划等级
,a.end_date as end_date -- 计划结束时间 ,left(a.start_date,7) as ym -- 计划开始年月
,a.start_dt as start_dt -- 计划开始时
,a.end_date as end_date -- 计划结束时间
,a.finish_date as finish_date -- 计划完成时间 ,a.finish_date as finish_date -- 计划完成时间
,a.input_date as input_date -- 计划录入时间 ,a.input_date as input_date -- 计划录入时间
,a.day_diff as day_diff -- 距离计划结束天数 ,a.day_diff as day_diff -- 距离计划结束天数
,a.executor as executor -- 执行人编码 ,a.responsible_person1 as responsible_person1 -- 责任人编码
,b.lastname as executor_name -- 执行人 ,b.lastname as executor_name -- 责任人名称
,left(a.end_ym,7) as end_ym -- 计划结束年月 ,left(a.end_ym,7) as end_ym -- 计划结束年月
from from
( (
@ -33,7 +35,7 @@ from
concat(left(trim(start_date),5),lpad(substring_index(substring_index(trim(start_date),'-',2),'-',-1),2,0),right(trim(start_date),3)) as start_date concat(left(trim(start_date),5),lpad(substring_index(substring_index(trim(start_date),'-',2),'-',-1),2,0),right(trim(start_date),3)) as start_date
,a.start_date as start_dt -- 计划开始时间 ,a.start_date as start_dt -- 计划开始时间
,a.plan_level -- 计划等级 ,a.plan_level -- 计划等级
,jt.executor -- 执行人 责任人 口径可能不一致 ,jt.responsible_person1 -- 责任人
,a.plan_status -- 计划状态 ,a.plan_status -- 计划状态
,a.input_date -- 录入时间 ,a.input_date -- 录入时间
,a.end_date -- 计划结束时间 ,a.end_date -- 计划结束时间
@ -44,11 +46,13 @@ from
,a.eval_criteria -- 评价标准 ,a.eval_criteria -- 评价标准
FROM dw.dwd_operations_plan_info_d a, FROM dw.dwd_operations_plan_info_d a,
JSON_TABLE ( JSON_TABLE (
cast( CONCAT( '["', REPLACE ( executor, ',', '","' ), '"]' ) AS json ), cast( CONCAT( '["', REPLACE ( responsible_person1, ',', '","' ), '"]' ) AS json ),
"$[*]" COLUMNS ( executor INT PATH "$" ) "$[*]" COLUMNS ( responsible_person1 INT PATH "$" )
) AS jt ) AS jt
WHERE TO_DAYS(a.end_date) - TO_DAYS(curdate()) <= 3 -- WHERE TO_DAYS(a.end_date) - TO_DAYS(curdate()) <= 3
AND TO_DAYS(a.end_date) - TO_DAYS(curdate()) >= 1 -- AND TO_DAYS(a.end_date) - TO_DAYS(curdate()) >= 1
where a.end_date > date_format(CURDATE() - INTERVAL 3 day,'%Y-%m-%d')
and a.end_date <= date_format(CURDATE(),'%Y-%m-%d')
)a )a
left join left join
( (
@ -59,23 +63,26 @@ from
from dw.ods_oa_hrmresource_d from dw.ods_oa_hrmresource_d
)b )b
on a.executor = b.id on a.responsible_person1 = b.id
inner join left join
( (
select select
id distinct
,subcompanyname -- 公司名称 organ_code -- erp片区id
,supsubcomid -- 父公司id ,organ_name -- erp片区名称
from dw.ods_oa_hrmsubcompany_d ,comm_id -- erp项目id
where 1 = 1 ,comm_name -- erp项目名称
${if(len(p_area) == 0,"","and supsubcomid = '" + p_area + "'")} ,oa_organ_code -- oa片区id
,oa_organ_name -- oa片区名称
,oa_comm_id -- oa项目id
,oa_comm_name -- oa项目名称
from dim_organ_mapping -- 组织结构映射维度表
where comm_id is not null
)c )c
on b.subcompanyid1 = c.id on b.subcompanyid1 = c.oa_comm_id
left join (select distinct oa_comm_id, oa_comm_name, oa_organ_code, oa_organ_name from dim_organ_mapping) d where 1 = 1
on b.subcompanyid1 = d.oa_comm_id
where 1 = 1
${if(len(p_startdate) == 0,"","and left(a.end_ym,7) = '" + p_startdate + "'")} ${if(len(p_startdate) == 0,"","and left(a.end_ym,7) = '" + p_startdate + "'")}
${IF(LEN(p_area)!=0," and organ_code IN ('"+p_area+"')","")}

View File

@ -6,36 +6,31 @@
-- **************************************** -- ****************************************
-- 【数据集: report_project】 -- 【数据集: report_project】
-- 1. 财务 finance
-- 2. 运营 operation
-- 3. 物业 property
-- 4. 工程 engine
-- 5. 人力 5_manpower
-- 6. 创新 6_innovation
-- 7. 商业 7_business
-- 8. 法务 8_legal
-- SELECT
--
-- -- ${if(len(p_area) == 0,"t.organ_name","t.comm_name")} as p_area -- 片区/项目
-- t.organ_name as organ_name -- erp片区名称
-- ,t.comm_name as comm_name -- erp项目名称
-- ,${if(len(p_area) == 0,"'-'","t.ManageKindName")} as ManageKindName -- 管理性质名称 【项目归属】
-- ,${if(len(p_area) == 0,"'-'","t.StateName")} as StateName -- 业态 【项目业态】
-- ,sum(t.ContractArea) as ContractArea -- 合同面积 【建筑面积】
-- ,sum(t.TakeOverArea) as TakeOverArea -- 接管面积 【合约面积】
-- ,sum(t.ManageContractArea) as ManageContractArea -- 管理口径合同面积 【在管面积】
-- ,sum(t.room_num) as room_num -- 总户数
-- FROM
-- (
SELECT SELECT
-- ${if(len(p_area) == 0,"B.organ_name","B.comm_name")} as p_area -- ${if(len(p_area) == 0,"B.organ_name","B.comm_name")} as p_area
-- ,A.CommId AS CommId -- 项目id 可关联maping表 -- ,A.CommId AS CommId -- 项目id 可关联maping表
-- ${if(len(p_area) == 0,",'-'",",A.ManageKindName")} as newManageKind -- ${if(len(p_area) == 0,",'-'",",A.ManageKindName")} as newManageKind
-- ,A.ManageKind AS ManageKind -- 管理性质 【项目归属】 -- ,A.ManageKind AS ManageKind -- 管理性质 【项目归属】
A.ManageKindName AS ManageKindName -- 管理性质名称 【项目归属】 A.ManageKindName AS ManageKindName -- 管理性质名称 【项目归属】
,A.ContractArea / 10000 AS ContractArea -- 合同面积 【建筑面积】 ,A.ContractArea / 10000 AS ContractArea -- 合同面积 【建筑面积】
,A.TakeOverArea / 10000 AS TakeOverArea -- 接管面积 【合约面积】 ,A.TakeOverArea / 10000 AS TakeOverArea -- 接管面积 【合约面积】
,A.ManageContractArea / 10000 AS ManageContractArea -- 管理口径合同面积 【在管面积】 ,A.ManageContractArea / 10000 AS ManageContractArea -- 管理口径合同面积 【在管面积】
-- ${if(len(p_area) == 0,",'-'",",A.StateName")} as newStateName -- ${if(len(p_area) == 0,",'-'",",A.StateName")} as newStateName
,A.StateName AS StateName -- 业态 【项目业态】 ,A.StateName AS StateName -- 业态 【项目业态】
,C.room_num AS room_num -- 总户数 ,C.room_num AS room_num -- 总户数
-- ,A.Province AS Province -- 省 -- ,A.Province AS Province -- 省
-- ,A.City AS City -- 市 -- ,A.City AS City -- 市
-- ,A.County AS County -- 区 -- ,A.County AS County -- 区
-- ,B.organ_code AS organ_code -- erp片区id ,B.organ_code AS organ_code -- erp片区id
,B.organ_name AS organ_name -- erp片区名称 ,B.organ_name AS organ_name -- erp片区名称
-- ,B.comm_id AS -- erp项目id -- ,B.comm_id AS -- erp项目id
,B.comm_name AS comm_name -- erp项目名称 ,B.comm_name AS comm_name -- erp项目名称
@ -62,6 +57,7 @@ FROM
,comm_id -- erp项目id ,comm_id -- erp项目id
,comm_name -- erp项目名称 ,comm_name -- erp项目名称
FROM dw.dim_organ_mapping -- 片区项目映射维度表 FROM dw.dim_organ_mapping -- 片区项目映射维度表
where comm_id is not null and comm_name not like '%撤场%' and comm_name not like '%案场%' and comm_name not like '%禁用%' and length(comm_id) != 0
GROUP BY GROUP BY
organ_code -- erp片区id organ_code -- erp片区id
,organ_name -- erp片区名称 ,organ_name -- erp片区名称
@ -69,7 +65,7 @@ FROM
,comm_name -- erp项目名称 ,comm_name -- erp项目名称
)B )B
ON A.CommId = B.comm_id ON A.CommId = B.comm_id
JOIN LEFT JOIN
( (
SELECT SELECT
CommID CommID
@ -79,8 +75,8 @@ FROM
CommID CommID
)C )C
ON A.CommId = C.CommID ON A.CommId = C.CommID
where 1 = 1 where 1 = 1
${if(len(p_area) == 0,"","and organ_code = '" + p_area + "'")} ${IF(LEN(p_area)!=0," where t.organ_code IN ('"+JOINARRAY(p_area,"','")+"')","")}
-- )t -- )t
@ -106,4 +102,3 @@ SELECT DISTINCT
FROM dim_organ_mapping FROM dim_organ_mapping
; ;