From 6f8ecd9e86fc1149c48add1022869abb0305b25b Mon Sep 17 00:00:00 2001
From: zhuxinyu <1799009482@qq.com>
Date: Thu, 6 Apr 2023 19:20:55 +0800
Subject: [PATCH 01/12] =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E7=89=88=E6=9C=AC?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2bug=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../com/njcn/device/pq/mapper/mapping/ProgramVersionMapper.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/ProgramVersionMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/ProgramVersionMapper.xml
index 894b1c2ff..7594671d5 100644
--- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/ProgramVersionMapper.xml
+++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/ProgramVersionMapper.xml
@@ -23,7 +23,7 @@
AND A.Dev_Type = B.Id
AND A.Update_By = C.Id
- AND A.Dev_Type = ${devType}
+ AND A.Dev_Type = #{devType}
From 836565c1cfc65b0978eb6319750acdb4ee11afa3 Mon Sep 17 00:00:00 2001
From: zhuxinyu <1799009482@qq.com>
Date: Thu, 6 Apr 2023 19:33:21 +0800
Subject: [PATCH 02/12] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=AD=E5=BF=83?=
=?UTF-8?q?=E5=9C=A8=E7=BA=BF=E7=8E=87=E7=BB=9F=E8=AE=A1=E5=9B=BE=E8=A1=A8?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=BF=81=E7=A7=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../device/pq/pojo/vo/OnlineRateCensusVO.java | 29 ++++++++
.../TerminalOnlineRateDataController.java | 13 ++++
.../TerminalOnlineRateDataService.java | 3 +
.../impl/TerminalMaintainServiceImpl.java | 6 +-
.../TerminalOnlineRateDataServiceImpl.java | 66 ++++++++++++++++++-
.../impl/OnlineRateDataServiceImpl.java | 10 +--
6 files changed, 113 insertions(+), 14 deletions(-)
create mode 100644 pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/OnlineRateCensusVO.java
diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/OnlineRateCensusVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/OnlineRateCensusVO.java
new file mode 100644
index 000000000..2f717610a
--- /dev/null
+++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/OnlineRateCensusVO.java
@@ -0,0 +1,29 @@
+package com.njcn.device.pq.pojo.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+@Data
+public class OnlineRateCensusVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * x轴 统计类型
+ */
+ private List type;
+
+ /**
+ * y轴 数据
+ */
+ private List single;
+
+ /**
+ * y轴 同比环比数据
+ */
+ private List ratio;
+
+}
diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalOnlineRateDataController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalOnlineRateDataController.java
index b464df06f..b36265ca2 100644
--- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalOnlineRateDataController.java
+++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalOnlineRateDataController.java
@@ -7,10 +7,12 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.mapper.OnlineRateMapper;
import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
+import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam;
import com.njcn.device.pq.pojo.po.OnlineRate;
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
+import com.njcn.device.pq.pojo.vo.OnlineRateCensusVO;
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO;
import com.njcn.device.pq.service.TerminalOnlineRateDataService;
@@ -20,6 +22,7 @@ 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;
@@ -57,6 +60,16 @@ public class TerminalOnlineRateDataController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onlineRateData,methodDescribe);
}
+ @OperateInfo
+ @PostMapping("/getOnlineRateDataCensus")
+ @ApiOperation("终端在线率图表")
+ @ApiImplicitParam(name = "onlineRateCensusParam", value = "终端在线率参数", required = true)
+ public HttpResult getOnlineRateDataCensus(@RequestBody @Validated DeviceInfoParam.CompareBusinessParam onlineRateCensusParam){
+ String methodDescribe = getMethodDescribe("getOnlineRateDataCensus");
+ OnlineRateCensusVO onlineRateCensusVO = terminalOnlineRateDataService.getOnlineRateDataCensus(onlineRateCensusParam);
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onlineRateCensusVO,methodDescribe);
+ }
+
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getOnlineRateByDevIds")
@ApiOperation("终端在线率(谐波专用)")
diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalOnlineRateDataService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalOnlineRateDataService.java
index c3a2b81a3..a80f36562 100644
--- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalOnlineRateDataService.java
+++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalOnlineRateDataService.java
@@ -2,6 +2,7 @@ package com.njcn.device.pq.service;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam;
+import com.njcn.device.pq.pojo.vo.OnlineRateCensusVO;
import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO;
import java.util.List;
@@ -20,4 +21,6 @@ public interface TerminalOnlineRateDataService {
* @return
*/
List getOnlineRateData(TerminalOnlineRateDataParam terminalOnlineRateDataParam);
+
+ OnlineRateCensusVO getOnlineRateDataCensus(DeviceInfoParam.CompareBusinessParam onlineRateCensusParam);
}
diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java
index 591700799..6e2b307af 100644
--- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java
+++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java
@@ -126,7 +126,7 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService {
}
@Override
- public boolean updateRunFlagManage(TerminalParam terminalParam){
+ public boolean updateRunFlagManage(TerminalParam terminalParam) {
//终端状态管理
List tem = new ArrayList<>();
terminalParam.getIds().forEach(item-> {
@@ -191,10 +191,6 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService {
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
List deviceDayFlow = influxDBResultMapper.toPOJO(result, DeviceDayFlow.class);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
-// Instant time = deviceDayFlow.get(0).getTime();
-// System.out.println(time);
-// Date from = Date.from(time);
-// System.out.println(from);
deviceDayFlow.forEach(t-> t.setDate(formatter.format(Date.from(t.getTime()))));
Map> dayFlowMap = deviceDayFlow.stream().collect(Collectors.groupingBy(DeviceDayFlow::getDate));
List list = new ArrayList<>();
diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalOnlineRateDataServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalOnlineRateDataServiceImpl.java
index d3f8cb404..67f42b944 100644
--- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalOnlineRateDataServiceImpl.java
+++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalOnlineRateDataServiceImpl.java
@@ -1,21 +1,29 @@
package com.njcn.device.pq.service.impl;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.graphbuilder.math.func.AvgFunction;
+import com.njcn.common.config.GeneralInfo;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pq.api.AlarmClient;
import com.njcn.device.pq.enums.DeviceResponseEnum;
import com.njcn.device.pq.enums.LineBaseEnum;
+import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
import com.njcn.device.pq.mapper.TerminalOnlineRateDataMapper;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
+import com.njcn.device.pq.pojo.dto.PublicDTO;
+import com.njcn.device.pq.pojo.param.DeviceInfoParam;
+import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam;
import com.njcn.device.pq.pojo.po.TerminalOnlineRateData;
import com.njcn.device.pq.pojo.vo.AlarmStrategyVO;
+import com.njcn.device.pq.pojo.vo.OnlineRateCensusVO;
+import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO;
import com.njcn.device.pq.service.IRStatOnlinerateDService;
import com.njcn.device.pq.service.TerminalOnlineRateDataService;
@@ -35,6 +43,7 @@ import org.influxdb.impl.InfluxDBResultMapper;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
@@ -55,7 +64,7 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
private final TerminalOnlineRateDataMapper terminalOnlineRateDataMapper;
- private final InfluxDbUtils influxDbUtils;
+ private final GeneralInfo generalInfo;
private final GeneralDeviceService generalDeviceService;
@@ -63,6 +72,9 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
private final DicDataFeignClient dicDataFeignClient;
+ private final RStatOnlinerateDMapper onlineRateMapper;
+
+
/**
@@ -157,6 +169,58 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
}
+ @Override
+ public OnlineRateCensusVO getOnlineRateDataCensus(DeviceInfoParam.CompareBusinessParam onlineRateCensusParam) {
+ OnlineRateCensusVO onlineRateCensusVO = new OnlineRateCensusVO();
+ onlineRateCensusParam.setServerName(generalInfo.getMicroServiceName());
+ List generalDeviceDTOList = generalDeviceService.getDeviceInfo(onlineRateCensusParam,Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
+ List type = new ArrayList<>();
+ List single = new ArrayList<>(), ratio = new ArrayList<>();
+ if (!CollectionUtils.isEmpty(generalDeviceDTOList)) {
+ for (GeneralDeviceDTO generalDeviceDTO: generalDeviceDTOList){
+ List deviceIndexes = generalDeviceDTO.getDeviceIndexes();
+ if (CollectionUtils.isEmpty(deviceIndexes)) {
+ continue;
+ }
+ type.add(generalDeviceDTO.getName());
+ //根据终端索引集查询在线率
+ List onlineRateList = getCondition(deviceIndexes, onlineRateCensusParam.getSearchBeginTime(), onlineRateCensusParam.getSearchEndTime());
+ single.add(onlineRateList.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));
+ //如果存在需要比较的时间,再获取对应数据
+ if(StrUtil.isNotBlank(onlineRateCensusParam.getPeriodBeginTime()) && StrUtil.isNotBlank(onlineRateCensusParam.getPeriodEndTime())){
+ List compareData = getCondition(deviceIndexes, onlineRateCensusParam.getPeriodBeginTime(), onlineRateCensusParam.getPeriodEndTime());
+ ratio.add(compareData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));
+ }
+ }
+ }
+ onlineRateCensusVO.setType(type);
+ onlineRateCensusVO.setSingle(single);
+ onlineRateCensusVO.setRatio(ratio);
+
+
+ return onlineRateCensusVO;
+ }
+
+ private List getCondition(List deviceIndexes, String searchBeginTime, String searchEndTime) {
+ List publicDTOList = new ArrayList<>();
+ OnlineRateParam param=new OnlineRateParam();
+ param.setIds(deviceIndexes);
+ param.setStartTime( DateUtil.beginOfDay(DateUtil.parse(searchBeginTime)).toString());
+ param.setEndTime( DateUtil.endOfDay(DateUtil.parse(searchEndTime)).toString());
+ List data = onlineRateMapper.getOnlineRateByDevIds(param);
+ if (CollUtil.isNotEmpty(data)) {
+ data.forEach(po -> {
+ PublicDTO publicDTO = new PublicDTO();
+ //终端在线率 保留两位小数
+ Double onlineRate = po.getOnlineRate() == null ? null : BigDecimal.valueOf(Double.parseDouble(po.getOnlineRate().toString())).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+ publicDTO.setId(po.getDevIndex());
+ publicDTO.setData(onlineRate);
+ publicDTOList.add(publicDTO);
+ });
+ }
+ return publicDTOList;
+ }
+
/**
* 处理变电站
*
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java
index 4cbf1689a..2b33aacfe 100644
--- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java
@@ -42,8 +42,6 @@ public class OnlineRateDataServiceImpl implements OnlineRateDataService {
private final OnlineRateDataMapper onlineRateDataMapper;
- private final InfluxDbUtils influxDbUtils;
-
private final GeneralDeviceInfoClient generalDeviceInfoClient;
private final GeneralInfo generalInfo;
@@ -142,16 +140,12 @@ public class OnlineRateDataServiceImpl implements OnlineRateDataService {
return all.stream().filter(allItem -> allItem.getPid().equals(item.getId())).collect(Collectors.toList());
}
- /**
- * influxDB相关操作
- * 查询终端的在线率
- * 前端要求: 返回百分比数据
- */
+
private List getCondition(List deviceIndexes, String startTime, String endTime) {
List publicDTOList = new ArrayList<>();
OnlineRateParam param=new OnlineRateParam();
param.setIds(deviceIndexes);
- param.setStartTime( DateUtil.beginOfDay(DateUtil.parse(startTime)).toString());
+ param.setStartTime(DateUtil.beginOfDay(DateUtil.parse(startTime)).toString());
param.setEndTime( DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
List data = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData();
if (CollUtil.isNotEmpty(data)) {
From 989eb31a10ab79d61b3766cf5663cda96d46fb6a Mon Sep 17 00:00:00 2001
From: wurui
Date: Thu, 6 Apr 2023 20:02:05 +0800
Subject: [PATCH 03/12] ...
---
.../harmonic/service/impl/THDistortionServiceImpl.java | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/THDistortionServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/THDistortionServiceImpl.java
index d20df5665..51866a459 100644
--- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/THDistortionServiceImpl.java
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/THDistortionServiceImpl.java
@@ -77,12 +77,10 @@ public class THDistortionServiceImpl implements THDistortionService {
//查找畸变率
List condition = getCondition(lineIndexes, thDistortionParam.getSearchBeginTime(), thDistortionParam.getSearchEndTime());
- if(CollUtil.isNotEmpty(condition)){
- thDistortionVO.setDistortion(condition.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));
- //组装父级数据树
- List treeList = getTreeData(lineIndexes, thDistortionParam);
- thDistortionVO.setChildren(treeList);
- }
+ thDistortionVO.setDistortion(condition.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));
+ //组装父级数据树
+ List treeList = getTreeData(lineIndexes, thDistortionParam);
+ thDistortionVO.setChildren(treeList);
}
thDistortionVOS.add(thDistortionVO);
From 2f9fe8c64c7f5adfb1a5ae1eb98cf9daf5952dc2 Mon Sep 17 00:00:00 2001
From: zhangbaojian <1065122561@qq.com>
Date: Thu, 6 Apr 2023 20:20:36 +0800
Subject: [PATCH 04/12] =?UTF-8?q?zbj//1.=E7=A8=B3=E6=80=81=E6=8C=87?=
=?UTF-8?q?=E6=A0=87=E8=B6=85=E6=A0=87=E5=8D=A0=E6=AF=94(=E5=8C=BA?=
=?UTF-8?q?=E5=9F=9F)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../device/pq/pojo/vo/HomeostasisAreaVO.java | 30 +++++++
.../majornetwork/LargeScreenController.java | 52 ++++++++++++
.../majornetwork/LargeScreenMapper.java | 19 +++++
.../mapping/LargeScreenMapper.xml | 25 ++++++
.../majornetwork/LargeScreenService.java | 17 ++++
.../impl/LargeScreenServiceImpl.java | 82 +++++++++++++++++++
6 files changed, 225 insertions(+)
create mode 100644 pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/HomeostasisAreaVO.java
create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/LargeScreenController.java
create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/LargeScreenMapper.java
create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/LargeScreenMapper.xml
create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/LargeScreenService.java
create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/LargeScreenServiceImpl.java
diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/HomeostasisAreaVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/HomeostasisAreaVO.java
new file mode 100644
index 000000000..8d57174ed
--- /dev/null
+++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/HomeostasisAreaVO.java
@@ -0,0 +1,30 @@
+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 HomeostasisAreaVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 名称
+ */
+ @ApiModelProperty("名称")
+ private String name;
+
+ /**
+ * 稳态超标占比
+ */
+ @ApiModelProperty("稳态超标占比")
+ private String avg;
+
+}
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/LargeScreenController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/LargeScreenController.java
new file mode 100644
index 000000000..7c23d3789
--- /dev/null
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/LargeScreenController.java
@@ -0,0 +1,52 @@
+package com.njcn.harmonic.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.*;
+
+import com.njcn.harmonic.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;
+
+import java.util.List;
+
+/**
+ * @version 1.0.0
+ * @author: zbj
+ * @date: 2023/04/06
+ */
+@Slf4j
+@Api(tags = "大屏")
+@RestController
+@RequestMapping("/largeScreen")
+@RequiredArgsConstructor
+public class LargeScreenController extends BaseController {
+
+ private final LargeScreenService largeScreenService;
+
+ /**
+ * 稳态指标超标占比(区域)
+ */
+ @OperateInfo(info = LogEnum.BUSINESS_COMMON)
+ @PostMapping("/getHomeostasisArea")
+ @ApiOperation("稳态指标超标占比(区域)")
+ @ApiImplicitParam(name = "largeScreenParam", value = "稳态指标超标占比(区域)", required = true)
+ public HttpResult> getHomeostasisArea(@RequestBody @Validated LargeScreenParam largeScreenParam) {
+ String methodDescribe = getMethodDescribe("getHomeostasisArea");
+ List result = largeScreenService.getHomeostasisArea(largeScreenParam);
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
+ }
+}
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/LargeScreenMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/LargeScreenMapper.java
new file mode 100644
index 000000000..8eb99865a
--- /dev/null
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/LargeScreenMapper.java
@@ -0,0 +1,19 @@
+package com.njcn.harmonic.mapper.majornetwork;
+
+import com.njcn.device.pq.pojo.vo.AllDataVO;
+import com.njcn.device.pq.pojo.vo.EventVO;
+import com.njcn.device.pq.pojo.vo.MiddleLimitRateVO;
+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 {
+
+ List