zbj//大屏监测点规模接口

This commit is contained in:
zhangbaojian
2023-03-21 16:31:12 +08:00
parent 883524e182
commit 53170bda6d
8 changed files with 275 additions and 8 deletions

View File

@@ -0,0 +1,40 @@
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
* @author: zbj
* @date: 2023/03/20
*/
@Data
public class LargeScreenParam implements Serializable {
@ApiModelProperty(name = "deptIndex", value = "部门索引", required = true)
@NotBlank(message = "部门索引不可为空")
private String deptIndex;
@ApiModelProperty("开始时间")
@Pattern(regexp = PatternRegex.TIME_FORMAT, message = "时间格式错误")
private String searchBeginTime;
@ApiModelProperty("结束时间")
@Pattern(regexp = PatternRegex.TIME_FORMAT, message = "时间格式错误")
private String searchEndTime;
}

View File

@@ -0,0 +1,30 @@
package com.njcn.device.pq.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @version 1.0.0
* @author: zbj
* @date: 2023/03/21
*/
@Data
public class MonitoringPointScaleParam {
/**
* 部门名称
*/
@ApiModelProperty("部门名称")
private String name;
/**
* 部门id
*/
@ApiModelProperty("部门id")
private String index;
/**
* 监测点个数
*/
@ApiModelProperty("监测点个数")
private int count;
}

View File

@@ -0,0 +1,35 @@
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/21
*/
@Data
public class MonitoringPointScaleVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 部门信息
*/
@ApiModelProperty("部门信息")
private List<MonitoringPointScaleParam> param;
/**
* 监测点总个数
*/
@ApiModelProperty("监测点总个数")
private String monitorTotalCount;
/**
* 监测点新增个数
*/
@ApiModelProperty("监测点新增个数")
private String monitorAddCount;
}

View File

@@ -1,23 +1,54 @@
package com.njcn.device.pq.controller;
import cn.hutool.core.collection.CollectionUtil;
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.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.param.LargeScreenParam;
import com.njcn.device.pq.pojo.vo.MonitoringPointScaleVO;
import com.njcn.device.pq.service.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;
import java.util.List;
import java.util.Objects;
/**
* pqs
* 大屏接口终端服务
* @author cdf
* @date 2023/3/20
* @version 1.0.0
* @author: zbj
* @date: 2023/03/21
*/
@Slf4j
@Api(tags = "大屏-台账相关")
@Api(tags = "大屏监测点规模")
@RestController
@RequestMapping("/screenTerminal")
@RequestMapping("/largeScreen")
@RequiredArgsConstructor
public class LargeScreenController {
public class LargeScreenController extends BaseController {
private final LargeScreenService largeScreenService;
/**
* 监测点规模
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getMonitoringPointScale")
@ApiOperation("监测点规模")
@ApiImplicitParam(name = "largeScreenParam", value = "查询终端条件", required = true)
public HttpResult<MonitoringPointScaleVO> getMonitoringPointScale(@RequestBody @Validated LargeScreenParam largeScreenParam) {
String methodDescribe = getMethodDescribe("getMonitoringPointScale");
MonitoringPointScaleVO result = largeScreenService.getMonitoringPointScale(largeScreenParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -0,0 +1,16 @@
package com.njcn.device.pq.mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @version 1.0.0
* @author: zbj
* @date: 2023/03/21
*/
public interface LargeScreenMapper {
Map<String, Object> getMonitorAddCount(@Param("lineIds") List<String> lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
}

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.device.pq.mapper.LargeScreenMapper">
<!--查询监测点新增个数-->
<select id="getMonitorAddCount" resultType="java.util.Map">
select
count(1) as count
from pq_line pl
where
pl.id in
<foreach collection="lineIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
<if test="startTime != null and startTime != ''">
and date_format(pl.Create_Time,'%y%m%d') &gt;= date_format(#{startTime},'%y%m%d')
</if>
<if test="endTime != null and endTime != ''">
and date_format(pl.Create_Time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
</if>
</select>
</mapper>

View File

@@ -0,0 +1,18 @@
package com.njcn.device.pq.service;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.param.LargeScreenParam;
import com.njcn.device.pq.pojo.vo.MonitoringPointScaleVO;
import java.util.List;
/**
* @version 1.0.0
* @author: zbj
* @date: 2023/03/21
*/
public interface LargeScreenService {
MonitoringPointScaleVO getMonitoringPointScale(LargeScreenParam largeScreenParam);
}

View File

@@ -0,0 +1,75 @@
package com.njcn.device.pq.service.impl;
import com.njcn.common.pojo.dto.SimpleDTO;
import com.njcn.device.pq.mapper.LargeScreenMapper;
import com.njcn.device.pq.mapper.LineIntegrityDataMapper;
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.MonitoringPointScaleVO;
import com.njcn.device.pq.service.LargeScreenService;
import com.njcn.system.pojo.enums.StatisticsEnum;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @version 1.0.0
* @author: zbj
* @date: 2023/03/21
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class LargeScreenServiceImpl implements LargeScreenService {
private final GeneralDeviceService generalDeviceService;
private final LargeScreenMapper largeScreenMapper;
/**
* 监测点规模
*/
@Override
public MonitoringPointScaleVO getMonitoringPointScale(LargeScreenParam largeScreenParam) {
//创建返回VO
MonitoringPointScaleVO result = new MonitoringPointScaleVO();
ArrayList<MonitoringPointScaleParam> list = new ArrayList<>();
DeviceInfoParam.BusinessParam deviceInfoParam = new DeviceInfoParam.BusinessParam();
//部门索引
deviceInfoParam.setDeptIndex(largeScreenParam.getDeptIndex());
//统计类型
SimpleDTO simpleDTO = new SimpleDTO();
simpleDTO.setName(String.valueOf(StatisticsEnum.POWER_NETWORK));
deviceInfoParam.setStatisticalType(simpleDTO);
//添加时间
deviceInfoParam.setSearchBeginTime(largeScreenParam.getSearchBeginTime());
deviceInfoParam.setSearchEndTime(largeScreenParam.getSearchEndTime());
// 获取所有数据
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
MonitoringPointScaleParam param = new MonitoringPointScaleParam();
param.setIndex(generalDeviceDTO.getIndex());
param.setName(generalDeviceDTO.getName());
param.setCount(generalDeviceDTO.getLineIndexes().size());
list.add(param);
}
result.setParam(list);
//所有监测点id
List<String> lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList());
Map<String, Object> count = largeScreenMapper.getMonitorAddCount(lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
result.setMonitorTotalCount(String.valueOf(lineIds.size()));
result.setMonitorAddCount(count.get("count").toString());
return result;
}
}