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)) <0 THEN '减少' else '增加' end ) as status1,
(CASE WHEN (SUM(a1.alarmNum)-SUM(a1.lastAlarmNum)) <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
...
...
@@ -3917,27 +3937,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','%') )
and report.report_date <= #{endDate} ) as exepctionNum
FROM(
SELECT
s.id as system_id,
s.code as system_code,
equipment.code,
count(1) AS num,
spec.create_date
fs.id,
fs.name,
fs.code,
( SELECT COUNT( DISTINCT(wesa.iot_code) ) FROM wl_equipment_specific_alarm wesa WHERE FIND_IN_SET( fs.id, wesa.system_ids ) AND wesa.create_date like concat(DATE_FORMAT(NOW(),'%Y-%m-%d')) ) AS total,
( SELECT COUNT( DISTINCT(wesa.iot_code) ) FROM wl_equipment_specific_alarm wesa WHERE FIND_IN_SET( fs.id, wesa.system_ids ) AND wesa.equipment_specific_index_value = 'true' AND wesa.create_date like concat(DATE_FORMAT(NOW(),'%Y-%m-%d'))) AS notReturnd
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