明细表sql补充+部分脚本优化

This commit is contained in:
yangkunan 2024-07-22 18:51:46 +08:00
parent bf0eaf213d
commit 918b3f8fee
9 changed files with 340 additions and 11 deletions

View File

@ -3,6 +3,11 @@
<component name="SqlDialectMappings"> <component name="SqlDialectMappings">
<file url="file://$PROJECT_DIR$/dw/dim/dim_building_info_d.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/dw/dim/dim_building_info_d.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/dim/dim_business_contract_type_d.sql" dialect="MySQL" /> <file url="file://$PROJECT_DIR$/dw/dim/dim_business_contract_type_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/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/detail/项目明细弹窗.sql" dialect="MySQL" />
<file url="PROJECT" dialect="MySQL" /> <file url="PROJECT" dialect="MySQL" />
</component> </component>
</project> </project>

27
doc/映射表规范.md Normal file
View File

@ -0,0 +1,27 @@
# 组织架构映射表规范
关于 ```dim_organ_mapping```表数据填报规范
## 1. 专属字段id命名规则
1> **客满项目在erp有的 按erp项目编码开始**
2> **客满项目在erp完全没有的项目id从1001开始**
3> **财务项目在erp完全没有的项目id从0001开始片区ID从5001开始**
【满意度明细 新增片区如下】
| 项目id | 项目名称 |
|---|---|
| 1001 | 【荆州】凤鸣蘭台 |
| 214312003 | 【成都】新津天府兰台五期 |
| 214312002 | 【成都】新津天府兰台四期 |
| 214312001 | 【成都】新津天府兰台三期 |
| 214351002 | 【成都】港基·叠香庄园 |
| 214350002 | 【成都】翰香府 |

View File

