调整异常数据界面业务

This commit is contained in:
wr
2025-12-17 19:25:08 +08:00
parent 4b3ec39a11
commit fb7a2b7084
7 changed files with 141 additions and 182 deletions

View File

@@ -565,7 +565,7 @@ public class SecondaryEvaluationServiceImpl implements SecondaryEvaluationServic
unblance.add(evaluationResult); unblance.add(evaluationResult);
evaluationResult = new AssessResultVO.EvaluationResult(); evaluationResult = new AssessResultVO.EvaluationResult();
evaluationResult.setData(result.getApproUnblance().multiply(BigDecimal.valueOf(200))); evaluationResult.setData(result.getApproUnblance());
evaluationResult.setLimitData(overLimit.getUnblance()); evaluationResult.setLimitData(overLimit.getUnblance());
evaluationResult.setIsQualified(NumberUtil.isLess(evaluationResult.getData(), evaluationResult.getLimitData())); evaluationResult.setIsQualified(NumberUtil.isLess(evaluationResult.getData(), evaluationResult.getLimitData()));
unblance.add(evaluationResult); unblance.add(evaluationResult);

View File

@@ -41,4 +41,6 @@ public class MonitorBaseParam extends BaseParam {
@ApiModelProperty(value = "监测点运行状态") @ApiModelProperty(value = "监测点运行状态")
private Integer lineRunFlag; private Integer lineRunFlag;
@ApiModelProperty(value = "异常天数时间")
private List<String> time;
} }

View File

