工程明细报表+物业明细报表开发

This commit is contained in:
yangkunan 2024-08-05 17:38:48 +08:00
parent 3216fa52fe
commit 30c1766af4
7 changed files with 461 additions and 0 deletions

View File

@ -11,10 +11,12 @@
<file url="file://$PROJECT_DIR$/dw/dwd/dwd_business_contract_info_d.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/dwd/dwd_engine_equipment_inspection_task_d.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/dwd/dwd_engine_equipment_status_d.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/dwd/dwd_engine_stat_exception_rate_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_rent_rate_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_stat_exception_rate_w.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/dw/dws/dws_estate_incident_info_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" />
@ -28,6 +30,8 @@
<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="file://$PROJECT_DIR$/finereport/xiazuan/3_property/2_报事情况报表.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/finereport/xiazuan/3_property/4_投诉明细.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/finereport/xiazuan/4_engine/1_异常抬杆下钻明细.sql" dialect="MySQL" />
<file url="PROJECT" dialect="MySQL" />
</component>
</project>

View File

@ -69,4 +69,145 @@ SELECT
IFNULL(SUM() / SUM(),0) AS
FROM T1
;
-- ======================================
-- 表格_2_新零售大于50_new
-- ======================================
SELECT
T1.organ_comm_name AS organ_name
,T1.FINISH_RATE AS
,T1.sale_target AS sale_target
,T1.sale_amt AS sale_amt
,ROW_NUMBER() OVER (ORDER BY T1.FINISH_RATE DESC) AS
FROM
(
SELECT
-- B.organ_code
-- ,B.organ_name
-- ,B.comm_id
-- ,B.comm_name
${IF(LEN(p_area)>0,"B.comm_name", "B.organ_name")} AS organ_comm_name
-- ,SUM(B.sale_target) AS sale_target
,SUM(IFNULL(A.sale_amt,0)) + SUM(IFNULL(B.sale_fact,0)) AS sale_amt
,SUM(IFNULL(B.sale_target,0)) AS sale_target
,CASE WHEN SUM(IFNULL(B.sale_target,0)) = 0 THEN 0
ELSE SUM(IFNULL(A.sale_amt,0)) + SUM(IFNULL(B.sale_fact,0)) / SUM(IFNULL
(B.sale_target,0))
END AS FINISH_RATE -- 销售完成率
FROM
(
select
organ_code
,organ_name
,comm_id
,comm_name
,sum(case when create_ym = '202406' then 0 else sale_amt end) sale_amt -- 202406填报数据为线下+线下,所以不取线上数据
from dw.dws_innoveco_new_retail_m
where create_ym = '${REPLACE(p_ym,"-","")}'
group by
organ_code
,organ_name
,comm_id
,comm_name
)A
RIGHT JOIN
(
SELECT
organ_code
,organ_name
,comm_id
,comm_name
,SUM(IFNULL(index_retail_target,0))*10000 AS sale_target
,SUM(index_retail_fact)*10000 AS sale_fact
FROM dw.ods_innoveco_offlinesales
WHERE `year_month` = '${REPLACE(p_ym,"-","")}'
GROUP BY
organ_code
,organ_name
,comm_id
,comm_name
)B
ON A.organ_code = B.organ_code
AND A.comm_id = B.comm_id
WHERE 1=1
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
GROUP BY
${IF(LEN(p_area)>0,"B.comm_name", "B.organ_name")}
)T1
ORDER BY T1.FINISH_RATE DESC
LIMIT 5
-- ======================================
-- 表格_2_新零售小于50_new
-- ======================================
SELECT
T1.organ_comm_name AS organ_name
,T1.FINISH_RATE AS
,T1.sale_target AS sale_target
,T1.sale_amt AS sale_amt
,ROW_NUMBER() OVER (ORDER BY T1.FINISH_RATE ASC) AS
FROM
(
SELECT
-- B.organ_code
-- ,B.organ_name
-- ,B.comm_id
-- ,B.comm_name
${IF(LEN(p_area)>0,"B.comm_name", "B.organ_name")} AS organ_comm_name
-- ,SUM(B.sale_target) AS sale_target
,SUM(IFNULL(A.sale_amt,0)) + SUM(IFNULL(B.sale_fact,0)) AS sale_amt
,SUM(IFNULL(B.sale_target,0)) AS sale_target
,CASE WHEN SUM(IFNULL(B.sale_target,0)) = 0 THEN 0
ELSE SUM(IFNULL(A.sale_amt,0)) + SUM(IFNULL(B.sale_fact,0)) / SUM(IFNULL
(B.sale_target,0))
END AS FINISH_RATE -- 销售完成率
FROM
(
select
organ_code
,organ_name
,comm_id
,comm_name
,sum(case when create_ym = '202406' then 0 else sale_amt end) sale_amt -- 202406填报数据为线下+线下,所以不取线上数据
from dw.dws_innoveco_new_retail_m
where create_ym = '${REPLACE(p_ym,"-","")}'
group by
organ_code
,organ_name
,comm_id
,comm_name
)A
RIGHT JOIN
(
SELECT
organ_code
,organ_name
,comm_id
,comm_name
,SUM(IFNULL(index_retail_target,0))*10000 AS sale_target
,SUM(index_retail_fact)*10000 AS sale_fact
FROM dw.ods_innoveco_offlinesales
WHERE `year_month` = '${REPLACE(p_ym,"-","")}'
GROUP BY
organ_code
,organ_name
,comm_id
,comm_name
)B
ON A.organ_code = B.organ_code
AND A.comm_id = B.comm_id
WHERE 1=1
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
GROUP BY
${IF(LEN(p_area)>0,"B.comm_name", "B.organ_name")}
)T1
ORDER BY T1.FINISH_RATE ASC
LIMIT 5
-- ======================================
--
-- ======================================