@ -1,7 +1,7 @@
------------------------------------- -- -----------------------------------
-- 费控明细表建表 -- 费控明细表建表
------------------------------------- -- -----------------------------------
DROP TABLE IF EXISTS dw.dwd_cost_detail_data_d; DROP TABLE IF EXISTS dw.dwd_cost_detail_data_d;
CREATE TABLE IF NOT EXISTS dw.dwd_cost_detail_data_d ( CREATE TABLE IF NOT EXISTS dw.dwd_cost_detail_data_d (
yearname VARCHAR(50) COMMENT '' yearname VARCHAR(50) COMMENT ''
@ -25,10 +25,17 @@ CREATE TABLE IF NOT EXISTS dw.dwd_cost_detail_data_d (
,actual_fee VARCHAR(255) COMMENT '实际值' ,actual_fee VARCHAR(255) COMMENT '实际值'
,diff_amount VARCHAR(255) COMMENT '差额' ,diff_amount VARCHAR(255) COMMENT '差额'
,implementation_rate VARCHAR(50) COMMENT '执行率' ,implementation_rate VARCHAR(50) COMMENT '执行率'
)COMMENT = '费控明细表' )COMMENT = '费控明细表';
------------------------------------------------------------------------------------------------ -- ****************************************
-- 创建人员: 杨坤安
-- 创建日期: 2024-07-19
-- 功 能: 费控明细表
-- ****************************************
-- ----------------------------------------------------------------------------------------------
-- 【指标计算】 -- 【指标计算】
-- 预算金额 - 调整金额 = 预算初期金额 -- 预算金额 - 调整金额 = 预算初期金额
@ -40,7 +47,7 @@ CREATE TABLE IF NOT EXISTS dw.dwd_cost_detail_data_d (
-- 差额 = 目标值 - 实际值 -- 差额 = 目标值 - 实际值
-- 执行率 = 实际值 / 目标值 -- 执行率 = 实际值 / 目标值
------------------------------------------------------------------------------------------------ -- ----------------------------------------------------------------------------------------------
truncate dw.dwd_cost_detail_data_d; truncate dw.dwd_cost_detail_data_d;

View File

@ -1,6 +1,6 @@
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. ( 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 '调整预算科目名称'
@ -8,7 +8,7 @@ CREATE TABLE IF NOT EXISTS dw. (
,dimsubjectname VARCHAR(255) COMMENT '调整组织结构名称' ,dimsubjectname VARCHAR(255) COMMENT '调整组织结构名称'
,year VARCHAR(100) COMMENT '' ,year VARCHAR(100) COMMENT ''
,month VARCHAR(100) COMMENT '' ,month VARCHAR(100) COMMENT ''
)COMMENT = '费控调整金额数据' )COMMENT = '费控调整金额数据';
select select
@ -52,3 +52,4 @@ dimaccountcode
,DimSubjectname ,DimSubjectname
,year ,year
,month ,month
;

View File

@ -1,10 +1,8 @@
-- RENAME TABLE ods_cost_budgetdata_d TO ods_cost_budget_data_d; -- RENAME TABLE ods_cost_budgetdata_d TO ods_cost_budget_data_d;
CREATE TABLE IF NOT EXISTS dw.ods_cost_budget_data_d( CREATE TABLE IF NOT EXISTS dw.ods_cost_budget_data_d(
dimaccountcode VARCHAR(255) COMMENT '预算科目编码' dimaccountcode VARCHAR(255) COMMENT '预算科目编码'
,dimaccountname VARCHAR(255) COMMENT '预算科目名称' ,dimaccountname VARCHAR(255) COMMENT '预算科目名称'
,dimsubjectcode VARCHAR(255) COMMENT '组织机构编码' ,dimsubjectcode VARCHAR(255) COMMENT '组织机构编码'
,dimsubjectname VARCHAR(255) COMMENT '组织机构名称' ,dimsubjectname VARCHAR(255) COMMENT '组织机构名称'

View File

@ -0,0 +1,25 @@
-- ****************************************
-- 创建人员: 杨坤安
-- 创建日期: 2024-07-22
-- 功 能: 帆软明细报表-住服比异常项目
-- 目 录: xianzuan>2_运营>住服比异常项目.fvs
-- ****************************************
-- 【数据集: report_住服比】
select
${if(len(p_area) == 0,"organ_name","comm_name")} as p_area -- 片区/项目
-- organ_name -- 片区名称
-- ,comm_name -- 项目名称
,sum(room_num) as room_num -- 房间总数 【总户数】
,sum(check_ins_num) as check_ins_num -- 入住数 【入住户数】
,case when sum(check_ins_num) = 0
then 0
else sum(check_ins_num) / sum(room_num)
end as occupancy_rate -- 入住率
from dws_operation_room_park_info_d
where 1=1
${if(len(p_area) == 0,"","and organ_code = '" + p_area+ "'")}
group by
${if(len(p_area) == 0,"organ_name","comm_name")} -- 片区/项目

View File

@ -0,0 +1,134 @@
-- ****************************************
-- 创建人员: 杨坤安
-- 创建日期: 2024-07-18
-- 功 能: 帆软明细报表-计划到期明细
-- 目 录: xianzuan>2_运营>计划到期明细.fvs
-- ****************************************
-- 【数据集: report_计划到期】
select
${if(len(p_area) == 0,"coalesce(d.oa_organ_name,c.subcompanyname)","c.subcompanyname")} as p_area
,d.oa_comm_id as oa_comm_id -- 项目id
,d.oa_comm_name as oa_comm_name -- 项目名称
,d.oa_organ_code as oa_organ_code -- 片区id
,d.oa_organ_name as oa_organ_name -- 片区名称
,b.subcompanyid1 as subcompanyid1 -- 公司id
,c.subcompanyname as subcompanyname -- 公司名称
,c.supsubcomid as supsubcomid -- 父公司id
,a.plan_name as plan_name -- 计划名称
,a.eval_criteria as plan_desc -- 计划内容
,a.plan_level as plan_level -- 计划等级
,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.input_date as input_date -- 计划录入时间
,a.day_diff as day_diff -- 距离计划结束天数
,a.executor as executor -- 执行人编码
,b.lastname as executor_name -- 执行人
,left(a.end_ym,7) as end_ym -- 计划结束年月
from
(
SELECT
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.plan_level -- 计划等级
,jt.executor -- 执行人 责任人 口径可能不一致
,a.plan_status -- 计划状态
,a.input_date -- 录入时间
,a.end_date -- 计划结束时间
,a.plan_name -- 计划名称
,concat(left(trim(end_date),5),lpad(substring_index(substring_index(trim(end_date),'-',2),'-',-1),2,0),right(trim(end_date),3)) as end_ym
,a.finish_date -- 完成时间
,TO_DAYS(a.end_date) - TO_DAYS(curdate()) AS day_diff
,a.eval_criteria -- 评价标准
FROM dw.dwd_operations_plan_info_d a,
JSON_TABLE (
cast( CONCAT( '["', REPLACE ( executor, ',', '","' ), '"]' ) AS json ),
"$[*]" COLUMNS ( executor INT PATH "$" )
) AS jt
WHERE TO_DAYS(a.end_date) - TO_DAYS(curdate()) <= 3
AND TO_DAYS(a.end_date) - TO_DAYS(curdate()) >= 1
)a
left join
(
select
id
,subcompanyid1 -- 公司id
,lastname -- 执行人
from dw.ods_oa_hrmresource_d
)b
on a.executor = b.id
inner join
(
select
id
,subcompanyname -- 公司名称
,supsubcomid -- 父公司id
from dw.ods_oa_hrmsubcompany_d
where 1 = 1
${if(len(p_area) == 0,"","and supsubcomid = '" + p_area + "'")}
)c
on b.subcompanyid1 = c.id
left join (select distinct oa_comm_id, oa_comm_name, oa_organ_code, oa_organ_name from dim_organ_mapping) d
on b.subcompanyid1 = d.oa_comm_id
where 1 = 1
${if(len(p_startdate) == 0,"","and left(a.end_ym,7) = '" + p_startdate + "'")}
-- 【筛选框数据集: dic_oa片区】
select
distinct d.oa_organ_code, d.oa_organ_name
from
(
SELECT
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.plan_level -- 计划等级
,jt.executor -- 执行人 责任人 口径可能不一致
,a.plan_status -- 计划状态
,a.input_date -- 录入时间
,a.end_date -- 计划结束时间
,a.plan_name -- 计划名称
,concat(left(trim(end_date),5),lpad(substring_index(substring_index(trim(end_date),'-',2),'-',-1),2,0),right(trim(end_date),3)) as end_ym
,a.finish_date -- 完成时间
,TO_DAYS(a.end_date) - TO_DAYS(curdate()) AS day_diff
FROM dw.dwd_operations_plan_info_d a,
JSON_TABLE (
cast( CONCAT( '["', REPLACE ( executor, ',', '","' ), '"]' ) AS json ),
"$[*]" COLUMNS ( executor INT PATH "$" )
) AS jt
WHERE TO_DAYS(a.end_date) - TO_DAYS(curdate()) <= 3
AND TO_DAYS(a.end_date) - TO_DAYS(curdate()) >= 1
)a
left join
(
select
id
,subcompanyid1 -- 公司id
,lastname -- 执行人
from dw.ods_oa_hrmresource_d
)b
on a.executor = b.id
inner join
(
select
id
,subcompanyname -- 公司名称
,supsubcomid -- 父公司id
from dw.ods_oa_hrmsubcompany_d
)c
on b.subcompanyid1 = c.id
left join (select distinct oa_comm_id, oa_comm_name, oa_organ_code, oa_organ_name from dim_organ_mapping) d
on b.subcompanyid1 = d.oa_comm_id
where 1 = 1
${if(len(p_startdate) == 0,"","and left(a.end_ym,7) = '" + p_startdate + "'")}
UNION ALL
SELECT
'13' AS oa_organ_code
,'领悦集团总部' AS oa_organ_name
FROM dual

View File

@ -0,0 +1,23 @@
-- ****************************************
-- 创建人员: 杨坤安
-- 创建日期: 2024-07-17
-- 功 能: 帆软明细报表-车位空置率明细
-- 目 录: xianzuan>2_运营>车位空置率明细.fvs
-- ****************************************
-- 【数据集: report_车位】
select * from dws_operation_room_park_info_d
where 1=1
${if(len(p_area) == 0,"","and organ_code = '" + p_area + "'")}
-- 【筛选框数据集: dic_erp片区 】
SELECT DISTINCT
organ_code AS id,
organ_name AS
FROM dim_organ_mapping
;

View File

@ -0,0 +1,109 @@
-- ****************************************
-- 创建人员: 杨坤安
-- 创建日期: 2024-07-22
-- 功 能: 帆软明细报表-项目明细弹窗
-- 目 录: xianzuan>2_运营>项目明细弹窗.fvs
-- ****************************************
-- 【数据集: report_project】
-- 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
-- ${if(len(p_area) == 0,"B.organ_name","B.comm_name")} as p_area
-- ,A.CommId AS CommId -- 项目id 可关联maping表
-- ${if(len(p_area) == 0,",'-'",",A.ManageKindName")} as newManageKind
-- ,A.ManageKind AS ManageKind -- 管理性质 【项目归属】
A.ManageKindName AS ManageKindName -- 管理性质名称 【项目归属】
,A.ContractArea / 10000 AS ContractArea -- 合同面积 【建筑面积】
,A.TakeOverArea / 10000 AS TakeOverArea -- 接管面积 【合约面积】
,A.ManageContractArea / 10000 AS ManageContractArea -- 管理口径合同面积 【在管面积】
-- ${if(len(p_area) == 0,",'-'",",A.StateName")} as newStateName
,A.StateName AS StateName -- 业态 【项目业态】
,C.room_num AS room_num -- 总户数
-- ,A.Province AS Province -- 省
-- ,A.City AS City -- 市
-- ,A.County AS County -- 区
-- ,B.organ_code AS organ_code -- erp片区id
,B.organ_name AS organ_name -- erp片区名称
-- ,B.comm_id AS -- erp项目id
,B.comm_name AS comm_name -- erp项目名称
FROM
(
select
CommId -- 项目id 可关联maping表
,ManageKind -- 管理性质
,ManageKindName -- 管理性质名称
,ContractArea -- 合同面积 合约面积
,ManageContractArea-- 管理口径合同面积 在管面积
,StateName -- 业态 项目业态
,TakeOverArea -- 接管面积
,Province -- 省
,City -- 市
,County -- 区
from dw.dim_project_base_info_d -- 项目维度表
)A
JOIN
(
SELECT
organ_code -- erp片区id
,organ_name -- erp片区名称
,comm_id -- erp项目id
,comm_name -- erp项目名称
FROM dw.dim_organ_mapping -- 片区项目映射维度表
GROUP BY
organ_code -- erp片区id
,organ_name -- erp片区名称
,comm_id -- erp项目id
,comm_name -- erp项目名称
)B
ON A.CommId = B.comm_id
JOIN
(
SELECT
CommID
,count(1) as room_num -- 项目对应房间数量
FROM dw.dim_room_d
GROUP BY
CommID
)C
ON A.CommId = C.CommID
where 1 = 1
${if(len(p_area) == 0,"","and organ_code = '" + p_area + "'")}
-- )t
-- group by
-- ${if(len(p_area) == 0,"t.organ_name","t.comm_name")} -- 片区/项目
-- -- ,t.organ_name -- erp片区名称
-- -- ,t.comm_name -- erp项目名称
-- ,${if(len(p_area) == 0,"'-'","t.ManageKindName")} -- 管理性质名称
-- ,${if(len(p_area) == 0,"'-'","t.StateName")} -- 业态 【项目业态】
;
-- 【筛选框数据集: dic_erp片区】
SELECT DISTINCT
organ_code AS id,
organ_name AS
FROM dim_organ_mapping
;