Commit 9f240abd authored by lisong's avatar lisong

完善物联报表

parent 9ba288e7
......@@ -480,7 +480,7 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE
List<Map<String, Object>> selectMonthPolyline(@Param("systemCode") String sysCode, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("indicator") List<String> indicator);
List<Map<String, Object>> selectWeekReportList(@Param("systemId") String systemId,@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("indicator") List<String> indicator);
List<Map<String, Object>> selectWeekReportList(@Param("systemId") String systemId,@Param("startDate") String startDate, @Param("endDate") String endDate);
Integer selectAlarms(@Param("systemId") String systemId,
@Param("indexType") String indexType,
......@@ -494,7 +494,8 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE
List<Map<String, Object>> selectWeekEquipEchart(@Param("systemCode") String systemCode,
@Param("startDate") String startDate,
@Param("endDate") String endDate);
@Param("endDate") String endDate,
@Param("indicator") List<String> indicator);
List<Map<String, Object>> selectWeekEchart(@Param("systemCode") String systemCode,
@Param("startDate") String startDate,
......@@ -502,7 +503,8 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE
List<Map<String, Object>> selectWeekLinesEchart(@Param("systemCode") String systemCode,
@Param("startDate") String startDate,
@Param("endDate") String endDate);
@Param("endDate") String endDate,
@Param("indicator") List<String> indicator);
Map<String, Object> selectDaySummarize(@Param("systemId") String systemId,
@Param("startDate") String startDate,
......@@ -514,5 +516,6 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE
List<Map<String, Object>> selectDayEchart(@Param("systemCode") String systemCode,
@Param("startDate") String startDate,
@Param("endDate") String endDate);
@Param("endDate") String endDate,
@Param("indicator") List<String> indicator);
}
......@@ -1477,7 +1477,7 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
map.put("station", "");
}
map.put("time", startDate+"-"+endDate);
map.put("time", startDate.substring(0,7));
// 单个系统数据
for (Map<String, Object> sys : system) {
HashMap<String, Object> systemData = new HashMap<>();
......@@ -1553,10 +1553,10 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
List<Map<String, Object>> selectMonthPolyline = fireFightingSystemMapper.selectMonthPolyline(String.valueOf(sys.get("code")), startDate, endDate, indicatorList);
String pieChart = ChartsUtils.pieChart(pieChartList, "设备告警统计");
String pieChart = ChartsUtils.pieChart(pieChartList, "故障设备类型占比");
systemData.put("bing1", pieChart);
if (!CollectionUtils.isEmpty(pieChartListTwo)) {
String pieChart1 = ChartsUtils.pieChart(pieChartListTwo, "告警类别统计");
String pieChart1 = ChartsUtils.pieChart(pieChartListTwo, "告警信息占比");
systemData.put("bing2", pieChart1);
} else {
List<Map<String, Object>> data = new ArrayList<>();
......@@ -1564,13 +1564,13 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
dataMap.put("type", "火警");
dataMap.put("value", 0);
data.add(dataMap);
String pieChart1 = ChartsUtils.pieChart(data, "告警类别统计");
String pieChart1 = ChartsUtils.pieChart(data, "报警趋势");
systemData.put("bing2", pieChart1);
}
if (!CollectionUtils.isEmpty(selectMonthPolyline)) {
String pieChart2 = ChartsUtils.manyLineChart(selectMonthPolyline, "月告警信息", "日期", "告警数量");
String pieChart2 = ChartsUtils.manyLineChart(selectMonthPolyline, "报警趋势", "日期", "报警数量");
systemData.put("bing3", pieChart2);
} else {
systemData.put("bing3", "");
......@@ -1651,7 +1651,7 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
} else {
map.put("station", "");
}
map.put("time", startDate + "-" + endDate);
map.put("time", startDate + "" + endDate);
// 系统循环数据填充
ArrayList<Map<String, Object>> dataList = new ArrayList<>();
for (Map<String, Object> system : systemList) {
......@@ -1667,7 +1667,7 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
String indicator = String.valueOf(collect.get(0).get("index"));
String[] split = indicator.split(",");
List<String> indicatorList = Arrays.asList(split);
List<Map<String, Object>> weekReportList = fireFightingSystemMapper.selectWeekReportList(String.valueOf(system.get("id")), startDate, endDate, indicatorList);
List<Map<String, Object>> weekReportList = fireFightingSystemMapper.selectWeekReportList(String.valueOf(system.get("id")), startDate, endDate);
ArrayList<Map<String, Object>> list = new ArrayList<>();
if (!CollectionUtils.isEmpty(weekReportList)) {
for (Map<String, Object> weekItem : weekReportList) {
......@@ -1722,16 +1722,16 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
}
// echarts 图表
List<Map<String, Object>> mapList = fireFightingSystemMapper.selectWeekEquipEchart(valueOf(system.get("code")), startDate, endDate);
String pieChart1 = ChartsUtils.pieChart(mapList, "告警类别统计");
List<Map<String, Object>> mapList = fireFightingSystemMapper.selectWeekEquipEchart(valueOf(system.get("code")), startDate, endDate, indicatorList);
String pieChart1 = ChartsUtils.pieChart(mapList, "故障设备类型占比");
systemData.put("pictureLeft", pieChart1);
List<Map<String, Object>> weekEchart = fireFightingSystemMapper.selectWeekEchart(valueOf(system.get("code")), startDate, endDate);
String pieChart2 = ChartsUtils.pieChart(weekEchart, "设备告警统计");
String pieChart2 = ChartsUtils.pieChart(weekEchart, "告警信息占比");
systemData.put("pictureCenter", pieChart2);
List<Map<String, Object>> linesEchart = fireFightingSystemMapper.selectWeekLinesEchart(valueOf(system.get("code")), startDate, endDate);
String lines = ChartsUtils.manyLineChart(linesEchart, "周告警信息", "日期", "告警数量");
List<Map<String, Object>> linesEchart = fireFightingSystemMapper.selectWeekLinesEchart(valueOf(system.get("code")), startDate, endDate, indicatorList);
String lines = ChartsUtils.manyLineChart(linesEchart, "报警趋势", "日期", "报警数量");
systemData.put("lines", lines);
systemData.put("sysData", list);
......@@ -1794,7 +1794,7 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
} else {
map.put("station", "");
}
map.put("time", startDate + "-" + endDate);
map.put("time", startDate);
// 系统循环数据填充
ArrayList<Map<String, Object>> dataList = new ArrayList<>();
for (Map<String, Object> system : systemList) {
......@@ -1810,7 +1810,7 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
String indicator = String.valueOf(collect.get(0).get("index"));
String[] split = indicator.split(",");
List<String> indicatorList = Arrays.asList(split);
List<Map<String, Object>> weekReportList = fireFightingSystemMapper.selectWeekReportList(String.valueOf(system.get("id")), startDate, endDate, indicatorList);
List<Map<String, Object>> weekReportList = fireFightingSystemMapper.selectWeekReportList(String.valueOf(system.get("id")), startDate, endDate);
ArrayList<Map<String, Object>> list = new ArrayList<>();
if (!CollectionUtils.isEmpty(weekReportList)) {
for (Map<String, Object> weekItem : weekReportList) {
......@@ -1864,11 +1864,11 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
// echarts 图表
List<Map<String, Object>> mapList = fireFightingSystemMapper.selectDayEquipEchart(valueOf(system.get("code")), startDate, endDate);
String pieChart1 = ChartsUtils.pieChart(mapList, "设备类别类别统计");
String pieChart1 = ChartsUtils.pieChart(mapList, "故障设备类型占比");
systemData.put("pictureLeft", pieChart1);
List<Map<String, Object>> weekEchart = fireFightingSystemMapper.selectDayEchart(valueOf(system.get("code")), startDate, endDate);
String pieChart2 = ChartsUtils.pieChart(weekEchart, "设备告警统计");
List<Map<String, Object>> dayEchart = fireFightingSystemMapper.selectDayEchart(valueOf(system.get("code")), startDate, endDate, indicatorList);
String pieChart2 = ChartsUtils.pieChart(dayEchart, "告警信息占比");
systemData.put("pictureRight", pieChart2);
......
......@@ -1036,7 +1036,7 @@
<w:sz w:val="36"/>
<w:sz-cs w:val="36"/>
</w:rPr>
<w:t> </w:t>
<w:t> </w:t>
</w:r>
<w:r>
<w:rPr>
......@@ -2815,7 +2815,7 @@
<w:sz w:val="24"/>
<w:sz-cs w:val="24"/>
</w:rPr>
<w:t> </w:t>
<w:t> </w:t>
</w:r>
<w:r>
<w:rPr>
......
......@@ -2951,7 +2951,7 @@
<w:sz w:val="24"/>
<w:sz-cs w:val="24"/>
</w:rPr>
<w:t> </w:t>
<w:t> </w:t>
</w:r>
<w:r>
<w:rPr>
......
......@@ -2877,7 +2877,7 @@
<w:sz w:val="24"/>
<w:sz-cs w:val="24"/>
</w:rPr>
<w:t> </w:t>
<w:t> </w:t>
</w:r>
<#-- <w:r>-->
<#-- <w:rPr>-->
......
......@@ -8,7 +8,28 @@
{
"code": "92990000",
"index": "OilLeak,Open,Fault"
}
,
{
"code": "92110000",
"index": "Alarm,Fault,Abnormal,State"
}
,
{
"code": "92010000",
"index": "FireAlarm,Fault,Shield"
}
,
{
"code": "92030000",
"index": "Alarm,Fault,Abnormal"
}
]
\ No newline at end of file
......@@ -3719,12 +3719,12 @@
</select>
<select id="selectWeekReportList" resultType="java.util.Map">
SELECT temp.name,temp.num,temp.normalNum, temp1.type_name , temp1.monitoringData,temp1.acquisition,temp1.normal,
SELECT temp.name,temp.num,temp.normalNum,temp1.type_name , temp1.monitoringData,temp1.acquisition,temp1.normal,
IFNULL(temp1.alarmEquipNum,0) AS alarmEquipNum, temp1.type_code,temp.code
FROM
(
select
select
a1.*,
(a1.num - a1.exepctionNum) as normalNum
from
......@@ -3737,29 +3737,37 @@
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
and( report.index_type LIKE CONCAT('%','FireAlarm','%')
or report.index_type LIKE CONCAT('%','Fault','%')
or report.index_type LIKE CONCAT('%','Shield','%')
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
FROM(
SELECT
s.id as system_id,
equipment.code,
equipment.name,
count(1) AS num
s.id as system_id,
equipment.code,
equipment.name,
count(1) AS num
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, name ORDER BY system_id, code ) a) as a1
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 = #{systemId}
GROUP BY code,s.id, name ORDER BY system_id, code ) a) as a1
) temp
LEFT JOIN
(
) temp
LEFT JOIN
(
SELECT temp.*,
CASE
......@@ -3767,52 +3775,53 @@
WHEN wei.is_trend = 1 then "遥测"
ELSE "/"
END AS monitoringData
FROM
FROM
(
SELECT
spec_index.equipment_index_id,
s.id as systemId,
spec.equipment_code as code,
spec_index.equipment_index_name AS type_name,
spec_index.equipment_index_key AS type_code,
'自动获取' AS acquisition,
CASE
WHEN spec_index.equipment_index_key LIKE CONCAT('%', 'fault') THEN
'无故障'
WHEN spec_index.equipment_index_key LIKE CONCAT('%', 'SHIELD') THEN
'无屏蔽'
ELSE
'/'
END AS normal,
IFNULL(
(
SELECT
sum(e.report_equip_num)
FROM
wl_equipment_alarm_equip_day e
WHERE
e.system_id is not null
and e.system_id = s.id
AND e.equipment_code = spec.equipment_code
AND e.index_key = spec_index.equipment_index_key
AND e.report_date >= DATE_FORMAT(#{startDate},'%y-%m-%d')
s.id as systemId,
spec.equipment_code as code,
spec_index.equipment_index_name AS type_name,
spec_index.equipment_index_key AS type_code,
'自动获取' AS acquisition,
CASE
WHEN spec_index.equipment_index_key LIKE CONCAT('%', 'Fault') THEN
'无故障'
WHEN spec_index.equipment_index_key LIKE CONCAT('%', 'Shield') THEN
'无屏蔽'
ELSE
'/'
END AS normal,
IFNULL(
(
SELECT
sum(e.report_equip_num)
FROM
wl_equipment_alarm_equip_day e
WHERE
e.system_id is not null
and e.system_id = #{systemId}
AND e.equipment_code = spec.equipment_code
AND e.index_key = spec_index.equipment_index_key
AND e.report_date >= DATE_FORMAT(#{startDate},'%y-%m-%d')
AND e.report_date &lt;= DATE_FORMAT(#{endDate},'%y-%m-%d')
),
0
) AS alarmEquipNum
),
0
) AS alarmEquipNum
FROM
wl_equipment_specific_index spec_index
JOIN wl_equipment_specific spec ON spec_index.equipment_specific_id = spec.id
join f_fire_fighting_system s on FIND_IN_SET(s.id,spec.system_id)
wl_equipment_specific_index spec_index
JOIN wl_equipment_specific spec ON spec_index.equipment_specific_id = spec.id
join f_fire_fighting_system s on FIND_IN_SET(s.id,spec.system_id)
WHERE s.id = #{systemId}
WHERE
spec.system_id is not null
GROUP BY systemId,code,type_code
)temp LEFT JOIN wl_equipment_index wei on temp.equipment_index_id = wei.id
)temp1 on temp.system_id = temp1.systemId and temp.code = temp1.code
where temp.system_id = #{systemId}
</select>
<select id="selectAlarms" resultType="java.lang.Integer">
......@@ -3823,9 +3832,12 @@
LEFT JOIN f_fire_fighting_system s ON FIND_IN_SET( s.id, report.system_ids )
LEFT JOIN wl_equipment_specific spec on report.equipment_specific_id = spec.id
where report.system_ids is not null and report.index_true_num > 0
<foreach collection="indicator" item="index" open="AND(" separator="or" close=")">
report.index_type like concat ('%', #{index})
</foreach>
and( report.index_type LIKE CONCAT('%','Fault','%')
or report.index_type LIKE CONCAT('%','FireAlarm','%')
or report.index_type LIKE CONCAT('%','Shield','%')
or report.index_type LIKE CONCAT('%','Open','%')
or report.index_type LIKE CONCAT('%','OilLeak','%')
or report.index_type LIKE CONCAT('%','Alarm','%'))
and report.report_date BETWEEN #{startDate} and #{endDate}
and system_id = #{systemId}
and index_type = #{indexType}
......@@ -3873,7 +3885,7 @@
and( report.index_type LIKE CONCAT('%','Fault','%')
or report.index_type LIKE CONCAT('%','FireAlarm','%')
or report.index_type LIKE CONCAT('%','Shield','%') )
and report.report_date between #{startDate} and #{endDate} ) as exepctionNum,
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
......@@ -3891,14 +3903,14 @@
and( report.index_type LIKE CONCAT('%','Fault','%')
or report.index_type LIKE CONCAT('%','FireAlarm','%')
or report.index_type LIKE CONCAT('%','Shield','%') )
and report.report_date between #{startDate} and #{endDate} ) as alarmNum,
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
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','%'))
and report.report_date between #{startDate} and #{endDate} ) as faultNum,
and report.report_date >= #{startDate} and report.report_date &lt;=#{endDate} ) as faultNum,
(SELECT IFNULL(SUM(index_true_num ),0)
FROM wl_equipment_alarm_report_day report
where report.equipment_code = a.code
......@@ -3922,7 +3934,7 @@
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 and spec.create_date &lt; #{endDate}
where spec.system_id = #{systemId} and spec.create_date &lt; #{endDate}
GROUP BY code,s.id, name ORDER BY system_id, code ) a) as a1
GROUP BY a1.system_id
) as b
......@@ -3945,12 +3957,12 @@
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('%','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.index_true_num>0
and report.report_date BETWEEN #{startDate}
and #{endDate} ) as exepctionNum,
and report.report_date >= #{startDate}
and report.report_date &lt;= #{endDate} ) as exepctionNum,
create_date
FROM(
SELECT
......@@ -3985,9 +3997,9 @@
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('%','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.index_true_num>0
and report.report_date between #{startDate}
and #{endDate} ) as exepctionNum
......@@ -4051,9 +4063,9 @@
wl_equipment_alarm_report_day report
LEFT JOIN f_fire_fighting_system s ON FIND_IN_SET( s.id, report.system_ids)
WHERE report.system_ids is not null
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 s.code = #{systemCode}
GROUP BY
report.report_date,
......@@ -4080,9 +4092,9 @@
wl_equipment_alarm_report_day report
LEFT JOIN f_fire_fighting_system s ON FIND_IN_SET( s.id, report.system_ids)
WHERE report.system_ids is not null
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.index_true_num >0
and s.code = #{systemCode}
GROUP BY
......@@ -4093,7 +4105,7 @@
</select>
<select id="selectDaySummarize" resultType="java.util.Map">
SELECT
CONCAT_WS('', fs.name, '设备总数', b.equipNum, '台,今日告警设备为', b.equipNum - b.normalNum, '台,告警总数为', b.alarmNum, '条,正常设备', b.normalNum, '台,正常率', b.normalRate, '%' ) AS contant,
CONCAT_WS('', fs.name, '设备总数', b.equipNum, '台,今日告警设备为', b.equipNum - b.normalNum, '台,告警总数为',ifnull(b.alarmNum, 0) , '条,正常设备', b.normalNum, '台,正常率', b.normalRate, '%' ) AS contant,
fs.id as system_id
FROM
f_fire_fighting_system fs left join
......@@ -4145,7 +4157,7 @@
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
where spec.system_id = #{systemId}
GROUP BY code,s.id, name ORDER BY system_id, code ) a) as a1
GROUP BY a1.system_id
) as b
......@@ -4190,9 +4202,9 @@
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('%','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.index_true_num>0
and report.report_date >= #{startDate}
and report.report_date &lt;= #{endDate} ) as exepctionNum,
......@@ -4230,9 +4242,9 @@
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('%','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.index_true_num>0
and report.report_date >= #{startDate}
and report.report_date &lt;= #{endDate} ) as exepctionNum
......
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