Commit 735d42aa authored by 李秀明's avatar 李秀明

fix: BUG#21964 告警统计增加时间筛选

parent 104db640
...@@ -82,14 +82,21 @@ public class AlarmStatisticController extends AbstractBaseController { ...@@ -82,14 +82,21 @@ public class AlarmStatisticController extends AbstractBaseController {
@GetMapping("/statistic/trend") @GetMapping("/statistic/trend")
public ResponseModel getSystemAlarmTrend(@RequestParam(value = "systemCode", required = false)String systemCode, public ResponseModel getSystemAlarmTrend(@RequestParam(value = "systemCode", required = false)String systemCode,
@RequestParam(value = "updateTime", required = false)String updateTime, @RequestParam(value = "updateTime", required = false)String updateTime,
@RequestParam(value = "bizOrgCode", required = false) String bizOrgCode) { @RequestParam(value = "bizOrgCode", required = false) String bizOrgCode,
return CommonResponseUtil.success(iFireFightingSystemService.getCenterSystemAlarmTrend(systemCode, updateTime, bizOrgCode)); @RequestParam(value = "startDate", required = false) String startDate,
@RequestParam(value = "endDate", required = false) String endDate
) {
return CommonResponseUtil.success(iFireFightingSystemService.getCenterSystemAlarmTrend(systemCode, updateTime, bizOrgCode, startDate, endDate));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(value = "系统告警事件数量占比") @ApiOperation(value = "系统告警事件数量占比")
@GetMapping("/num") @GetMapping("/num")
public ResponseModel getSystemAlarmNum(@RequestParam(value = "bizOrgCode", required = false)String bizOrgCode) { public ResponseModel getSystemAlarmNum(
return CommonResponseUtil.success(iFireFightingSystemService.getSystemAlarmNum(bizOrgCode)); @RequestParam(value = "bizOrgCode", required = false)String bizOrgCode,
@RequestParam(value = "startDate", required = false) String startDate,
@RequestParam(value = "endDate", required = false) String endDate
) {
return CommonResponseUtil.success(iFireFightingSystemService.getSystemAlarmNum(bizOrgCode, startDate, endDate));
} }
} }
...@@ -742,7 +742,7 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE ...@@ -742,7 +742,7 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE
Map<String, String> getSystemAlarmStatistic(@Param("systemCode") String systemCode, @Param("startDate") String startDate, @Param("endDate") String endDate); Map<String, String> getSystemAlarmStatistic(@Param("systemCode") String systemCode, @Param("startDate") String startDate, @Param("endDate") String endDate);
List<Map<String, Object>> getSystemAlarmTrend(@Param("systemCode") String systemCode, @Param("updateTime") String updateTime, @Param("bizOrgCode") String bizOrgCode); List<Map<String, Object>> getSystemAlarmTrend(@Param("systemCode") String systemCode, @Param("updateTime") String updateTime, @Param("intervalDays") Long intervalDays, @Param("bizOrgCode") String bizOrgCode);
List<Map<String, Object>> getSystemAlarmTrendForSbpt(@Param("systemCode") String systemCode, @Param("updateTime") String updateTime); List<Map<String, Object>> getSystemAlarmTrendForSbpt(@Param("systemCode") String systemCode, @Param("updateTime") String updateTime);
...@@ -768,7 +768,7 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE ...@@ -768,7 +768,7 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE
List<Map<String, Object>> getFireCannonInfo(@Param("bizOrgCode") String bizOrgCode, @Param("list") String[] strings); List<Map<String, Object>> getFireCannonInfo(@Param("bizOrgCode") String bizOrgCode, @Param("list") String[] strings);
List<Map<String, Object>> getSystemAlarmNum(@Param("bizOrgCode") String bizOrgCode); List<Map<String, Object>> getSystemAlarmNum(@Param("bizOrgCode") String bizOrgCode, String startDate, String endDate);
List<Map<String, Object>> getSystemTypes(String bizOrgCode); List<Map<String, Object>> getSystemTypes(String bizOrgCode);
} }
...@@ -351,7 +351,7 @@ public interface IFireFightingSystemService extends IService<FireFightingSystemE ...@@ -351,7 +351,7 @@ public interface IFireFightingSystemService extends IService<FireFightingSystemE
Map<String, Object> getSystemAlarmTrend(String systemCode, String updateTime, String bizOrgCode); Map<String, Object> getSystemAlarmTrend(String systemCode, String updateTime, String bizOrgCode);
Map<String, Object> getCenterSystemAlarmTrend(String systemCode, String updateTime, String bizOrgCode); Map<String, Object> getCenterSystemAlarmTrend(String systemCode, String updateTime, String bizOrgCode, String startDate, String endDate);
List<Map<String, Object>> getFireCannonInfo(String bizOrgCode); List<Map<String, Object>> getFireCannonInfo(String bizOrgCode);
...@@ -359,5 +359,5 @@ public interface IFireFightingSystemService extends IService<FireFightingSystemE ...@@ -359,5 +359,5 @@ public interface IFireFightingSystemService extends IService<FireFightingSystemE
List<OrgMenuDto> getSystemEquipTree(String systemCode); List<OrgMenuDto> getSystemEquipTree(String systemCode);
List<Map<String, Object>> getSystemAlarmNum(String bizOrgCode); List<Map<String, Object>> getSystemAlarmNum(String bizOrgCode, String startDate, String endDate);
} }
...@@ -68,6 +68,8 @@ import java.net.SocketException; ...@@ -68,6 +68,8 @@ import java.net.SocketException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
...@@ -2765,7 +2767,7 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste ...@@ -2765,7 +2767,7 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
if(!StringUtil.isNotEmpty(updateTime)) { if(!StringUtil.isNotEmpty(updateTime)) {
updateTime = new SimpleDateFormat(DateUtils.DATE_PATTERN).format(new Date()); updateTime = new SimpleDateFormat(DateUtils.DATE_PATTERN).format(new Date());
} }
List<Map<String, Object>> result = fireFightingSystemMapper.getSystemAlarmTrend(systemCode, updateTime, bizOrgCode); List<Map<String, Object>> result = fireFightingSystemMapper.getSystemAlarmTrend(systemCode, updateTime, null, bizOrgCode);
Map<String, Object> resMap = new HashMap<>(); Map<String, Object> resMap = new HashMap<>();
resMap.put("xAxisData", result.stream().map(x -> x.get("date")).collect(Collectors.toList())); resMap.put("xAxisData", result.stream().map(x -> x.get("date")).collect(Collectors.toList()));
List<Map<String, Object>> list = new ArrayList<>(); List<Map<String, Object>> list = new ArrayList<>();
...@@ -2786,11 +2788,18 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste ...@@ -2786,11 +2788,18 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
} }
@Override @Override
public Map<String, Object> getCenterSystemAlarmTrend(String systemCode, String updateTime, String bizOrgCode) { public Map<String, Object> getCenterSystemAlarmTrend(String systemCode, String updateTime, String bizOrgCode, String startDate, String endDate) {
if(!StringUtil.isNotEmpty(updateTime)) { Long intervalDays = null;
if(StringUtils.isEmpty(updateTime)) {
updateTime = new SimpleDateFormat(DateUtils.DATE_PATTERN).format(new Date()); updateTime = new SimpleDateFormat(DateUtils.DATE_PATTERN).format(new Date());
} }
List<Map<String, Object>> result = fireFightingSystemMapper.getSystemAlarmTrend(systemCode, updateTime, bizOrgCode); if (StringUtils.hasText(startDate) && StringUtils.hasText(endDate)) {
updateTime = endDate;
LocalDate date1 = LocalDate.parse(startDate, DateTimeFormatter.ofPattern(DateUtils.DATE_TIME_PATTERN));
LocalDate date2 = LocalDate.parse(endDate, DateTimeFormatter.ofPattern(DateUtils.DATE_TIME_PATTERN));
intervalDays = date1.until(date2, ChronoUnit.DAYS);
}
List<Map<String, Object>> result = fireFightingSystemMapper.getSystemAlarmTrend(systemCode, updateTime, intervalDays, bizOrgCode);
Map<String, Object> resMap = new HashMap<>(); Map<String, Object> resMap = new HashMap<>();
resMap.put("xAxisData", result.stream().map(x -> x.get("date")).collect(Collectors.toList())); resMap.put("xAxisData", result.stream().map(x -> x.get("date")).collect(Collectors.toList()));
List<Map<String, Object>> list = new ArrayList<>(); List<Map<String, Object>> list = new ArrayList<>();
...@@ -2876,8 +2885,8 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste ...@@ -2876,8 +2885,8 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
} }
@Override @Override
public List<Map<String, Object>> getSystemAlarmNum(String bizOrgCode) { public List<Map<String, Object>> getSystemAlarmNum(String bizOrgCode, String startDate, String endDate) {
return fireFightingSystemMapper.getSystemAlarmNum(bizOrgCode); return fireFightingSystemMapper.getSystemAlarmNum(bizOrgCode, startDate, endDate);
} }
@Override @Override
......
...@@ -6672,54 +6672,54 @@ ...@@ -6672,54 +6672,54 @@
<select id="getSystemAlarmTrend" resultType="Map"> <select id="getSystemAlarmTrend" resultType="Map">
SELECT SELECT
s1.date, s1.date,
IFNULL( s2.faultNum, 0 ) AS faultNum, IFNULL( s2.faultNum, 0 ) AS faultNum,
IFNULL( s2.alarmNum, 0 ) AS alarmNum, IFNULL( s2.alarmNum, 0 ) AS alarmNum,
IFNULL( s2.faultNum, 0 ) AS shieldNum IFNULL( s2.faultNum, 0 ) AS shieldNum
FROM FROM
( (
SELECT SELECT
@s := @s + 1 AS `index`, @s := @s + 1 AS `index`,
DATE_FORMAT( DATE_ADD(( DATE( DATE_ADD(#{updateTime}, INTERVAL - 6 DAY ))), INTERVAL @s DAY ), '%Y-%m-%d' ) AS date DATE_FORMAT( DATE_ADD(( DATE( DATE_ADD(#{updateTime}, INTERVAL - IFNULL(#{intervalDays}, 6) DAY ))), INTERVAL @s DAY ), '%Y-%m-%d' ) AS date
FROM FROM
mysql.help_topic, mysql.help_topic,
( SELECT @s := - 1 ) temp ( SELECT @s := - 1 ) temp
WHERE WHERE
@s &lt; 6 @s &lt; IFNULL(#{intervalDays}, 6)
) s1 ) s1
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
s.* s.*
FROM
(
SELECT
IFNULL(SUM(IF(r.`status` = 0, 1, 0)), 0) AS normalNum,
IFNULL(SUM(IF((r.type = 'BREAKDOWN' AND r.`status` = 1), 1, 0)), 0) AS faultNum,
IFNULL(SUM(IF((r.type = 'FIREALARM' AND r.`status` = 1), 1, 0)), 0) AS alarmNum,
IFNULL(SUM(IF((r.type = 'SHIELD' AND r.`status` = 1), 1, 0)), 0) AS shieldNum,
DATE_FORMAT( r.update_date, '%Y-%m-%d') AS date
FROM FROM
wl_equipment_specific_alarm_log r (
LEFT JOIN f_fire_fighting_system fs ON FIND_IN_SET( fs.id, r.system_ids ) SELECT
<where> IFNULL(SUM(IF(r.`status` = 0, 1, 0)), 0) AS normalNum,
r.update_date BETWEEN date_sub( now(), INTERVAL 6 MONTH ) AND now() IFNULL(SUM(IF((r.type = 'BREAKDOWN' AND r.`status` = 1), 1, 0)), 0) AS faultNum,
<if test="systemCode != null and systemCode != ''"> IFNULL(SUM(IF((r.type = 'FIREALARM' AND r.`status` = 1), 1, 0)), 0) AS alarmNum,
AND fs.`code` = #{systemCode} IFNULL(SUM(IF((r.type = 'SHIELD' AND r.`status` = 1), 1, 0)), 0) AS shieldNum,
</if> DATE_FORMAT( r.update_date, '%Y-%m-%d') AS date
<if test="bizOrgCode!=null and bizOrgCode!=''"> FROM
r.biz_org_code like concat(#{bizOrgCode}, '%') wl_equipment_specific_alarm_log r
</if> LEFT JOIN f_fire_fighting_system fs ON FIND_IN_SET( fs.id, r.system_ids )
</where> <where>
GROUP BY r.update_date BETWEEN date_sub( now(), INTERVAL 6 MONTH ) AND now()
LEFT ( r.update_date, 10 ) <if test="systemCode != null and systemCode != ''">
ORDER BY AND fs.`code` = #{systemCode}
r.update_date </if>
) s <if test="bizOrgCode!=null and bizOrgCode!=''">
r.biz_org_code like concat(#{bizOrgCode}, '%')
</if>
</where>
GROUP BY
LEFT ( r.update_date, 10 )
ORDER BY
r.update_date
) s
) s2 ON s2.date = s1.date ) s2 ON s2.date = s1.date
GROUP BY GROUP BY
s1.date s1.date
ORDER BY ORDER BY
s1.date s1.date
</select> </select>
<select id="getSystemAlarmTrendForSbpt" resultType="Map"> <select id="getSystemAlarmTrendForSbpt" resultType="Map">
...@@ -7045,11 +7045,18 @@ ...@@ -7045,11 +7045,18 @@
FROM FROM
wl_equipment_specific_alarm_log wlesal wl_equipment_specific_alarm_log wlesal
LEFT JOIN f_fire_fighting_system fs ON FIND_IN_SET( fs.id, wlesal.system_ids ) <![CDATA[<>]]> 0 LEFT JOIN f_fire_fighting_system fs ON FIND_IN_SET( fs.id, wlesal.system_ids ) <![CDATA[<>]]> 0
<where>
<if test="bizOrgCode!=null and bizOrgCode!=''"> <if test="bizOrgCode!=null and bizOrgCode!=''">
AND wlesal.biz_org_code LIKE CONCAT(#{bizOrgCode},'%') AND wlesal.biz_org_code LIKE CONCAT(#{bizOrgCode},'%')
</if> </if>
<if test="startDate!=null and startDate!=''">
AND wlesal.create_date &gt;= #{startDate}
</if>
<if test="endDate!=null and endDate!=''">
AND wlesal.create_date &lt;= #{endDate}
</if>
</where>
GROUP BY fs.system_type_code GROUP BY fs.system_type_code
</select> </select>
<select id="getSystemTypes" resultType="Map"> <select id="getSystemTypes" resultType="Map">
......
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