zbj//1.大屏中间终端异常信息
This commit is contained in:
@@ -0,0 +1,48 @@
|
|||||||
|
package com.njcn.device.pq.pojo.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0.0
|
||||||
|
* @author: zbj
|
||||||
|
* @date: 2023/04/06
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class MiddleTerminalVO implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变电站
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("变电站")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 网络参数
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("网络参数")
|
||||||
|
private String ip;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 端口
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("端口")
|
||||||
|
private String port;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通讯状态
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("通讯状态")
|
||||||
|
private String comFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 流量占比
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("流量占比")
|
||||||
|
private String proportion;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -114,4 +114,17 @@ public class LargeScreenController extends BaseController {
|
|||||||
List<EventVO> result = largeScreenService.getMiddleDown(largeScreenParam);
|
List<EventVO> result = largeScreenService.getMiddleDown(largeScreenParam);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 大屏中间终端异常信息
|
||||||
|
*/
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/getMiddleTerminal")
|
||||||
|
@ApiOperation("大屏中间终端异常信息")
|
||||||
|
@ApiImplicitParam(name = "largeScreenParam", value = "大屏中间终端异常信息", required = true)
|
||||||
|
public HttpResult<List<MiddleTerminalVO>> getMiddleTerminal(@RequestBody @Validated LargeScreenParam largeScreenParam) {
|
||||||
|
String methodDescribe = getMethodDescribe("getMiddleTerminal");
|
||||||
|
List<MiddleTerminalVO> result = largeScreenService.getMiddleTerminal(largeScreenParam);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,4 +27,6 @@ public interface LargeScreenMapper {
|
|||||||
Map<String, Object> getDownCount (@Param("lineIds") List<String> lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
Map<String, Object> getDownCount (@Param("lineIds") List<String> lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||||
|
|
||||||
List<EventVO> getMiddleDown (@Param("lineIds") List<String> lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
List<EventVO> getMiddleDown (@Param("lineIds") List<String> lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||||
|
|
||||||
|
List<Map<String, Object>> getMiddleTerminal (@Param("deviceIds") List<String> deviceIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,5 +127,48 @@
|
|||||||
order by ed.create_time desc
|
order by ed.create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getMiddleTerminal" resultType="java.util.Map">
|
||||||
|
SELECT
|
||||||
|
pd.id,
|
||||||
|
IFNULL(
|
||||||
|
cfm1.flow,(
|
||||||
|
SELECT
|
||||||
|
cfm.flow
|
||||||
|
FROM
|
||||||
|
cld_flow_meal cfm
|
||||||
|
WHERE
|
||||||
|
cfm.type = 0
|
||||||
|
AND cfm.flag = 1
|
||||||
|
)) base,
|
||||||
|
IFNULL( cfm2.flow, 0 ) ream,
|
||||||
|
IFNULL( cmf.Statis_Value, 0 ) statusValue,
|
||||||
|
pl1.`Name` "name",
|
||||||
|
pd.IP ip,
|
||||||
|
pd.`Port` "port",
|
||||||
|
case
|
||||||
|
when pd.Com_Flag = '0' then '通讯中断'
|
||||||
|
when pd.Com_Flag = '1' then '通讯正常'
|
||||||
|
end comFlag
|
||||||
|
FROM
|
||||||
|
pq_line pl
|
||||||
|
LEFT JOIN pq_device pd ON pl.id = pd.id
|
||||||
|
LEFT JOIN cld_dev_meal cdm ON cdm.Line_Id = pd.id
|
||||||
|
LEFT JOIN cld_flow_meal cfm1 ON cfm1.Id = cdm.Base_Meal_Id
|
||||||
|
LEFT JOIN cld_flow_meal cfm2 ON cfm2.Id = cdm.Ream_Meal_Id
|
||||||
|
LEFT JOIN cld_month_flow cmf ON cmf.Dev_Id = pd.id
|
||||||
|
LEFT JOIN pq_line pl1 ON pl1.id = pl.pid
|
||||||
|
WHERE
|
||||||
|
pd.id IN
|
||||||
|
<foreach collection="deviceIds" item="item" open="(" close=")" separator=",">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
<if test="startTime != null and startTime != ''">
|
||||||
|
and date_format(cmf.Time_Id,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
|
||||||
|
</if>
|
||||||
|
<if test="endTime != null and endTime != ''">
|
||||||
|
and date_format(cmf.Time_Id,'%y%m%d') <= date_format(#{endTime},'%y%m%d')
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ import org.apache.commons.collections.map.HashedMap;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
||||||
|
|
||||||
|
import java.math.RoundingMode;
|
||||||
|
import java.text.NumberFormat;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -310,7 +312,7 @@ public class LargeScreenServiceImpl implements LargeScreenService {
|
|||||||
deviceInfoParam.setDeptIndex(largeScreenParam.getDeptIndex());
|
deviceInfoParam.setDeptIndex(largeScreenParam.getDeptIndex());
|
||||||
//统计类型
|
//统计类型
|
||||||
SimpleDTO simpleDTO = new SimpleDTO();
|
SimpleDTO simpleDTO = new SimpleDTO();
|
||||||
simpleDTO.setCode(String.valueOf(StatisticsEnum.POWER_NETWORK));
|
simpleDTO.setCode(String.valueOf(StatisticsEnum.LOAD_TYPE));
|
||||||
deviceInfoParam.setStatisticalType(simpleDTO);
|
deviceInfoParam.setStatisticalType(simpleDTO);
|
||||||
//添加时间
|
//添加时间
|
||||||
deviceInfoParam.setSearchBeginTime(largeScreenParam.getSearchBeginTime());
|
deviceInfoParam.setSearchBeginTime(largeScreenParam.getSearchBeginTime());
|
||||||
@@ -322,7 +324,59 @@ public class LargeScreenServiceImpl implements LargeScreenService {
|
|||||||
//获取所有监测点集合
|
//获取所有监测点集合
|
||||||
List<String> lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList());
|
List<String> lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList());
|
||||||
return largeScreenMapper.getMiddleDown(lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
|
return largeScreenMapper.getMiddleDown(lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 大屏中间终端异常信息
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<MiddleTerminalVO> getMiddleTerminal(LargeScreenParam largeScreenParam) {
|
||||||
|
//创建返回VO
|
||||||
|
List<MiddleTerminalVO> result = new ArrayList<>();
|
||||||
|
DeviceInfoParam.BusinessParam deviceInfoParam = new DeviceInfoParam.BusinessParam();
|
||||||
|
//部门索引
|
||||||
|
deviceInfoParam.setDeptIndex(largeScreenParam.getDeptIndex());
|
||||||
|
//统计类型
|
||||||
|
SimpleDTO simpleDTO = new SimpleDTO();
|
||||||
|
simpleDTO.setCode(String.valueOf(StatisticsEnum.POWER_NETWORK));
|
||||||
|
deviceInfoParam.setStatisticalType(simpleDTO);
|
||||||
|
//添加时间
|
||||||
|
deviceInfoParam.setSearchBeginTime(largeScreenParam.getSearchBeginTime());
|
||||||
|
deviceInfoParam.setSearchEndTime(largeScreenParam.getSearchEndTime());
|
||||||
|
|
||||||
|
// 获取所有数据
|
||||||
|
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData();
|
||||||
|
//获取所有监测点集合
|
||||||
|
List<String> deviceIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getDeviceIndexes().stream()).collect(Collectors.toList());
|
||||||
|
List<Map<String, Object>> map = largeScreenMapper.getMiddleTerminal(deviceIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
|
||||||
|
|
||||||
|
float base = 0.0f;
|
||||||
|
float ream = 0.0f;
|
||||||
|
float statusValue = 0.0f;
|
||||||
|
float v = 0.0f;
|
||||||
|
String s = "";
|
||||||
|
for (Map<String, Object> stringObjectMap : map) {
|
||||||
|
MiddleTerminalVO vo = new MiddleTerminalVO();
|
||||||
|
base = Float.parseFloat(stringObjectMap.get("base").toString());
|
||||||
|
ream = Float.parseFloat(stringObjectMap.get("ream").toString());
|
||||||
|
statusValue = Float.parseFloat(stringObjectMap.get("statusValue").toString());
|
||||||
|
statusValue = statusValue / 1024.0f/1024.0f;
|
||||||
|
v = statusValue / (base + ream);
|
||||||
|
s = formatFloat(v);
|
||||||
|
vo.setName(stringObjectMap.get("name").toString());
|
||||||
|
vo.setIp(stringObjectMap.get("ip").toString());
|
||||||
|
vo.setPort(stringObjectMap.get("port").toString());
|
||||||
|
vo.setComFlag(stringObjectMap.get("comFlag").toString());
|
||||||
|
vo.setProportion(s+"%");
|
||||||
|
result.add(vo);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String formatFloat(Float value) {
|
||||||
|
NumberFormat nf = NumberFormat.getNumberInstance();
|
||||||
|
nf.setMaximumFractionDigits(2);//保留两位小数,即四舍五入到小数点后两位
|
||||||
|
nf.setRoundingMode(RoundingMode.HALF_UP);//设置四舍五入模式为四舍五入
|
||||||
|
return nf.format(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,4 +25,5 @@ public interface LargeScreenService {
|
|||||||
|
|
||||||
List<EventVO> getMiddleDown(LargeScreenParam largeScreenParam);
|
List<EventVO> getMiddleDown(LargeScreenParam largeScreenParam);
|
||||||
|
|
||||||
|
List<MiddleTerminalVO> getMiddleTerminal(LargeScreenParam largeScreenParam);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user