diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/DeviceMessageFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/DeviceMessageFeignClient.java index 97cc1bc..08bb32a 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/DeviceMessageFeignClient.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/DeviceMessageFeignClient.java @@ -36,6 +36,6 @@ public interface DeviceMessageFeignClient { @PostMapping("/getLineInfo") @ApiOperation("获取监测点信息") - HttpResult getLineInfo(@RequestParam("id") String id, @RequestParam("list") List list); + HttpResult getLineInfo(@RequestParam("id") String id, @RequestParam(value = "list", required = false) List list); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/message/DeviceMessageController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/message/DeviceMessageController.java index 7dc722f..dfb5a8c 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/message/DeviceMessageController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/message/DeviceMessageController.java @@ -64,12 +64,11 @@ public class DeviceMessageController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getLineInfo") @ApiOperation("获取监测点信息") - @ApiImplicitParam(name = "id", value = "参数", required = true, paramType = "query") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "参数", paramType = "query"), - @ApiImplicitParam(name = "list", value = "监测点id集合", paramType = "query") + @ApiImplicitParam(name = "list", value = "监测点id集合", paramType = "query",required = false) }) - public HttpResult getLineInfo(@RequestParam("id") String id, @RequestParam("list") List list){ + public HttpResult getLineInfo(@RequestParam(value = "id") String id, @RequestParam(value = "list",required = false) List list){ String methodDescribe = getMethodDescribe("getLineInfo"); deviceMessageService.getLineInfo(id,list); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "success", methodDescribe); diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsAlarmServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsAlarmServiceImpl.java index 4706931..b63aeff 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsAlarmServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsAlarmServiceImpl.java @@ -103,8 +103,7 @@ public class CsAlarmServiceImpl extends ServiceImpl impl List userEvents = csEventUserPOService.queryEventListByUserId(RequestUtil.getUserIndex(), list.stream().map(CsAlarm::getId).collect(Collectors.toList())); List finalDevList = devList; - List result = list.stream() - .map(alarm -> { + List result = list.stream().map(alarm -> { AlarmVO alarmVO = new AlarmVO(); alarmVO.setEventId(alarm.getId()); alarmVO.setDate(alarm.getTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); @@ -137,12 +136,21 @@ public class CsAlarmServiceImpl extends ServiceImpl impl } } } + + List list1 = new ArrayList<>(); + List list2 = new ArrayList<>(); //根据resultList 来查询在线率和完整是否有true的,如果有就设置alarmVO的属性 resultList.forEach(item->{ - alarmVO.setOnlineRateIsWarn(item.getOnlineRate().getIsAbnormal()); - boolean hasAbnormal = item.getIntegrity().getMonitorPoints().stream() + list1.add(item.getOnlineRate()); + list2.addAll(item.getIntegrity().getMonitorPoints()); + // 判断 onlineRate 是否有异常 + boolean hasOnlineRateAbnormal = list1.stream() + .anyMatch(CsAlarmData.OnlineRateAlarm::getIsAbnormal); + // 判断 monitorPoints 是否有异常 + boolean hasMonitorPointAbnormal = list2.stream() .anyMatch(CsAlarmData.IntegrityAlarm.MonitorPointIntegrity::getIsAbnormal); - alarmVO.setIntegrityIsWarn(hasAbnormal); + alarmVO.setOnlineRateIsWarn(hasOnlineRateAbnormal); + alarmVO.setIntegrityIsWarn(hasMonitorPointAbnormal); }); alarmVO.setWarnCounts(warnCounts); return alarmVO; diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsHarmonicServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsHarmonicServiceImpl.java index 9d0425f..c5647ad 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsHarmonicServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsHarmonicServiceImpl.java @@ -52,6 +52,10 @@ public class CsHarmonicServiceImpl extends ServiceImpl AnalyzeData(String jsonString) { - List result = new ArrayList<>(); + List result; ObjectMapper mapper = new ObjectMapper(); List phaseDataList = null; try { diff --git a/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/service/impl/DataTaskServiceImpl.java b/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/service/impl/DataTaskServiceImpl.java index 355768f..c6fde86 100644 --- a/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/service/impl/DataTaskServiceImpl.java +++ b/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/service/impl/DataTaskServiceImpl.java @@ -8,8 +8,6 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; 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.utils.SendMessageUtil; 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(); List limitRates = rStatLimitRateDClient.monitorIdsGetLimitRateInfo(rStatLimitQueryParam).getData(); + //获取监测点信息 + Map lineMap; + if (CollUtil.isNotEmpty(allLine)) { + lineMap = allLine.stream().collect(Collectors.toMap(CsLineDTO::getLineId, item -> item)); + } else { + lineMap = Collections.emptyMap(); + } if (CollUtil.isNotEmpty(limitRates)) { limitRates.forEach(item->{ //新增cs_harmonic数据 @@ -142,9 +147,14 @@ public class DataTaskServiceImpl implements IDataTaskService { csharmonic.setId(id); csharmonic.setLineId(item.getLineId()); 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)) { - csharmonic.setTag(buildOverlimitTag(item)); + csharmonic.setTag(buildOverLimitTag(item,lineInterval)); list1.add(csharmonic); //根据监测点id获取设备 @@ -787,64 +797,6 @@ public class DataTaskServiceImpl implements IDataTaskService { // 按设备 ID 分组 Map> deviceCommMap = pqsCommunicates.stream() .collect(Collectors.groupingBy(PqsCommunicate::getDevId)); - -// deviceCommMap.forEach((devId, commList) -> { -// // 按时间排序 -// commList.sort(Comparator.comparing(PqsCommunicate::getTime)); -// -// List 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) -> { // 按时间排序 commList.sort(Comparator.comparing(PqsCommunicate::getTime)); @@ -927,7 +879,7 @@ public class DataTaskServiceImpl implements IDataTaskService { * @param item 越限统计数据 * @return 越限标签 */ - private String buildOverlimitTag(RStatLimitRateDPO item) { + private String buildOverLimitTag(RStatLimitRateDPO item, Integer lineInterval) { StringBuilder tagBuilder = new StringBuilder(); String planId = csHarmonicPlanLineFeignClient.getPlanIdByLineId(item.getLineId()).getData(); @@ -946,32 +898,32 @@ public class DataTaskServiceImpl implements IDataTaskService { if (targetSet != null) { Integer freqDevOvertime = item.getFreqDevOvertime(); 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(); 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(); 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(); 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(); 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(); 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++) { @@ -980,7 +932,7 @@ public class DataTaskServiceImpl implements IDataTaskService { if (value != null && value > 0) { String targetName = i + "次谐波电压含有率"; 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) { String targetName = i + "次谐波电流有效值"; 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; String targetName = harmonicOrder + "次间谐波电压含有率"; if (targetSet.contains(targetName)) { - tagBuilder.append(harmonicOrder).append("次间谐波电压含有率越限").append(value).append("次,"); + tagBuilder.append(harmonicOrder).append("次间谐波电压含有率越限").append(Math.min(value * lineInterval,1440)).append("分钟,"); } } } } else { Integer freqDevOvertime = item.getFreqDevOvertime(); if (freqDevOvertime != null && freqDevOvertime > 0) { - tagBuilder.append("频率偏差越限").append(freqDevOvertime).append("次,"); + tagBuilder.append("频率偏差越限").append(Math.min(freqDevOvertime * lineInterval,1440)).append("分钟,"); } Integer voltageDevOvertime = item.getVoltageDevOvertime(); if (voltageDevOvertime != null && voltageDevOvertime > 0) { - tagBuilder.append("电压偏差越限").append(voltageDevOvertime).append("次,"); + tagBuilder.append("电压偏差越限").append(Math.min(voltageDevOvertime * lineInterval,1440)).append("分钟,"); } Integer ubalanceOvertime = item.getUbalanceOvertime(); if (ubalanceOvertime != null && ubalanceOvertime > 0) { - tagBuilder.append("三相电压不平衡度越限").append(ubalanceOvertime).append("次,"); + tagBuilder.append("三相电压不平衡度越限").append(Math.min(ubalanceOvertime * lineInterval,1440)).append("分钟,"); } Integer flickerOvertime = item.getFlickerOvertime(); if (flickerOvertime != null && flickerOvertime > 0) { - tagBuilder.append("闪变越限").append(flickerOvertime).append("次,"); + tagBuilder.append("闪变越限").append(Math.min(flickerOvertime * 120,1440)).append("分钟,"); } Integer uaberranceOvertime = item.getUaberranceOvertime(); if (uaberranceOvertime != null && uaberranceOvertime > 0) { - tagBuilder.append("电压总谐波畸变率越限").append(uaberranceOvertime).append("次,"); + tagBuilder.append("电压总谐波畸变率越限").append(Math.min(uaberranceOvertime * lineInterval,1440)).append("分钟,"); } Integer iNegOvertime = item.getINegOvertime(); 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)) { tagBuilder.append(harmonicVoltageTag); } - String harmonicCurrentTag = buildHarmonicCurrentTags(item, ""); + String harmonicCurrentTag = buildHarmonicCurrentTags(item, "", lineInterval); if (StrUtil.isNotBlank(harmonicCurrentTag)) { tagBuilder.append(harmonicCurrentTag); } - String interharmonicTag = buildInterharmonicVoltageTags(item, ""); + String interharmonicTag = buildInterharmonicVoltageTags(item, "", lineInterval); if (StrUtil.isNotBlank(interharmonicTag)) { tagBuilder.append(interharmonicTag); } @@ -1057,124 +1009,6 @@ public class DataTaskServiceImpl implements IDataTaskService { 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 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 次) * @@ -1182,16 +1016,16 @@ public class DataTaskServiceImpl implements IDataTaskService { * @param originalTag 原始 tag * @return 组装后的 tag */ - public static String buildHarmonicVoltageTags(Object item, String originalTag) { - String tag = originalTag; + public static String buildHarmonicVoltageTags(Object item, String originalTag, Integer lineInterval) { + StringBuilder tag = new StringBuilder(originalTag); for (int i = 2; i <= 25; i++) { String fieldName = "uharm" + i + "Overtime"; Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName); 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 * @return 组装后的 tag */ - public static String buildHarmonicCurrentTags(Object item, String originalTag) { - String tag = originalTag; + public static String buildHarmonicCurrentTags(Object item, String originalTag, Integer lineInterval) { + StringBuilder tag = new StringBuilder(originalTag); for (int i = 2; i <= 25; i++) { String fieldName = "iharm" + i + "Overtime"; Integer value = (Integer) ReflectUtil.getFieldValue(item, fieldName); 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 * @return 组装后的 tag */ - public static String buildInterharmonicVoltageTags(Object item, String originalTag) { - String tag = originalTag; + public static String buildInterharmonicVoltageTags(Object item, String originalTag, Integer lineInterval) { + StringBuilder tag = new StringBuilder(originalTag); 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; - tag = tag + harmonicOrder + "次间谐波电压含有率越限" + value + "次,"; + tag.append(harmonicOrder).append("次间谐波电压含有率越限").append(Math.min(value * lineInterval,1440)).append("分钟,"); } } - return tag; + return tag.toString(); } /**