diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LargeScreenParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LargeScreenParam.java index deb3f5060..3f64cf1ff 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LargeScreenParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LargeScreenParam.java @@ -1,21 +1,13 @@ package com.njcn.device.pq.pojo.param; import com.njcn.common.pojo.constant.PatternRegex; -import com.njcn.common.pojo.dto.SimpleDTO; -import com.njcn.device.biz.enums.LineFlagEnum; -import com.njcn.web.constant.ValidMessage; -import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.hibernate.validator.constraints.Range; - import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; + import javax.validation.constraints.Pattern; import java.io.Serializable; -import java.util.List; + /** * @version 1.0.0 @@ -37,4 +29,4 @@ public class LargeScreenParam implements Serializable { @Pattern(regexp = PatternRegex.TIME_FORMAT, message = "时间格式错误") private String searchEndTime; -} +} \ No newline at end of file diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/AreaDownVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/AreaDownVO.java new file mode 100644 index 000000000..4cfa6ddee --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/AreaDownVO.java @@ -0,0 +1,25 @@ +package com.njcn.device.pq.pojo.vo; + +import com.njcn.device.pq.pojo.param.MonitoringPointScaleParam; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/03/31 + */ +@Data +public class AreaDownVO implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 部门信息 + */ + @ApiModelProperty("部门信息") + private List param; + +} 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 new file mode 100644 index 000000000..f87c3f92f --- /dev/null +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/LargeScreenController.java @@ -0,0 +1,51 @@ +package com.njcn.event.controller.majornetwork; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +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.MonitoringPointScaleVO; + +import com.njcn.event.service.majornetwork.LargeScreenService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/03/31 + */ +@Slf4j +@Api(tags = "大屏") +@RestController +@RequestMapping("/largeScreen") +@RequiredArgsConstructor +public class LargeScreenController extends BaseController { + + private final LargeScreenService largeScreenService; + + /** + * 监测点规模 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getAreaDownStatistics") + @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); + } +} 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 new file mode 100644 index 000000000..c8cbca97c --- /dev/null +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java @@ -0,0 +1,16 @@ +package com.njcn.event.mapper.majornetwork; + +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/03/31 + */ +public interface LargeScreenMapper { + + Map selectDownCount(@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 new file mode 100644 index 000000000..75dd78923 --- /dev/null +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml @@ -0,0 +1,22 @@ + + + + + + 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 new file mode 100644 index 000000000..745ee2fac --- /dev/null +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java @@ -0,0 +1,100 @@ +package com.njcn.event.service.majornetwork.Impl; + +import com.njcn.common.pojo.dto.SimpleDTO; +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.MonitoringPointScaleVO; +import com.njcn.event.mapper.majornetwork.LargeScreenMapper; +import com.njcn.event.service.majornetwork.LargeScreenService; +import com.njcn.system.pojo.enums.StatisticsEnum; +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.List; +import java.util.Map; + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/03/31 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class LargeScreenServiceImpl implements LargeScreenService { + + private final GeneralDeviceInfoClient generalDeviceInfoClient; + + private final LargeScreenMapper largeScreenMapper; + + /** + * 区域暂降统计 + */ + @Override + public AreaDownVO getAreaDownStatistics(LargeScreenParam largeScreenParam) { + //创建返回VO + AreaDownVO result = new AreaDownVO(); + ArrayList list = 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 generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData(); + + for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) { + 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()); + MonitoringPointScaleParam param = new MonitoringPointScaleParam(); + param.setName(generalDeviceDTO.getName()); + param.setIndex(generalDeviceDTO.getIndex()); + String s = map.get("count").toString(); + int count = Integer.parseInt(s); + param.setCount(count); + list.add(param); + } + } + result.setParam(list); + return result; + /* //获取所有监测点集合 + List lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList()); + List> maps = largeScreenMapper.selectDownCount(lineIds); + + 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())){ + countMap.put(generalDeviceDTO.getName(),countMap.get(generalDeviceDTO.getName())+1); + break; + }else { + countMap.put(generalDeviceDTO.getName(),1); + break; + } + } + } + } + }*/ + + } +} 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 new file mode 100644 index 000000000..2e3a2454b --- /dev/null +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/LargeScreenService.java @@ -0,0 +1,16 @@ +package com.njcn.event.service.majornetwork; + +import com.njcn.device.pq.pojo.param.LargeScreenParam; +import com.njcn.device.pq.pojo.vo.AreaDownVO; + + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/03/31 + */ +public interface LargeScreenService { + + AreaDownVO getAreaDownStatistics(LargeScreenParam largeScreenParam); + +}