diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml
index 297a7b5..8b050c8 100644
--- a/.idea/sqldialects.xml
+++ b/.idea/sqldialects.xml
@@ -6,8 +6,9 @@
-
-
+
+
+
\ No newline at end of file
diff --git a/dw/dwd/dwd_cost_detail_data_d.sql b/dw/dwd/dwd_cost_detail_data_d.sql
index bf0e83e..069bd28 100644
--- a/dw/dwd/dwd_cost_detail_data_d.sql
+++ b/dw/dwd/dwd_cost_detail_data_d.sql
@@ -1,4 +1,3 @@
-
-- -----------------------------------
-- 费控明细表建表
-- -----------------------------------
@@ -27,7 +26,6 @@ CREATE TABLE IF NOT EXISTS dw.dwd_cost_detail_data_d (
,implementation_rate VARCHAR(50) COMMENT '执行率'
)COMMENT = '费控明细表';
-
-- ****************************************
-- 创建人员: 杨坤安
-- 创建日期: 2024-07-19
diff --git a/dwd_cost_detail_data_d.sql b/dwd_cost_detail_data_d.sql
deleted file mode 100644
index 0fd163e..0000000
--- a/dwd_cost_detail_data_d.sql
+++ /dev/null
@@ -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
-;
\ No newline at end of file
diff --git a/finereport/detail/住服比异常项目.sql b/finereport/xiazuan/2_operation/住服比异常项目.sql
similarity index 76%
rename from finereport/detail/住服比异常项目.sql
rename to finereport/xiazuan/2_operation/住服比异常项目.sql
index 69d605f..0d5f765 100644
--- a/finereport/detail/住服比异常项目.sql
+++ b/finereport/xiazuan/2_operation/住服比异常项目.sql
@@ -20,6 +20,14 @@ select
end as occupancy_rate -- 入住率
from dws_operation_room_park_info_d
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
-${if(len(p_area) == 0,"organ_name","comm_name")} -- 片区/项目
\ No newline at end of file
+${if(len(p_area) == 0,"organ_name","comm_name")}
+
+
+-- 【筛选框数据集: dic_erp片区】
+
+SELECT DISTINCT
+ organ_code AS 片区id,
+ organ_name AS 片区名称
+FROM dim_organ_mapping
\ No newline at end of file
diff --git a/finereport/detail/计划到期明细.sql b/finereport/xiazuan/2_operation/计划到期明细.sql
similarity index 61%
rename from finereport/detail/计划到期明细.sql
rename to finereport/xiazuan/2_operation/计划到期明细.sql
index 68c23c3..1ed0e56 100644
--- a/finereport/detail/计划到期明细.sql
+++ b/finereport/xiazuan/2_operation/计划到期明细.sql
@@ -7,25 +7,27 @@
-- 【数据集: 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 -- 计划结束时间
+ ${if(len(p_area) == 0,"c.organ_name","c.comm_name")} as p_area
+ ,c.oa_comm_id as oa_comm_id -- oa项目id
+ ,c.oa_comm_name as oa_comm_name -- oa项目名称
+ ,c.oa_organ_code as oa_organ_code -- oa片区id
+ ,c.oa_organ_name as oa_organ_name -- oa片区名称
+ ,c.organ_code as organ_code -- erp片区编码
+ ,c.organ_name as organ_name -- erp片区名称
+ ,c.comm_id as comm_id -- erp项目id
+ ,c.comm_name as comm_name -- erp项目名称
+ ,b.subcompanyid1 as subcompanyid1 -- 公司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 -- 执行人
+ ,a.day_diff as day_diff -- 距离计划结束天数
+ ,a.responsible_person1 as responsible_person1 -- 责任人编码
+ ,b.lastname as executor_name -- 责任人名称
,left(a.end_ym,7) as end_ym -- 计划结束年月
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
,a.start_date as start_dt -- 计划开始时间
,a.plan_level -- 计划等级
- ,jt.executor -- 执行人 责任人 口径可能不一致
+ ,jt.responsible_person1 -- 责任人
,a.plan_status -- 计划状态
,a.input_date -- 录入时间
,a.end_date -- 计划结束时间
@@ -44,11 +46,13 @@ from
,a.eval_criteria -- 评价标准
FROM dw.dwd_operations_plan_info_d a,
JSON_TABLE (
- cast( CONCAT( '["', REPLACE ( executor, ',', '","' ), '"]' ) AS json ),
- "$[*]" COLUMNS ( executor INT PATH "$" )
+ cast( CONCAT( '["', REPLACE ( responsible_person1, ',', '","' ), '"]' ) AS json ),
+ "$[*]" COLUMNS ( responsible_person1 INT PATH "$" )
) AS jt
- WHERE TO_DAYS(a.end_date) - TO_DAYS(curdate()) <= 3
- AND TO_DAYS(a.end_date) - TO_DAYS(curdate()) >= 1
+ -- WHERE TO_DAYS(a.end_date) - TO_DAYS(curdate()) <= 3
+ -- 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
left join
(
@@ -59,23 +63,26 @@ from
from dw.ods_oa_hrmresource_d
)b
- on a.executor = b.id
- inner join
+ on a.responsible_person1 = b.id
+ left join
(
select
- id
- ,subcompanyname -- 公司名称
- ,supsubcomid -- 父公司id
- from dw.ods_oa_hrmsubcompany_d
- where 1 = 1
- ${if(len(p_area) == 0,"","and supsubcomid = '" + p_area + "'")}
+ distinct
+ organ_code -- erp片区id
+ ,organ_name -- erp片区名称
+ ,comm_id -- erp项目id
+ ,comm_name -- erp项目名称
+ ,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
- 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
+ on b.subcompanyid1 = c.oa_comm_id
+ where 1 = 1
${if(len(p_startdate) == 0,"","and left(a.end_ym,7) = '" + p_startdate + "'")}
-
+ ${IF(LEN(p_area)!=0," and organ_code IN ('"+p_area+"')","")}
diff --git a/finereport/detail/车位空置率明细.sql b/finereport/xiazuan/2_operation/车位空置率明细.sql
similarity index 100%
rename from finereport/detail/车位空置率明细.sql
rename to finereport/xiazuan/2_operation/车位空置率明细.sql
diff --git a/finereport/detail/项目明细弹窗.sql b/finereport/xiazuan/2_operation/项目明细弹窗.sql
similarity index 63%
rename from finereport/detail/项目明细弹窗.sql
rename to finereport/xiazuan/2_operation/项目明细弹窗.sql
index 8ef92d9..4c0d7fe 100644
--- a/finereport/detail/项目明细弹窗.sql
+++ b/finereport/xiazuan/2_operation/项目明细弹窗.sql
@@ -6,36 +6,31 @@
-- ****************************************
-- 【数据集: 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
- -- ${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 -- 管理性质名称 【项目归属】
+ -- ${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
+ -- ${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
+ -- ,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项目名称
@@ -62,6 +57,7 @@ FROM
,comm_id -- erp项目id
,comm_name -- erp项目名称
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
organ_code -- erp片区id
,organ_name -- erp片区名称
@@ -69,7 +65,7 @@ FROM
,comm_name -- erp项目名称
)B
ON A.CommId = B.comm_id
- JOIN
+ LEFT JOIN
(
SELECT
CommID
@@ -79,8 +75,8 @@ FROM
CommID
)C
ON A.CommId = C.CommID
-where 1 = 1
- ${if(len(p_area) == 0,"","and organ_code = '" + p_area + "'")}
+ where 1 = 1
+ ${IF(LEN(p_area)!=0," where t.organ_code IN ('"+JOINARRAY(p_area,"','")+"')","")}
-- )t
@@ -106,4 +102,3 @@ SELECT DISTINCT
FROM dim_organ_mapping
;
-