Commit 39b6be8f authored by lisong's avatar lisong

修改物联报表接口

parent 00ff9761
......@@ -490,7 +490,8 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE
@Param("indicator") List<String> indicator);
Map<String, Object> selectWeekSummarize(@Param("systemId") String systemId,
@Param("startDate") String startDate,
@Param("endDate") String endDate);
@Param("endDate") String endDate,
@Param("indicator") List<String> indicator);
List<Map<String, Object>> selectWeekEquipEchart(@Param("systemCode") String systemCode,
@Param("startDate") String startDate,
......@@ -508,14 +509,14 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE
Map<String, Object> selectDaySummarize(@Param("systemId") String systemId,
@Param("startDate") String startDate,
@Param("endDate") String endDate);
@Param("endDate") String endDate,
@Param("indicator") List<String> indicator);
List<Map<String, Object>> selectDayEquipEchart(@Param("systemCode") String systemCode,
@Param("startDate") String startDate,
@Param("endDate") String endDate);
List<Map<String, Object>> selectDayEchart(@Param("systemCode") String systemCode,
@Param("startDate") String startDate,
@Param("endDate") String endDate,
List<Map<String, Object>> selectDayEchart(@Param("systemId") String systemId,
@Param("date") String date,
@Param("indicator") List<String> indicator);
}
......@@ -1716,15 +1716,43 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
}
// 总结
Map<String, Object> summarize = fireFightingSystemMapper.selectWeekSummarize(valueOf(system.get("id")), startDate, endDate);
if (!ObjectUtils.isEmpty(summarize.get("contant"))) {
systemData.put("summarize", String.valueOf(summarize.get("contant")));
} else {
systemData.put("summarize", "");
}
Map<String, Object> summarize = fireFightingSystemMapper.selectWeekSummarize(valueOf(system.get("id")), startDate, endDate, indicatorList);
// if (!ObjectUtils.isEmpty(summarize.get("contant"))) {
// systemData.put("summarize", String.valueOf(summarize.get("contant")));
// } else {
// systemData.put("summarize", "");
// }
systemData.put("summarize", ObjectUtils.isEmpty(summarize.get("name"))?0:summarize.get("name")
+"设备总数"+(ObjectUtils.isEmpty(summarize.get("equipNum"))?0:summarize.get("equipNum"))
+"台,正常设备"+(ObjectUtils.isEmpty(summarize.get("normalNum"))?0:summarize.get("normalNum"))
+"台,正常率"+(ObjectUtils.isEmpty(summarize.get("normalRate"))?0:summarize.get("normalRate"))
+"%,故障设备"+(ObjectUtils.isEmpty(summarize.get("faultNum"))?0:summarize.get("faultNum"))
+"台,故障率为"+(ObjectUtils.isEmpty(summarize.get("faultRate"))?0:summarize.get("faultRate"))
+"%,七日告警设备为"+(ObjectUtils.isEmpty(summarize.get("exepctionNum"))?0:summarize.get("exepctionNum"))
+"台,同比上周"+(ObjectUtils.isEmpty(summarize.get("status1"))?"增加":summarize.get("status1"))+(ObjectUtils.isEmpty(summarize.get("exepctionWOW"))?0:summarize.get("exepctionWOW"))
+"%,七日告警总数为"+(ObjectUtils.isEmpty(summarize.get("alarmNum"))?0:summarize.get("alarmNum"))
+"条,同比上周"+(ObjectUtils.isEmpty(summarize.get("status2"))?"增加":summarize.get("status2"))+(ObjectUtils.isEmpty(summarize.get("alarmWOW"))?0:summarize.get("alarmWOW"))
+"%。"
);
// echarts 图表
List<Map<String, Object>> mapList = fireFightingSystemMapper.selectWeekEquipEchart(valueOf(system.get("code")), startDate, endDate, indicatorList);
//List<Map<String, Object>> mapList = fireFightingSystemMapper.selectWeekEquipEchart(valueOf(system.get("code")), startDate, endDate, indicatorList);
ArrayList<Map<String, Object>> mapList = new ArrayList<>();
HashMap<String, Object> dayEchartsDate = new HashMap<>();
dayEchartsDate.put("type","正常设备");
dayEchartsDate.put("value",ObjectUtils.isEmpty(summarize.get("normalNum"))?0:summarize.get("normalNum"));
mapList.add(dayEchartsDate);
HashMap<String, Object> dayEchartsDate1 = new HashMap<>();
dayEchartsDate1.put("type","异常设备");
if (!ObjectUtils.isEmpty(summarize.get("equipNum")) || !ObjectUtils.isEmpty(summarize.get("normalNum"))){
dayEchartsDate1.put("value",Integer.parseInt(String.valueOf(summarize.get("equipNum")))
-Integer.parseInt(String.valueOf(summarize.get("normalNum"))));
}else {
dayEchartsDate1.put("value",0);
}
mapList.add(dayEchartsDate1);
String pieChart1 = ChartsUtils.pieChart(mapList, "故障设备类型占比");
systemData.put("pictureLeft", pieChart1);
......@@ -1859,19 +1887,37 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
}
// 总结
Map<String, Object> summarize = fireFightingSystemMapper.selectDaySummarize(valueOf(system.get("id")), startDate, endDate);
if (!ObjectUtils.isEmpty(summarize.get("contant"))) {
systemData.put("summarize", String.valueOf(summarize.get("contant")));
} else {
systemData.put("summarize", "");
}
Map<String, Object> summarize = fireFightingSystemMapper.selectDaySummarize(valueOf(system.get("id")), startDate, endDate, indicatorList);
// if (!ObjectUtils.isEmpty(summarize.get("contant"))) {
// systemData.put("summarize", String.valueOf(summarize.get("contant")));
// } else {
// systemData.put("summarize", "");
// }
systemData.put("summarize", ObjectUtils.isEmpty(summarize.get("name"))?0:summarize.get("name")+"设备总数"+(ObjectUtils.isEmpty(summarize.get("equipNum"))?0:summarize.get("equipNum"))
+"台,今日告警设备为"+(ObjectUtils.isEmpty(summarize.get("dayNum"))?0:summarize.get("dayNum"))+"台,告警总数为"+(ObjectUtils.isEmpty(summarize.get("alarmNum"))?0:summarize.get("alarmNum"))+
"条,正常设备"+(ObjectUtils.isEmpty(summarize.get("normalNum"))?0:summarize.get("normalNum"))+"台,正常率"+(ObjectUtils.isEmpty(summarize.get("normalRate"))?0:summarize.get("normalRate"))+"%");
// echarts 图表
List<Map<String, Object>> mapList = fireFightingSystemMapper.selectDayEquipEchart(valueOf(system.get("code")), startDate, endDate);
String pieChart1 = ChartsUtils.pieChart(mapList, "故障设备类型占比");
systemData.put("pictureLeft", pieChart1);
List<Map<String, Object>> dayEchart = fireFightingSystemMapper.selectDayEchart(valueOf(system.get("code")), startDate, endDate, indicatorList);
// List<Map<String, Object>> dayEcharts = fireFightingSystemMapper.selectDayEchart(valueOf(system.get("id")), startDate, indicatorList);
ArrayList<Map<String, Object>> dayEchart = new ArrayList<>();
HashMap<String, Object> dayEchartsDate = new HashMap<>();
dayEchartsDate.put("type","正常设备");
dayEchartsDate.put("value",ObjectUtils.isEmpty(summarize.get("normalNum"))?0:summarize.get("normalNum"));
dayEchart.add(dayEchartsDate);
HashMap<String, Object> dayEchartsDate1 = new HashMap<>();
dayEchartsDate1.put("type","异常设备");
if (!ObjectUtils.isEmpty(summarize.get("equipNum")) || !ObjectUtils.isEmpty(summarize.get("normalNum"))){
dayEchartsDate1.put("value",Integer.parseInt(String.valueOf(summarize.get("equipNum")))
-Integer.parseInt(String.valueOf(summarize.get("normalNum"))));
}else {
dayEchartsDate1.put("value",0);
}
dayEchart.add(dayEchartsDate1);
String pieChart2 = ChartsUtils.pieChart(dayEchart, "告警信息占比");
systemData.put("pictureRight", pieChart2);
......
......@@ -3797,7 +3797,8 @@
or report.index_type LIKE CONCAT('%','Open','%')
or report.index_type LIKE CONCAT('%','OilLeak','%')
or report.index_type LIKE CONCAT('%','Alarm','%') )
and report.index_true_num > 0 and report.report_date = '2022-08-01' ) as exepctionNum
and report.index_true_num > 0 and report.report_date >= #{startDate} and
report.report_date &lt;= #{endDate}) as exepctionNum
FROM(
SELECT
s.id as system_id,
......@@ -3899,10 +3900,9 @@
</select>
<select id="selectWeekSummarize" resultType="java.util.Map">
SELECT
CONCAT_WS( '',fs.name, '设备总数', b.equipNum, '台,正常设备', b.normalNum, '台,正常率', b.normalRate,'%,故障设备' ,b.faultNum, '台,故障率为', b.faultRate,'%',CHAR(10),
'7日告警设备为',b.exepctionNum,'台,同比上周', b.status1,exepctionWOW,'%。' ,CHAR(10),
'7日告警总数为',b.alarmNum,'条,同比上周', b.status2,alarmWOW,'%。' ,CHAR(10)
) AS contant,
fs.name, b.equipNum, b.normalNum, b.normalRate, b.faultNum, b.faultRate,
b.exepctionNum, b.status1,exepctionWOW,
b.alarmNum,b.status2,alarmWOW,
fs.id as system_id
FROM
f_fire_fighting_system fs left join
......@@ -3917,12 +3917,12 @@
SUM(a1.lastExepctionNum) as lastExepctionNum,
SUM(a1.alarmNum) as alarmNum,
SUM(a1.lastAlarmNum) as lastAlarmNum,
if (SUM(a1.lastExepctionNum)>0,IFNULL( convert( ABS(SUM(a1.exepctionNum)-SUM(a1.lastExepctionNum))/SUM(a1.lastExepctionNum),decimal(15,2)),'-'),ABS(SUM(a1.exepctionNum)-SUM(a1.lastExepctionNum)))*100 as exepctionWOW,
if (SUM(a1.lastAlarmNum)>0,IFNULL( convert( ABS(SUM(a1.alarmNum)-SUM(a1.lastAlarmNum))/SUM(a1.lastAlarmNum),decimal(15,2)),'-'),ABS(SUM(a1.alarmNum)-SUM(a1.lastAlarmNum)))*100 as alarmWOW,
if (SUM(a1.lastExepctionNum)>0,IFNULL( convert( ABS(SUM(a1.exepctionNum)-SUM(a1.lastExepctionNum))/SUM(a1.lastExepctionNum),char(5)),'-'),ABS(SUM(a1.exepctionNum)-SUM(a1.lastExepctionNum)))*100 as exepctionWOW,
if (SUM(a1.lastAlarmNum)>0,IFNULL( convert( ABS(SUM(a1.alarmNum)-SUM(a1.lastAlarmNum))/SUM(a1.lastAlarmNum),char(5)),'-'),ABS(SUM(a1.alarmNum)-SUM(a1.lastAlarmNum)))*100 as alarmWOW,
(CASE WHEN (SUM(a1.exepctionNum)-SUM(a1.lastExepctionNum)) &lt;0 THEN '减少' else '增加' end ) as status1,
(CASE WHEN (SUM(a1.alarmNum)-SUM(a1.lastAlarmNum)) &lt;0 THEN '减少' else '增加' end ) as status2,
if(SUM(a1.num)>0, convert(SUM(a1.num - a1.exepctionNum)/SUM(a1.num),decimal(15,2)), SUM(a1.num - a1.exepctionNum))*100 as normalRate,
if(SUM(a1.num)>0,convert(SUM(a1.faultNum)/SUM(a1.num),decimal(15,2)),SUM(a1.faultNum)) *100 as faultRate,
if(SUM(a1.num)>0, convert(SUM(a1.num - a1.exepctionNum)/SUM(a1.num),char(5)), SUM(a1.num - a1.exepctionNum))*100 as normalRate,
if(SUM(a1.num)>0,convert(SUM(a1.faultNum)/SUM(a1.num),char(5)),SUM(a1.faultNum)) *100 as faultRate,
a1.create_date
from
(SELECT
......@@ -3936,27 +3936,27 @@
where report.equipment_code = a.code
and FIND_IN_SET(a.system_id,report.system_ids)
and report.index_true_num >0
and( report.index_type LIKE CONCAT('%','Fault','%')
or report.index_type LIKE CONCAT('%','FireAlarm','%')
or report.index_type LIKE CONCAT('%','Shield','%') )
<foreach collection="indicator" item="index" open="AND(" separator="or" close=")">
report.index_type like concat ('%', #{index})
</foreach>
and report.report_date >= #{startDate} and report.report_date &lt;=#{endDate} ) as exepctionNum,
(SELECT IFNULL(count(distinct equipment_specific_id) ,0)
FROM wl_equipment_alarm_report_day report
where report.equipment_code = a.code
and FIND_IN_SET(a.system_id,report.system_ids)
and report.index_true_num >0
and( report.index_type LIKE CONCAT('%','Fault','%')
or report.index_type LIKE CONCAT('%','FireAlarm','%')
or report.index_type LIKE CONCAT('%','Shield','%') )
<foreach collection="indicator" item="index" open="AND(" separator="or" close=")">
report.index_type like concat ('%', #{index})
</foreach>
and report.report_date >= DATE_SUB(#{startDate},INTERVAL 7 DAY)
and report.report_date &lt;= DATE_SUB(#{endDate},INTERVAL 7 DAY) ) as lastExepctionNum,
(SELECT IFNULL(SUM(index_true_num ),0)
FROM wl_equipment_alarm_report_day report
where report.equipment_code = a.code
and FIND_IN_SET(a.system_id,report.system_ids)
and( report.index_type LIKE CONCAT('%','Fault','%')
or report.index_type LIKE CONCAT('%','FireAlarm','%')
or report.index_type LIKE CONCAT('%','Shield','%') )
<foreach collection="indicator" item="index" open="AND(" separator="or" close=")">
report.index_type like concat ('%', #{index})
</foreach>
and report.report_date >= #{startDate} and report.report_date &lt;=#{endDate} ) as alarmNum,
(SELECT IFNULL(count(distinct equipment_specific_id) ,0)
FROM wl_equipment_alarm_report_day report
......@@ -3969,9 +3969,10 @@
FROM wl_equipment_alarm_report_day report
where report.equipment_code = a.code
and FIND_IN_SET(a.system_id,report.system_ids)
and( report.index_type LIKE CONCAT('%','Fault','%')
or report.index_type LIKE CONCAT('%','FireAlarm','%')
or report.index_type LIKE CONCAT('%','Shield','%') )
<foreach collection="indicator" item="index" open="AND(" separator="or" close=")">
report.index_type like concat ('%', #{index})
</foreach>
and report.report_date >= DATE_SUB(#{startDate},INTERVAL 7 DAY)
and report.report_date &lt;= DATE_SUB(#{endDate},INTERVAL 7 DAY) ) as lastAlarmNum,
systemName
......@@ -4159,7 +4160,8 @@
</select>
<select id="selectDaySummarize" resultType="java.util.Map">
SELECT
CONCAT_WS('', fs.name, '设备总数', b.equipNum, '台,今日告警设备为', b.equipNum - b.normalNum, '台,告警总数为',ifnull(b.alarmNum, 0) , '条,正常设备', b.normalNum, '台,正常率', b.normalRate, '%' ) AS contant,
fs.name, b.equipNum, ( b.equipNum - b.normalNum) as dayNum,ifnull(b.alarmNum, 0) as alarmNum
, b.normalNum, b.normalRate,
fs.id as system_id
FROM
f_fire_fighting_system fs left join
......@@ -4184,16 +4186,17 @@
where report.equipment_code = a.code
and FIND_IN_SET(a.system_id,report.system_ids)
and report.index_true_num >0
and( report.index_type LIKE CONCAT('%','FireAlarm')
or report.index_type LIKE CONCAT('%','Fault')
or report.index_type LIKE CONCAT('%','Shield') )
<foreach collection="indicator" item="index" open="AND(" separator="or" close=")">
report.index_type like concat ('%', #{index})
</foreach>
and report.report_date >= #{startDate} and report.report_date &lt;= #{endDate} ) as exepctionNum,
(SELECT SUM(index_true_num)
FROM wl_equipment_alarm_report_day report
where FIND_IN_SET(a.system_id,report.system_ids)
and( report.index_type LIKE CONCAT('%','FireAlarm')
or report.index_type LIKE CONCAT('%','Fault')
or report.index_type LIKE CONCAT('%','Shield') )
<foreach collection="indicator" item="index" open="AND(" separator="or" close=")">
report.index_type like concat ('%', #{index})
</foreach>
and report.report_date >= #{startDate}
and report.report_date &lt;= #{endDate}
) as alarmNum,
......@@ -4242,83 +4245,30 @@
</select>
<select id="selectDayEchart" resultType="java.util.Map">
SELECT
(SELECT COUNT(DISTINCT iot_code) FROM wl_equipment_specific WHERE FIND_IN_SET(#{systemId},system_id)
and iot_code is not null) AS value,'正常设备' AS type
UNION
(
select
SUM(a1.num-a1.exepctionNum) AS num
from
(SELECT
system_id,
system_code,
num,
code,
(SELECT count(distinct equipment_specific_id)
FROM wl_equipment_alarm_report_day report
where report.equipment_code = a.code
and FIND_IN_SET(a.system_id,report.system_ids)
<foreach collection="indicator" item="index" open="AND(" separator="or" close=")">
report.index_type like concat ('%', #{index})
</foreach>
and report.index_true_num>0
and report.report_date >= #{startDate}
and report.report_date &lt;= #{endDate} ) as exepctionNum,
create_date
FROM(
SELECT
s.id as system_id,
s.code as system_code,
equipment.code,
count(1) AS num,
spec.create_date
FROM
wl_equipment_specific spec
LEFT JOIN wl_equipment_detail detail ON spec.equipment_detail_id = detail.id
LEFT JOIN wl_equipment equipment ON equipment.id =detail.equipment_id
left join f_fire_fighting_system s on FIND_IN_SET(s.id,spec.system_id)
where spec.system_id is not null
GROUP BY code,s.id ORDER BY system_id, code ) a) as a1
WHERE system_code = #{systemCode}
GROUP BY a1.system_id
) as value,
'正常设备' as `type`
union
SELECT
(
select
SUM(a1.exepctionNum)as exepctionNum
from
(SELECT
system_id,
system_code,
num,
code,
(SELECT count(distinct equipment_specific_id)
FROM wl_equipment_alarm_report_day report
where report.equipment_code = a.code
and FIND_IN_SET(a.system_id,report.system_ids)
<foreach collection="indicator" item="index" open="AND(" separator="or" close=")">
report.index_type like concat ('%', #{index})
</foreach>
and report.index_true_num>0
and report.report_date >= #{startDate}
and report.report_date &lt;= #{endDate} ) as exepctionNum
FROM(
SELECT
s.id as system_id,
s.code as system_code,
equipment.code,
count(1) AS num,
spec.create_date
FROM
wl_equipment_specific spec
LEFT JOIN wl_equipment_detail detail ON spec.equipment_detail_id = detail.id
LEFT JOIN wl_equipment equipment ON equipment.id =detail.equipment_id
left join f_fire_fighting_system s on FIND_IN_SET(s.id,spec.system_id)
where spec.system_id is not null
GROUP BY code,s.id ORDER BY system_id, code ) a) as a1
WHERE system_code = #{systemCode}
GROUP BY a1.system_id
) as value,
'异常设备' as `type`
(SELECT COUNT(DISTINCT wesa.iot_code) AS exepctionNum FROM wl_equipment_specific_alarm wesa
WHERE FIND_IN_SET(#{systemId},wesa.system_ids)
<foreach collection="indicator" item="index" open="AND(" separator="or" close=")">
wesa.equipment_specific_index_key like concat ('%', #{index})
</foreach>
and wesa.create_date
like CONCAT(#{date},'%'))AS value,'异常设备'as type
)
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment