diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/LoadTypeVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/LoadTypeVO.java new file mode 100644 index 000000000..2c2e49d2c --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/LoadTypeVO.java @@ -0,0 +1,29 @@ +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 LoadTypeVO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 干扰源类型名称 + */ + @ApiModelProperty("干扰源类型名称") + private String name; + + /** + * 干扰源暂降次数 + */ + @ApiModelProperty("干扰源暂降次数") + private Integer count; +} diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/LargeScreenController.java b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/LargeScreenController.java index f87c3f92f..04e321d69 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/LargeScreenController.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/LargeScreenController.java @@ -7,6 +7,7 @@ import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.device.pq.pojo.param.LargeScreenParam; import com.njcn.device.pq.pojo.vo.AreaDownVO; +import com.njcn.device.pq.pojo.vo.LoadTypeVO; import com.njcn.device.pq.pojo.vo.MonitoringPointScaleVO; import com.njcn.event.service.majornetwork.LargeScreenService; @@ -22,6 +23,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * @version 1.0.0 * @author: zbj @@ -37,15 +40,28 @@ public class LargeScreenController extends BaseController { private final LargeScreenService largeScreenService; /** - * 监测点规模 + * 暂降事件区域 */ @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getAreaDownStatistics") - @ApiOperation("区域暂降统计") - @ApiImplicitParam(name = "largeScreenParam", value = "区域暂降统计", required = true) + @ApiOperation("暂降事件区域") + @ApiImplicitParam(name = "largeScreenParam", value = "暂降事件区域", required = true) public HttpResult getAreaDownStatistics(@RequestBody @Validated LargeScreenParam largeScreenParam) { String methodDescribe = getMethodDescribe("getAreaDownStatistics"); AreaDownVO result = largeScreenService.getAreaDownStatistics(largeScreenParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + + /** + * 暂降事件负荷类型 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getLoadType") + @ApiOperation("暂降事件负荷类型") + @ApiImplicitParam(name = "largeScreenParam", value = "暂降事件负荷类型", required = true) + public HttpResult> getLoadType(@RequestBody @Validated LargeScreenParam largeScreenParam) { + String methodDescribe = getMethodDescribe("getLoadType"); + List result = largeScreenService.getLoadType(largeScreenParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java index c8cbca97c..5f438750d 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java @@ -13,4 +13,7 @@ import java.util.Map; public interface LargeScreenMapper { Map selectDownCount(@Param("lineIds") List lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime); + + List> selectLoadTypeCount(@Param("lineIds") List lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime); + } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml index 75dd78923..748772a56 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml @@ -6,17 +6,35 @@ select count(ed.event_id) "count" from r_mp_event_detail ed - left join sys_dict_data dd on ed.event_type and dd.Type_Id ='c37861896dafab0883321e1d508caa51' where ed.measurement_point_id in #{item} - and date_format(pl.Create_Time,'%y%m%d') >= date_format(#{startTime},'%y%m%d') + and date_format(ed.create_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d') - and date_format(pl.Create_Time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') + and date_format(ed.create_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') + + + diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java index 745ee2fac..1faeb4aba 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java @@ -6,6 +6,7 @@ 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.LoadTypeVO; import com.njcn.device.pq.pojo.vo.MonitoringPointScaleVO; import com.njcn.event.mapper.majornetwork.LargeScreenMapper; import com.njcn.event.service.majornetwork.LargeScreenService; @@ -14,9 +15,12 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import com.njcn.device.pq.api.GeneralDeviceInfoClient; + import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @version 1.0.0 @@ -33,7 +37,7 @@ public class LargeScreenServiceImpl implements LargeScreenService { private final LargeScreenMapper largeScreenMapper; /** - * 区域暂降统计 + * 暂降事件区域 */ @Override public AreaDownVO getAreaDownStatistics(LargeScreenParam largeScreenParam) { @@ -56,14 +60,14 @@ public class LargeScreenServiceImpl implements LargeScreenService { List generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData(); for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) { - if (generalDeviceDTO.getLineIndexes().size() == 0){ + if (generalDeviceDTO.getLineIndexes().size() == 0) { MonitoringPointScaleParam param = new MonitoringPointScaleParam(); param.setName(generalDeviceDTO.getName()); param.setIndex(generalDeviceDTO.getIndex()); param.setCount(0); list.add(param); - }else{ - Map map = largeScreenMapper.selectDownCount(generalDeviceDTO.getLineIndexes(),largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); + } else { + Map map = largeScreenMapper.selectDownCount(generalDeviceDTO.getLineIndexes(), largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); MonitoringPointScaleParam param = new MonitoringPointScaleParam(); param.setName(generalDeviceDTO.getName()); param.setIndex(generalDeviceDTO.getIndex()); @@ -97,4 +101,65 @@ public class LargeScreenServiceImpl implements LargeScreenService { }*/ } + + /** + * 暂降事件负荷类型 + */ + @Override + public List getLoadType(LargeScreenParam largeScreenParam) { + //创建返回VO + List result = new ArrayList<>(); + DeviceInfoParam.BusinessParam deviceInfoParam = new DeviceInfoParam.BusinessParam(); + //部门索引 + deviceInfoParam.setDeptIndex(largeScreenParam.getDeptIndex()); + //统计类型 + SimpleDTO simpleDTO = new SimpleDTO(); + simpleDTO.setCode(String.valueOf(StatisticsEnum.LOAD_TYPE)); + deviceInfoParam.setStatisticalType(simpleDTO); + //添加时间 + deviceInfoParam.setSearchBeginTime(largeScreenParam.getSearchBeginTime()); + deviceInfoParam.setSearchEndTime(largeScreenParam.getSearchEndTime()); + //添加服务名 + deviceInfoParam.setServerName("event-boot"); + // 获取所有数据 + List generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData(); + + //获取所有监测点集合 + List lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList()); + + List> maps = largeScreenMapper.selectLoadTypeCount(lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); + + Map countMap = new HashMap<>(); + for (Map map : maps) { + for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) { + for (String lineIndex : generalDeviceDTO.getLineIndexes()) { + if (map.get("id").equals(lineIndex)) { + if (countMap.containsKey(generalDeviceDTO.getName())) { + int id = Integer.parseInt(map.get("count").toString()); + countMap.put(generalDeviceDTO.getName(), countMap.get(generalDeviceDTO.getName()) + id); + break; + } else { + int id = Integer.parseInt(map.get("count").toString()); + countMap.put(generalDeviceDTO.getName(), id); + break; + } + } + } + } + + } + List nameList = generalDeviceDTOList.stream().map(GeneralDeviceDTO::getName).collect(Collectors.toList()); + for (String s : nameList) { + if (!countMap.containsKey(s)) { + countMap.put(s, 0); + } + } + for (String s : countMap.keySet()) { + LoadTypeVO loadTypeVO = new LoadTypeVO(); + loadTypeVO.setName(s); + loadTypeVO.setCount(countMap.get(s)); + result.add(loadTypeVO); + } + return result; + } } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/LargeScreenService.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/LargeScreenService.java index 2e3a2454b..40282ccdd 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/LargeScreenService.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/LargeScreenService.java @@ -2,6 +2,9 @@ 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.LoadTypeVO; + +import java.util.List; /** @@ -13,4 +16,6 @@ public interface LargeScreenService { AreaDownVO getAreaDownStatistics(LargeScreenParam largeScreenParam); + List getLoadType(LargeScreenParam largeScreenParam); + }