|
|
|
|
@@ -5,6 +5,7 @@ import cn.hutool.core.date.DatePattern;
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
|
|
|
|
import com.njcn.common.pojo.enums.common.ServerEnum;
|
|
|
|
|
@@ -21,6 +22,10 @@ import com.njcn.harmonic.api.RStatLimitRateDClient;
|
|
|
|
|
import com.njcn.harmonic.pojo.param.RStatLimitQueryParam;
|
|
|
|
|
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
|
|
|
|
import com.njcn.harmonic.pojo.vo.RStatLimitTargetVO;
|
|
|
|
|
import com.njcn.harmonic.utils.WordUtil2;
|
|
|
|
|
import com.njcn.oss.constant.OssPath;
|
|
|
|
|
import com.njcn.oss.utils.FileStorageUtil;
|
|
|
|
|
import com.njcn.supervision.enums.ProblemTypeEnum;
|
|
|
|
|
import com.njcn.supervision.mapper.device.LineWarningMapper;
|
|
|
|
|
import com.njcn.supervision.pojo.param.device.OnlineParam;
|
|
|
|
|
import com.njcn.supervision.pojo.po.device.LineWarning;
|
|
|
|
|
@@ -31,15 +36,18 @@ import com.njcn.system.api.DicDataFeignClient;
|
|
|
|
|
import com.njcn.system.enums.DicDataEnum;
|
|
|
|
|
import com.njcn.system.enums.DicDataTypeEnum;
|
|
|
|
|
import com.njcn.system.pojo.po.DictData;
|
|
|
|
|
import com.njcn.user.api.DeptFeignClient;
|
|
|
|
|
import com.njcn.web.factory.PageFactory;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.lang.reflect.Method;
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
|
import java.time.temporal.TemporalAdjusters;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.function.Function;
|
|
|
|
|
@@ -63,6 +71,8 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|
|
|
|
private final IWarningLeafletService warningLeafletService;
|
|
|
|
|
private final DeptLineFeignClient deptLineFeignClient;
|
|
|
|
|
private final LineFeignClient lineFeignClient;
|
|
|
|
|
private final FileStorageUtil fileStorageUtil;
|
|
|
|
|
private final DeptFeignClient deptFeignClient;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
@@ -98,25 +108,21 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|
|
|
|
//4.发过告警单,则重新生成一条数据
|
|
|
|
|
RStatLimitTargetDPO dpo = limitMap.get(item.getLineId());
|
|
|
|
|
//频率偏差
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.FREQUENCY_DEV.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.PLPC_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
//电压偏差
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.VOLTAGE_DEV.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.DYPC_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
//长时闪变
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.FLICKER.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.CSSB_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
//谐波电压
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.HARMONIC_VOLTAGE.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.XBDY_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
//谐波电流
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.HARMONIC_CURRENT.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.XBDL_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
//间谐波电压
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.INTERHARMONIC_VOLTAGE.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.JXBDY_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
//负序电压不平衡度
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.phase_Voltage.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.SXDYBPHD_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
//负序电流
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.NEG_CURRENT.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
//电压总谐波畸变率
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.THD_V.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
//总稳态指标
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.TOTAL_INDICATOR.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
targetInfo(lineWarnings,targetMap,DicDataEnum.FXDL_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.saveBatch(addList);
|
|
|
|
|
@@ -127,8 +133,8 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public void addHeBeiNorthLineWarning() {
|
|
|
|
|
List<LineWarning> result = new ArrayList<>();
|
|
|
|
|
//获取指标集合(10个指标,包含总指标)
|
|
|
|
|
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
|
|
|
|
//获取指标集合(8个指标,包含总指标)
|
|
|
|
|
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDICATOR_TYPE.getCode()).getData();
|
|
|
|
|
Map<String, DictData> targetMap = dataList.stream().collect(Collectors.toMap(DictData::getCode, Function.identity()));
|
|
|
|
|
//获取监测点和部门表关系
|
|
|
|
|
List<DeptLine> deptLines = deptLineFeignClient.getAllData().getData();
|
|
|
|
|
@@ -144,26 +150,22 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|
|
|
|
limitTarget.forEach(item->{
|
|
|
|
|
String deptId = Objects.isNull(deptLineMap.get(item.getLineId()))?null:deptLineMap.get(item.getLineId()).get(0).getId();
|
|
|
|
|
//频率偏差
|
|
|
|
|
LineWarning l1 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.FREQUENCY_DEV.getCode()).getId(),item.getFreqDevOvertime());
|
|
|
|
|
LineWarning l1 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.PLPC_ENUM.getCode()).getId(),item.getFreqDevOvertime());
|
|
|
|
|
//电压偏差
|
|
|
|
|
LineWarning l2 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.VOLTAGE_DEV.getCode()).getId(),item.getVoltageDevOvertime());
|
|
|
|
|
LineWarning l2 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.DYPC_ENUM.getCode()).getId(),item.getVoltageDevOvertime());
|
|
|
|
|
//长时闪变
|
|
|
|
|
LineWarning l3 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.FLICKER.getCode()).getId(),item.getFlickerOvertime());
|
|
|
|
|
LineWarning l3 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.CSSB_ENUM.getCode()).getId(),item.getFlickerOvertime());
|
|
|
|
|
//谐波电压
|
|
|
|
|
LineWarning l4 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.HARMONIC_VOLTAGE.getCode()).getId(),item.getUharmOvertime());
|
|
|
|
|
LineWarning l4 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.XBDY_ENUM.getCode()).getId(),item.getUharmOvertime());
|
|
|
|
|
//谐波电流
|
|
|
|
|
LineWarning l5 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.HARMONIC_CURRENT.getCode()).getId(),item.getIharmOvertime());
|
|
|
|
|
LineWarning l5 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.XBDL_ENUM.getCode()).getId(),item.getIharmOvertime());
|
|
|
|
|
//间谐波电压
|
|
|
|
|
LineWarning l6 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.INTERHARMONIC_VOLTAGE.getCode()).getId(),item.getInuharmOvertime());
|
|
|
|
|
LineWarning l6 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.JXBDY_ENUM.getCode()).getId(),item.getInuharmOvertime());
|
|
|
|
|
//负序电压不平衡度
|
|
|
|
|
LineWarning l7 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.PHASE_VOLTAGE.getCode()).getId(),item.getUbalanceOvertime());
|
|
|
|
|
LineWarning l7 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.SXDYBPHD_ENUM.getCode()).getId(),item.getUbalanceOvertime());
|
|
|
|
|
//负序电流
|
|
|
|
|
LineWarning l8 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.NEG_CURRENT.getCode()).getId(),item.getINegOvertime());
|
|
|
|
|
//电压总谐波畸变率
|
|
|
|
|
LineWarning l9 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.THD_V.getCode()).getId(),item.getUaberranceOvertime());
|
|
|
|
|
//总稳态指标
|
|
|
|
|
LineWarning l10 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.TOTAL_INDICATOR.getCode()).getId(),item.getAllOvertime());
|
|
|
|
|
result.addAll(Arrays.asList(l1,l2,l3,l4,l5,l6,l7,l8,l9,l10));
|
|
|
|
|
LineWarning l8 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.FXDL_ENUM.getCode()).getId(),item.getINegOvertime());
|
|
|
|
|
result.addAll(Arrays.asList(l1,l2,l3,l4,l5,l6,l7,l8));
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
//将装置无数据的统计入库 按运维要求,判断装置的最新数据不是当天,则认为装置无数据
|
|
|
|
|
@@ -197,16 +199,16 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
QueryWrapper<LineWarning> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
queryWrapper.between("A.alarm_time", param.getSearchBeginTime(),param.getSearchEndTime());
|
|
|
|
|
if (CollUtil.isNotEmpty(lineList)) {
|
|
|
|
|
queryWrapper.in("A.line_id",lineList);
|
|
|
|
|
}
|
|
|
|
|
//查询无数据的监测点
|
|
|
|
|
if (Objects.equals(param.getDataType(),0)){
|
|
|
|
|
queryWrapper.eq("A.target_type", "0");
|
|
|
|
|
}
|
|
|
|
|
//查询指标超标的监测点
|
|
|
|
|
else {
|
|
|
|
|
queryWrapper.ge("A.over_limit_day", param.getAlertThreshold());
|
|
|
|
|
if (CollUtil.isNotEmpty(lineList)) {
|
|
|
|
|
queryWrapper.in("A.line_id",lineList);
|
|
|
|
|
}
|
|
|
|
|
queryWrapper.ge("A.over_limit_day", param.getAlarmThreshold());
|
|
|
|
|
if (CollUtil.isNotEmpty(param.getTargetList())) {
|
|
|
|
|
queryWrapper.in("A.target_type", param.getTargetList());
|
|
|
|
|
}
|
|
|
|
|
@@ -217,19 +219,89 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public void startReport(OnlineParam.ReportParam param,HttpServletResponse response) {
|
|
|
|
|
public void startReport(OnlineParam.ReportParam param) {
|
|
|
|
|
List<LineWarning> allLineWarnings = new ArrayList<>();
|
|
|
|
|
//获取部门名称
|
|
|
|
|
String deptName = deptFeignClient.getDeptById(param.getDeptId()).getData().getName();
|
|
|
|
|
param.setDeptName(deptName);
|
|
|
|
|
WordUtil2 wordUtil2 = new WordUtil2();
|
|
|
|
|
String inputUrl = "file/warningReport.docx";
|
|
|
|
|
String fileName = "电能[告]"+param.getYear()+"年"+param.getNumber()+"号-"+param.getDeptName()+"地市 电能质量技术监督告警单.docx";
|
|
|
|
|
//获取无数据监测点集合
|
|
|
|
|
List<ReportLineInfoVo> list1 = getReportLineInfo(true,param.getIdList(),null,param.getSearchBeginTime(),param.getSearchEndTime(),param.getDeptId());
|
|
|
|
|
List<ReportLineInfoVo> list1 = getReportLineInfo(true,param.getIdList(),null,param.getSearchBeginTime(),param.getSearchEndTime(),param.getDeptId(),allLineWarnings);
|
|
|
|
|
//获取谐波电压超标监测点集合
|
|
|
|
|
String vCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.HARMONIC_VOLTAGE.getCode()).getData().getId();
|
|
|
|
|
List<ReportLineInfoVo> list2 = getReportLineInfo(false,param.getIdList(),vCode,param.getSearchBeginTime(),param.getSearchEndTime(),null);
|
|
|
|
|
String vCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.XBDY_ENUM.getCode()).getData().getId();
|
|
|
|
|
List<ReportLineInfoVo> list2 = getReportLineInfo(false,param.getIdList(),vCode,param.getSearchBeginTime(),param.getSearchEndTime(),null,allLineWarnings);
|
|
|
|
|
//获取谐波电流超标监测点集合
|
|
|
|
|
String iCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.HARMONIC_CURRENT.getCode()).getData().getId();
|
|
|
|
|
List<ReportLineInfoVo> list3 = getReportLineInfo(false,param.getIdList(),iCode,param.getSearchBeginTime(),param.getSearchEndTime(),null);
|
|
|
|
|
String iCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.XBDL_ENUM.getCode()).getData().getId();
|
|
|
|
|
List<ReportLineInfoVo> list3 = getReportLineInfo(false,param.getIdList(),iCode,param.getSearchBeginTime(),param.getSearchEndTime(),null,allLineWarnings);
|
|
|
|
|
try {
|
|
|
|
|
Map<String, Object> dataMap = new HashMap<String, Object>();
|
|
|
|
|
dataMap.put("${year}", param.getYear());
|
|
|
|
|
dataMap.put("${number}", param.getNumber());
|
|
|
|
|
dataMap.put("${deptName}", param.getDeptName());
|
|
|
|
|
dataMap.put("${startTime}", new SimpleDateFormat(DatePattern.CHINESE_DATE_PATTERN).format(new SimpleDateFormat(DatePattern.NORM_DATE_PATTERN).parse(param.getSearchBeginTime())));
|
|
|
|
|
dataMap.put("${endTime}", new SimpleDateFormat(DatePattern.CHINESE_DATE_PATTERN).format(new SimpleDateFormat(DatePattern.NORM_DATE_PATTERN).parse(param.getSearchEndTime())));
|
|
|
|
|
dataMap.put("${noData}", CollUtil.isEmpty(list1)?"0":String.valueOf(list1.size()));
|
|
|
|
|
dataMap.put("${harmonicV}", CollUtil.isEmpty(list2)?"0":String.valueOf(list2.size()));
|
|
|
|
|
dataMap.put("${harmonicI}", CollUtil.isEmpty(list3)?"0":String.valueOf(list3.size()));
|
|
|
|
|
dataMap.put("${alarmDay}", String.valueOf(param.getAlarmThreshold()));
|
|
|
|
|
|
|
|
|
|
List<String[]> dataList1 = new ArrayList<String[]>(),dataList2 = new ArrayList<String[]>(),dataList3 = new ArrayList<String[]>();
|
|
|
|
|
if (CollUtil.isNotEmpty(list1)) {
|
|
|
|
|
list1.forEach(item->{
|
|
|
|
|
dataList1.add(new String[]{deptName,item.getLineVoltage(),item.getLineName(),item.getSubName(),item.getObjName(),item.getSubVName(),item.getUpdateTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)),item.getIp()});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
if (CollUtil.isNotEmpty(list2)) {
|
|
|
|
|
list2.forEach(item->{
|
|
|
|
|
dataList2.add(new String[]{deptName,item.getLineName(),item.getSubName(),item.getObjName(),String.valueOf(item.getOverDays())});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
if (CollUtil.isNotEmpty(list3)) {
|
|
|
|
|
list3.forEach(item->{
|
|
|
|
|
dataList3.add(new String[]{deptName,item.getLineName(),item.getSubName(),item.getObjName(),String.valueOf(item.getOverDays()),String.valueOf(item.getShortCapacity()),String.valueOf(item.getDevCapacity()),String.valueOf(item.getDealCapacity())});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
List<List<String[]>> tableList = Arrays.asList(dataList1,dataList2,dataList3);
|
|
|
|
|
InputStream inputStream = wordUtil2.getReportFile(inputUrl,dataMap,tableList);
|
|
|
|
|
//上传文件服务器
|
|
|
|
|
String path = fileStorageUtil.uploadStreamSpecifyName(inputStream, OssPath.ONLINE_REPORT, fileName);
|
|
|
|
|
//1.生成预告警单数据
|
|
|
|
|
String leafletId = warningLeafletService.createLeaflet(
|
|
|
|
|
ProblemTypeEnum.ONLINE.getName()
|
|
|
|
|
,param.getDeptId()
|
|
|
|
|
,IdWorker.get32UUID()
|
|
|
|
|
,null
|
|
|
|
|
,ProblemTypeEnum.ONLINE.getCode()
|
|
|
|
|
,param.getType()
|
|
|
|
|
,param.getIssueDetail()
|
|
|
|
|
,param.getReformAdvice()
|
|
|
|
|
,path);
|
|
|
|
|
//2.将选择的数据状态改成预警或者告警 && 将选择的数据添加预告警单id
|
|
|
|
|
if (CollUtil.isNotEmpty(allLineWarnings)) {
|
|
|
|
|
LambdaQueryWrapper<LineWarning> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
lambdaQueryWrapper.in(LineWarning::getId,param.getIdList())
|
|
|
|
|
.notIn(LineWarning::getTargetType,Arrays.asList(vCode,iCode))
|
|
|
|
|
.between(LineWarning::getAlarmTime,param.getSearchBeginTime(),param.getSearchEndTime());
|
|
|
|
|
allLineWarnings.addAll(this.baseMapper.selectList(lambdaQueryWrapper));
|
|
|
|
|
allLineWarnings.forEach(item->{
|
|
|
|
|
item.setStep(param.getType());
|
|
|
|
|
item.setInitiateWarningFlag(1);
|
|
|
|
|
if (!Objects.equals(item.getTargetType(),"0")) {
|
|
|
|
|
item.setAlertThreshold(param.getAlertThreshold());
|
|
|
|
|
item.setAlarmThreshold(param.getAlarmThreshold());
|
|
|
|
|
}
|
|
|
|
|
item.setLeafletId(leafletId);
|
|
|
|
|
});
|
|
|
|
|
this.updateBatchByMultiId(allLineWarnings);
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<ReportLineInfoVo> getReportLineInfo(boolean type, List<String> idList, String codeId, String startTime, String endTime, String deptId) {
|
|
|
|
|
public List<ReportLineInfoVo> getReportLineInfo(boolean type, List<String> idList, String codeId, String startTime, String endTime, String deptId,List<LineWarning> allLineWarnings) {
|
|
|
|
|
List<ReportLineInfoVo> list = new ArrayList<>();
|
|
|
|
|
LambdaQueryWrapper<LineWarning> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
if (type) {
|
|
|
|
|
@@ -243,6 +315,7 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|
|
|
|
}
|
|
|
|
|
List<LineWarning> warnings = this.baseMapper.selectList(lambdaQueryWrapper);
|
|
|
|
|
if (CollUtil.isNotEmpty(warnings)) {
|
|
|
|
|
allLineWarnings.addAll(warnings);
|
|
|
|
|
List<String> lineList = warnings.stream().map(LineWarning::getLineId).collect(Collectors.toList());
|
|
|
|
|
list = lineFeignClient.getReportLineInfo(lineList).getData();
|
|
|
|
|
if (!type){
|
|
|
|
|
@@ -292,19 +365,19 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|
|
|
|
int result = 0;
|
|
|
|
|
try {
|
|
|
|
|
//频率偏差
|
|
|
|
|
if (Objects.equals(code,DicDataEnum.FREQUENCY_DEV.getCode())) {
|
|
|
|
|
if (Objects.equals(code,DicDataEnum.PLPC_ENUM.getCode())) {
|
|
|
|
|
result = limitTarget.getFreqDevOvertime();
|
|
|
|
|
}
|
|
|
|
|
//电压偏差
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.VOLTAGE_DEV.getCode())) {
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.DYPC_ENUM.getCode())) {
|
|
|
|
|
result = limitTarget.getVoltageDevOvertime();
|
|
|
|
|
}
|
|
|
|
|
//长时闪变
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.FLICKER.getCode())) {
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.CSSB_ENUM.getCode())) {
|
|
|
|
|
result = limitTarget.getFlickerOvertime();
|
|
|
|
|
}
|
|
|
|
|
//谐波电压
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.HARMONIC_VOLTAGE.getCode())) {
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.XBDY_ENUM.getCode())) {
|
|
|
|
|
int sum = 0;
|
|
|
|
|
Class<?> clazz = limitTarget.getClass();
|
|
|
|
|
for (int i = 2; i <= 25; i++) {
|
|
|
|
|
@@ -316,7 +389,7 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|
|
|
|
result = limitTarget.getUaberranceOvertime() + sum;
|
|
|
|
|
}
|
|
|
|
|
//谐波电流
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.HARMONIC_CURRENT.getCode())) {
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.XBDL_ENUM.getCode())) {
|
|
|
|
|
int sum = 0;
|
|
|
|
|
Class<?> clazz = limitTarget.getClass();
|
|
|
|
|
for (int i = 2; i <= 25; i++) {
|
|
|
|
|
@@ -328,7 +401,7 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|
|
|
|
result = sum;
|
|
|
|
|
}
|
|
|
|
|
//间谐波电压
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.INTERHARMONIC_VOLTAGE.getCode())) {
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.JXBDY_ENUM.getCode())) {
|
|
|
|
|
int sum = 0;
|
|
|
|
|
Class<?> clazz = limitTarget.getClass();
|
|
|
|
|
for (int i = 1; i <= 16; i++) {
|
|
|
|
|
@@ -340,48 +413,13 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|
|
|
|
result = sum;
|
|
|
|
|
}
|
|
|
|
|
//负序电压不平衡度
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.PHASE_VOLTAGE.getCode())) {
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.SXDYBPHD_ENUM.getCode())) {
|
|
|
|
|
result = limitTarget.getUbalanceOvertime();
|
|
|
|
|
}
|
|
|
|
|
//负序电流
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.NEG_CURRENT.getCode())) {
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.FXDL_ENUM.getCode())) {
|
|
|
|
|
result = limitTarget.getINegOvertime();
|
|
|
|
|
}
|
|
|
|
|
//电压总谐波畸变率
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.THD_V.getCode())) {
|
|
|
|
|
result = limitTarget.getUaberranceOvertime();
|
|
|
|
|
}
|
|
|
|
|
//总稳态指标
|
|
|
|
|
else if (Objects.equals(code,DicDataEnum.TOTAL_INDICATOR.getCode())) {
|
|
|
|
|
int sum1 = 0,sum2 = 0,sum3 = 0;
|
|
|
|
|
Class<?> clazz = limitTarget.getClass();
|
|
|
|
|
for (int i = 2; i <= 25; i++) {
|
|
|
|
|
String methodName1 = "getUharm" + i + "Overtime";
|
|
|
|
|
Method method1 = clazz.getMethod(methodName1);
|
|
|
|
|
int value1 = (int) method1.invoke(limitTarget);
|
|
|
|
|
sum1 += value1;
|
|
|
|
|
|
|
|
|
|
String methodName2 = "getIharm" + i + "Overtime";
|
|
|
|
|
Method method2 = clazz.getMethod(methodName2);
|
|
|
|
|
int value2 = (int) method2.invoke(limitTarget);
|
|
|
|
|
sum2 += value2;
|
|
|
|
|
}
|
|
|
|
|
for (int i = 1; i <= 16; i++) {
|
|
|
|
|
String methodName = "getInuharm" + i + "Overtime";
|
|
|
|
|
Method method = clazz.getMethod(methodName);
|
|
|
|
|
int value = (int) method.invoke(limitTarget);
|
|
|
|
|
sum3 += value;
|
|
|
|
|
}
|
|
|
|
|
result = limitTarget.getFreqDevOvertime()
|
|
|
|
|
+ limitTarget.getVoltageDevOvertime()
|
|
|
|
|
+ limitTarget.getFlickerOvertime()
|
|
|
|
|
+ sum1
|
|
|
|
|
+ sum2
|
|
|
|
|
+ sum3
|
|
|
|
|
+ limitTarget.getUbalanceOvertime()
|
|
|
|
|
+ limitTarget.getINegOvertime()
|
|
|
|
|
+ limitTarget.getUaberranceOvertime();
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|