Commit d785ccf7 authored by chenzhao's avatar chenzhao

修改现场fenxi问题

parent d5ad231b
......@@ -172,11 +172,11 @@ public class TDBigScreenAnalyseController extends BaseController {
return s + " 00:00:00";
}).collect(Collectors.toList());
List<Map<String, Object>> healthListInfo = fanHealthIndexMapper.getInfoByDate(finalAreaCode,
finalStationCode, fullDateList);
finalStationCode, dateList);
Map<String, Object> map = healthListInfo.stream().collect(Collectors
.toMap(i -> String.valueOf(i.get("recdate")), i -> i.get("healthindex"), (key1, key2) -> key2));
for (String date : dateList) {
String value = map.get(date + " 00:00:00") != null ? String.valueOf(map.get(date + " 00:00:00"))
String value = map.get(date) != null ? String.valueOf(map.get(date))
: "100";
valueList.add(String.valueOf(Math.round(Double.valueOf(value) * 10.0) / 10.0));
}
......
......@@ -23,6 +23,8 @@ public interface IdxBizFanHealthIndexMapper extends BaseMapper<IdxBizFanHealthIn
BigDecimal getHealthScoreInfo(@Param("areaCode") String areaCode, @Param("stationCode") String stationCode);
BigDecimal getHealthScoreInfoNew(@Param("areaCode") String areaCode, @Param("stationCode") String stationCode,@Param("analysisType") String analysisType);
BigDecimal getHealthScoreInfoByLatest(@Param("areaCode") String areaCode, @Param("stationCode") String stationCode);
BigDecimal getHealthScoreInfoByStation(@Param("stationCode") String stationCode,
......
......@@ -49,6 +49,77 @@
)
) a
</select>
<select id="getHealthScoreInfoNew" resultType="java.math.BigDecimal">
SELECT
CEILING(avg( a.avgHealthIndex )) AS healthIndex
FROM
(
SELECT
IFNULL( AVG( HEALTH_INDEX ), 100 ) AS avgHealthIndex
FROM
idx_biz_fan_health_index
<where>
<if test="analysisType == '按天' or analysisType == null or analysisType == ''">
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURDATE() - INTERVAL 1 DAY
</if>
<if test="analysisType == '按小时'">
AND ANALYSIS_TYPE = '按小时'
AND REC_DATE >= DATE_SUB( NOW(), INTERVAL 59 MINUTE )
</if>
<if test="analysisType == '按10分钟'">
AND ANALYSIS_TYPE = '按10分钟'
AND REC_DATE >= DATE_SUB( NOW(), INTERVAL 9 MINUTE )
</if>
<if test="areaCode != null and areaCode != ''">
AND ARAE like concat('%', #{areaCode}, '%')
AND ANALYSIS_OBJ_TYPE = '片区'
</if>
<if test="stationCode != null and stationCode != ''">
AND GATEWAY_ID = #{stationCode}
AND ANALYSIS_OBJ_TYPE = '场站'
</if>
<if test="(stationCode == null or stationCode == '') and (areaCode == null or areaCode == '')">
AND ANALYSIS_OBJ_TYPE = '片区'
</if>
</where>
UNION ALL
(
SELECT
IFNULL( AVG( HEALTH_INDEX ), 100 ) AS avgHealthIndex
FROM
idx_biz_pv_health_index
<where>
<if test="analysisType == '按天' or analysisType == null or analysisType == ''">
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURDATE() - INTERVAL 1 DAY
</if>
<if test="analysisType == '按小时'">
AND ANALYSIS_TYPE = '按小时'
AND REC_DATE >= DATE_SUB( NOW(), INTERVAL 59 MINUTE )
</if>
<if test="analysisType == '按10分钟'">
AND ANALYSIS_TYPE = '按10分钟'
AND REC_DATE >= DATE_SUB( NOW(), INTERVAL 9 MINUTE )
</if>
<if test="areaCode != null and areaCode != ''">
AND ARAE like concat('%', #{areaCode}, '%')
AND ANALYSIS_OBJ_TYPE = '片区'
</if>
<if test="stationCode != null and stationCode != ''">
AND GATEWAY_ID = #{stationCode}
AND ANALYSIS_OBJ_TYPE = '场站'
</if>
<if test="(stationCode == null or stationCode == '') and (areaCode == null or areaCode == '')">
AND ANALYSIS_OBJ_TYPE = '片区'
</if>
</where>
)
) a
</select>
<select id="getHealthScoreInfoByParam" resultType="java.math.BigDecimal">
SELECT
avg( a.avgHealthIndex ) AS healthIndex
......@@ -61,7 +132,7 @@
<where>
<if test="analysisType == '按天' or analysisType == null or analysisType == ''">
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURRENT_DATE
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURDATE() - INTERVAL 1 DAY
</if>
<if test="analysisType == '按小时'">
AND ANALYSIS_TYPE = '按小时'
......@@ -92,7 +163,7 @@
<where>
<if test="analysisType == '按天' or analysisType == null or analysisType == ''">
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURRENT_DATE
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURDATE() - INTERVAL 1 DAY
</if>
<if test="analysisType == '按小时'">
AND ANALYSIS_TYPE = '按小时'
......@@ -224,7 +295,7 @@
FROM fan_health_index_latest_data
WHERE ANALYSIS_OBJ_TYPE = '片区'
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURRENT_DATE
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURRENT_DATE - INTERVAL 1 DAY
GROUP BY ARAE
UNION ALL
(
......@@ -233,7 +304,7 @@
FROM pv_health_index_latest_data
WHERE ANALYSIS_OBJ_TYPE = '片区'
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURRENT_DATE
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURRENT_DATE - INTERVAL 1 DAY
GROUP BY ARAE
)
) a
......@@ -1343,7 +1414,7 @@
ANALYSIS_OBJ_TYPE = '场站'
<if test="analysisType == '按天' or analysisType == null or analysisType == ''">
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURRENT_DATE
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURDATE() - INTERVAL 1 DAY
</if>
<if test="analysisType == '按小时'">
AND ANALYSIS_TYPE = '按小时'
......@@ -1369,7 +1440,7 @@
ANALYSIS_OBJ_TYPE = '场站'
<if test="analysisType == '按天' or analysisType == null or analysisType == ''">
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURRENT_DATE
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURDATE() - INTERVAL 1 DAY
</if>
<if test="analysisType == '按小时'">
AND ANALYSIS_TYPE = '按小时'
......@@ -1401,7 +1472,7 @@
ANALYSIS_OBJ_TYPE = '设备'
<if test="analysisType == '按天' or analysisType == null or analysisType == ''">
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURRENT_DATE
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURDATE() - INTERVAL 1 DAY
</if>
<if test="analysisType == '按小时'">
AND ANALYSIS_TYPE = '按小时'
......@@ -1427,7 +1498,7 @@
ANALYSIS_OBJ_TYPE = '子阵'
<if test="analysisType == '按天' or analysisType == null or analysisType == ''">
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURRENT_DATE
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURDATE() - INTERVAL 1 DAY
</if>
<if test="analysisType == '按小时'">
AND ANALYSIS_TYPE = '按小时'
......@@ -1462,7 +1533,7 @@
ANALYSIS_OBJ_TYPE = '子系统'
<if test="analysisType == '按天' or analysisType == null or analysisType == ''">
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURRENT_DATE
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURDATE() - INTERVAL 1 DAY
</if>
<if test="analysisType == '按小时'">
AND ANALYSIS_TYPE = '按小时'
......@@ -1488,7 +1559,7 @@
ANALYSIS_OBJ_TYPE = '设备'
<if test="analysisType == '按天' or analysisType == null or analysisType == ''">
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURRENT_DATE
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURDATE() - INTERVAL 1 DAY
</if>
<if test="analysisType == '按小时'">
AND ANALYSIS_TYPE = '按小时'
......@@ -1521,7 +1592,7 @@
ANALYSIS_OBJ_TYPE = '测点'
<if test="analysisType == '按天' or analysisType == null or analysisType == ''">
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURRENT_DATE
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURDATE() - INTERVAL 1 DAY
</if>
<if test="analysisType == '按小时'">
AND ANALYSIS_TYPE = '按小时'
......@@ -1547,7 +1618,7 @@
ANALYSIS_OBJ_TYPE = '测点'
<if test="analysisType == '按天' or analysisType == null or analysisType == ''">
AND ANALYSIS_TYPE = '按天'
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURRENT_DATE
AND DATE_FORMAT(REC_DATE, "%Y-%m-%d") = CURDATE() - INTERVAL 1 DAY
</if>
<if test="analysisType == '按小时'">
AND ANALYSIS_TYPE = '按小时'
......@@ -1628,7 +1699,7 @@
fan_health_index_latest_data
<where>
ANALYSIS_TYPE = '按天'
AND DATE_FORMAT( REC_DATE, "%Y-%m-%d" ) = CURRENT_DATE
AND DATE_FORMAT( REC_DATE, "%Y-%m-%d" ) = CURDATE() - INTERVAL 1 DAY
<if test="areaCode != null and areaCode != ''">
AND ARAE like concat('%', #{areaCode}, '%')
AND ANALYSIS_OBJ_TYPE = '片区'
......@@ -1649,7 +1720,7 @@
pv_health_index_latest_data
<where>
ANALYSIS_TYPE = '按天'
AND DATE_FORMAT( REC_DATE, "%Y-%m-%d" ) = CURRENT_DATE
AND DATE_FORMAT( REC_DATE, "%Y-%m-%d" ) = CURDATE() - INTERVAL 1 DAY
<if test="areaCode != null and areaCode != ''">
AND ARAE like concat('%', #{areaCode}, '%')
AND ANALYSIS_OBJ_TYPE = '片区'
......@@ -1667,13 +1738,13 @@
</select>
<select id="getDateInfoBy15" resultType="java.util.Map">
SELECT
DATE_FORMAT( DATE_ADD(( DATE( DATE_ADD( now(), INTERVAL - 15 DAY ))), INTERVAL @s DAY ), '%Y-%m-%d' ) AS date,
DATE_FORMAT( DATE_ADD(( DATE( DATE_ADD( CURDATE() - INTERVAL 1 DAY, INTERVAL - 15 DAY ))), INTERVAL @s DAY ), '%Y-%m-%d' ) AS date,
@s := @s + 1 AS `index`
FROM
mysql.help_topic,
( SELECT @s := 1 ) temp
WHERE
DATEDIFF( now(), DATE( DATE_ADD( now(), INTERVAL - 15 DAY )) ) >= @s
DATEDIFF( CURDATE() - INTERVAL 1 DAY, DATE( DATE_ADD( CURDATE() - INTERVAL 1 DAY, INTERVAL - 15 DAY )) ) >= @s
</select>
<select id="getDateInfo" resultType="java.util.Map">
SELECT
......
......@@ -1240,9 +1240,8 @@ public class MonitorFanIdxController extends BaseController {
BoolQueryBuilder boolMustAll = QueryBuilders.boolQuery();
//警情状态
List<QueryBuilder> should = boolMustAll.should();
String[] keys = new String[]{"日发电量", "月发电量", "年发电量"};
String[] keys = new String[]{"日发电量", "月发电量", "年发电量","有功功率"};
List<String> list = Arrays.asList(keys);
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
if (!stationBasic.getStationType().equals("FDZ")) {
......@@ -1303,6 +1302,8 @@ public class MonitorFanIdxController extends BaseController {
break;
case "年发电量":
map.put("yearNum", String.format(CommonConstans.Fourdecimalplaces, Double.valueOf(value) * CommonConstans.pvGenPoweActorCurrentData));
case "有功功率":
map.put("yggl", String.format(CommonConstans.Fourdecimalplaces,Double.valueOf(value)));
}
}else{
......@@ -1315,6 +1316,8 @@ public class MonitorFanIdxController extends BaseController {
break;
case "年发电量":
map.put("yearNum", value);
case "有功功率":
map.put("yggl", String.format(CommonConstans.Fourdecimalplaces,Double.valueOf(value)));
// case CommonConstans.taiHeGenIndicatorDay:
// map.put("dayNum", value);
// break;
......
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