fix(data-task): 修复数据任务中的越限标签计算和报警处理逻辑
- 修复了buildOverlimitTag方法名拼写错误,统一为buildOverLimitTag - 添加了lineInterval参数用于越限次数到分钟数的转换计算 - 将越限次数乘以统计间隔并限制最大值为1440分钟 - 优化了CsAlarmServiceImpl中的在线率和完整性异常判断逻辑 - 重构了报警VO的数据流处理方式 - 更新了CsHarmonicServiceImpl中的枚举映射配置 - 调整了设备消息接口的参数注解配置 - 清理了无用的Jackson依赖导入 - 移除了废弃的通信离线时段计算代码
This commit is contained in:
@@ -36,6 +36,6 @@ public interface DeviceMessageFeignClient {
|
|||||||
|
|
||||||
@PostMapping("/getLineInfo")
|
@PostMapping("/getLineInfo")
|
||||||
@ApiOperation("获取监测点信息")
|
@ApiOperation("获取监测点信息")
|
||||||
HttpResult<String> getLineInfo(@RequestParam("id") String id, @RequestParam("list") List<CsLinePO> list);
|
HttpResult<String> getLineInfo(@RequestParam("id") String id, @RequestParam(value = "list", required = false) List<CsLinePO> list);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,12 +64,11 @@ public class DeviceMessageController extends BaseController {
|
|||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/getLineInfo")
|
@PostMapping("/getLineInfo")
|
||||||
@ApiOperation("获取监测点信息")
|
@ApiOperation("获取监测点信息")
|
||||||
@ApiImplicitParam(name = "id", value = "参数", required = true, paramType = "query")
|
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "id", value = "参数", paramType = "query"),
|
@ApiImplicitParam(name = "id", value = "参数", paramType = "query"),
|
||||||
@ApiImplicitParam(name = "list", value = "监测点id集合", paramType = "query")
|
@ApiImplicitParam(name = "list", value = "监测点id集合", paramType = "query",required = false)
|
||||||
})
|
})
|
||||||
public HttpResult<String> getLineInfo(@RequestParam("id") String id, @RequestParam("list") List<CsLinePO> list){
|
public HttpResult<String> getLineInfo(@RequestParam(value = "id") String id, @RequestParam(value = "list",required = false) List<CsLinePO> list){
|
||||||
String methodDescribe = getMethodDescribe("getLineInfo");
|
String methodDescribe = getMethodDescribe("getLineInfo");
|
||||||
deviceMessageService.getLineInfo(id,list);
|
deviceMessageService.getLineInfo(id,list);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "success", methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "success", methodDescribe);
|
||||||
|
|||||||
@@ -103,8 +103,7 @@ public class CsAlarmServiceImpl extends ServiceImpl<CsAlarmMapper, CsAlarm> impl
|
|||||||
List<CsEventUserPO> userEvents = csEventUserPOService.queryEventListByUserId(RequestUtil.getUserIndex(), list.stream().map(CsAlarm::getId).collect(Collectors.toList()));
|
List<CsEventUserPO> userEvents = csEventUserPOService.queryEventListByUserId(RequestUtil.getUserIndex(), list.stream().map(CsAlarm::getId).collect(Collectors.toList()));
|
||||||
|
|
||||||
List<String> finalDevList = devList;
|
List<String> finalDevList = devList;
|
||||||
List<AlarmVO> result = list.stream()
|
List<AlarmVO> result = list.stream().map(alarm -> {
|
||||||
.map(alarm -> {
|
|
||||||
AlarmVO alarmVO = new AlarmVO();
|
AlarmVO alarmVO = new AlarmVO();
|
||||||
alarmVO.setEventId(alarm.getId());
|
alarmVO.setEventId(alarm.getId());
|
||||||
alarmVO.setDate(alarm.getTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
alarmVO.setDate(alarm.getTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
||||||
@@ -137,12 +136,21 @@ public class CsAlarmServiceImpl extends ServiceImpl<CsAlarmMapper, CsAlarm> impl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<CsAlarmData.OnlineRateAlarm> list1 = new ArrayList<>();
|
||||||
|
List<CsAlarmData.IntegrityAlarm.MonitorPointIntegrity> list2 = new ArrayList<>();
|
||||||
//根据resultList 来查询在线率和完整是否有true的,如果有就设置alarmVO的属性
|
//根据resultList 来查询在线率和完整是否有true的,如果有就设置alarmVO的属性
|
||||||
resultList.forEach(item->{
|
resultList.forEach(item->{
|
||||||
alarmVO.setOnlineRateIsWarn(item.getOnlineRate().getIsAbnormal());
|
list1.add(item.getOnlineRate());
|
||||||
boolean hasAbnormal = item.getIntegrity().getMonitorPoints().stream()
|
list2.addAll(item.getIntegrity().getMonitorPoints());
|
||||||
|
// 判断 onlineRate 是否有异常
|
||||||
|
boolean hasOnlineRateAbnormal = list1.stream()
|
||||||
|
.anyMatch(CsAlarmData.OnlineRateAlarm::getIsAbnormal);
|
||||||
|
// 判断 monitorPoints 是否有异常
|
||||||
|
boolean hasMonitorPointAbnormal = list2.stream()
|
||||||
.anyMatch(CsAlarmData.IntegrityAlarm.MonitorPointIntegrity::getIsAbnormal);
|
.anyMatch(CsAlarmData.IntegrityAlarm.MonitorPointIntegrity::getIsAbnormal);
|
||||||
alarmVO.setIntegrityIsWarn(hasAbnormal);
|
alarmVO.setOnlineRateIsWarn(hasOnlineRateAbnormal);
|
||||||
|
alarmVO.setIntegrityIsWarn(hasMonitorPointAbnormal);
|
||||||
});
|
});
|
||||||
alarmVO.setWarnCounts(warnCounts);
|
alarmVO.setWarnCounts(warnCounts);
|
||||||
return alarmVO;
|
return alarmVO;
|
||||||
|
|||||||
@@ -52,6 +52,10 @@ public class CsHarmonicServiceImpl extends ServiceImpl<CsHarmonicMapper, CsHarmo
|
|||||||
put("min", "最小值");
|
put("min", "最小值");
|
||||||
put("avg", "平均值");
|
put("avg", "平均值");
|
||||||
put("cp95", "95%概率值");
|
put("cp95", "95%概率值");
|
||||||
|
put("MAX", "最大值");
|
||||||
|
put("MIN", "最小值");
|
||||||
|
put("AVG", "平均值");
|
||||||
|
put("CP95", "95%概率值");
|
||||||
}};
|
}};
|
||||||
|
|
||||||
private final CsLedgerFeignClient csLedgerFeignClient;
|
private final CsLedgerFeignClient csLedgerFeignClient;
|
||||||
@@ -275,7 +279,7 @@ public class CsHarmonicServiceImpl extends ServiceImpl<CsHarmonicMapper, CsHarmo
|
|||||||
|
|
||||||
|
|
||||||
public List<HarmonicDetailVO.HarmDetail> AnalyzeData(String jsonString) {
|
public List<HarmonicDetailVO.HarmDetail> AnalyzeData(String jsonString) {
|
||||||
List<HarmonicDetailVO.HarmDetail> result = new ArrayList<>();
|
List<HarmonicDetailVO.HarmDetail> result;
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
List<PhaseData> phaseDataList = null;
|
List<PhaseData> phaseDataList = null;
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -8,8 +8,6 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import cn.hutool.core.util.ReflectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
import com.njcn.access.pojo.dto.NoticeUserDto;
|
import com.njcn.access.pojo.dto.NoticeUserDto;
|
||||||
import com.njcn.access.utils.SendMessageUtil;
|
import com.njcn.access.utils.SendMessageUtil;
|
||||||
import com.njcn.csdevice.api.*;
|
import com.njcn.csdevice.api.*;
|
||||||
@@ -134,6 +132,13 @@ public class DataTaskServiceImpl implements IDataTaskService {
|
|||||||
RStatLimitQueryParam rStatLimitQueryParam = RStatLimitQueryParam.builder().ids(lineList).date(date).endDate(date).build();
|
RStatLimitQueryParam rStatLimitQueryParam = RStatLimitQueryParam.builder().ids(lineList).date(date).endDate(date).build();
|
||||||
List<RStatLimitRateDPO> limitRates = rStatLimitRateDClient.monitorIdsGetLimitRateInfo(rStatLimitQueryParam).getData();
|
List<RStatLimitRateDPO> limitRates = rStatLimitRateDClient.monitorIdsGetLimitRateInfo(rStatLimitQueryParam).getData();
|
||||||
|
|
||||||
|
//获取监测点信息
|
||||||
|
Map<String, CsLineDTO> lineMap;
|
||||||
|
if (CollUtil.isNotEmpty(allLine)) {
|
||||||
|
lineMap = allLine.stream().collect(Collectors.toMap(CsLineDTO::getLineId, item -> item));
|
||||||
|
} else {
|
||||||
|
lineMap = Collections.emptyMap();
|
||||||
|
}
|
||||||
if (CollUtil.isNotEmpty(limitRates)) {
|
if (CollUtil.isNotEmpty(limitRates)) {
|
||||||
limitRates.forEach(item->{
|
limitRates.forEach(item->{
|
||||||
//新增cs_harmonic数据
|
//新增cs_harmonic数据
|
||||||
@@ -142,9 +147,14 @@ public class DataTaskServiceImpl implements IDataTaskService {
|
|||||||
csharmonic.setId(id);
|
csharmonic.setId(id);
|
||||||
csharmonic.setLineId(item.getLineId());
|
csharmonic.setLineId(item.getLineId());
|
||||||
csharmonic.setTime(LocalDate.parse(date));
|
csharmonic.setTime(LocalDate.parse(date));
|
||||||
String tag = buildOverlimitTag(item);
|
//统计间隔
|
||||||
|
Integer lineInterval = 1;
|
||||||
|
if (!Objects.isNull(lineMap.get(item.getLineId())) && lineMap.get(item.getLineId()).getLineInterval() != 0) {
|
||||||
|
lineInterval = lineMap.get(item.getLineId()).getLineInterval();
|
||||||
|
}
|
||||||
|
String tag = buildOverLimitTag(item,lineInterval);
|
||||||
if (StringUtils.isNotBlank(tag)) {
|
if (StringUtils.isNotBlank(tag)) {
|
||||||
csharmonic.setTag(buildOverlimitTag(item));
|
csharmonic.setTag(buildOverLimitTag(item,lineInterval));
|
||||||
list1.add(csharmonic);
|
list1.add(csharmonic);
|
||||||
|
|
||||||
//根据监测点id获取设备
|
//根据监测点id获取设备
|
||||||
@@ -787,64 +797,6 @@ public class DataTaskServiceImpl implements IDataTaskService {
|
|||||||
// 按设备 ID 分组
|
// 按设备 ID 分组
|
||||||
Map<String, List<PqsCommunicate>> deviceCommMap = pqsCommunicates.stream()
|
Map<String, List<PqsCommunicate>> deviceCommMap = pqsCommunicates.stream()
|
||||||
.collect(Collectors.groupingBy(PqsCommunicate::getDevId));
|
.collect(Collectors.groupingBy(PqsCommunicate::getDevId));
|
||||||
|
|
||||||
// deviceCommMap.forEach((devId, commList) -> {
|
|
||||||
// // 按时间排序
|
|
||||||
// commList.sort(Comparator.comparing(PqsCommunicate::getTime));
|
|
||||||
//
|
|
||||||
// List<String> offlinePeriods = new ArrayList<>();
|
|
||||||
// String offlineStartTime = null;
|
|
||||||
// String offlineEndTime = null;
|
|
||||||
//
|
|
||||||
// if (commList.size() == 1) {
|
|
||||||
// // 只有一条数据的情况
|
|
||||||
// PqsCommunicate singleRecord = commList.get(0);
|
|
||||||
// if (singleRecord.getType() == 0) {
|
|
||||||
// // 掉线:从掉线时间到 24 点
|
|
||||||
// offlineStartTime = DATE_TIME_FORMATTER.format(singleRecord.getTime());
|
|
||||||
// offlineEndTime = DATE_TIME_FORMATTER.format(singleRecord.getTime()).substring(0, 10) + " 23:59:59";
|
|
||||||
// } else {
|
|
||||||
// // 上线:从 0 点到上线时间
|
|
||||||
// offlineStartTime = DATE_TIME_FORMATTER.format(singleRecord.getTime()).substring(0, 10) + " 00:00:00";
|
|
||||||
// offlineEndTime = DATE_TIME_FORMATTER.format(singleRecord.getTime());
|
|
||||||
// }
|
|
||||||
// offlinePeriods.add(offlineStartTime + " ~ " + offlineEndTime);
|
|
||||||
// } else {
|
|
||||||
// // 多条数据的情况
|
|
||||||
// for (int i = 0; i < commList.size(); i++) {
|
|
||||||
// PqsCommunicate current = commList.get(i);
|
|
||||||
//
|
|
||||||
// if (current.getType() == 0) {
|
|
||||||
// // 掉线记录
|
|
||||||
// if (offlineStartTime == null) {
|
|
||||||
// offlineStartTime = DATE_TIME_FORMATTER.format(current.getTime());
|
|
||||||
// }
|
|
||||||
// // 如果是最后一条记录,结束时间为 24 点
|
|
||||||
// if (i == commList.size() - 1) {
|
|
||||||
// offlineEndTime = DATE_TIME_FORMATTER.format(current.getTime()).substring(0, 10) + " 23:59:59";
|
|
||||||
// offlinePeriods.add(offlineStartTime + " ~ " + offlineEndTime);
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// // 上线记录
|
|
||||||
// if (offlineStartTime != null) {
|
|
||||||
// // 有对应的掉线记录,形成完整时间段
|
|
||||||
// offlineEndTime = DATE_TIME_FORMATTER.format(current.getTime());
|
|
||||||
// offlinePeriods.add(offlineStartTime + " ~ " + offlineEndTime);
|
|
||||||
// offlineStartTime = null;
|
|
||||||
// offlineEndTime = null;
|
|
||||||
// } else {
|
|
||||||
// // 没有对应的掉线记录,说明是从 0 点开始掉线
|
|
||||||
// offlineStartTime = DATE_TIME_FORMATTER.format(current.getTime()).substring(0, 10) + " 00:00:00";
|
|
||||||
// offlineEndTime = DATE_TIME_FORMATTER.format(current.getTime());;
|
|
||||||
// offlinePeriods.add(offlineStartTime + " ~ " + offlineEndTime);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if (CollUtil.isNotEmpty(offlinePeriods)) {
|
|
||||||
// result.put(devId, offlinePeriods);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
deviceCommMap.forEach((devId, commList) -> {
|
deviceCommMap.forEach((devId, commList) -> {
|
||||||
// 按时间排序
|
// 按时间排序
|
||||||
commList.sort(Comparator.comparing(PqsCommunicate::getTime));
|
commList.sort(Comparator.comparing(PqsCommunicate::getTime));
|
||||||
@@ -927,7 +879,7 @@ public class DataTaskServiceImpl implements IDataTaskService {
|
|||||||
* @param item 越限统计数据
|
* @param item 越限统计数据
|
||||||
* @return 越限标签
|
* @return 越限标签
|
||||||
*/
|
*/
|
||||||
private String buildOverlimitTag(RStatLimitRateDPO item) {
|
private String buildOverLimitTag(RStatLimitRateDPO item, Integer lineInterval) {
|
||||||
StringBuilder tagBuilder = new StringBuilder();
|
StringBuilder tagBuilder = new StringBuilder();
|
||||||
|
|
||||||
String planId = csHarmonicPlanLineFeignClient.getPlanIdByLineId(item.getLineId()).getData();
|
String planId = csHarmonicPlanLineFeignClient.getPlanIdByLineId(item.getLineId()).getData();
|
||||||
@@ -946,32 +898,32 @@ public class DataTaskServiceImpl implements IDataTaskService {
|
|||||||
if (targetSet != null) {
|
if (targetSet != null) {
|
||||||
Integer freqDevOvertime = item.getFreqDevOvertime();
|
Integer freqDevOvertime = item.getFreqDevOvertime();
|
||||||
if (freqDevOvertime != null && freqDevOvertime > 0 && targetSet.contains("频率偏差")) {
|
if (freqDevOvertime != null && freqDevOvertime > 0 && targetSet.contains("频率偏差")) {
|
||||||
tagBuilder.append("频率偏差越限").append(freqDevOvertime).append("次,");
|
tagBuilder.append("频率偏差越限").append(Math.min(freqDevOvertime * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer voltageDevOvertime = item.getVoltageDevOvertime();
|
Integer voltageDevOvertime = item.getVoltageDevOvertime();
|
||||||
if (voltageDevOvertime != null && voltageDevOvertime > 0 && targetSet.contains("电压偏差")) {
|
if (voltageDevOvertime != null && voltageDevOvertime > 0 && targetSet.contains("电压偏差")) {
|
||||||
tagBuilder.append("电压偏差越限").append(voltageDevOvertime).append("次,");
|
tagBuilder.append("电压偏差越限").append(Math.min(voltageDevOvertime * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer ubalanceOvertime = item.getUbalanceOvertime();
|
Integer ubalanceOvertime = item.getUbalanceOvertime();
|
||||||
if (ubalanceOvertime != null && ubalanceOvertime > 0 && targetSet.contains("三相电压不平衡度")) {
|
if (ubalanceOvertime != null && ubalanceOvertime > 0 && targetSet.contains("三相电压不平衡度")) {
|
||||||
tagBuilder.append("三相电压不平衡度越限").append(ubalanceOvertime).append("次,");
|
tagBuilder.append("三相电压不平衡度越限").append(Math.min(ubalanceOvertime * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer flickerOvertime = item.getFlickerOvertime();
|
Integer flickerOvertime = item.getFlickerOvertime();
|
||||||
if (flickerOvertime != null && flickerOvertime > 0 && targetSet.contains("闪变")) {
|
if (flickerOvertime != null && flickerOvertime > 0 && targetSet.contains("闪变")) {
|
||||||
tagBuilder.append("闪变越限").append(flickerOvertime).append("次,");
|
tagBuilder.append("闪变越限").append(Math.min(flickerOvertime * 120,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer uaberranceOvertime = item.getUaberranceOvertime();
|
Integer uaberranceOvertime = item.getUaberranceOvertime();
|
||||||
if (uaberranceOvertime != null && uaberranceOvertime > 0 && targetSet.contains("电压总谐波畸变率")) {
|
if (uaberranceOvertime != null && uaberranceOvertime > 0 && targetSet.contains("电压总谐波畸变率")) {
|
||||||
tagBuilder.append("电压总谐波畸变率越限").append(uaberranceOvertime).append("次,");
|
tagBuilder.append("电压总谐波畸变率越限").append(Math.min(uaberranceOvertime * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer iNegOvertime = item.getINegOvertime();
|
Integer iNegOvertime = item.getINegOvertime();
|
||||||
if (iNegOvertime != null && iNegOvertime > 0 && targetSet.contains("负序电流")) {
|
if (iNegOvertime != null && iNegOvertime > 0 && targetSet.contains("负序电流")) {
|
||||||
tagBuilder.append("负序电流越限").append(iNegOvertime).append("次,");
|
tagBuilder.append("负序电流越限").append(Math.min(iNegOvertime * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 2; i <= 25; i++) {
|
for (int i = 2; i <= 25; i++) {
|
||||||
@@ -980,7 +932,7 @@ public class DataTaskServiceImpl implements IDataTaskService {
|
|||||||
if (value != null && value > 0) {
|
if (value != null && value > 0) {
|
||||||
String targetName = i + "次谐波电压含有率";
|
String targetName = i + "次谐波电压含有率";
|
||||||
if (targetSet.contains(targetName)) {
|
if (targetSet.contains(targetName)) {
|
||||||
tagBuilder.append(i).append("次谐波电压含有率越限").append(value).append("次,");
|
tagBuilder.append(i).append("次谐波电压含有率越限").append(Math.min(value * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -991,7 +943,7 @@ public class DataTaskServiceImpl implements IDataTaskService {
|
|||||||
if (value != null && value > 0) {
|
if (value != null && value > 0) {
|
||||||
String targetName = i + "次谐波电流有效值";
|
String targetName = i + "次谐波电流有效值";
|
||||||
if (targetSet.contains(targetName)) {
|
if (targetSet.contains(targetName)) {
|
||||||
tagBuilder.append(i).append("次谐波电流有效值越限").append(value).append("次,");
|
tagBuilder.append(i).append("次谐波电流有效值越限").append(Math.min(value * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1003,52 +955,52 @@ public class DataTaskServiceImpl implements IDataTaskService {
|
|||||||
double harmonicOrder = i * 1.0 - 0.5;
|
double harmonicOrder = i * 1.0 - 0.5;
|
||||||
String targetName = harmonicOrder + "次间谐波电压含有率";
|
String targetName = harmonicOrder + "次间谐波电压含有率";
|
||||||
if (targetSet.contains(targetName)) {
|
if (targetSet.contains(targetName)) {
|
||||||
tagBuilder.append(harmonicOrder).append("次间谐波电压含有率越限").append(value).append("次,");
|
tagBuilder.append(harmonicOrder).append("次间谐波电压含有率越限").append(Math.min(value * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Integer freqDevOvertime = item.getFreqDevOvertime();
|
Integer freqDevOvertime = item.getFreqDevOvertime();
|
||||||
if (freqDevOvertime != null && freqDevOvertime > 0) {
|
if (freqDevOvertime != null && freqDevOvertime > 0) {
|
||||||
tagBuilder.append("频率偏差越限").append(freqDevOvertime).append("次,");
|
tagBuilder.append("频率偏差越限").append(Math.min(freqDevOvertime * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer voltageDevOvertime = item.getVoltageDevOvertime();
|
Integer voltageDevOvertime = item.getVoltageDevOvertime();
|
||||||
if (voltageDevOvertime != null && voltageDevOvertime > 0) {
|
if (voltageDevOvertime != null && voltageDevOvertime > 0) {
|
||||||
tagBuilder.append("电压偏差越限").append(voltageDevOvertime).append("次,");
|
tagBuilder.append("电压偏差越限").append(Math.min(voltageDevOvertime * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer ubalanceOvertime = item.getUbalanceOvertime();
|
Integer ubalanceOvertime = item.getUbalanceOvertime();
|
||||||
if (ubalanceOvertime != null && ubalanceOvertime > 0) {
|
if (ubalanceOvertime != null && ubalanceOvertime > 0) {
|
||||||
tagBuilder.append("三相电压不平衡度越限").append(ubalanceOvertime).append("次,");
|
tagBuilder.append("三相电压不平衡度越限").append(Math.min(ubalanceOvertime * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer flickerOvertime = item.getFlickerOvertime();
|
Integer flickerOvertime = item.getFlickerOvertime();
|
||||||
if (flickerOvertime != null && flickerOvertime > 0) {
|
if (flickerOvertime != null && flickerOvertime > 0) {
|
||||||
tagBuilder.append("闪变越限").append(flickerOvertime).append("次,");
|
tagBuilder.append("闪变越限").append(Math.min(flickerOvertime * 120,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer uaberranceOvertime = item.getUaberranceOvertime();
|
Integer uaberranceOvertime = item.getUaberranceOvertime();
|
||||||
if (uaberranceOvertime != null && uaberranceOvertime > 0) {
|
if (uaberranceOvertime != null && uaberranceOvertime > 0) {
|
||||||
tagBuilder.append("电压总谐波畸变率越限").append(uaberranceOvertime).append("次,");
|
tagBuilder.append("电压总谐波畸变率越限").append(Math.min(uaberranceOvertime * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer iNegOvertime = item.getINegOvertime();
|
Integer iNegOvertime = item.getINegOvertime();
|
||||||
if (iNegOvertime != null && iNegOvertime > 0) {
|
if (iNegOvertime != null && iNegOvertime > 0) {
|
||||||
tagBuilder.append("负序电流越限").append(iNegOvertime).append("次,");
|
tagBuilder.append("负序电流越限").append(Math.min(iNegOvertime * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
|
|
||||||
String harmonicVoltageTag = buildHarmonicVoltageTags(item, "");
|
String harmonicVoltageTag = buildHarmonicVoltageTags(item, "", lineInterval);
|
||||||
if (StrUtil.isNotBlank(harmonicVoltageTag)) {
|
if (StrUtil.isNotBlank(harmonicVoltageTag)) {
|
||||||
tagBuilder.append(harmonicVoltageTag);
|
tagBuilder.append(harmonicVoltageTag);
|
||||||
}
|
}
|
||||||
|
|
||||||
String harmonicCurrentTag = buildHarmonicCurrentTags(item, "");
|
String harmonicCurrentTag = buildHarmonicCurrentTags(item, "", lineInterval);
|
||||||
if (StrUtil.isNotBlank(harmonicCurrentTag)) {
|
if (StrUtil.isNotBlank(harmonicCurrentTag)) {
|
||||||
tagBuilder.append(harmonicCurrentTag);
|
tagBuilder.append(harmonicCurrentTag);
|
||||||
}
|
}
|
||||||
|
|
||||||
String interharmonicTag = buildInterharmonicVoltageTags(item, "");
|
String interharmonicTag = buildInterharmonicVoltageTags(item, "", lineInterval);
|
||||||
if (StrUtil.isNotBlank(interharmonicTag)) {
|
if (StrUtil.isNotBlank(interharmonicTag)) {
|
||||||
tagBuilder.append(interharmonicTag);
|
tagBuilder.append(interharmonicTag);
|
||||||
}
|
}
|
||||||
@@ -1057,124 +1009,6 @@ public class DataTaskServiceImpl implements IDataTaskService {
|
|||||||
return trimTrailingComma(tagBuilder.toString());
|
return trimTrailingComma(tagBuilder.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
// private String buildOverlimitTag(RStatLimitRateDPO item) {
|
|
||||||
// String tag = "";
|
|
||||||
//
|
|
||||||
// //获取监测点配置的稳态指标,如果没有配置则查询所有指标
|
|
||||||
// String planId = csHarmonicPlanLineFeignClient.getPlanIdByLineId(item.getLineId()).getData();
|
|
||||||
// if (planId != null) {
|
|
||||||
// CsHarmonicPlan csHarmonicPlan = csHarmonicPlanFeignClient.getById(planId).getData();
|
|
||||||
// String harmonicTarget = csHarmonicPlan.getHarmonicTarget();
|
|
||||||
// List<String> targetList = Arrays.asList(harmonicTarget.split(","));
|
|
||||||
//
|
|
||||||
// Integer freqDevOvertime = item.getFreqDevOvertime();
|
|
||||||
// if (freqDevOvertime > 0 && targetList.contains("频率偏差")) {
|
|
||||||
// tag = tag + "频率偏差越限" + freqDevOvertime + "次,";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Integer voltageDevOvertime = item.getVoltageDevOvertime();
|
|
||||||
// if (voltageDevOvertime > 0 && targetList.contains("电压偏差")) {
|
|
||||||
// tag = tag + "电压偏差越限" + voltageDevOvertime + "次,";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Integer ubalanceOvertime = item.getUbalanceOvertime();
|
|
||||||
// if (ubalanceOvertime > 0 && targetList.contains("三相电压不平衡度")) {
|
|
||||||
// tag = tag + "三相电压不平衡度越限" + ubalanceOvertime + "次,";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Integer flickerOvertime = item.getFlickerOvertime();
|
|
||||||
// if (flickerOvertime > 0 && targetList.contains("闪变")) {
|
|
||||||
// tag = tag + "闪变越限" + flickerOvertime + "次,";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Integer uaberranceOvertime = item.getUaberranceOvertime();
|
|
||||||
// if (uaberranceOvertime > 0 && targetList.contains("电压总谐波畸变率")) {
|
|
||||||
// tag = tag + "电压总谐波畸变率越限" + uaberranceOvertime + "次,";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Integer iNegOvertime = item.getINegOvertime();
|
|
||||||
// if (iNegOvertime > 0 && targetList.contains("负序电流")) {
|
|
||||||
// tag = tag + "负序电流越限" + iNegOvertime + "次,";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// for (int i = 2; i <= 25; i++) {
|
|
||||||
// String fieldName = "uharm" + i + "Overtime";
|
|
||||||
// Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
|
||||||
// if (value != null && value > 0) {
|
|
||||||
// String targetName = i + "次谐波电压含有率";
|
|
||||||
// if (targetList.contains(targetName)) {
|
|
||||||
// tag = tag + i + "次谐波电压含有率越限" + value + "次,";
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// for (int i = 2; i <= 25; i++) {
|
|
||||||
// String fieldName = "iharm" + i + "Overtime";
|
|
||||||
// Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
|
||||||
// if (value != null && value > 0) {
|
|
||||||
// String targetName = i + "次谐波电流有效值";
|
|
||||||
// if (targetList.contains(targetName)) {
|
|
||||||
// tag = tag + i + "次谐波电流有效值越限" + value + "次,";
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// for (int i = 1; i <= 16; i++) {
|
|
||||||
// String fieldName = "inuharm" + i + "Overtime";
|
|
||||||
// Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
|
||||||
// if (value != null && value > 0) {
|
|
||||||
// double harmonicOrder = i * 1.0 - 0.5;
|
|
||||||
// String targetName = harmonicOrder + "次间谐波电压含有率";
|
|
||||||
// if (targetList.contains(targetName)) {
|
|
||||||
// tag = tag + harmonicOrder + "次间谐波电压含有率越限" + value + "次,";
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// // 基础越限项
|
|
||||||
// Integer freqDevOvertime = item.getFreqDevOvertime();
|
|
||||||
// if (freqDevOvertime > 0) {
|
|
||||||
// tag = tag + "频率偏差越限" + freqDevOvertime + "次,";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Integer voltageDevOvertime = item.getVoltageDevOvertime();
|
|
||||||
// if (voltageDevOvertime > 0) {
|
|
||||||
// tag = tag + "电压偏差越限" + voltageDevOvertime + "次,";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Integer ubalanceOvertime = item.getUbalanceOvertime();
|
|
||||||
// if (ubalanceOvertime > 0) {
|
|
||||||
// tag = tag + "三相电压不平衡度越限" + ubalanceOvertime + "次,";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Integer flickerOvertime = item.getFlickerOvertime();
|
|
||||||
// if (flickerOvertime > 0) {
|
|
||||||
// tag = tag + "闪变越限" + flickerOvertime + "次,";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Integer uaberranceOvertime = item.getUaberranceOvertime();
|
|
||||||
// if (uaberranceOvertime > 0) {
|
|
||||||
// tag = tag + "电压总谐波畸变率越限" + uaberranceOvertime + "次,";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Integer iNegOvertime = item.getINegOvertime();
|
|
||||||
// if (iNegOvertime > 0) {
|
|
||||||
// tag = tag + "负序电流越限" + iNegOvertime + "次,";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// // 谐波电压含有率(2-25 次)
|
|
||||||
// tag = buildHarmonicVoltageTags(item, tag);
|
|
||||||
//
|
|
||||||
// // 谐波电流有效值(2-25 次)
|
|
||||||
// tag = buildHarmonicCurrentTags(item, tag);
|
|
||||||
//
|
|
||||||
// // 间谐波电压含有率(0.5-15.5 次)
|
|
||||||
// tag = buildInterharmonicVoltageTags(item, tag);
|
|
||||||
// }
|
|
||||||
// // 去除末尾逗号
|
|
||||||
// return trimTrailingComma(tag);
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量构建谐波电压含有率 tag(2-25 次)
|
* 批量构建谐波电压含有率 tag(2-25 次)
|
||||||
*
|
*
|
||||||
@@ -1182,16 +1016,16 @@ public class DataTaskServiceImpl implements IDataTaskService {
|
|||||||
* @param originalTag 原始 tag
|
* @param originalTag 原始 tag
|
||||||
* @return 组装后的 tag
|
* @return 组装后的 tag
|
||||||
*/
|
*/
|
||||||
public static String buildHarmonicVoltageTags(Object item, String originalTag) {
|
public static String buildHarmonicVoltageTags(Object item, String originalTag, Integer lineInterval) {
|
||||||
String tag = originalTag;
|
StringBuilder tag = new StringBuilder(originalTag);
|
||||||
for (int i = 2; i <= 25; i++) {
|
for (int i = 2; i <= 25; i++) {
|
||||||
String fieldName = "uharm" + i + "Overtime";
|
String fieldName = "uharm" + i + "Overtime";
|
||||||
Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
||||||
if (value != null && value > 0) {
|
if (value != null && value > 0) {
|
||||||
tag = tag + i + "次谐波电压含有率越限" + value + "次,";
|
tag.append(i).append("次谐波电压含有率越限").append(Math.min(value * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return tag;
|
return tag.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1201,16 +1035,16 @@ public class DataTaskServiceImpl implements IDataTaskService {
|
|||||||
* @param originalTag 原始 tag
|
* @param originalTag 原始 tag
|
||||||
* @return 组装后的 tag
|
* @return 组装后的 tag
|
||||||
*/
|
*/
|
||||||
public static String buildHarmonicCurrentTags(Object item, String originalTag) {
|
public static String buildHarmonicCurrentTags(Object item, String originalTag, Integer lineInterval) {
|
||||||
String tag = originalTag;
|
StringBuilder tag = new StringBuilder(originalTag);
|
||||||
for (int i = 2; i <= 25; i++) {
|
for (int i = 2; i <= 25; i++) {
|
||||||
String fieldName = "iharm" + i + "Overtime";
|
String fieldName = "iharm" + i + "Overtime";
|
||||||
Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
||||||
if (value != null && value > 0) {
|
if (value != null && value > 0) {
|
||||||
tag = tag + i + "次谐波电流有效值越限" + value + "次,";
|
tag.append(i).append("次谐波电流有效值越限").append(Math.min(value * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return tag;
|
return tag.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1220,17 +1054,17 @@ public class DataTaskServiceImpl implements IDataTaskService {
|
|||||||
* @param originalTag 原始 tag
|
* @param originalTag 原始 tag
|
||||||
* @return 组装后的 tag
|
* @return 组装后的 tag
|
||||||
*/
|
*/
|
||||||
public static String buildInterharmonicVoltageTags(Object item, String originalTag) {
|
public static String buildInterharmonicVoltageTags(Object item, String originalTag, Integer lineInterval) {
|
||||||
String tag = originalTag;
|
StringBuilder tag = new StringBuilder(originalTag);
|
||||||
for (int i = 1; i <= 16; i++) {
|
for (int i = 1; i <= 16; i++) {
|
||||||
String fieldName = "inuharm" + i + "Overtime";
|
String fieldName = "inuharm" + i + "Overtime";
|
||||||
Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName);
|
||||||
if (value != null && value > 0) {
|
if (value != null && value > 0) {
|
||||||
double harmonicOrder = i * 1.0 - 0.5;
|
double harmonicOrder = i * 1.0 - 0.5;
|
||||||
tag = tag + harmonicOrder + "次间谐波电压含有率越限" + value + "次,";
|
tag.append(harmonicOrder).append("次间谐波电压含有率越限").append(Math.min(value * lineInterval,1440)).append("分钟,");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return tag;
|
return tag.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user