Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -23,6 +23,11 @@
|
||||
<artifactId>harmonic-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.njcn</groupId>
|
||||
<artifactId>harmonic-common</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.njcn</groupId>
|
||||
<artifactId>common-web</artifactId>
|
||||
@@ -90,7 +95,7 @@
|
||||
<version>3.0.10</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.joda.time</groupId>
|
||||
<groupId>joda-time</groupId>
|
||||
<artifactId>joda-time</artifactId>
|
||||
<version>2.9.9</version>
|
||||
</dependency>
|
||||
|
||||
@@ -12,12 +12,10 @@ import com.njcn.harmonic.pojo.param.HistoryHarmParam;
|
||||
import com.njcn.harmonic.pojo.param.HistoryParam;
|
||||
import com.njcn.harmonic.pojo.param.NormHistoryParam;
|
||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.vo.AssessEvaluation;
|
||||
import com.njcn.harmonic.pojo.vo.HistoryDataResultVO;
|
||||
import com.njcn.harmonic.pojo.vo.StatHarmonicOrgVO;
|
||||
import com.njcn.harmonic.service.HistoryResultService;
|
||||
import com.njcn.harmonic.service.IRStatLimitRateDService;
|
||||
import com.njcn.harmonic.service.IRStatLimitTargetDService;
|
||||
import com.njcn.harmonic.service.OracleResultService;
|
||||
import com.njcn.influx.pojo.dto.HarmHistoryDataDTO;
|
||||
@@ -51,7 +49,6 @@ public class HistoryResultController extends BaseController {
|
||||
|
||||
private final HistoryResultService historyResultService;
|
||||
private final IRStatLimitTargetDService limitTargetDService;
|
||||
private final IRStatLimitRateDService limitRateDService;
|
||||
private final OracleResultService oracleResultService;
|
||||
|
||||
@Value("${History.DataSource:0}")
|
||||
@@ -64,6 +61,7 @@ public class HistoryResultController extends BaseController {
|
||||
public HttpResult<List<HistoryDataResultVO>> getHistoryResult(@RequestBody @Validated HistoryParam historyParam) {
|
||||
String methodDescribe = getMethodDescribe("getHistoryResult");
|
||||
List<HistoryDataResultVO> list;
|
||||
//针对河北现场特殊处理,pmswifi_开头监测点为无线装置,需要查询influxdb,其他测点查询oracle
|
||||
if (HistoryDataSource == 1 && !historyParam.getLineId()[0].contains("pmswifi_")) {
|
||||
list = oracleResultService.getHistoryResult(historyParam);
|
||||
} else {
|
||||
@@ -113,21 +111,6 @@ public class HistoryResultController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, linesTarget, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getLinesRate")
|
||||
@ApiOperation("获取越线监测点越线次数")
|
||||
@ApiImplicitParam(name = "param", value = "获取越线监测点越线次数请求参数", required = true)
|
||||
public HttpResult<List<RStatLimitRateDPO>> getLinesRate(@RequestBody StatSubstationBizBaseParam param) {
|
||||
String methodDescribe = getMethodDescribe("getLinesTarget");
|
||||
List<RStatLimitRateDPO> list = limitRateDService.list(new LambdaQueryWrapper<RStatLimitRateDPO>()
|
||||
.in(RStatLimitRateDPO::getLineId, param.getIds())
|
||||
.eq(RStatLimitRateDPO::getPhasicType, "T")
|
||||
.ge(StrUtil.isNotBlank(param.getStartTime()), RStatLimitRateDPO::getTime, param.getStartTime())
|
||||
.le(StrUtil.isNotBlank(param.getEndTime()), RStatLimitRateDPO::getTime, param.getEndTime())
|
||||
|
||||
);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getHarmIAndHarmVData")
|
||||
@ApiOperation("评估结果获取谐波电压和谐波电流含有率、三项不平横度和负序电流")
|
||||
|
||||
@@ -8,7 +8,6 @@ import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.device.pms.pojo.param.pwUser.PwUserMonitorParam;
|
||||
import com.njcn.harmonic.pojo.param.RStatLimitQueryParam;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
||||
import com.njcn.harmonic.pojo.vo.MonitorLimitRateVO;
|
||||
import com.njcn.harmonic.pojo.vo.PwLimitDataVO;
|
||||
@@ -16,8 +15,6 @@ import com.njcn.harmonic.pojo.vo.RStatLimitTargetVO;
|
||||
import com.njcn.harmonic.service.majornetwork.RStatLimitService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -40,16 +37,6 @@ public class RStatLimitController extends BaseController {
|
||||
private final RStatLimitService rStatLimitService;
|
||||
|
||||
|
||||
@PostMapping("/monitorIdsGetLimitRateInfo")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@ApiOperation("获取指定日期超标监测点详细信息")
|
||||
public HttpResult<List<RStatLimitRateDPO>> monitorIdsGetLimitRateInfo(@RequestBody RStatLimitQueryParam rStatLimitQueryParam) {
|
||||
String methodDescribe = getMethodDescribe("monitorIdsGetLimitRateInfo");
|
||||
List<RStatLimitRateDPO> result = rStatLimitService.monitorIdsGetLimitRateInfo(rStatLimitQueryParam.getDate(),rStatLimitQueryParam.getIds());
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/monitorIdsGetLimitTargetInfo")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@ApiOperation("获取指定日期超标监测点详细信息")
|
||||
@@ -68,20 +55,7 @@ public class RStatLimitController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
@PostMapping("/getOverData")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@ApiOperation("查询单监测点超标数据")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "lineId", value = "监测点id"),
|
||||
@ApiImplicitParam(name = "startTime", value = "开始时间"),
|
||||
@ApiImplicitParam(name = "endTime", value = "结束时间"),
|
||||
@ApiImplicitParam(name = "type", value = "指标"),
|
||||
})
|
||||
public HttpResult<List<RStatLimitRateDPO>> getOverData(@RequestParam("lineId") String lineId, @RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime, @RequestParam("type") Integer type) {
|
||||
String methodDescribe = getMethodDescribe("getOverData");
|
||||
List<RStatLimitRateDPO> result = rStatLimitService.getOverData(lineId,startTime,endTime,type);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/pwMonitorLimitData")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
package com.njcn.harmonic.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 合格率统计日表(越限次数) 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author wr
|
||||
* @since 2023-04-03
|
||||
*/
|
||||
public interface IRStatLimitRateDService extends IService<RStatLimitRateDPO> {
|
||||
|
||||
}
|
||||
@@ -20,7 +20,6 @@ import com.njcn.device.pq.pojo.dto.WarningSubstationDTO;
|
||||
import com.njcn.event.api.EventDetailFeignClient;
|
||||
import com.njcn.event.pojo.vo.GeneralVO;
|
||||
import com.njcn.harmonic.constant.Param;
|
||||
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.mapper.RStatLimitTargetMapper;
|
||||
import com.njcn.harmonic.pojo.excel.area.AreaExcel;
|
||||
import com.njcn.harmonic.pojo.excel.monitor.ITimes;
|
||||
@@ -28,13 +27,13 @@ import com.njcn.harmonic.pojo.excel.monitor.MonitorExcel;
|
||||
import com.njcn.harmonic.pojo.excel.monitor.OverLimitDays;
|
||||
import com.njcn.harmonic.pojo.excel.monitor.UTimes;
|
||||
import com.njcn.harmonic.pojo.excel.substation.SubstationExcel;
|
||||
import com.njcn.harmonic.pojo.po.LimitTarget;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
||||
import com.njcn.harmonic.pojo.vo.MonitorOverLimitVO;
|
||||
import com.njcn.harmonic.pojo.vo.OverAreaLimitVO;
|
||||
import com.njcn.harmonic.pojo.vo.OverAreaVO;
|
||||
import com.njcn.harmonic.pojo.vo.WarningSubstationVO;
|
||||
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.service.IAnalyzeService;
|
||||
import com.njcn.poi.excel.ExcelUtil;
|
||||
import com.njcn.supervision.api.UserLedgerFeignClient;
|
||||
@@ -47,15 +46,12 @@ import com.njcn.system.pojo.po.DictData;
|
||||
import com.njcn.web.utils.RequestUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.influxdb.dto.QueryResult;
|
||||
import org.influxdb.impl.InfluxDBResultMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.njcn.harmonic.pojo.vo.hebeinorth.AssessDetailVo;
|
||||
import com.njcn.harmonic.pojo.vo.hebeinorth.AssessVo;
|
||||
import com.njcn.harmonic.pojo.vo.hebeinorth.EvaluationLevelVo;
|
||||
import com.njcn.harmonic.pojo.vo.hebeinorth.EvaluationVo;
|
||||
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.service.hebeinorth.IGridService;
|
||||
import com.njcn.harmonic.util.ComAssesUtil;
|
||||
import com.njcn.harmonic.util.TimeUtil;
|
||||
@@ -34,7 +35,6 @@ import org.springframework.stereotype.Service;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.time.LocalDate;
|
||||
import java.time.Year;
|
||||
import java.time.YearMonth;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.date.TimeInterval;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.njcn.common.pojo.constant.BizParamConstant;
|
||||
@@ -54,6 +55,9 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
@@ -62,8 +66,11 @@ import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@@ -102,16 +109,24 @@ public class HistoryResultServiceImpl implements HistoryResultService {
|
||||
private final RStatDataVDMapper dataVDMapper;
|
||||
private final RStatDataHarmRateVDMapper dataHarmRateVDMapper;
|
||||
private final RStatDataHarmRateIDMapper dataHarmRateIDMapper;
|
||||
@Autowired
|
||||
@Qualifier("asyncExecutor")
|
||||
private Executor asyncExecutor;
|
||||
|
||||
|
||||
@Override
|
||||
public List<HistoryDataResultVO> getHistoryResult(HistoryParam historyParam) {
|
||||
System.out.println("begin============================="+ LocalDateTime.now());
|
||||
TimeInterval timeInterval = new TimeInterval();
|
||||
List<HistoryDataResultVO> historyDataResultVOList = new ArrayList<>();
|
||||
//获取监测点
|
||||
String[] points = historyParam.getLineId();
|
||||
Integer number = 0;
|
||||
|
||||
for (int i = 0; i < points.length; i++) {
|
||||
HistoryDataResultVO historyDataResultVO;
|
||||
long a = timeInterval.intervalMs();
|
||||
|
||||
List<EventDetail> eventDetailList = eventDetailFeignClient.getEventDetailData(points[i], historyParam.getSearchBeginTime(), historyParam.getSearchEndTime()).getData();
|
||||
|
||||
List<EventDetailVO> eventDetailVOList = new ArrayList<>();
|
||||
if (!eventDetailList.isEmpty()) {
|
||||
for (EventDetail eventdetail : eventDetailList) {
|
||||
@@ -122,9 +137,21 @@ public class HistoryResultServiceImpl implements HistoryResultService {
|
||||
eventDetailVOList.add(eventDetailVO);
|
||||
}
|
||||
}
|
||||
|
||||
//获取监测点的数据单位,kV还是v kW还是w
|
||||
PqsDeviceUnit pqsDeviceUnit = commTerminalGeneralClient.lineUnitDetail(points[i]).getData();
|
||||
//获取监测点信息
|
||||
LineDevGetDTO lineDetailDataVO = commTerminalGeneralClient.getMonitorDetail(points[i]).getData();
|
||||
//获取限值
|
||||
Overlimit overlimit = commTerminalGeneralClient.getOverLimitData(points[i]).getData();
|
||||
long b = timeInterval.intervalMs();
|
||||
System.out.println("feign调用:"+(b-a));
|
||||
//获取指标
|
||||
String[] contions = historyParam.getCondition();
|
||||
List<CompletableFuture<Void>> futures = new ArrayList<>();
|
||||
for (int j = 0; j < contions.length; j++) {
|
||||
Integer number = 0;
|
||||
|
||||
if ("40".equals(contions[j]) || "41".equals(contions[j]) || "42".equals(contions[j]) || "43".equals(contions[j])
|
||||
|| "44".equals(contions[j]) || "45".equals(contions[j]) || "50".equals(contions[j]) || "51".equals(contions[j])
|
||||
|| "52".equals(contions[j])) {
|
||||
@@ -133,20 +160,33 @@ public class HistoryResultServiceImpl implements HistoryResultService {
|
||||
if ("46".equals(contions[j]) || "47".equals(contions[j]) || "48".equals(contions[j]) || "49".equals(contions[j])) {
|
||||
number = historyParam.getInHarmonic();
|
||||
}
|
||||
historyDataResultVO = getCondition(historyParam.getSearchBeginTime(), historyParam.getSearchEndTime(), points[i], contions[j], number, historyParam.getValueType(), historyParam.getPtType());
|
||||
/* if (points.length == 1 && j == 0) {
|
||||
historyDataResultVO.setEventDetail(eventDetailVOList);
|
||||
} else if (points.length > 1) {
|
||||
historyDataResultVO.setEventDetail(eventDetailVOList);
|
||||
}*/
|
||||
historyDataResultVO.setEventDetail(eventDetailVOList);
|
||||
historyDataResultVOList.add(historyDataResultVO);
|
||||
|
||||
//每个指标独立一个线程去查库,针对现场网络环境比较复杂的场景,正常场景看不太出来效果
|
||||
asyncMethodWithCustomExecutor(contions[j],number,historyParam,eventDetailVOList,points[i],pqsDeviceUnit,lineDetailDataVO,overlimit,historyDataResultVOList,futures);
|
||||
}
|
||||
// 等待所有任务完成
|
||||
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
|
||||
|
||||
}
|
||||
|
||||
System.out.println("end============================="+LocalDateTime.now());
|
||||
System.out.println("共计耗时:"+timeInterval.intervalMs()/1000.0);
|
||||
return historyDataResultVOList;
|
||||
}
|
||||
|
||||
|
||||
//处理指标查询
|
||||
public void asyncMethodWithCustomExecutor(String target,Integer number,HistoryParam historyParam,List<EventDetailVO> eventDetailVOList,String point,PqsDeviceUnit pqsDeviceUnit,LineDevGetDTO lineDetailDataVO,Overlimit overlimit,List<HistoryDataResultVO> historyDataResultVOList,List<CompletableFuture<Void>> futures) {
|
||||
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
|
||||
HistoryDataResultVO historyDataResultVO = getCondition(historyParam.getSearchBeginTime(), historyParam.getSearchEndTime(), point, target, number, historyParam.getValueType(), historyParam.getPtType(),pqsDeviceUnit,lineDetailDataVO,overlimit);
|
||||
historyDataResultVO.setEventDetail(eventDetailVOList);
|
||||
synchronized (historyDataResultVOList) { // 同步块保证线程安全
|
||||
historyDataResultVOList.add(historyDataResultVO);
|
||||
}
|
||||
System.out.println("执行异步任务,线程名:" + Thread.currentThread().getName());
|
||||
}, asyncExecutor);
|
||||
futures.add(future);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<HistoryDataResultVO> getHistoryLineData(NormHistoryParam normHistoryParam) {
|
||||
List<HistoryDataResultVO> historyDataResultVOList = new ArrayList<>();
|
||||
@@ -160,9 +200,9 @@ public class HistoryResultServiceImpl implements HistoryResultService {
|
||||
* 查询稳态数据分析
|
||||
*/
|
||||
@SneakyThrows
|
||||
private HistoryDataResultVO getCondition(String startTime, String endTime, String lineId, String contion, Integer number, Integer valueType, Integer ptType) {
|
||||
public HistoryDataResultVO getCondition(String startTime, String endTime, String lineId, String contion, Integer number, Integer valueType, Integer ptType,PqsDeviceUnit pqsDeviceUnit,LineDevGetDTO lineDetailDataVO,Overlimit overlimit) {
|
||||
HistoryDataResultVO historyDataResultVO = new HistoryDataResultVO();
|
||||
QueryResultLimitVO queryResultLimitVO = getQueryResult(startTime, endTime, lineId, contion, number, valueType, ptType);
|
||||
QueryResultLimitVO queryResultLimitVO = getQueryResult(startTime, endTime, lineId, contion, number, valueType, ptType,pqsDeviceUnit,lineDetailDataVO,overlimit);
|
||||
List<HarmonicHistoryData> harmonicHistoryDataList = queryResultLimitVO.getHarmonicHistoryDataList();
|
||||
BeanUtil.copyProperties(queryResultLimitVO, historyDataResultVO);
|
||||
//时间轴
|
||||
@@ -207,7 +247,6 @@ public class HistoryResultServiceImpl implements HistoryResultService {
|
||||
} else {
|
||||
//按时间分组
|
||||
Map<Instant, List<HarmonicHistoryData>> map = harmonicHistoryDataList.stream().collect(Collectors.groupingBy(HarmonicHistoryData::getTime, TreeMap::new, Collectors.toList()));
|
||||
|
||||
Float maxI = null;
|
||||
Float minI = null;
|
||||
for (Map.Entry<Instant, List<HarmonicHistoryData>> entry : map.entrySet()) {
|
||||
@@ -241,13 +280,10 @@ public class HistoryResultServiceImpl implements HistoryResultService {
|
||||
objects[3] = c;
|
||||
maxI = max(maxI, c.floatValue());
|
||||
minI = min(minI, c.floatValue());
|
||||
|
||||
}
|
||||
}
|
||||
List<Object> list = new ArrayList<>(Arrays.asList(objects));
|
||||
|
||||
objectListData.add(list);
|
||||
|
||||
}
|
||||
|
||||
historyDataResultVO.setMaxValue(maxI);
|
||||
@@ -256,7 +292,6 @@ public class HistoryResultServiceImpl implements HistoryResultService {
|
||||
historyDataResultVO.setLowerLimit(queryResultLimitVO.getLowerLimit());
|
||||
historyDataResultVO.setValue(objectListData);
|
||||
}
|
||||
|
||||
} else {
|
||||
return historyDataResultVO;
|
||||
}
|
||||
@@ -284,19 +319,12 @@ public class HistoryResultServiceImpl implements HistoryResultService {
|
||||
return ding;
|
||||
}
|
||||
|
||||
private QueryResultLimitVO getQueryResult(String startTime, String endTime, String lineId, String contion, Integer number, Integer valueType, Integer ptType) {
|
||||
PqsDeviceUnit pqsDeviceUnit = commTerminalGeneralClient.lineUnitDetail(lineId).getData();
|
||||
|
||||
private QueryResultLimitVO getQueryResult(String startTime, String endTime, String lineId, String contion, Integer number, Integer valueType, Integer ptType,PqsDeviceUnit pqsDeviceUnit,LineDevGetDTO lineDetailDataVO,Overlimit overlimit) {
|
||||
QueryResultLimitVO queryResultLimitVO = new QueryResultLimitVO();
|
||||
if (!lineId.isEmpty()) {
|
||||
Float topLimit = 0f;
|
||||
Float lowerLimit = 0f;
|
||||
|
||||
|
||||
//获取监测点信息
|
||||
LineDevGetDTO lineDetailDataVO = commTerminalGeneralClient.getMonitorDetail(lineId).getData();
|
||||
//获取限值
|
||||
Overlimit overlimit = commTerminalGeneralClient.getOverLimitData(lineId).getData();
|
||||
if (Objects.isNull(overlimit)) {
|
||||
//对配网没有限值的统一处理
|
||||
DictData dictData = dicDataFeignClient.getDicDataById(lineDetailDataVO.getVoltageLevel()).getData();
|
||||
@@ -305,7 +333,6 @@ public class HistoryResultServiceImpl implements HistoryResultService {
|
||||
overlimit = COverlimitUtil.globalAssemble(voltageLevel, 10f, 10f, shortVal, 1, 1);
|
||||
}
|
||||
|
||||
|
||||
//组装sql语句
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append(InfluxDBTableConstant.TIME + " >= '").append(startTime).append(InfluxDBTableConstant.START_TIME).append("' and ").append(InfluxDBTableConstant.TIME).append(" <= '").append(endTime).append(InfluxDBTableConstant.END_TIME).append("' and (");
|
||||
|
||||
@@ -55,6 +55,7 @@ import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
|
||||
import com.njcn.harmonic.pojo.vo.PollutionVO;
|
||||
import com.njcn.harmonic.pojo.vo.SubstationVo;
|
||||
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.service.PollutionSubstationService;
|
||||
import com.njcn.poi.excel.ExcelUtil;
|
||||
import com.njcn.supervision.api.UserLedgerFeignClient;
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
package com.njcn.harmonic.service.impl;
|
||||
|
||||
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.service.IRStatLimitRateDService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 合格率统计日表(越限次数) 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author wr
|
||||
* @since 2023-04-03
|
||||
*/
|
||||
@Service
|
||||
public class RStatLimitRateDServiceImpl extends ServiceImpl<RStatLimitRateDMapper, RStatLimitRateDPO> implements IRStatLimitRateDService {
|
||||
|
||||
}
|
||||
@@ -14,14 +14,14 @@ import com.njcn.device.pq.enums.PowerFlagEnum;
|
||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.utils.PublicDateUtil;
|
||||
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.mapper.SteadyExceedRateMapper;
|
||||
import com.njcn.harmonic.pojo.po.LimitRatePO;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.vo.MonitorOverLimitVO;
|
||||
import com.njcn.harmonic.pojo.vo.SteadyExceedRateCensusVO;
|
||||
import com.njcn.harmonic.pojo.vo.SteadyExceedRateVO;
|
||||
import com.njcn.harmonic.service.IRStatLimitRateDService;
|
||||
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.rstatlimitrate.service.IRStatLimitRateDService;
|
||||
import com.njcn.harmonic.service.SteadyExceedRateService;
|
||||
import com.njcn.harmonic.utils.PubUtils;
|
||||
import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
|
||||
|
||||
@@ -15,7 +15,7 @@ import com.njcn.harmonic.mapper.SteadyQualifyMapper;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.vo.SteadyQualifyCensusVO;
|
||||
import com.njcn.harmonic.pojo.vo.SteadyQualifyVO;
|
||||
import com.njcn.harmonic.service.IRStatLimitRateDService;
|
||||
import com.njcn.harmonic.rstatlimitrate.service.IRStatLimitRateDService;
|
||||
import com.njcn.harmonic.service.SteadyQualifyService;
|
||||
import com.njcn.harmonic.utils.PubUtils;
|
||||
import com.njcn.supervision.api.UserLedgerFeignClient;
|
||||
|
||||
@@ -4,13 +4,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.device.pms.pojo.param.pwUser.PwUserMonitorParam;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
||||
import com.njcn.harmonic.pojo.vo.MonitorLimitRateVO;
|
||||
import com.njcn.harmonic.pojo.vo.PwLimitDataVO;
|
||||
import com.njcn.harmonic.pojo.vo.RStatLimitRateDVO;
|
||||
import com.njcn.harmonic.pojo.vo.RStatLimitTargetVO;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -22,13 +19,6 @@ import java.util.List;
|
||||
*/
|
||||
public interface RStatLimitService {
|
||||
|
||||
/**
|
||||
* 获取指定日期的监测点超标详情
|
||||
* @author cdf
|
||||
* @date 2024/2/28
|
||||
*/
|
||||
List<RStatLimitRateDPO> monitorIdsGetLimitRateInfo(String date, List<String> monitorIds);
|
||||
|
||||
|
||||
List<RStatLimitTargetDPO> monitorIdsGetLimitTargetInfo(String date, List<String> monitorIds);
|
||||
|
||||
@@ -50,8 +40,6 @@ public interface RStatLimitService {
|
||||
*/
|
||||
List<GridDiagramVO.RunData> getGridDiagramRunData(DeviceInfoParam.BusinessParam param);
|
||||
|
||||
List<RStatLimitRateDPO> getOverData(String lineId, String startTime, String endTime, Integer type);
|
||||
|
||||
|
||||
Page<MonitorLimitRateVO> pwMonitorLimitData(PwUserMonitorParam pwUserMonitorParam);
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ import com.njcn.harmonic.pojo.param.RMpPartHarmonicDetailQueryParam;
|
||||
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.vo.RMpPartHarmonicDetailIconVO;
|
||||
import com.njcn.harmonic.service.IRStatLimitRateDService;
|
||||
import com.njcn.harmonic.rstatlimitrate.service.IRStatLimitRateDService;
|
||||
import com.njcn.harmonic.service.majornetwork.RMpPartHarmonicDetailDService;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
import com.njcn.system.enums.DicDataEnum;
|
||||
|
||||
@@ -26,7 +26,6 @@ import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
||||
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.mapper.RStatLimitTargetDMapper;
|
||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
@@ -34,6 +33,7 @@ import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
||||
import com.njcn.harmonic.pojo.vo.MonitorLimitRateVO;
|
||||
import com.njcn.harmonic.pojo.vo.PwLimitDataVO;
|
||||
import com.njcn.harmonic.pojo.vo.RStatLimitTargetVO;
|
||||
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.service.IRStatLimitTargetDService;
|
||||
import com.njcn.harmonic.service.majornetwork.RStatLimitService;
|
||||
import com.njcn.system.pojo.enums.StatisticsEnum;
|
||||
@@ -68,15 +68,9 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
||||
private final LineIntegrityClient lineIntegrityClient;
|
||||
private final IRStatLimitTargetDService targetDService;
|
||||
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||
|
||||
private final DistributionMonitorClient distributionMonitorClient;
|
||||
|
||||
|
||||
@Override
|
||||
public List<RStatLimitRateDPO> monitorIdsGetLimitRateInfo(String date, List<String> monitorIds) {
|
||||
return rStatLimitRateDMapper.selectList(new LambdaQueryWrapper<RStatLimitRateDPO>()
|
||||
.in(RStatLimitRateDPO::getLineId,monitorIds).eq(RStatLimitRateDPO::getTime,date).eq(RStatLimitRateDPO::getPhasicType,"T"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RStatLimitTargetDPO> monitorIdsGetLimitTargetInfo(String date, List<String> monitorIds) {
|
||||
@@ -324,93 +318,6 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
||||
return info;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RStatLimitRateDPO> getOverData(String lineId, String startTime, String endTime, Integer type) {
|
||||
QueryWrapper<RStatLimitRateDPO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda()
|
||||
.eq(RStatLimitRateDPO::getLineId,lineId)
|
||||
.between(RStatLimitRateDPO::getTime,startTime,endTime)
|
||||
.groupBy(RStatLimitRateDPO::getTime);
|
||||
//频率偏差
|
||||
if (type == 1) {
|
||||
queryWrapper.select("time_id time,max(freq_dev_overtime) freq_dev_overtime");
|
||||
queryWrapper.lambda().gt(RStatLimitRateDPO::getFreqDevOvertime,0);
|
||||
}
|
||||
//电压偏差
|
||||
else if (type == 2) {
|
||||
queryWrapper.select("time_id time,max(voltage_dev_overtime) voltage_dev_overtime");
|
||||
queryWrapper.lambda().gt(RStatLimitRateDPO::getVoltageDevOvertime,0);
|
||||
}
|
||||
//长时闪变
|
||||
else if (type == 3) {
|
||||
queryWrapper.select("time_id time,max(flicker_overtime) flicker_overtime");
|
||||
queryWrapper.lambda().gt(RStatLimitRateDPO::getFlickerOvertime,0);
|
||||
}
|
||||
//电压总谐波畸变率
|
||||
else if (type == 4) {
|
||||
queryWrapper.select("time_id time,max(uaberrance_overtime) uaberrance_overtime");
|
||||
queryWrapper.lambda().gt(RStatLimitRateDPO::getUaberranceOvertime,0);
|
||||
}
|
||||
//负序电压不平衡度
|
||||
else if (type == 5) {
|
||||
queryWrapper.select("time_id time,max(ubalance_overtime) ubalance_overtime");
|
||||
queryWrapper.lambda().gt(RStatLimitRateDPO::getUbalanceOvertime,0);
|
||||
}
|
||||
//负序电流
|
||||
else if (type == 6) {
|
||||
queryWrapper.select("time_id time,max(i_neg_overtime) i_neg_overtime");
|
||||
queryWrapper.lambda().gt(RStatLimitRateDPO::getINegOvertime,0);
|
||||
}
|
||||
//谐波电压含有率
|
||||
else if (type == 7) {
|
||||
StringBuilder selectSql = new StringBuilder();
|
||||
StringBuilder havingSql = new StringBuilder();
|
||||
for (int i = 2; i <=25 ; i++) {
|
||||
selectSql.append("max(uharm_").append(i).append("_overtime) uharm_").append(i).append("_overtime,");
|
||||
if (i == 25) {
|
||||
havingSql.append("uharm_").append(i).append("_overtime");
|
||||
} else {
|
||||
havingSql.append("uharm_").append(i).append("_overtime + ");
|
||||
}
|
||||
}
|
||||
selectSql.append("time_id time");
|
||||
havingSql = new StringBuilder("sum(" + havingSql + ")");
|
||||
queryWrapper.select(selectSql.toString()).having(havingSql.toString(),0);
|
||||
}
|
||||
//谐波电流
|
||||
else if (type == 8) {
|
||||
StringBuilder selectSql = new StringBuilder();
|
||||
StringBuilder havingSql = new StringBuilder();
|
||||
for (int i = 2; i <=25 ; i++) {
|
||||
selectSql.append("max(iharm_").append(i).append("_overtime) iharm_").append(i).append("_overtime,");
|
||||
if (i == 25) {
|
||||
havingSql.append("iharm_").append(i).append("_overtime");
|
||||
} else {
|
||||
havingSql.append("iharm_").append(i).append("_overtime + ");
|
||||
}
|
||||
}
|
||||
selectSql.append("time_id time");
|
||||
havingSql = new StringBuilder("sum(" + havingSql + ")");
|
||||
queryWrapper.select(selectSql.toString()).having(havingSql.toString(),0);
|
||||
}
|
||||
//间谐波电压
|
||||
else if (type == 9) {
|
||||
StringBuilder selectSql = new StringBuilder();
|
||||
StringBuilder havingSql = new StringBuilder();
|
||||
for (int i = 1; i <=16 ; i++) {
|
||||
selectSql.append("max(inuharm_").append(i).append("_overtime) inuharm_").append(i).append("_overtime,");
|
||||
if (i == 16) {
|
||||
havingSql.append("inuharm_").append(i).append("_overtime");
|
||||
} else {
|
||||
havingSql.append("inuharm_").append(i).append("_overtime + ");
|
||||
}
|
||||
}
|
||||
selectSql.append("time_id time");
|
||||
havingSql = new StringBuilder("sum(" + havingSql + ")");
|
||||
queryWrapper.select(selectSql.toString()).having(havingSql.toString(),0);
|
||||
}
|
||||
return rStatLimitRateDMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<MonitorLimitRateVO> pwMonitorLimitData(PwUserMonitorParam pwUserMonitorParam) {
|
||||
|
||||
@@ -21,12 +21,9 @@ import com.njcn.device.pms.api.LineIntegrityDataClient;
|
||||
import com.njcn.device.pms.api.MonitorClient;
|
||||
import com.njcn.device.pms.api.PmsMidLedgerClient;
|
||||
import com.njcn.device.pms.pojo.param.DataQualityDetailsParam;
|
||||
import com.njcn.device.pms.pojo.param.TerminalQueryParam;
|
||||
import com.njcn.device.pms.pojo.po.Monitor;
|
||||
import com.njcn.device.pms.pojo.po.PmsMidLedger;
|
||||
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||
import com.njcn.harmonic.mapper.RStatDataVDMapper;
|
||||
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.mapper.upload.*;
|
||||
import com.njcn.harmonic.pojo.dto.upload.PqEvaluationCreateDTO;
|
||||
import com.njcn.harmonic.pojo.dto.upload.RDimUpDTO;
|
||||
@@ -34,11 +31,11 @@ import com.njcn.harmonic.pojo.param.UploadDataParam;
|
||||
import com.njcn.harmonic.pojo.param.UploadParam;
|
||||
import com.njcn.harmonic.pojo.param.upload.DimBusBarParam;
|
||||
import com.njcn.harmonic.pojo.po.RStatDataVD;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatDataVDPO;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.po.upload.*;
|
||||
import com.njcn.harmonic.pojo.vo.upload.DimBusBarVO;
|
||||
import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo;
|
||||
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.service.upload.IEvaluationDataService;
|
||||
import com.njcn.harmonic.service.upload.IRUploadDataLogService;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
@@ -99,8 +96,6 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
|
||||
|
||||
private final MonitorClient monitorClient;
|
||||
|
||||
private final PmsMidLedgerClient pmsMidLedgerClient;
|
||||
|
||||
private final IRUploadDataLogService irUploadDataLogService;
|
||||
|
||||
private final LineIntegrityDataClient lineIntegrityDataClient;
|
||||
|
||||
@@ -5,20 +5,17 @@ import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.device.pms.api.LineIntegrityDataClient;
|
||||
import com.njcn.device.pms.api.MonitorClient;
|
||||
import com.njcn.device.pms.pojo.param.DataQualityDetailsParam;
|
||||
import com.njcn.device.pms.pojo.param.gw.TypicalSourceParam;
|
||||
import com.njcn.device.pms.pojo.po.Monitor;
|
||||
import com.njcn.device.pms.pojo.vo.gw.TypicalOverIndex;
|
||||
import com.njcn.device.pms.pojo.vo.gw.TypicalOverStation;
|
||||
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceEffectiveLine;
|
||||
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine;
|
||||
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.mapper.RStatLimitTargetDMapper;
|
||||
import com.njcn.harmonic.mapper.upload.PmsRunStatisticDMapper;
|
||||
import com.njcn.harmonic.mapper.upload.PmsRunStatisticMMapper;
|
||||
@@ -44,7 +41,6 @@ public class TypicalSourceLoadDownServiceImpl implements TypicalSourceLoadDownSe
|
||||
|
||||
private final MonitorClient monitorClient;
|
||||
private final RStatLimitTargetDMapper rStatLimitTargetDMapper;
|
||||
private final RStatLimitRateDMapper rStatLimitRateDMapper;
|
||||
private final LineIntegrityDataClient integrityDataClient;
|
||||
private final PmsRunStatisticDMapper pmsRunStatisticDMapper;
|
||||
private final PmsRunStatisticMMapper pmsRunStatisticMMapper;
|
||||
|
||||
32
pqs-harmonic/harmonic-common/pom.xml
Normal file
32
pqs-harmonic/harmonic-common/pom.xml
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.njcn</groupId>
|
||||
<artifactId>pqs-harmonic</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>harmonic-common</artifactId>
|
||||
<name>谐波检测公共模块</name>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.njcn</groupId>
|
||||
<artifactId>harmonic-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@@ -0,0 +1,84 @@
|
||||
package com.njcn.harmonic.rstatlimitrate.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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.harmonic.pojo.param.RStatLimitQueryParam;
|
||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.rstatlimitrate.service.IRStatLimitRateDService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "合格率统计日表(越限次数)")
|
||||
public class RStatLimitRateDController extends BaseController {
|
||||
|
||||
private final IRStatLimitRateDService limitRateDService;
|
||||
|
||||
|
||||
/**
|
||||
* 来源于RStatLimitController的monitorIdsGetLimitRateInfo
|
||||
*/
|
||||
@PostMapping("/limitRateD/monitorIdsGetLimitRateInfo")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@ApiOperation("获取指定日期超标监测点详细信息")
|
||||
public HttpResult<List<RStatLimitRateDPO>> monitorIdsGetLimitRateInfo(@RequestBody RStatLimitQueryParam rStatLimitQueryParam) {
|
||||
String methodDescribe = getMethodDescribe("monitorIdsGetLimitRateInfo");
|
||||
List<RStatLimitRateDPO> result = limitRateDService.monitorIdsGetLimitRateInfo(rStatLimitQueryParam.getDate(),rStatLimitQueryParam.getIds());
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
/**
|
||||
* 来源于RStatLimitController的getOverData
|
||||
*/
|
||||
@PostMapping("/getOverData")
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@ApiOperation("查询单监测点超标数据")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "lineId", value = "监测点id"),
|
||||
@ApiImplicitParam(name = "startTime", value = "开始时间"),
|
||||
@ApiImplicitParam(name = "endTime", value = "结束时间"),
|
||||
@ApiImplicitParam(name = "type", value = "指标"),
|
||||
})
|
||||
public HttpResult<List<RStatLimitRateDPO>> getOverData(@RequestParam("lineId") String lineId, @RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime, @RequestParam("type") Integer type) {
|
||||
String methodDescribe = getMethodDescribe("getOverData");
|
||||
List<RStatLimitRateDPO> result = limitRateDService.getOverData(lineId,startTime,endTime,type);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 来源于 HistoryResultController的getLinesRate
|
||||
*/
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/harmonic/getLinesRate")
|
||||
@ApiOperation("获取越线监测点越线次数")
|
||||
@ApiImplicitParam(name = "param", value = "获取越线监测点越线次数请求参数", required = true)
|
||||
public HttpResult<List<RStatLimitRateDPO>> getLinesRate(@RequestBody StatSubstationBizBaseParam param) {
|
||||
String methodDescribe = getMethodDescribe("getLinesTarget");
|
||||
List<RStatLimitRateDPO> list = limitRateDService.list(new LambdaQueryWrapper<RStatLimitRateDPO>()
|
||||
.in(RStatLimitRateDPO::getLineId, param.getIds())
|
||||
.eq(RStatLimitRateDPO::getPhasicType, "T")
|
||||
.ge(StrUtil.isNotBlank(param.getStartTime()), RStatLimitRateDPO::getTime, param.getStartTime())
|
||||
.le(StrUtil.isNotBlank(param.getEndTime()), RStatLimitRateDPO::getTime, param.getEndTime())
|
||||
|
||||
);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.harmonic.mapper;
|
||||
package com.njcn.harmonic.rstatlimitrate.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -1,6 +1,6 @@
|
||||
<?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.harmonic.mapper.RStatLimitRateDMapper">
|
||||
<mapper namespace="com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper">
|
||||
|
||||
<select id="getSumPassRate" resultType="com.njcn.harmonic.pojo.vo.RStatLimitRateDVO">
|
||||
SELECT
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.njcn.harmonic.rstatlimitrate.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 合格率统计日表(越限次数) 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author wr
|
||||
* @since 2023-04-03
|
||||
*/
|
||||
public interface IRStatLimitRateDService extends IService<RStatLimitRateDPO> {
|
||||
|
||||
/**
|
||||
* 获取指定日期的监测点超标详情
|
||||
* @author cdf
|
||||
* @date 2024/2/28
|
||||
*/
|
||||
List<RStatLimitRateDPO> monitorIdsGetLimitRateInfo(String date, List<String> monitorIds);
|
||||
|
||||
List<RStatLimitRateDPO> getOverData(String lineId, String startTime, String endTime, Integer type);
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
package com.njcn.harmonic.rstatlimitrate.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.rstatlimitrate.service.IRStatLimitRateDService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 合格率统计日表(越限次数) 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author wr
|
||||
* @since 2023-04-03
|
||||
*/
|
||||
@Service
|
||||
public class RStatLimitRateDServiceImpl extends ServiceImpl<RStatLimitRateDMapper, RStatLimitRateDPO> implements IRStatLimitRateDService {
|
||||
|
||||
|
||||
@Override
|
||||
public List<RStatLimitRateDPO> monitorIdsGetLimitRateInfo(String date, List<String> monitorIds) {
|
||||
return this.baseMapper.selectList(new LambdaQueryWrapper<RStatLimitRateDPO>()
|
||||
.in(RStatLimitRateDPO::getLineId,monitorIds).eq(RStatLimitRateDPO::getTime,date).eq(RStatLimitRateDPO::getPhasicType,"T"));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<RStatLimitRateDPO> getOverData(String lineId, String startTime, String endTime, Integer type) {
|
||||
QueryWrapper<RStatLimitRateDPO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda()
|
||||
.eq(RStatLimitRateDPO::getLineId,lineId)
|
||||
.between(RStatLimitRateDPO::getTime,startTime,endTime)
|
||||
.groupBy(RStatLimitRateDPO::getTime);
|
||||
//频率偏差
|
||||
if (type == 1) {
|
||||
queryWrapper.select("time_id time,max(freq_dev_overtime) freq_dev_overtime");
|
||||
queryWrapper.lambda().gt(RStatLimitRateDPO::getFreqDevOvertime,0);
|
||||
}
|
||||
//电压偏差
|
||||
else if (type == 2) {
|
||||
queryWrapper.select("time_id time,max(voltage_dev_overtime) voltage_dev_overtime");
|
||||
queryWrapper.lambda().gt(RStatLimitRateDPO::getVoltageDevOvertime,0);
|
||||
}
|
||||
//长时闪变
|
||||
else if (type == 3) {
|
||||
queryWrapper.select("time_id time,max(flicker_overtime) flicker_overtime");
|
||||
queryWrapper.lambda().gt(RStatLimitRateDPO::getFlickerOvertime,0);
|
||||
}
|
||||
//电压总谐波畸变率
|
||||
else if (type == 4) {
|
||||
queryWrapper.select("time_id time,max(uaberrance_overtime) uaberrance_overtime");
|
||||
queryWrapper.lambda().gt(RStatLimitRateDPO::getUaberranceOvertime,0);
|
||||
}
|
||||
//负序电压不平衡度
|
||||
else if (type == 5) {
|
||||
queryWrapper.select("time_id time,max(ubalance_overtime) ubalance_overtime");
|
||||
queryWrapper.lambda().gt(RStatLimitRateDPO::getUbalanceOvertime,0);
|
||||
}
|
||||
//负序电流
|
||||
else if (type == 6) {
|
||||
queryWrapper.select("time_id time,max(i_neg_overtime) i_neg_overtime");
|
||||
queryWrapper.lambda().gt(RStatLimitRateDPO::getINegOvertime,0);
|
||||
}
|
||||
//谐波电压含有率
|
||||
else if (type == 7) {
|
||||
StringBuilder selectSql = new StringBuilder();
|
||||
StringBuilder havingSql = new StringBuilder();
|
||||
for (int i = 2; i <=25 ; i++) {
|
||||
selectSql.append("max(uharm_").append(i).append("_overtime) uharm_").append(i).append("_overtime,");
|
||||
if (i == 25) {
|
||||
havingSql.append("uharm_").append(i).append("_overtime");
|
||||
} else {
|
||||
havingSql.append("uharm_").append(i).append("_overtime + ");
|
||||
}
|
||||
}
|
||||
selectSql.append("time_id time");
|
||||
havingSql = new StringBuilder("sum(" + havingSql + ")");
|
||||
queryWrapper.select(selectSql.toString()).having(havingSql.toString(),0);
|
||||
}
|
||||
//谐波电流
|
||||
else if (type == 8) {
|
||||
StringBuilder selectSql = new StringBuilder();
|
||||
StringBuilder havingSql = new StringBuilder();
|
||||
for (int i = 2; i <=25 ; i++) {
|
||||
selectSql.append("max(iharm_").append(i).append("_overtime) iharm_").append(i).append("_overtime,");
|
||||
if (i == 25) {
|
||||
havingSql.append("iharm_").append(i).append("_overtime");
|
||||
} else {
|
||||
havingSql.append("iharm_").append(i).append("_overtime + ");
|
||||
}
|
||||
}
|
||||
selectSql.append("time_id time");
|
||||
havingSql = new StringBuilder("sum(" + havingSql + ")");
|
||||
queryWrapper.select(selectSql.toString()).having(havingSql.toString(),0);
|
||||
}
|
||||
//间谐波电压
|
||||
else if (type == 9) {
|
||||
StringBuilder selectSql = new StringBuilder();
|
||||
StringBuilder havingSql = new StringBuilder();
|
||||
for (int i = 1; i <=16 ; i++) {
|
||||
selectSql.append("max(inuharm_").append(i).append("_overtime) inuharm_").append(i).append("_overtime,");
|
||||
if (i == 16) {
|
||||
havingSql.append("inuharm_").append(i).append("_overtime");
|
||||
} else {
|
||||
havingSql.append("inuharm_").append(i).append("_overtime + ");
|
||||
}
|
||||
}
|
||||
selectSql.append("time_id time");
|
||||
havingSql = new StringBuilder("sum(" + havingSql + ")");
|
||||
queryWrapper.select(selectSql.toString()).having(havingSql.toString(),0);
|
||||
}
|
||||
return this.baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -13,6 +13,7 @@
|
||||
<modules>
|
||||
<module>harmonic-api</module>
|
||||
<module>harmonic-boot</module>
|
||||
<module>harmonic-common</module>
|
||||
</modules>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user