zbj//1.大屏中间所有数据未写完 2.大屏中间暂态

This commit is contained in:
zhangbaojian
2023-04-06 10:03:25 +08:00
parent c0a3b75295
commit e45a3d6dab
6 changed files with 239 additions and 8 deletions

View File

@@ -0,0 +1,65 @@
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/03
*/
@Data
public class AllDataVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 部门名称
*/
@ApiModelProperty("部门名称")
private String areaName;
/**
* 暂降事件次数
*/
@ApiModelProperty("暂降事件次数")
private String eventCounts;
/**
* 稳态符合性
*/
@ApiModelProperty("稳态符合性")
private String steadyLoad;
/**
* 投运
*/
@ApiModelProperty("投运")
private String running;
/**
* 热备用
*/
@ApiModelProperty("热备用")
private String hotSpare;
/**
* 停运
*/
@ApiModelProperty("停运")
private String shutdown;
/**
* 正常
*/
@ApiModelProperty("正常")
private String normal;
/**
* 中断
*/
@ApiModelProperty("中断")
private String breakdown;
}

View File

@@ -88,4 +88,30 @@ public class LargeScreenController extends BaseController {
List<EventVO> result = largeScreenService.eventLists(largeScreenParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
/**
* 大屏中间所有数据
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getAllData")
@ApiOperation("大屏中间所有数据")
@ApiImplicitParam(name = "largeScreenParam", value = "大屏中间所有数据", required = true)
public HttpResult<List<AllDataVO>> getAllData(@RequestBody @Validated LargeScreenParam largeScreenParam) {
String methodDescribe = getMethodDescribe("getAllData");
List<AllDataVO> result = largeScreenService.getAllData(largeScreenParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
/**
* 大屏中间暂态
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getMiddleDown")
@ApiOperation("大屏中间暂态")
@ApiImplicitParam(name = "largeScreenParam", value = "大屏中间暂态", required = true)
public HttpResult<List<EventVO>> getMiddleDown(@RequestBody @Validated LargeScreenParam largeScreenParam) {
String methodDescribe = getMethodDescribe("getMiddleDown");
List<EventVO> result = largeScreenService.getMiddleDown(largeScreenParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -1,5 +1,7 @@
package com.njcn.event.mapper.majornetwork;
import com.njcn.device.pq.pojo.vo.AllDataVO;
import com.njcn.device.pq.pojo.vo.EventVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -19,4 +21,10 @@ public interface LargeScreenMapper {
List<Map<String, Object>> getTimeCount(@Param("lineIds") List<String> lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
List<Map<String, Object>> eventLists(@Param("startTime") String startTime, @Param("endTime") String endTime);
AllDataVO getFlagCount(@Param("lineIds") List<String> lineIds);
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);
}

View File

@@ -73,4 +73,59 @@
limit 50
</select>
<select id="getFlagCount" resultType="com.njcn.device.pq.pojo.vo.AllDataVO">
select
count(case when pd.Run_Flag = 0 then 1 end) running,
count(case when pd.Run_Flag = 1 then 1 end) hotSpare,
count(case when pd.Run_Flag = 2 then 1 end) shutdown,
count(case when pd.Com_Flag = 0 then 1 end) breakdown,
count(case when pd.Com_Flag = 1 then 1 end) normal
from pq_device pd
where pd.id in
<foreach collection="lineIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
<select id="getDownCount" resultType="java.util.Map">
select
count(ed.event_id) "count"
from r_mp_event_detail ed
left join sys_dict_data sdd on ed.event_type = sdd.id and sdd.code = 'Voltage_Dip'
where
ed.measurement_point_id in
<foreach collection="lineIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
<if test="startTime != null and startTime != ''">
and date_format(ed.create_time,'%y%m%d') &gt;= date_format(#{startTime},'%y%m%d')
</if>
<if test="endTime != null and endTime != ''">
and date_format(ed.create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
</if>
</select>
<select id="getMiddleDown" resultType="com.njcn.device.pq.pojo.vo.EventVO">
SELECT
ed.create_time "time",pl.`Name` "name",sdd.`Name` reason,sdd.`Name` "type",ed.feature_amplitude amplitude,ed.duration
from r_mp_event_detail ed
left join pq_line pl on pl.id = ed.measurement_point_id
left join sys_dict_data sdd on sdd.id = ed.advance_reason
left join sys_dict_data sdd2 on sdd.id = ed.advance_type
where
ed.measurement_point_id in
<foreach collection="lineIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
<if test="startTime != null and startTime != ''">
and date_format(ed.create_time,'%y%m%d') &gt;= date_format(#{startTime},'%y%m%d')
</if>
<if test="endTime != null and endTime != ''">
and date_format(ed.create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
</if>
order by ed.create_time desc
</select>
</mapper>

View File

@@ -5,10 +5,7 @@ import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.LargeScreenParam;
import com.njcn.device.pq.pojo.param.MonitoringPointScaleParam;
import com.njcn.device.pq.pojo.vo.AreaDownVO;
import com.njcn.device.pq.pojo.vo.DownTimeVO;
import com.njcn.device.pq.pojo.vo.EventVO;
import com.njcn.device.pq.pojo.vo.LoadTypeVO;
import com.njcn.device.pq.pojo.vo.*;
import com.njcn.event.mapper.majornetwork.LargeScreenMapper;
import com.njcn.event.service.majornetwork.LargeScreenService;
import com.njcn.system.pojo.enums.StatisticsEnum;
@@ -234,6 +231,7 @@ public class LargeScreenServiceImpl implements LargeScreenService {
*/
@Override
public List<EventVO> eventLists(LargeScreenParam largeScreenParam) {
//创建返回VO
List<EventVO> result = new ArrayList<>();
List<Map<String, Object>> maps = largeScreenMapper.eventLists(largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
for (Map<String, Object> map : maps) {
@@ -249,5 +247,82 @@ public class LargeScreenServiceImpl implements LargeScreenService {
return result;
}
/**
* 大屏中间所有数据
*/
@Override
public List<AllDataVO> getAllData(LargeScreenParam largeScreenParam) {
//创建返回VO
List<AllDataVO> 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());
//添加服务名
//deviceInfoParam.setServerName("event-boot");
// 获取所有数据
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData();
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
if (generalDeviceDTO.getDeviceIndexes().size() > 0) {
AllDataVO allDataVO = largeScreenMapper.getFlagCount(generalDeviceDTO.getDeviceIndexes());
allDataVO.setAreaName(generalDeviceDTO.getName());
if (generalDeviceDTO.getLineIndexes().size() > 0) {
Map<String, Object> map = largeScreenMapper.getDownCount(generalDeviceDTO.getLineIndexes(), largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
allDataVO.setEventCounts(map.get("count").toString());
} else {
allDataVO.setEventCounts("0");
}
result.add(allDataVO);
} else {
AllDataVO allDataVO = new AllDataVO();
allDataVO.setAreaName(generalDeviceDTO.getName());
allDataVO.setRunning("0");
allDataVO.setHotSpare("0");
allDataVO.setShutdown("0");
allDataVO.setNormal("0");
allDataVO.setBreakdown("0");
if (generalDeviceDTO.getLineIndexes().size() > 0) {
Map<String, Object> map = largeScreenMapper.getDownCount(generalDeviceDTO.getLineIndexes(), largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
allDataVO.setEventCounts(map.get("count").toString());
} else {
allDataVO.setEventCounts("0");
}
result.add(allDataVO);
}
}
//todo 该接口部分功能未完成 1.稳态符合性 2.综合评估
return result;
}
/**
* 大屏中间暂态
*/
@Override
public List<EventVO> getMiddleDown(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());
//添加服务名
deviceInfoParam.setServerName("event-boot");
// 获取所有数据
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData();
//获取所有监测点集合
List<String> lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList());
return largeScreenMapper.getMiddleDown(lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
}
}

View File

@@ -1,10 +1,7 @@
package com.njcn.event.service.majornetwork;
import com.njcn.device.pq.pojo.param.LargeScreenParam;
import com.njcn.device.pq.pojo.vo.AreaDownVO;
import com.njcn.device.pq.pojo.vo.DownTimeVO;
import com.njcn.device.pq.pojo.vo.EventVO;
import com.njcn.device.pq.pojo.vo.LoadTypeVO;
import com.njcn.device.pq.pojo.vo.*;
import java.util.List;
@@ -23,4 +20,9 @@ public interface LargeScreenService {
List<DownTimeVO> getTimeCount(LargeScreenParam largeScreenParam);
List<EventVO> eventLists(LargeScreenParam largeScreenParam);
List<AllDataVO> getAllData(LargeScreenParam largeScreenParam);
List<EventVO> getMiddleDown(LargeScreenParam largeScreenParam);
}