@@ -17,6 +17,8 @@ public class DetailAbnormalVO {
private String date; private String date;
private List<String> dateList;
private String monitorName; private String monitorName;
private String bdName; private String bdName;
@@ -58,6 +60,15 @@ public class DetailAbnormalVO {
} }
@Data
public static class DetailAbnormalCountVO {
private Integer timeSum;
private Integer errCount;
private List<DetailAbnormalInnerVO> time;
}
@Data @Data
public static class DetailLimitInnerVO{ public static class DetailLimitInnerVO{

View File

@@ -86,9 +86,9 @@ public class DataVerifyController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/monitorAbnormalTableDetail") @PostMapping("/monitorAbnormalTableDetail")
@ApiOperation("弹框-获取异常监测点列表详情") @ApiOperation("弹框-获取异常监测点列表详情")
public HttpResult<List<DetailAbnormalVO.DetailAbnormalInnerVO>> monitorAbnormalTableDetail(@RequestBody MonitorBaseParam monitorBaseParam){ public HttpResult<DetailAbnormalVO.DetailAbnormalCountVO> monitorAbnormalTableDetail(@RequestBody MonitorBaseParam monitorBaseParam) {
String methodDescribe = getMethodDescribe("monitorAbnormalTableDetail"); String methodDescribe = getMethodDescribe("monitorAbnormalTableDetail");
List<DetailAbnormalVO.DetailAbnormalInnerVO> list = iPqDataVerifyBakService.monitorAbnormalTableDetail(monitorBaseParam); DetailAbnormalVO.DetailAbnormalCountVO list = iPqDataVerifyBakService.monitorAbnormalTableDetail(monitorBaseParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
} }

View File

@@ -27,8 +27,7 @@ public interface IPqDataVerifyBakService extends IService<PqDataVerifyBak> {
List<DetailAbnormalVO> monitorAbnormalTable(MonitorBaseParam monitorBaseParam); List<DetailAbnormalVO> monitorAbnormalTable(MonitorBaseParam monitorBaseParam);
DetailAbnormalVO.DetailAbnormalCountVO monitorAbnormalTableDetail(MonitorBaseParam monitorBaseParam);
List<DetailAbnormalVO.DetailAbnormalInnerVO> monitorAbnormalTableDetail(MonitorBaseParam monitorBaseParam);

View File

@@ -672,6 +672,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
processHarmonicTarget(dto, targetMap, DicDataEnum.HARMONIC_CURRENT.getCode(), "iharm", 2, 25, result); processHarmonicTarget(dto, targetMap, DicDataEnum.HARMONIC_CURRENT.getCode(), "iharm", 2, 25, result);
processHarmonicTarget(dto, targetMap, DicDataEnum.INTERHARMONIC_VOLTAGE.getCode(), "inuharm", 1, 16, result); processHarmonicTarget(dto, targetMap, DicDataEnum.INTERHARMONIC_VOLTAGE.getCode(), "inuharm", 1, 16, result);
} }
private void processStandardTarget(DataLimitRateDetailDto dto, Map<String, DictData> targetMap, private void processStandardTarget(DataLimitRateDetailDto dto, Map<String, DictData> targetMap,
String targetCode, String data, String targetCode, String data,
List<DetailAbnormalVO.DetailLimitInnerVO> result) { List<DetailAbnormalVO.DetailLimitInnerVO> result) {
@@ -976,7 +977,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
List<LocalDate> dateList = list.stream().map(it -> it.getTime().toLocalDate()).distinct().sorted(Comparator.comparing(Function.identity())).collect(Collectors.toList()); List<LocalDate> dateList = list.stream().map(it -> it.getTime().toLocalDate()).distinct().sorted(Comparator.comparing(Function.identity())).collect(Collectors.toList());
processTable(monitorBaseParam, dateList, result, key); processTable(monitorBaseParam, dateList, result, key);
}); });
dealTableResult(result); dealTableResult(result, monitorBaseParam.getSearchValue());
return result; return result;
} }
@@ -988,7 +989,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
List<LocalDate> dateList = list.stream().map(DataLimitTargetDto::getTime).distinct().sorted(Comparator.comparing(Function.identity())).collect(Collectors.toList()); List<LocalDate> dateList = list.stream().map(DataLimitTargetDto::getTime).distinct().sorted(Comparator.comparing(Function.identity())).collect(Collectors.toList());
processTable(monitorBaseParam, dateList, result, key); processTable(monitorBaseParam, dateList, result, key);
}); });
dealTableResult(result); dealTableResult(result, monitorBaseParam.getSearchValue());
return result; return result;
} }
@@ -1015,34 +1016,40 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
} }
} }
private void dealTableResult(List<PowerQualityIndicatorsVO> result) { private void dealTableResult(List<PowerQualityIndicatorsVO> result, String searchValue) {
if (CollUtil.isNotEmpty(result)) { if (CollUtil.isNotEmpty(result)) {
List<SysDicTreePO> dicTreePOList = dictTreeFeignClient.queryAllByType(Integer.valueOf(DicDataEnum.Obj_Type.getCode())).getData(); // List<SysDicTreePO> dicTreePOList = dictTreeFeignClient.queryAllByType(Integer.valueOf(DicDataEnum.Obj_Type.getCode())).getData();
Map<String, SysDicTreePO> sysDicTreePOMap = dicTreePOList.stream().collect(Collectors.toMap(SysDicTreePO::getId, Function.identity())); // Map<String, SysDicTreePO> sysDicTreePOMap = dicTreePOList.stream().collect(Collectors.toMap(SysDicTreePO::getId, Function.identity()));
List<String> ids = result.stream().map(PowerQualityIndicatorsVO::getMonitorId).distinct().collect(Collectors.toList()); List<String> ids = result.stream().map(PowerQualityIndicatorsVO::getMonitorId).distinct().collect(Collectors.toList());
List<AreaLineInfoVO> areaLineInfoVOList = lineMapper.getBaseLineAreaInfo(ids, null, null); List<AreaLineInfoVO> areaLineInfoVOList = lineMapper.getBaseLineAreaInfo(ids, searchValue, null);
Map<String, AreaLineInfoVO> areaMap = areaLineInfoVOList.stream().collect(Collectors.toMap(AreaLineInfoVO::getLineId, Function.identity())); Map<String, PowerQualityIndicatorsVO> areaMap = result.stream().collect(Collectors.toMap(PowerQualityIndicatorsVO::getMonitorId, Function.identity()));
List<String> objIds = areaLineInfoVOList.stream().map(AreaLineInfoVO::getObjId).distinct().collect(Collectors.toList()); // List<String> objIds = areaLineInfoVOList.stream().map(AreaLineInfoVO::getObjId).distinct().collect(Collectors.toList());
List<NewUserReportVO> userLedgerVOList = userLedgerFeignClient.getUserReportByIds(objIds).getData(); // List<NewUserReportVO> userLedgerVOList = userLedgerFeignClient.getUserReportByIds(objIds).getData();
Map<String, NewUserReportVO> userMap = userLedgerVOList.stream().collect(Collectors.toMap(NewUserReportVO::getId, Function.identity())); // Map<String, NewUserReportVO> userMap = userLedgerVOList.stream().collect(Collectors.toMap(NewUserReportVO::getId, Function.identity()));
result.forEach(it -> { List<PowerQualityIndicatorsVO> info = new ArrayList<>();
if (areaMap.containsKey(it.getMonitorId())) { for (AreaLineInfoVO lineDetail : areaLineInfoVOList) {
AreaLineInfoVO areaLineInfoVO = areaMap.get(it.getMonitorId()); if (areaMap.containsKey(lineDetail.getLineId())) {
it.setMonitorName(areaLineInfoVO.getLineName()); PowerQualityIndicatorsVO it = areaMap.get(lineDetail.getLineId());
it.setStationName(areaLineInfoVO.getSubName()); it.setMonitorName(lineDetail.getLineName());
it.setDevName(areaLineInfoVO.getDeviceName()); it.setStationName(lineDetail.getSubName());
it.setVoltageLevel(areaLineInfoVO.getVoltageScale()); it.setDevName(lineDetail.getDeviceName());
it.setIp(Base64.encode(areaLineInfoVO.getIp())); it.setVoltageLevel(lineDetail.getVoltageScale());
it.setManufacturer(areaLineInfoVO.getManufacturer()); it.setIp(Base64.encode(lineDetail.getIp()));
if (sysDicTreePOMap.containsKey(areaLineInfoVO.getSmallObjType())) { it.setManufacturer(lineDetail.getManufacturer());
it.setObjType(sysDicTreePOMap.get(areaLineInfoVO.getSmallObjType()).getName()); it.setObjType(lineDetail.getLoadType());
} it.setObjName(lineDetail.getObjName());
if (userMap.containsKey(areaLineInfoVO.getObjId())) { info.add(it);
it.setObjName(userMap.get(areaLineInfoVO.getObjId()).getProjectName()); // if (sysDicTreePOMap.containsKey(areaLineInfoVO.getSmallObjType())) {
// it.setObjType(sysDicTreePOMap.get(areaLineInfoVO.getSmallObjType()).getName());
// }
// if (userMap.containsKey(areaLineInfoVO.getObjId())) {
// it.setObjName(userMap.get(areaLineInfoVO.getObjId()).getProjectName());
// }
} }
} }
}); result.clear();
result.addAll(info);
} }
} }

