明细表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">
<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_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" />
</component>
</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;
CREATE TABLE IF NOT EXISTS dw.dwd_cost_detail_data_d (
yearname VARCHAR(50) COMMENT ''
@ -25,10 +25,17 @@ CREATE TABLE IF NOT EXISTS dw.dwd_cost_detail_data_d (
,actual_fee VARCHAR(255) COMMENT '实际值'
,diff_amount VARCHAR(255) 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;

View File

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

View File

@ -1,10 +1,8 @@
-- RENAME TABLE ods_cost_budgetdata_d TO 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 '预算科目名称'
,dimsubjectcode 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
;