Commit a571672f authored by chenzhao's avatar chenzhao

TDENGINE 数据源切换接口开发

parent 32c6a2b8
package com.yeejoin.amos.boot.module.jxiop.biz.Enum;
public enum HealthLevelSortEnum {
ANQUAN(1,"安全"),
ZHUYI(2,"注意"),
JINGGAO(3, "警告"),
WEIXIAN(4,"危险");
private int code;
private String name;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
HealthLevelSortEnum(int code, String name) {
this.code = code;
this.name = name;
}
public static int getCode(String name) {
for (HealthLevelSortEnum warningNameEnum : HealthLevelSortEnum.values())
{
if (warningNameEnum.getName().equals(name))
{
return warningNameEnum.getCode();
}
}
return 0;
}
}
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.jxiop.biz.Enum.HealthLevelSortEnum;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.IdxBizFanHealthIndexDto;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanPointTag;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.IdxBizFanWarningRecord;
......@@ -28,6 +29,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.POST;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
*
......@@ -332,7 +334,7 @@ public class IdxBizFanHealthIndexController extends BaseController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@ApiOperation(httpMethod = "GET",value = "TD 风电场站列表接口", notes = "TD 风电场站列表接口")
@ApiOperation(httpMethod = "GET",value = "TD 风电场站/设备列表通用接口", notes = "TD 风电场站/设备列表通用接口")
@GetMapping(value = "/stationHealthIndexTable")
public ResponseModel<List<FanHealthIndexDay>> stationHealthIndexTable(@RequestParam(value = "area",required = false) String area,
@RequestParam(value = "station",required = false) String station,
......@@ -353,7 +355,12 @@ public class IdxBizFanHealthIndexController extends BaseController {
Date date = DateUtils.dateAddHours(startDayTime, -8);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
startTimeTop = formatter.format(date);
}else{
Date endDate = DateUtils.dateAddHours(DateUtils.longStr2Date(endTimeTop), -8);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
endTimeTop = formatter.format(endDate);
Date startDate = DateUtils.dateAddHours(DateUtils.longStr2Date(startTimeTop), -8);
startTimeTop = formatter.format(startDate);
}
List<FanHealthIndexDay> fanHealthIndexDays = fanHealthIndexDayMapper.selectData(healthLevel, area, equipmentName, subSystem, analysisType, analysisObjType, station, pointName, indexAddress, startTimeTop, endTimeTop);
......@@ -361,4 +368,39 @@ public class IdxBizFanHealthIndexController extends BaseController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@ApiOperation(httpMethod = "GET",value = "查询场站下设备状态统计", notes = "查询场站下设备状态统计")
@GetMapping (value = "/selectEquipStatusByStation")
public ResponseModel<List<Map<String,Object>>> getFanEquipStatusByStation(@RequestParam(value = "area",required = false) String area,
@RequestParam(value = "station",required = false) String station,
@RequestParam(value = "analysisObjType",required = false) String analysisObjType
) {
List<Map<String, Object>> maps = fanHealthIndexDayMapper.selectEquipStatusByStation(area, analysisObjType, station);
if (maps.size() == 4){
for (Map<String, Object> map : maps) {
map.put("name",map.get("healthlevel"));
}
} else {
String[] levels = {"安全","注意","警告","危险"};
List<String> level = Arrays.asList(levels);
for (Map<String, Object> map : maps) {
map.put("name",map.get("healthLevel"));
level.remove(map.get("healthLevel"));
}
if (level.size()>0){
for (String s : level) {
Map<String, Object> map = new HashMap<>();
map.put("name",s);
map.put("value",0);
map.put("sort",HealthLevelSortEnum.getCode(s));
maps.add(map);
}
maps = maps.stream().sorted(Comparator.comparingInt(e -> (Integer) (e.get("sort")))).collect(Collectors.toList());
}
}
return ResponseHelper.buildResponse(maps);
}
}
......@@ -7,10 +7,11 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
public interface FanHealthIndexDayMapper extends BaseMapper<FanHealthIndexDay> {
@Select("<script>"+
"SELECT `health_index` AS healthIndex, analysis_time AS analysisTime, station,equipment_name AS equipmentName, ( CASE HEALTH_LEVEL WHEN '危险' THEN 3 WHEN '警告' THEN 2 WHEN '注意' THEN 1 ELSE 0 END ) AS status FROM analysis_data.fan_health_index_day WHERE analysis_obj_type = #{analysisObjType}" +
"SELECT `health_index` AS healthIndex,`health_index` AS `value`, analysis_time AS analysisTime, station,equipment_name AS equipmentName, ( CASE HEALTH_LEVEL WHEN '危险' THEN 3 WHEN '警告' THEN 2 WHEN '注意' THEN 1 ELSE 0 END ) AS status FROM analysis_data.fan_health_index_day WHERE analysis_obj_type = #{analysisObjType}" +
"<if test='endTimeTop!= null'> and ts &lt;= #{endTimeTop} </if> " +
"<if test='startTimeTop!= null'> and ts &gt;= #{startTimeTop} </if> " +
"<if test='area!= null'> AND area = #{area} </if> " +
......@@ -24,4 +25,11 @@ public interface FanHealthIndexDayMapper extends BaseMapper<FanHealthIndexDay> {
List<FanHealthIndexDay> selectData(@Param("healthLevel")String healthLevel,@Param("area")String area,@Param("equipmentName")String equipmentName,@Param("subSystem")String subSystem,@Param("analysisType")String analysisType,@Param("analysisObjType")String analysisObjType,@Param("station")String station,@Param("pointName")String pointName, @Param("indexAddress")String indexAddress,@Param("startTimeTop") String startTimeTop, @Param("endTimeTop")String endTimeTop);
@Select("<script>"+
"SELECT station, health_level as healthlevel,( CASE HEALTH_LEVEL WHEN '危险' THEN 4 WHEN '警告' THEN 3 WHEN '注意' THEN 2 ELSE 1 END ) AS sort, count( 1 ) AS `value` FROM analysis_data.fan_health_index_day WHERE analysis_obj_type = #{analysisObjType} AND ts >= TODAY()-8h" +
"<if test='area!= null'> AND area = #{area} </if> " +
"<if test='station!= null'>AND station = #{station} </if>" +
" GROUP BY station,health_level order by sort"+
"</script>")
List<Map<String,Object>> selectEquipStatusByStation(@Param("area")String area,@Param("analysisObjType")String analysisObjType,@Param("station")String station);
}
......@@ -30,4 +30,5 @@ public class FanHealthIndexDay implements Serializable {
private String analysisTime;
private String kks;
private String status;
private String value;
}
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