View File

@@ -33,10 +33,7 @@ import com.njcn.device.pq.service.CommTerminalService;
import com.njcn.device.pq.service.IPqDataVerifyBakService; import com.njcn.device.pq.service.IPqDataVerifyBakService;
import com.njcn.oss.utils.FileStorageUtil; import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.supervision.api.UserLedgerFeignClient; import com.njcn.supervision.api.UserLedgerFeignClient;
import com.njcn.supervision.pojo.vo.user.NewUserReportVO;
import com.njcn.system.api.DictTreeFeignClient; import com.njcn.system.api.DictTreeFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.pojo.po.SysDicTreePO;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -94,7 +91,6 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
} else { } else {
verifyMonitorVO.setRunNum(0); verifyMonitorVO.setRunNum(0);
verifyMonitorVO.setAbnormalNum(0); verifyMonitorVO.setAbnormalNum(0);
verifyMonitorVO.setMapList(getRangeAbnormalMonitor(monitorBaseParam, new ArrayList<>())); verifyMonitorVO.setMapList(getRangeAbnormalMonitor(monitorBaseParam, new ArrayList<>()));
verifyMonitorVO.setTargetList(getAbnormalTarget(new ArrayList<>())); verifyMonitorVO.setTargetList(getAbnormalTarget(new ArrayList<>()));
verifyMonitorVO.setMonitorAlarmInfo(getAbnormalTable(new ArrayList<>(), monitorBaseParam)); verifyMonitorVO.setMonitorAlarmInfo(getAbnormalTable(new ArrayList<>(), monitorBaseParam));
@@ -111,7 +107,7 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
List<LocalDate> dateList = list.stream().map(PqDataVerifyBak::getTimeId).sorted(Comparator.comparing(Function.identity())).collect(Collectors.toList()); List<LocalDate> dateList = list.stream().map(PqDataVerifyBak::getTimeId).sorted(Comparator.comparing(Function.identity())).collect(Collectors.toList());
processTable(monitorBaseParam, dateList, result, key); processTable(monitorBaseParam, dateList, result, key);
}); });
dealTableResult(result); dealTableResult(result, monitorBaseParam.getSearchValue());
return result; return result;
} }
@@ -137,34 +133,40 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
} }
} }
private void dealTableResult(List<PowerQualityIndicatorsVO> result) { private void dealTableResult(List<PowerQualityIndicatorsVO> result, String searchValue) {
if (CollUtil.isNotEmpty(result)) { if (CollUtil.isNotEmpty(result)) {
List<SysDicTreePO> dicTreePOList = dictTreeFeignClient.queryAllByType(Integer.valueOf(DicDataEnum.Obj_Type.getCode())).getData(); // List<SysDicTreePO> dicTreePOList = dictTreeFeignClient.queryAllByType(Integer.valueOf(DicDataEnum.Obj_Type.getCode())).getData();
Map<String, SysDicTreePO> sysDicTreePOMap = dicTreePOList.stream().collect(Collectors.toMap(SysDicTreePO::getId, Function.identity())); // Map<String, SysDicTreePO> sysDicTreePOMap = dicTreePOList.stream().collect(Collectors.toMap(SysDicTreePO::getId, Function.identity()));
List<String> ids = result.stream().map(PowerQualityIndicatorsVO::getMonitorId).distinct().collect(Collectors.toList()); List<String> ids = result.stream().map(PowerQualityIndicatorsVO::getMonitorId).distinct().collect(Collectors.toList());
List<AreaLineInfoVO> areaLineInfoVOList = lineMapper.getBaseLineAreaInfo(ids, null, null); List<AreaLineInfoVO> areaLineInfoVOList = lineMapper.getBaseLineAreaInfo(ids, searchValue, null);
Map<String, AreaLineInfoVO> areaMap = areaLineInfoVOList.stream().collect(Collectors.toMap(AreaLineInfoVO::getLineId, Function.identity())); Map<String, PowerQualityIndicatorsVO> areaMap = result.stream().collect(Collectors.toMap(PowerQualityIndicatorsVO::getMonitorId, Function.identity()));
List<String> objIds = areaLineInfoVOList.stream().map(AreaLineInfoVO::getObjId).distinct().collect(Collectors.toList()); // List<String> objIds = areaLineInfoVOList.stream().map(AreaLineInfoVO::getObjId).distinct().collect(Collectors.toList());
List<NewUserReportVO> userLedgerVOList = userLedgerFeignClient.getUserReportByIds(objIds).getData(); // List<NewUserReportVO> userLedgerVOList = userLedgerFeignClient.getUserReportByIds(objIds).getData();
Map<String, NewUserReportVO> userMap = userLedgerVOList.stream().collect(Collectors.toMap(NewUserReportVO::getId, Function.identity())); // Map<String, NewUserReportVO> userMap = userLedgerVOList.stream().collect(Collectors.toMap(NewUserReportVO::getId, Function.identity()));
result.forEach(it -> { List<PowerQualityIndicatorsVO> info = new ArrayList<>();
if (areaMap.containsKey(it.getMonitorId())) { for (AreaLineInfoVO lineDetail : areaLineInfoVOList) {
AreaLineInfoVO areaLineInfoVO = areaMap.get(it.getMonitorId()); if (areaMap.containsKey(lineDetail.getLineId())) {
it.setMonitorName(areaLineInfoVO.getLineName()); PowerQualityIndicatorsVO it = areaMap.get(lineDetail.getLineId());
it.setStationName(areaLineInfoVO.getSubName()); it.setMonitorName(lineDetail.getLineName());
it.setDevName(areaLineInfoVO.getDeviceName()); it.setStationName(lineDetail.getSubName());
it.setVoltageLevel(areaLineInfoVO.getVoltageScale()); it.setDevName(lineDetail.getDeviceName());
it.setIp(Base64.encode(areaLineInfoVO.getIp())); it.setVoltageLevel(lineDetail.getVoltageScale());
it.setManufacturer(areaLineInfoVO.getManufacturer()); it.setIp(Base64.encode(lineDetail.getIp()));
if (sysDicTreePOMap.containsKey(areaLineInfoVO.getSmallObjType())) { it.setManufacturer(lineDetail.getManufacturer());
it.setObjType(sysDicTreePOMap.get(areaLineInfoVO.getSmallObjType()).getName()); it.setObjType(lineDetail.getLoadType());
} it.setObjName(lineDetail.getObjName());
if (userMap.containsKey(areaLineInfoVO.getObjId())) { info.add(it);
it.setObjName(userMap.get(areaLineInfoVO.getObjId()).getProjectName()); // if (sysDicTreePOMap.containsKey(areaLineInfoVO.getSmallObjType())) {
// it.setObjType(sysDicTreePOMap.get(areaLineInfoVO.getSmallObjType()).getName());
// }
// if (userMap.containsKey(areaLineInfoVO.getObjId())) {
// it.setObjName(userMap.get(areaLineInfoVO.getObjId()).getProjectName());
// }
} }
} }
}); result.clear();
result.addAll(info);
} }
} }
@@ -267,97 +269,29 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
} }
} }
List<PqDataVerifyBak> dataVerifyList = this.list(lambdaQueryWrapper); List<PqDataVerifyBak> dataVerifyList = this.list(lambdaQueryWrapper);
for (PqDataVerifyBak pqDataVerifyBak : dataVerifyList) { Map<String, List<PqDataVerifyBak>> VerifyMap = dataVerifyList.stream().collect(Collectors.groupingBy(PqDataVerifyBak::getLineId));
LineDetailDataVO lineDevGetDTO = lineDetailMap.get(pqDataVerifyBak.getLineId()); VerifyMap.forEach((key, value) -> {
LineDetailDataVO lineDevGetDTO = lineDetailMap.get(key);
String temBgName = ""; String temBgName = "";
if (lineDevGetDTO.getPowerFlag().equals(LineBaseEnum.POWER_FLAG.getCode())) { if (lineDevGetDTO.getPowerFlag().equals(LineBaseEnum.POWER_FLAG.getCode())) {
temBgName = lineDevGetDTO.getBdName(); temBgName = lineDevGetDTO.getBdName();
} else if (lineDevGetDTO.getPowerFlag().equals(LineBaseEnum.POWER_FLAG_NOT.getCode())) { } else if (lineDevGetDTO.getPowerFlag().equals(LineBaseEnum.POWER_FLAG_NOT.getCode())) {
temBgName = lineDevGetDTO.getObjName(); temBgName = lineDevGetDTO.getObjName();
} }
try (InputStream fileStream = fileStorageUtil.getFileStream(pqDataVerifyBak.getPath())) {
JSONArray jsonArray = new JSONArray(new JSONTokener(fileStream, new JSONConfig()));
String[] errorTimeCount = {"0"};
Long[] errAllCount = {0L};
jsonArray.forEach(it -> {
JSONObject targetJson = (JSONObject) it;
if (StrUtil.isNotBlank(monitorBaseParam.getTargetKey())) {
if (targetJson.containsKey(monitorBaseParam.getTargetKey())) {
JSONArray innerJson = targetJson.getJSONArray(monitorBaseParam.getTargetKey());
PqReasonableRangeDto dto = rangeMap.get(monitorBaseParam.getTargetKey());
if (Objects.nonNull(dto.getHarmStart()) && Objects.nonNull(dto.getHarmEnd())) {
errorTimeCount[0] = targetJson.get("errorTimes").toString();
for (Object oJson : innerJson) {
JSONObject jsonObjectTem = (JSONObject) oJson;
JSONArray list = jsonObjectTem.getJSONArray("list");
list.forEach(listItem -> {
JSONObject object = (JSONObject) listItem;
long errCount = Long.parseLong(object.get("errorCounts").toString());
errAllCount[0] += errCount;
});
}
} else {
for (Object oJson : innerJson) {
JSONObject jsonObjectTem = (JSONObject) oJson;
JSONArray list = jsonObjectTem.getJSONArray("list");
list.forEach(listItem -> {
JSONObject object = (JSONObject) listItem;
long errCount = Long.parseLong(object.get("errorCounts").toString());
errAllCount[0] += errCount;
});
errorTimeCount[0] = jsonObjectTem.get("errorTimes").toString();
}
}
}
} else {
rangeMap.forEach((rangeKey, val) -> {
if (targetJson.containsKey(rangeKey)) {
JSONArray innerJson = targetJson.getJSONArray(rangeKey);
for (Object oJson : innerJson) {
JSONObject jsonObjectTem = (JSONObject) oJson;
JSONArray list = jsonObjectTem.getJSONArray("list");
list.forEach(listItem -> {
JSONObject object = (JSONObject) listItem;
long errCount = Long.parseLong(object.get("errorCounts").toString());
errAllCount[0] += errCount;
});
}
}
});
if (targetJson.containsKey("lineErrorTimes")) {
errorTimeCount[0] = targetJson.get("lineErrorTimes").toString();
}
}
});
DetailAbnormalVO detailAbnormalVO = new DetailAbnormalVO(); DetailAbnormalVO detailAbnormalVO = new DetailAbnormalVO();
detailAbnormalVO.setTimeSum(errorTimeCount[0]); detailAbnormalVO.setDateList(value.stream().map(x -> x.getTimeId().format(DatePattern.NORM_DATE_FORMATTER)).collect(Collectors.toList()));
detailAbnormalVO.setDate(pqDataVerifyBak.getTimeId().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
detailAbnormalVO.setMonitorName(lineDevGetDTO.getLineName());
detailAbnormalVO.setBdName(temBgName);
detailAbnormalVO.setMonitorId(lineDevGetDTO.getLineId());
detailAbnormalVO.setTargetKey(monitorBaseParam.getTargetKey());
detailAbnormalVO.setErrCount(errAllCount[0].toString());
result.add(detailAbnormalVO);
} catch (BusinessException b) {
//文件为空时候的特殊处理
DetailAbnormalVO detailAbnormalVO = new DetailAbnormalVO();
detailAbnormalVO.setTimeSum("/");
detailAbnormalVO.setDate(pqDataVerifyBak.getTimeId().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
detailAbnormalVO.setMonitorName(lineDevGetDTO.getLineName()); detailAbnormalVO.setMonitorName(lineDevGetDTO.getLineName());
detailAbnormalVO.setBdName(temBgName); detailAbnormalVO.setBdName(temBgName);
detailAbnormalVO.setMonitorId(lineDevGetDTO.getLineId()); detailAbnormalVO.setMonitorId(lineDevGetDTO.getLineId());
detailAbnormalVO.setTargetKey(monitorBaseParam.getTargetKey()); detailAbnormalVO.setTargetKey(monitorBaseParam.getTargetKey());
result.add(detailAbnormalVO); result.add(detailAbnormalVO);
} catch (Exception e) { });
throw new BusinessException("数据异常");
}
}
return result; return result;
} }
@Override @Override
public List<DetailAbnormalVO.DetailAbnormalInnerVO> monitorAbnormalTableDetail(MonitorBaseParam monitorBaseParam) { public DetailAbnormalVO.DetailAbnormalCountVO monitorAbnormalTableDetail(MonitorBaseParam monitorBaseParam) {
Map<String, PqReasonableRangeDto> dtoMap = getStandRange(); Map<String, PqReasonableRangeDto> dtoMap = getStandRange();
if (StrUtil.isNotBlank(monitorBaseParam.getTargetKey())) { if (StrUtil.isNotBlank(monitorBaseParam.getTargetKey())) {
if (!dtoMap.containsKey(monitorBaseParam.getTargetKey())) { if (!dtoMap.containsKey(monitorBaseParam.getTargetKey())) {
@@ -366,21 +300,23 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
} }
List<DetailAbnormalVO.DetailAbnormalInnerVO> result = new ArrayList<>(); List<DetailAbnormalVO.DetailAbnormalInnerVO> result = new ArrayList<>();
LambdaQueryWrapper<PqDataVerifyBak> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PqDataVerifyBak> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PqDataVerifyBak::getTimeId, DateUtil.beginOfDay(DateUtil.parse(monitorBaseParam.getSearchBeginTime()))) lambdaQueryWrapper.in(PqDataVerifyBak::getTimeId, monitorBaseParam.getTime())
.in(PqDataVerifyBak::getLineId, monitorBaseParam.getMonitorIds()).orderByAsc(PqDataVerifyBak::getTimeId); .in(PqDataVerifyBak::getLineId, monitorBaseParam.getMonitorIds());
PqDataVerifyBak pqDataVerifyBak = this.getOne(lambdaQueryWrapper); List<PqDataVerifyBak> pqDataVerifyBak = this.list(lambdaQueryWrapper);
try (InputStream fileStream = fileStorageUtil.getFileStream(pqDataVerifyBak.getPath())) { Integer[] errorTimeCount = {0};
Integer[] errAllCount = {0};
for (PqDataVerifyBak dataVerifyBak : pqDataVerifyBak) {
try (InputStream fileStream = fileStorageUtil.getFileStream(dataVerifyBak.getPath())) {
JSONArray jsonArray = new JSONArray(new JSONTokener(fileStream, new JSONConfig())); JSONArray jsonArray = new JSONArray(new JSONTokener(fileStream, new JSONConfig()));
for (Object it : jsonArray) { jsonArray.forEach(it->{
JSONObject targetJson = (JSONObject) it; JSONObject targetJson = (JSONObject) it;
if (targetJson.containsKey("lineErrorTimes")) { if (targetJson.containsKey("lineErrorTimes")) {
continue; errorTimeCount[0] += Integer.valueOf(targetJson.get("lineErrorTimes").toString());
} }else{
if (StrUtil.isNotBlank(monitorBaseParam.getTargetKey())) { if (StrUtil.isNotBlank(monitorBaseParam.getTargetKey())) {
if (targetJson.containsKey(monitorBaseParam.getTargetKey())) { if (targetJson.containsKey(monitorBaseParam.getTargetKey())) {
resultDeal(dtoMap, monitorBaseParam.getTargetKey(), targetJson, result); resultDeal(dtoMap, monitorBaseParam.getTargetKey(), targetJson, result, dataVerifyBak.getTimeId().toString(), errAllCount);
break;
} }
} else { } else {
String tarKey = ""; String tarKey = "";
@@ -388,22 +324,26 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
String key = entry.getKey(); String key = entry.getKey();
if (targetJson.containsKey(key)) { if (targetJson.containsKey(key)) {
tarKey = key; tarKey = key;
break;
} }
} }
resultDeal(dtoMap, tarKey, targetJson, result); resultDeal(dtoMap, tarKey, targetJson, result, dataVerifyBak.getTimeId().toString(), errAllCount);
} }
} }
});
} catch (Exception e) { } catch (Exception e) {
throw new BusinessException("数据异常"); throw new BusinessException("数据异常" + e);
}
} }
// 排序实现 // 排序实现
result = result.stream() DetailAbnormalVO.DetailAbnormalCountVO info = new DetailAbnormalVO.DetailAbnormalCountVO();
.sorted(Comparator.comparing(DetailAbnormalVO.DetailAbnormalInnerVO::getTime) info.setTimeSum(errorTimeCount[0]);
info.setErrCount(errAllCount[0]);
info.setTime(result.stream()
.sorted(Comparator.comparing(DetailAbnormalVO.DetailAbnormalInnerVO::getTargetName)
.thenComparing(vo -> extractHarmonicOrder(vo.getTargetName())) .thenComparing(vo -> extractHarmonicOrder(vo.getTargetName()))
.thenComparing(DetailAbnormalVO.DetailAbnormalInnerVO::getTargetName)) .thenComparing(DetailAbnormalVO.DetailAbnormalInnerVO::getTime))
.collect(Collectors.toList()); .collect(Collectors.toList()));
return result; return info;
} }
@@ -431,12 +371,13 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
* 处理json对象中list数组 * 处理json对象中list数组
*/ */
private void resultDeal(Map<String, PqReasonableRangeDto> dtoMap, String targetKey, JSONObject targetJson, List<DetailAbnormalVO.DetailAbnormalInnerVO> result) { private void resultDeal(Map<String, PqReasonableRangeDto> dtoMap, String targetKey, JSONObject targetJson, List<DetailAbnormalVO.DetailAbnormalInnerVO> result, String date, Integer[] errorCounts) {
PqReasonableRangeDto pqReasonableRangeDto = dtoMap.get(targetKey); PqReasonableRangeDto pqReasonableRangeDto = dtoMap.get(targetKey);
JSONArray innerJson = targetJson.getJSONArray(targetKey); JSONArray innerJson = targetJson.getJSONArray(targetKey);
innerJson.forEach(oo -> { innerJson.forEach(oo -> {
JSONObject jsonObjectTem = (JSONObject) oo; JSONObject jsonObjectTem = (JSONObject) oo;
String targetName = jsonObjectTem.get("targetName").toString(); String targetName = jsonObjectTem.get("targetName").toString();
errorCounts[0] += Integer.valueOf(jsonObjectTem.get("errorCounts").toString());
JSONArray list = jsonObjectTem.getJSONArray("list"); JSONArray list = jsonObjectTem.getJSONArray("list");
List<DetailAbnormalVO.DetailLimitInnerVO> temList = new ArrayList<>(); List<DetailAbnormalVO.DetailLimitInnerVO> temList = new ArrayList<>();
list.forEach(listItem -> { list.forEach(listItem -> {
@@ -447,7 +388,7 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
String valueType = object.get("valueType").toString(); String valueType = object.get("valueType").toString();
for (int i = 0; i < timeArr.size(); i++) { for (int i = 0; i < timeArr.size(); i++) {
DetailAbnormalVO.DetailLimitInnerVO temData = new DetailAbnormalVO.DetailLimitInnerVO(); DetailAbnormalVO.DetailLimitInnerVO temData = new DetailAbnormalVO.DetailLimitInnerVO();
temData.setTime(timeArr.get(i).toString()); temData.setTime(date + " " + timeArr.get(i).toString());
temData.setVal(valueArr.get(i).toString()); temData.setVal(valueArr.get(i).toString());
temData.setTargetName(targetName); temData.setTargetName(targetName);
temData.setTargetKey(targetKey); temData.setTargetKey(targetKey);
@@ -475,11 +416,11 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
vo.setTargetKey(targetKey); vo.setTargetKey(targetKey);
vo.setPhaseType(phaseKey); vo.setPhaseType(phaseKey);
if ((DataCleanEnum.DataI.getCode() + SEPARATOR + DataCleanEnum.RmsI.getCode() ).equals(targetKey)) { // if ((DataCleanEnum.DataI.getCode() + SEPARATOR + DataCleanEnum.RmsI.getCode() ).equals(targetKey)) {
vo.setRangeDesc(pqReasonableRangeDto.getMinValue() + unit + " ~ " + pqReasonableRangeDto.getMaxValue() + "*CT1" + unit); // vo.setRangeDesc(pqReasonableRangeDto.getMinValue() + unit + " ~ " + pqReasonableRangeDto.getMaxValue() + "*CT1" + unit);
} else { // } else {
vo.setRangeDesc(pqReasonableRangeDto.getMinValue() + unit + " ~ " + pqReasonableRangeDto.getMaxValue() + unit); vo.setRangeDesc(pqReasonableRangeDto.getMinValue() + unit + " ~ " + pqReasonableRangeDto.getMaxValue() + unit);
} // }
valueList.forEach(ites -> { valueList.forEach(ites -> {
switch (ites.getType()) { switch (ites.getType()) {
case "AVG": case "AVG":
@@ -686,12 +627,11 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
if (StrUtil.isNotBlank(dto.getUnit())) { if (StrUtil.isNotBlank(dto.getUnit())) {
unit = dto.getUnit(); unit = dto.getUnit();
} }
if (temStr.equals(Param.rms_i)) { // if (temStr.equals(Param.rms_i)) {
verifyTargetVO.setRangeDesc(dto.getMinValue() + unit + " ~ " + dto.getMaxValue() + "*CT1" + unit); // verifyTargetVO.setRangeDesc(dto.getMinValue() + unit + " ~ " + dto.getMaxValue() + "*CT1" + unit);
} else { // } else {
verifyTargetVO.setRangeDesc(dto.getMinValue() + unit + " ~ " + dto.getMaxValue() + unit); verifyTargetVO.setRangeDesc(dto.getMinValue() + unit + " ~ " + dto.getMaxValue() + unit);
} // }
result.add(verifyTargetVO); result.add(verifyTargetVO);
} }