zbj//1.大屏中间稳态越线信息

This commit is contained in:
zhangbaojian
2023-04-06 16:04:49 +08:00
parent 3bc015d338
commit b0f3824d7c
6 changed files with 104 additions and 2 deletions

View File

@@ -0,0 +1,35 @@
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 MiddleLimitRateVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 监测点名称
*/
@ApiModelProperty("监测点名称")
private String mName;
/**
* 变电站名称
*/
@ApiModelProperty("变电站名称")
private String subName;
/**
* 越限次数
*/
@ApiModelProperty("越限次数")
private String count;
}

View File

@@ -127,4 +127,17 @@ public class LargeScreenController extends BaseController {
List<MiddleTerminalVO> result = largeScreenService.getMiddleTerminal(largeScreenParam); List<MiddleTerminalVO> result = largeScreenService.getMiddleTerminal(largeScreenParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
/**
* 大屏中间稳态越线信息
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getMiddleLimitRate")
@ApiOperation("大屏中间稳态越线信息")
@ApiImplicitParam(name = "largeScreenParam", value = "大屏中间稳态越线信息", required = true)
public HttpResult<List<MiddleLimitRateVO>> getMiddleLimitRate(@RequestBody @Validated LargeScreenParam largeScreenParam) {
String methodDescribe = getMethodDescribe("getMiddleLimitRate");
List<MiddleLimitRateVO> result = largeScreenService.getMiddleLimitRate(largeScreenParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
} }

View File

@@ -2,6 +2,7 @@ package com.njcn.event.mapper.majornetwork;
import com.njcn.device.pq.pojo.vo.AllDataVO; import com.njcn.device.pq.pojo.vo.AllDataVO;
import com.njcn.device.pq.pojo.vo.EventVO; import com.njcn.device.pq.pojo.vo.EventVO;
import com.njcn.device.pq.pojo.vo.MiddleLimitRateVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@@ -29,4 +30,6 @@ public interface LargeScreenMapper {
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); List<Map<String, Object>> getMiddleTerminal (@Param("deviceIds") List<String> deviceIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
List<MiddleLimitRateVO> getMiddleLimitRate (@Param("lineIds") List<String> deviceIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
} }

View File

@@ -170,5 +170,30 @@
</if> </if>
</select> </select>
<select id="getMiddleLimitRate" resultType="com.njcn.device.pq.pojo.vo.MiddleLimitRateVO">
select pl.`Name` mName,
pl3.`Name` subName,
t.count from pq_line pl
inner join(select rslr.my_index,
sum(rslr.all_time) count
from r_stat_limit_rate_d rslr
WHERE
rslr.my_index IN
<foreach collection="lineIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
<if test="startTime != null and startTime != ''">
and date_format(rslr.Time_Id,'%y%m%d') &gt;= date_format(#{startTime},'%y%m%d')
</if>
<if test="endTime != null and endTime != ''">
and date_format(rslr.Time_Id,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
</if>
group by rslr.my_index)t on pl.Id = t.my_index
left join pq_line pl1 on pl.Pid = pl1.Id
left join pq_line pl2 on pl1.Pid = pl2.Id
left join pq_line pl3 on pl2.Pid = pl3.Id
</select>
</mapper> </mapper>

View File

@@ -360,14 +360,14 @@ public class LargeScreenServiceImpl implements LargeScreenService {
base = Float.parseFloat(stringObjectMap.get("base").toString()); base = Float.parseFloat(stringObjectMap.get("base").toString());
ream = Float.parseFloat(stringObjectMap.get("ream").toString()); ream = Float.parseFloat(stringObjectMap.get("ream").toString());
statusValue = Float.parseFloat(stringObjectMap.get("statusValue").toString()); statusValue = Float.parseFloat(stringObjectMap.get("statusValue").toString());
statusValue = statusValue / 1024.0f/1024.0f; statusValue = statusValue / 1024.0f / 1024.0f;
v = statusValue / (base + ream); v = statusValue / (base + ream);
s = formatFloat(v); s = formatFloat(v);
vo.setName(stringObjectMap.get("name").toString()); vo.setName(stringObjectMap.get("name").toString());
vo.setIp(stringObjectMap.get("ip").toString()); vo.setIp(stringObjectMap.get("ip").toString());
vo.setPort(stringObjectMap.get("port").toString()); vo.setPort(stringObjectMap.get("port").toString());
vo.setComFlag(stringObjectMap.get("comFlag").toString()); vo.setComFlag(stringObjectMap.get("comFlag").toString());
vo.setProportion(s+"%"); vo.setProportion(s + "%");
result.add(vo); result.add(vo);
} }
return result; return result;
@@ -379,4 +379,28 @@ public class LargeScreenServiceImpl implements LargeScreenService {
nf.setRoundingMode(RoundingMode.HALF_UP);//设置四舍五入模式为四舍五入 nf.setRoundingMode(RoundingMode.HALF_UP);//设置四舍五入模式为四舍五入
return nf.format(value); return nf.format(value);
} }
/**
* 大屏中间稳态越线信息
*/
@Override
public List<MiddleLimitRateVO> getMiddleLimitRate(LargeScreenParam largeScreenParam) {
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> lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList());
return largeScreenMapper.getMiddleLimitRate(lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
}
} }

View File

@@ -26,4 +26,6 @@ public interface LargeScreenService {
List<EventVO> getMiddleDown(LargeScreenParam largeScreenParam); List<EventVO> getMiddleDown(LargeScreenParam largeScreenParam);
List<MiddleTerminalVO> getMiddleTerminal(LargeScreenParam largeScreenParam); List<MiddleTerminalVO> getMiddleTerminal(LargeScreenParam largeScreenParam);
List<MiddleLimitRateVO> getMiddleLimitRate(LargeScreenParam largeScreenParam);
} }