(SELECT COUNT(DISTINCT t.equipment_specific_id) FROM wl_equipment_specific_alarm t WHERE FIND_IN_SET(t1.id, t.system_ids) > 0 AND t.status = 1) AS value
FROM
f_fire_fighting_system t1
LEFT JOIN wl_equipment_category t2 ON t1.system_type = t2.id
LEFT JOIN ( SELECT `status`, system_ids FROM wl_equipment_specific_alarm WHERE `status` = 1 GROUP BY system_ids ) sa ON find_in_set( t1.id, sa.system_ids )
f_fire_fighting_system t1
LEFT JOIN wl_equipment_category t2 on t1.system_type = t2.id
WHERE
t1.system_type_code IS NOT NULL
AND LENGTH(
TRIM( t1.system_type_code )) != 0
AND t2.`name` IS NOT NULL
AND LENGTH(
TRIM( t2.`name` )) != 0
<iftest="bizOrgCode != null and bizOrgCode != ''">
AND t1.biz_org_code LIKE CONCAT(#{bizOrgCode},'%')
</if>
t1.system_type_code IS NOT NULL AND LENGTH(TRIM(t1.system_type_code)) != 0
AND t2.name IS NOT NULL AND LENGTH(TRIM(t2.name)) != 0
<iftest="bizOrgCode != null and bizOrgCode != ''">
AND t1.biz_org_code LIKE CONCAT(#{bizOrgCode},'%')
</if>
) d
WHERE
d.value != 0
GROUP BY
t1.system_type_code
HAVING
`num` IS NOT NULL
AND `num` > 0
d.system_type_code
</select>
<selectid="getSystemInfoPage"resultType="Map">
SELECT
d.id,
d.`name`,
IF( d.VALUE > 0, '异常', '正常') AS sysState,
d.bizOrgName,
d.value AS `value`,
d.equips
d.id,
d.name,
IF(d.VALUE > 0, '异常', '正常') AS sysState,
d.bizOrgName,
d.value AS value
FROM
(
SELECT
`fs`.`id` AS `id`,
`fs`.`name` AS `name`,
fs.system_type_code,
fs.biz_org_name AS bizOrgName,
count( t.`status` = 0 OR NULL ) AS `value`,
count( DISTINCT t.`equipment_specific_id` ) AS equips
SELECT
fs.id AS id,
fs.name AS name,
fs.system_type_code,
fs.biz_org_name AS bizOrgName,
(SELECT COUNT(DISTINCT t.equipment_specific_id) FROM wl_equipment_specific_alarm t WHERE FIND_IN_SET(fs.id, t.system_ids) > 0 AND t.status = 1) AS value
FROM
`f_fire_fighting_system` `fs`
LEFT JOIN ( SELECT equipment_specific_id, system_ids, max( `status` ) AS `status` FROM wl_equipment_specific_alarm GROUP BY equipment_specific_id, system_ids ) t ON find_in_set( `fs`.`id`, t.system_ids )
f_fire_fighting_system fs
WHERE
fs.system_type_code IS NOT NULL
AND LENGTH(
trim( fs.system_type_code )) != 0
<iftest="bizOrgCode!=null and bizOrgCode!=''">
AND fs.biz_org_code LIKE CONCAT(#{bizOrgCode},'%')
</if>
<iftest="systemType!=null and systemType!=''">
AND fs.system_type_code LIKE CONCAT(#{systemType},'%')
</if>
GROUP BY
`fs`.`id`
fs.system_type_code IS NOT NULL
AND LENGTH(TRIM(fs.system_type_code)) != 0
<iftest="bizOrgCode!=null and bizOrgCode!=''">
AND fs.biz_org_code LIKE CONCAT(#{bizOrgCode},'%')
</if>
<iftest="systemType!=null and systemType!=''">
AND fs.system_type_code LIKE CONCAT(#{systemType},'%')