View File

@ -0,0 +1,46 @@
SELECT
${if(len(p_area) == 0,"A.organ_name","A.comm_name")} as p_area -- 片区/项目
,SUM(A.tousu_incident_num) AS tousu_incident_num -- 投诉量
,sum(B.ROOM_NUM) AS ROOM_NUM -- 户数
,CASE WHEN sum(B.ROOM_NUM) = 0 THEN 0
ELSE SUM(A.tousu_incident_num) / sum(B.ROOM_NUM) * 10000
END AS AVG_INCIDENT_NUM -- 每万户均投诉量
FROM
(
SELECT
organ_code
,organ_name
,comm_id
,comm_name
-- ,incident_ym
,SUM(IFNULL(tousu_incident_num,0)) AS tousu_incident_num -- 投诉量
FROM dw.dws_estate_incident_info_m
where incident_ym = '${REPLACE(p_ym,"-","")}'
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
GROUP BY
organ_code
,organ_name
,comm_id
,comm_name
having SUM(IFNULL(tousu_incident_num,0)) !=0
)A
LEFT JOIN
(
SELECT
T1.organ_code AS ORGAN_CODE -- 片区ID
,T1.comm_id AS COMM_ID -- 项目ID
,count(T2.RoomName) AS ROOM_NUM -- 户数
FROM dw.dim_organ_mapping T1
INNER JOIN dim_room_d T2
ON T1.comm_id = T2.CommID
WHERE 1 = 1
${IF(LEN(p_area)>0," and organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
GROUP BY
T1.organ_code
,T1.comm_id
)B
ON A.comm_id = B.COMM_ID
AND A.organ_code = B.ORGAN_CODE
GROUP BY
${if(len(p_area) == 0,"A.organ_name","A.comm_name")}

View File

@ -0,0 +1,28 @@
select
${if(len(p_area) == 0,"organ_name","comm_name")} as p_area -- 片区/项目
,STR_TO_DATE(time, '%Y%m%d') as time -- 日期
,SUM(manualOutNum) AS manualOutNum -- 出口手动抬杆数
,CASE WHEN SUM(carflow) = 0 THEN 0
ELSE sum(manualNum) / SUM(carflow)
END AS exceptionRate
from dw.dwd_engine_stat_exception_rate_d
where 1=1
${IF(LEN(p_area)!=0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${IF(LEN(startdate)>0,"AND time >= '"+FORMAT(startdate,"yyyyMMdd")+"'","")}
${IF(LEN(enddate)>0,"AND time <= '"+FORMAT(enddate,"yyyyMMdd")+"'","")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
GROUP BY
${if(len(p_area) == 0,"organ_name","comm_name")}
,STR_TO_DATE(time, '%Y%m%d')
select
${if(len(p_area)>0, "comm_name organ_name","organ_name organ_name")}
, sum(manualOutNum) manualOutNum
, sum(carflow) carflow
, sum(manualOutNum) / sum(carflow) exceptionRate
from dws_engine_stat_exception_rate_w
where yw = (select distinct yw from dws_engine_stat_exception_rate_w order by yw desc limit 1)
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
group BY
${if(len(p_area)>0, "comm_name","organ_name")}

View File

@ -0,0 +1,82 @@
SELECT DISTINCT
organ_code AS id,
organ_name AS
FROM dw.dws_engine_meter_dosage_m
where 1=1
${if(GETUSERDEPARTMENTS(2)="领悦集团总部","","and organ_name = '"+GETUSERDEPARTMENTS(2)+"'")}
-- 【能耗环比】
-- 折线图
select
list_ym
, MeterType
,SUM(Dosage) /10000 Dosage -- 能耗
,SUM(Amount) AS Amount-- 能耗金额
from dw.dws_engine_meter_dosage_m
where 1=1
and MeterType in ('水表','电表')
AND list_ym < date_format(current_date(),'%Y%m')
and left(list_ym,4) = ${left(p_ym,4)}
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
-- ${IF(LEN(P_MeterType)>0," AND MeterType IN ('"+JOINARRAY(P_MeterType,"','")+"')", "")}
GROUP by
list_ym
, MeterType
ORDER BY
list_ym
-- 明细表
-- 【能耗同比】
SELECT
MeterType
, list_ym
,SUM(Dosage) /10000 Dosage
,SUM(Amount) AS Amount
FROM dw.dws_engine_meter_dosage_m
where 1=1
AND list_ym <> DATE_FORMAT(CURDATE(), '%Y%m')
AND list_ym >= '${FORMAT(MONTHDELTA(CONCATENATE(p_ym,"-01"),-60),"yyyyMM")}'
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${IF(LEN(p_ym)>0," AND right(list_ym,2) ='" +right(p_ym,2) + "'","")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
and MeterType in ('水表','电表')
group by
MeterType
,list_ym
order by
list_ym
-- 【明细】
select
${if(len(p_area) == 0,"organ_name","comm_name")} as p_area -- 片区/项目
, MeterType
,SUM(Dosage) Dosage -- 能耗
,SUM(Amount) AS Amount-- 能耗金额
from dw.dws_engine_meter_dosage_m
where 1=1
and MeterType in ('水表','电表')
and list_ym = ${replace(p_ym,'-','')}
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
${IF(LEN(P_MeterType)>0," AND MeterType IN ('"+JOINARRAY(P_MeterType,"','")+"')", "")}
GROUP BY
${if(len(p_area) == 0,"organ_name","comm_name")}
, MeterType

View File

@ -0,0 +1,81 @@
-- 【report_设备完好率明细】
SELECT
T.name as name
,T.good_rate as good_rate
FROM
(
SELECT
${if(len(p_area)>0, "comm_name name","organ_name name")}
-- ,SUM(good_equipment_num) AS good_equipment_num -- 完好设备数
-- ,SUM(equipment_num) AS equipment_num-- 设备总数
,CASE WHEN SUM(equipment_num) = 0 THEN 0
ELSE SUM(good_equipment_num) / SUM(equipment_num)
END as good_rate
FROM dw.dws_engine_equipment_in_good_d
where 1=1
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
group by
${if(len(p_area)>0, "comm_name","organ_name")}
)T
-- ORDER BY T.good_rate desc
-- 【report_设备完好率按片区top10】
SELECT
T.organ_name as name
,T.good_rate as good_rate
FROM
(
SELECT
-- comm_name
organ_name
-- ,SUM(good_equipment_num) AS good_equipment_num -- 完好设备数
-- ,SUM(equipment_num) AS equipment_num-- 设备总数
,CASE WHEN SUM(equipment_num) = 0 THEN 0
ELSE SUM(good_equipment_num) / SUM(equipment_num)
END as good_rate
FROM dw.dws_engine_equipment_in_good_d
where 1=1
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
group by
organ_name
)T
ORDER BY T.good_rate desc
limit 10
-- 【report_设备完好率按项目top10】
SELECT
T.comm_name as name
,T.good_rate as good_rate
FROM
(
SELECT
comm_name
-- organ_name
-- ,SUM(good_equipment_num) AS good_equipment_num -- 完好设备数
-- ,SUM(equipment_num) AS equipment_num-- 设备总数
,CASE WHEN SUM(equipment_num) = 0 THEN 0
ELSE SUM(good_equipment_num) / SUM(equipment_num)
END as good_rate
FROM dw.dws_engine_equipment_in_good_d
where 1=1
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
group by
comm_name
)T
ORDER BY T.good_rate desc
limit 10

View File

@ -0,0 +1,79 @@
-- 【1_report_巡查完成率明细】
SELECT
T.name AS name
,T.task_finish_rate AS task_finish_rate
FROM
(
select
${IF(LEN(p_area)>0,"comm_name name","organ_name name")}
,task_ym
,CASE WHEN sum(task_num) = 0 THEN 0
ELSE sum(task_finish_num) / sum(task_num) END AS task_finish_rate
FROM dw.dws_engine_equipment_inspect_task_m
where 1=1
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${IF(LEN(p_ym)>0," AND task_ym ='" + left(p_ym,4) + right(p_ym,2) + "'","")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
group by
${IF(LEN(p_area)>0,"comm_name","organ_name")}
,task_ym
)T
-- order by task_finish_rate
-- 【2_report_巡查完成率黑榜_按片区】
SELECT
T.name AS name
,T.task_finish_rate AS task_finish_rate
FROM
(
select
organ_name name
,task_ym
,CASE WHEN sum(task_num) = 0 THEN 0
ELSE sum(task_finish_num) / sum(task_num) END AS task_finish_rate
FROM dw.dws_engine_equipment_inspect_task_m
where 1=1
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${IF(LEN(p_ym)>0," AND task_ym ='" + left(p_ym,4) + right(p_ym,2) + "'","")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
group by
organ_name
,task_ym
)T
order by task_finish_rate
limit 10
-- 【3_report_巡查完成率黑榜_按项目】
SELECT
T.name AS name
,T.task_finish_rate AS task_finish_rate
FROM
(
select
comm_name name
,task_ym
,CASE WHEN sum(task_num) = 0 THEN 0
ELSE sum(task_finish_num) / sum(task_num) END AS task_finish_rate
FROM dw.dws_engine_equipment_inspect_task_m
where 1=1
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${IF(LEN(p_ym)>0," AND task_ym ='" + left(p_ym,4) + right(p_ym,2) + "'","")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
group by
comm_name
,task_ym
)T
order by task_finish_rate
limit 10