diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml
index aa81cb8..f5426ad 100644
--- a/.idea/sqldialects.xml
+++ b/.idea/sqldialects.xml
@@ -11,10 +11,12 @@
+
+
@@ -28,6 +30,8 @@
+
+
\ No newline at end of file
diff --git a/finereport/kanban/pc/创新生态.sql b/finereport/kanban/pc/创新生态.sql
index 2c20f53..f803071 100644
--- a/finereport/kanban/pc/创新生态.sql
+++ b/finereport/kanban/pc/创新生态.sql
@@ -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
+
+
+-- ======================================
+--
+-- ======================================
\ No newline at end of file
diff --git a/finereport/xiazuan/3_property/4_投诉明细.sql b/finereport/xiazuan/3_property/4_投诉明细.sql
new file mode 100644
index 0000000..54c13ec
--- /dev/null
+++ b/finereport/xiazuan/3_property/4_投诉明细.sql
@@ -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")}
\ No newline at end of file
diff --git a/finereport/xiazuan/4_engine/1_异常抬杆下钻明细.sql b/finereport/xiazuan/4_engine/1_异常抬杆下钻明细.sql
new file mode 100644
index 0000000..bc36d01
--- /dev/null
+++ b/finereport/xiazuan/4_engine/1_异常抬杆下钻明细.sql
@@ -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")}
\ No newline at end of file
diff --git a/finereport/xiazuan/4_engine/2_水电能耗明细.sql b/finereport/xiazuan/4_engine/2_水电能耗明细.sql
new file mode 100644
index 0000000..2cd34d4
--- /dev/null
+++ b/finereport/xiazuan/4_engine/2_水电能耗明细.sql
@@ -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
+
+
diff --git a/finereport/xiazuan/4_engine/3_设施设备完好率黑榜.sql b/finereport/xiazuan/4_engine/3_设施设备完好率黑榜.sql
new file mode 100644
index 0000000..c8d40db
--- /dev/null
+++ b/finereport/xiazuan/4_engine/3_设施设备完好率黑榜.sql
@@ -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
diff --git a/finereport/xiazuan/4_engine/4_巡查完成率黑榜.sql b/finereport/xiazuan/4_engine/4_巡查完成率黑榜.sql
new file mode 100644
index 0000000..010866f
--- /dev/null
+++ b/finereport/xiazuan/4_engine/4_巡查完成率黑榜.sql
@@ -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
\ No newline at end of file