Merge remote-tracking branch 'origin/liaoning' into liaoning
This commit is contained in:
@@ -47,6 +47,7 @@ import com.njcn.supervision.pojo.vo.user.UserLedgerVO;
|
|||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
import com.njcn.system.api.DictTreeFeignClient;
|
import com.njcn.system.api.DictTreeFeignClient;
|
||||||
import com.njcn.system.enums.DicDataEnum;
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
|
import com.njcn.system.enums.DicDataTypeEnum;
|
||||||
import com.njcn.system.pojo.po.DictData;
|
import com.njcn.system.pojo.po.DictData;
|
||||||
import com.njcn.system.pojo.po.SysDicTreePO;
|
import com.njcn.system.pojo.po.SysDicTreePO;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -100,12 +101,13 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
private final DataLimitRateFeignClient dataLimitRateFeignClient;
|
private final DataLimitRateFeignClient dataLimitRateFeignClient;
|
||||||
|
|
||||||
private final DataLimitRateDetailFeignClient dataLimitRateDetailFeignClient;
|
private final DataLimitRateDetailFeignClient dataLimitRateDetailFeignClient;
|
||||||
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VerifyMonitorVO getMonitorVerifyData(MonitorBaseParam monitorBaseParam) {
|
public VerifyMonitorVO getMonitorVerifyData(MonitorBaseParam monitorBaseParam) {
|
||||||
List<String> monitorIds = commTerminalService.getRunMonitorByDept(monitorBaseParam);
|
List<String> monitorIds = commTerminalService.getRunMonitorByDept(monitorBaseParam);
|
||||||
if(CollUtil.isEmpty(monitorIds)){
|
if (CollUtil.isEmpty(monitorIds)) {
|
||||||
throw new BusinessException(DeviceResponseEnum.QUERY_LINE_DATA_EMPTY);
|
throw new BusinessException(DeviceResponseEnum.QUERY_LINE_DATA_EMPTY);
|
||||||
}
|
}
|
||||||
List<DataVerify> dataVerifyList = commQuery(monitorIds, monitorBaseParam);
|
List<DataVerify> dataVerifyList = commQuery(monitorIds, monitorBaseParam);
|
||||||
@@ -135,9 +137,9 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
lambdaQueryWrapper.between(DataVerify::getTime, DateUtil.beginOfDay(DateUtil.parse(monitorBaseParam.getSearchBeginTime())),
|
lambdaQueryWrapper.between(DataVerify::getTime, DateUtil.beginOfDay(DateUtil.parse(monitorBaseParam.getSearchBeginTime())),
|
||||||
DateUtil.endOfDay(DateUtil.parse(monitorBaseParam.getSearchEndTime())))
|
DateUtil.endOfDay(DateUtil.parse(monitorBaseParam.getSearchEndTime())))
|
||||||
.in(DataVerify::getLineId, monitorBaseParam.getMonitorIds()).orderByAsc(DataVerify::getTime);
|
.in(DataVerify::getLineId, monitorBaseParam.getMonitorIds()).orderByAsc(DataVerify::getTime);
|
||||||
if(StrUtil.isNotBlank(monitorBaseParam.getTargetKey())){
|
if (StrUtil.isNotBlank(monitorBaseParam.getTargetKey())) {
|
||||||
String[] target = monitorBaseParam.getTargetKey().split(SEPARATOR);
|
String[] target = monitorBaseParam.getTargetKey().split(SEPARATOR);
|
||||||
lambdaQueryWrapper.eq(DataVerify::getIndexCode,target[0]).eq(DataVerify::getIndexTable,target[1]);
|
lambdaQueryWrapper.eq(DataVerify::getIndexCode, target[0]).eq(DataVerify::getIndexTable, target[1]);
|
||||||
}
|
}
|
||||||
List<DataVerify> dataVerifyList = this.list(lambdaQueryWrapper);
|
List<DataVerify> dataVerifyList = this.list(lambdaQueryWrapper);
|
||||||
Map<String, List<DataVerify>> dataMap = dataVerifyList.stream().collect(Collectors.groupingBy(it -> it.getTime().format(DATE_FORMAT)));
|
Map<String, List<DataVerify>> dataMap = dataVerifyList.stream().collect(Collectors.groupingBy(it -> it.getTime().format(DATE_FORMAT)));
|
||||||
@@ -160,30 +162,30 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DetailAbnormalVO.DetailAbnormalInnerVO> monitorAbnormalTableDetail(MonitorBaseParam monitorBaseParam) {
|
public List<DetailAbnormalVO.DetailAbnormalInnerVO> monitorAbnormalTableDetail(MonitorBaseParam monitorBaseParam) {
|
||||||
Map<String,PqReasonableRangeDto> dtoMap = getStandRange();
|
Map<String, PqReasonableRangeDto> dtoMap = getStandRange();
|
||||||
|
|
||||||
List<DetailAbnormalVO.DetailAbnormalInnerVO> result = new ArrayList<>();
|
List<DetailAbnormalVO.DetailAbnormalInnerVO> result = new ArrayList<>();
|
||||||
LambdaQueryWrapper<DataVerify> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<DataVerify> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.between(DataVerify::getTime, DateUtil.beginOfDay(DateUtil.parse(monitorBaseParam.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(monitorBaseParam.getSearchBeginTime())))
|
lambdaQueryWrapper.between(DataVerify::getTime, DateUtil.beginOfDay(DateUtil.parse(monitorBaseParam.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(monitorBaseParam.getSearchBeginTime())))
|
||||||
.in(DataVerify::getLineId, monitorBaseParam.getMonitorIds()).orderByAsc(DataVerify::getTime);
|
.in(DataVerify::getLineId, monitorBaseParam.getMonitorIds()).orderByAsc(DataVerify::getTime);
|
||||||
if(StrUtil.isNotBlank(monitorBaseParam.getTargetKey())){
|
if (StrUtil.isNotBlank(monitorBaseParam.getTargetKey())) {
|
||||||
String[] queryTarget = monitorBaseParam.getTargetKey().split(SEPARATOR);
|
String[] queryTarget = monitorBaseParam.getTargetKey().split(SEPARATOR);
|
||||||
lambdaQueryWrapper.eq(DataVerify::getIndexCode,queryTarget[0]).eq(DataVerify::getIndexTable,queryTarget[1]);
|
lambdaQueryWrapper.eq(DataVerify::getIndexCode, queryTarget[0]).eq(DataVerify::getIndexTable, queryTarget[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<DataVerify> dataVerifyList = this.list(lambdaQueryWrapper);
|
List<DataVerify> dataVerifyList = this.list(lambdaQueryWrapper);
|
||||||
|
|
||||||
Map<LocalDateTime, List<DataVerify>> listMap = dataVerifyList.stream().collect(Collectors.groupingBy(DataVerify::getTime,TreeMap::new,
|
Map<LocalDateTime, List<DataVerify>> listMap = dataVerifyList.stream().collect(Collectors.groupingBy(DataVerify::getTime, TreeMap::new,
|
||||||
Collectors.toList()));
|
Collectors.toList()));
|
||||||
listMap.forEach((time, timeList) -> {
|
listMap.forEach((time, timeList) -> {
|
||||||
Map<String, List<DataVerify>> indexMap = timeList.stream().collect(Collectors.groupingBy(it -> it.getIndexCode() + SEPARATOR + it.getIndexTable() + SEPARATOR + it.getIndexName()));
|
Map<String, List<DataVerify>> indexMap = timeList.stream().collect(Collectors.groupingBy(it -> it.getIndexCode() + SEPARATOR + it.getIndexTable() + SEPARATOR + it.getIndexName()));
|
||||||
indexMap.forEach((target, list) -> {
|
indexMap.forEach((target, list) -> {
|
||||||
String[] temKey = target.split(SEPARATOR);
|
String[] temKey = target.split(SEPARATOR);
|
||||||
PqReasonableRangeDto pqReasonableRangeDto = dtoMap.get(temKey[0] +SEPARATOR+ temKey[1]);
|
PqReasonableRangeDto pqReasonableRangeDto = dtoMap.get(temKey[0] + SEPARATOR + temKey[1]);
|
||||||
String unit;
|
String unit;
|
||||||
if(StrUtil.isNotBlank(pqReasonableRangeDto.getUnit())){
|
if (StrUtil.isNotBlank(pqReasonableRangeDto.getUnit())) {
|
||||||
unit = pqReasonableRangeDto.getUnit();
|
unit = pqReasonableRangeDto.getUnit();
|
||||||
}else {
|
} else {
|
||||||
unit = "";
|
unit = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -194,7 +196,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
vo.setTargetName(temKey[2]);
|
vo.setTargetName(temKey[2]);
|
||||||
vo.setTargetKey(temKey[0] + temKey[1]);
|
vo.setTargetKey(temKey[0] + temKey[1]);
|
||||||
vo.setPhaseType(phaseKey);
|
vo.setPhaseType(phaseKey);
|
||||||
vo.setRangeDesc(pqReasonableRangeDto.getMinValue() +unit+ " ~ " + pqReasonableRangeDto.getMaxValue()+unit);
|
vo.setRangeDesc(pqReasonableRangeDto.getMinValue() + unit + " ~ " + pqReasonableRangeDto.getMaxValue() + unit);
|
||||||
valueList.forEach(it -> {
|
valueList.forEach(it -> {
|
||||||
switch (it.getValueType()) {
|
switch (it.getValueType()) {
|
||||||
case "AVG":
|
case "AVG":
|
||||||
@@ -310,6 +312,47 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
specialTargetList.add(json);
|
specialTargetList.add(json);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if (StrUtil.isNotBlank(line.getVoltageDevOvertime())) {
|
||||||
|
specialTargetList.add(line.getVoltageDevOvertime());
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(line.getFlickerOvertime())) {
|
||||||
|
specialTargetList.add(line.getFlickerOvertime());
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(line.getUbalanceOvertime())) {
|
||||||
|
specialTargetList.add(line.getUbalanceOvertime());
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(line.getFreqDevOvertime())) {
|
||||||
|
specialTargetList.add(line.getFreqDevOvertime());
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(line.getINegOvertime())) {
|
||||||
|
specialTargetList.add(line.getINegOvertime());
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(line.getUaberranceOvertime())) {
|
||||||
|
specialTargetList.add(line.getUaberranceOvertime());
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 2; i <= 25; i++) {
|
||||||
|
String uHarmKey = "uharm" + i + "Overtime";
|
||||||
|
String json = getFieldValueForDetail(line, uHarmKey);
|
||||||
|
if (StrUtil.isNotBlank(json)) {
|
||||||
|
specialTargetList.add(json);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i = 2; i <= 25; i++) {
|
||||||
|
String uHarmKey = "iharm" + i + "Overtime";
|
||||||
|
String json = getFieldValueForDetail(line, uHarmKey);
|
||||||
|
if (StrUtil.isNotBlank(json)) {
|
||||||
|
specialTargetList.add(json);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i = 1; i <= 16; i++) {
|
||||||
|
String uHarmKey = "inuharm" + i + "Overtime";
|
||||||
|
String json = getFieldValueForDetail(line, uHarmKey);
|
||||||
|
if (StrUtil.isNotBlank(json)) {
|
||||||
|
specialTargetList.add(json);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(specialTargetList)) {
|
if (CollUtil.isNotEmpty(specialTargetList)) {
|
||||||
@@ -343,77 +386,124 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
@Override
|
@Override
|
||||||
public List<DetailAbnormalVO.DetailLimitInnerVO> monitorLimitTableDetail(MonitorBaseParam monitorBaseParam) {
|
public List<DetailAbnormalVO.DetailLimitInnerVO> monitorLimitTableDetail(MonitorBaseParam monitorBaseParam) {
|
||||||
List<DetailAbnormalVO.DetailLimitInnerVO> result = new ArrayList<>();
|
List<DetailAbnormalVO.DetailLimitInnerVO> result = new ArrayList<>();
|
||||||
|
|
||||||
LineCountEvaluateParam lineCountEvaluateParam = new LineCountEvaluateParam();
|
LineCountEvaluateParam lineCountEvaluateParam = new LineCountEvaluateParam();
|
||||||
lineCountEvaluateParam.setLineId(Stream.of(monitorBaseParam.getMonitorIds().get(0)).collect(Collectors.toList()));
|
lineCountEvaluateParam.setLineId(Collections.singletonList(monitorBaseParam.getMonitorIds().get(0)));
|
||||||
lineCountEvaluateParam.setStartTime(monitorBaseParam.getSearchBeginTime());
|
lineCountEvaluateParam.setStartTime(monitorBaseParam.getSearchBeginTime());
|
||||||
lineCountEvaluateParam.setEndTime(monitorBaseParam.getSearchBeginTime());
|
lineCountEvaluateParam.setEndTime(monitorBaseParam.getSearchBeginTime());
|
||||||
List<DataLimitRateDetailDto> dtoList = dataLimitRateDetailFeignClient.getRawData(lineCountEvaluateParam).getData();
|
List<DataLimitRateDetailDto> dtoList = dataLimitRateDetailFeignClient.getRawData(lineCountEvaluateParam).getData();
|
||||||
|
if (CollUtil.isEmpty(dtoList)) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(dtoList)) {
|
DataLimitRateDetailDto dto = dtoList.get(0);
|
||||||
DataLimitRateDetailDto dto = dtoList.get(0);
|
Map<String, DictData> targetMap = getTargetMap();
|
||||||
JSONArray jsonArray = new JSONArray();
|
if (StrUtil.isNotBlank(monitorBaseParam.getTargetKey())) {
|
||||||
List<String> specialTargetList = new ArrayList<>();
|
processSingleTarget(dto, monitorBaseParam.getTargetKey(), targetMap, result);
|
||||||
|
} else {
|
||||||
if (monitorBaseParam.getTargetKey().equals(DicDataEnum.VOLTAGE_DEV.getCode())) {
|
processAllTargets(dto, targetMap, result);
|
||||||
//电压偏差
|
|
||||||
jsonArray = new JSONArray(dto.getVoltageDevOvertime());
|
|
||||||
} else if (monitorBaseParam.getTargetKey().equals(DicDataEnum.FLICKER.getCode())) {
|
|
||||||
jsonArray = new JSONArray(dto.getFlickerOvertime());
|
|
||||||
}else if (monitorBaseParam.getTargetKey().equals(DicDataEnum.phase_Voltage.getCode())) {
|
|
||||||
jsonArray = new JSONArray(dto.getUbalanceOvertime());
|
|
||||||
} else if (monitorBaseParam.getTargetKey().equals(DicDataEnum.FREQUENCY_DEV.getCode())) {
|
|
||||||
jsonArray = new JSONArray(dto.getFreqDevOvertime());
|
|
||||||
} else if (monitorBaseParam.getTargetKey().equals(DicDataEnum.NEG_CURRENT.getCode())) {
|
|
||||||
jsonArray = new JSONArray(dto.getINegOvertime());
|
|
||||||
} else if (monitorBaseParam.getTargetKey().equals(DicDataEnum.THD_V.getCode())) {
|
|
||||||
jsonArray = new JSONArray(dto.getUaberranceOvertime());
|
|
||||||
} else if (monitorBaseParam.getTargetKey().equals(DicDataEnum.HARMONIC_VOLTAGE.getCode())) {
|
|
||||||
for (int i = 2; i <= 25; i++) {
|
|
||||||
String uHarmKey = "uharm" + i + "Overtime";
|
|
||||||
String json = getFieldValueForDetail(dto, uHarmKey);
|
|
||||||
if (StrUtil.isNotBlank(json)) {
|
|
||||||
specialTargetList.add(json+SEPARATOR+i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (monitorBaseParam.getTargetKey().equals(DicDataEnum.HARMONIC_CURRENT.getCode())) {
|
|
||||||
for (int i = 2; i <= 25; i++) {
|
|
||||||
String uHarmKey = "iharm" + i + "Overtime";
|
|
||||||
String json = getFieldValueForDetail(dto, uHarmKey);
|
|
||||||
if (StrUtil.isNotBlank(json)) {
|
|
||||||
specialTargetList.add(json+SEPARATOR+i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (monitorBaseParam.getTargetKey().equals(DicDataEnum.INTERHARMONIC_VOLTAGE.getCode())) {
|
|
||||||
for (int i = 1; i <= 16; i++) {
|
|
||||||
String uHarmKey = "inuharm" + i + "Overtime";
|
|
||||||
String json = getFieldValueForDetail(dto, uHarmKey);
|
|
||||||
if (StrUtil.isNotBlank(json)) {
|
|
||||||
specialTargetList.add(json+SEPARATOR+i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(CollUtil.isNotEmpty(specialTargetList)){
|
|
||||||
for(String strJson : specialTargetList){
|
|
||||||
String[] temStr = strJson.split(SEPARATOR);
|
|
||||||
JSONArray jsonTem = new JSONArray(temStr[0]);
|
|
||||||
dealJsonArr(jsonTem,result,monitorBaseParam,temStr[1]);
|
|
||||||
}
|
|
||||||
}else {
|
|
||||||
dealJsonArr(jsonArray,result,monitorBaseParam,null);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Map<String, DictData> getTargetMap() {
|
||||||
|
List<DictData> dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
|
||||||
|
return dictDataList.stream().collect(Collectors.toMap(DictData::getCode, Function.identity()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processSingleTarget(DataLimitRateDetailDto dto, String targetKey, Map<String, DictData> targetMap, List<DetailAbnormalVO.DetailLimitInnerVO> result) {
|
||||||
|
if (!targetMap.containsKey(targetKey)) {
|
||||||
|
throw new BusinessException("异常指标参数");
|
||||||
|
}
|
||||||
|
|
||||||
|
String targetName = targetMap.get(targetKey).getName();
|
||||||
|
List<String> specialTargetList = new ArrayList<>();
|
||||||
|
JSONArray jsonArray = new JSONArray();
|
||||||
|
|
||||||
|
DicDataEnum targetEnum = DicDataEnum.getDicDataEnumValue(targetKey);
|
||||||
|
switch (Objects.requireNonNull(targetEnum)) {
|
||||||
|
case VOLTAGE_DEV:
|
||||||
|
jsonArray = new JSONArray(dto.getVoltageDevOvertime());
|
||||||
|
break;
|
||||||
|
case FLICKER:
|
||||||
|
jsonArray = new JSONArray(dto.getFlickerOvertime());
|
||||||
|
break;
|
||||||
|
case phase_Voltage:
|
||||||
|
jsonArray = new JSONArray(dto.getUbalanceOvertime());
|
||||||
|
break;
|
||||||
|
case FREQUENCY_DEV:
|
||||||
|
jsonArray = new JSONArray(dto.getFreqDevOvertime());
|
||||||
|
break;
|
||||||
|
case NEG_CURRENT:
|
||||||
|
jsonArray = new JSONArray(dto.getINegOvertime());
|
||||||
|
break;
|
||||||
|
case THD_V:
|
||||||
|
jsonArray = new JSONArray(dto.getUaberranceOvertime());
|
||||||
|
break;
|
||||||
|
case HARMONIC_VOLTAGE:
|
||||||
|
collectHarmonicData(dto, "uharm", 2, 25, specialTargetList);
|
||||||
|
break;
|
||||||
|
case HARMONIC_CURRENT:
|
||||||
|
collectHarmonicData(dto, "iharm", 2, 25, specialTargetList);
|
||||||
|
break;
|
||||||
|
case INTERHARMONIC_VOLTAGE:
|
||||||
|
collectHarmonicData(dto, "inuharm", 1, 16, specialTargetList);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new BusinessException("未支持的指标类型: " + targetKey);
|
||||||
|
}
|
||||||
|
if (CollUtil.isNotEmpty(specialTargetList)) {
|
||||||
|
processSpecialTargets(specialTargetList, result, targetName);
|
||||||
|
} else {
|
||||||
|
dealJsonArr(jsonArray, result, targetName, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processAllTargets(DataLimitRateDetailDto dto, Map<String, DictData> targetMap,
|
||||||
|
List<DetailAbnormalVO.DetailLimitInnerVO> result) {
|
||||||
|
// 处理标准指标
|
||||||
|
processStandardTarget(dto, targetMap, DicDataEnum.VOLTAGE_DEV.getCode(), dto.getVoltageDevOvertime(), result);
|
||||||
|
processStandardTarget(dto, targetMap, DicDataEnum.FLICKER.getCode(), dto.getFlickerOvertime(), result);
|
||||||
|
processStandardTarget(dto, targetMap, DicDataEnum.phase_Voltage.getCode(), dto.getUbalanceOvertime(), result);
|
||||||
|
processStandardTarget(dto, targetMap, DicDataEnum.FREQUENCY_DEV.getCode(), dto.getFreqDevOvertime(), result);
|
||||||
|
processStandardTarget(dto, targetMap, DicDataEnum.NEG_CURRENT.getCode(), dto.getINegOvertime(), result);
|
||||||
|
processStandardTarget(dto, targetMap, DicDataEnum.THD_V.getCode(), dto.getUaberranceOvertime(), result);
|
||||||
|
|
||||||
|
// 处理谐波类指标
|
||||||
|
processHarmonicTarget(dto, targetMap, DicDataEnum.HARMONIC_VOLTAGE.getCode(), "uharm", 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);
|
||||||
|
}
|
||||||
|
private void processStandardTarget(DataLimitRateDetailDto dto, Map<String, DictData> targetMap,
|
||||||
|
String targetCode, String data,
|
||||||
|
List<DetailAbnormalVO.DetailLimitInnerVO> result) {
|
||||||
|
if (StrUtil.isNotBlank(data)) {
|
||||||
|
JSONArray jsonArray = new JSONArray(data);
|
||||||
|
String targetName = targetMap.get(targetCode).getName();
|
||||||
|
dealJsonArr(jsonArray, result, targetName, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processHarmonicTarget(DataLimitRateDetailDto dto, Map<String, DictData> targetMap,
|
||||||
|
String targetCode, String prefix, int start, int end,
|
||||||
|
List<DetailAbnormalVO.DetailLimitInnerVO> result) {
|
||||||
|
List<String> tempList = new ArrayList<>();
|
||||||
|
String targetName = targetMap.get(targetCode).getName();
|
||||||
|
collectHarmonicData(dto, prefix, start, end, tempList);
|
||||||
|
processSpecialTargets(tempList, result, targetName);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processSpecialTargets(List<String> specialTargetList, List<DetailAbnormalVO.DetailLimitInnerVO> result, String targetName) {
|
||||||
|
for (String strJson : specialTargetList) {
|
||||||
|
String[] temStr = strJson.split(SEPARATOR);
|
||||||
|
JSONArray jsonTem = new JSONArray(temStr[0]);
|
||||||
|
dealJsonArr(jsonTem, result, targetName, temStr[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理json数组
|
* 处理json数组
|
||||||
*/
|
*/
|
||||||
private void dealJsonArr(JSONArray jsonArray,List<DetailAbnormalVO.DetailLimitInnerVO> result,MonitorBaseParam monitorBaseParam,String count){
|
private void dealJsonArr(JSONArray jsonArray, List<DetailAbnormalVO.DetailLimitInnerVO> result, String targetName, String count) {
|
||||||
List<JsonBaseVO> jsonBaseVOList = jsonArray.toList(JsonBaseVO.class);
|
List<JsonBaseVO> jsonBaseVOList = jsonArray.toList(JsonBaseVO.class);
|
||||||
Map<String, List<JsonBaseVO>> jsonMap = jsonBaseVOList.stream().collect(Collectors.groupingBy(JsonBaseVO::getPhasic));
|
Map<String, List<JsonBaseVO>> jsonMap = jsonBaseVOList.stream().collect(Collectors.groupingBy(JsonBaseVO::getPhasic));
|
||||||
jsonMap.forEach((phasic, list) -> {
|
jsonMap.forEach((phasic, list) -> {
|
||||||
@@ -422,13 +512,13 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
vList.forEach(it -> {
|
vList.forEach(it -> {
|
||||||
String[] timeArr = it.getTime().split(StrUtil.COMMA);
|
String[] timeArr = it.getTime().split(StrUtil.COMMA);
|
||||||
String[] valArr = it.getValue().split(StrUtil.COMMA);
|
String[] valArr = it.getValue().split(StrUtil.COMMA);
|
||||||
for(int i = 0;i<timeArr.length;i++){
|
for (int i = 0; i < timeArr.length; i++) {
|
||||||
DetailAbnormalVO.DetailLimitInnerVO vo = new DetailAbnormalVO.DetailLimitInnerVO();
|
DetailAbnormalVO.DetailLimitInnerVO vo = new DetailAbnormalVO.DetailLimitInnerVO();
|
||||||
vo.setTime(timeArr[i]);
|
vo.setTime(timeArr[i]);
|
||||||
vo.setType(it.getValueType());
|
vo.setType(it.getValueType());
|
||||||
vo.setVal(valArr[i]);
|
vo.setVal(valArr[i]);
|
||||||
vo.setPhaseType(phasic);
|
vo.setPhaseType(phasic);
|
||||||
vo.setTargetName(StrUtil.isNotBlank(count) ? count+monitorBaseParam.getTargetKey():monitorBaseParam.getTargetKey());
|
vo.setTargetName(StrUtil.isNotBlank(count) ? count + "次" + targetName : targetName);
|
||||||
result.add(vo);
|
result.add(vo);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -437,8 +527,6 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private List<DataVerify> commQuery(List<String> monitorIds, MonitorBaseParam monitorBaseParam) {
|
private List<DataVerify> commQuery(List<String> monitorIds, MonitorBaseParam monitorBaseParam) {
|
||||||
LambdaQueryWrapper<DataVerify> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<DataVerify> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.between(DataVerify::getTime, DateUtil.beginOfDay(DateUtil.parse(monitorBaseParam.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(monitorBaseParam.getSearchEndTime())))
|
lambdaQueryWrapper.between(DataVerify::getTime, DateUtil.beginOfDay(DateUtil.parse(monitorBaseParam.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(monitorBaseParam.getSearchEndTime())))
|
||||||
@@ -515,13 +603,24 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
return verifyTargetVOList;
|
return verifyTargetVOList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void collectHarmonicData(DataLimitRateDetailDto dto, String prefix, int start, int end, List<String> result) {
|
||||||
|
for (int i = start; i <= end; i++) {
|
||||||
|
String fieldName = prefix + i + "Overtime";
|
||||||
|
String json = getFieldValueForDetail(dto, fieldName);
|
||||||
|
if (StrUtil.isNotBlank(json)) {
|
||||||
|
result.add(json + SEPARATOR + i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private Integer getFieldValue(DataLimitTargetDto dto, String fieldName) {
|
private Integer getFieldValue(DataLimitTargetDto dto, String fieldName) {
|
||||||
try {
|
try {
|
||||||
Field field = DataLimitTargetDto.class.getDeclaredField(fieldName);
|
Field field = DataLimitTargetDto.class.getDeclaredField(fieldName);
|
||||||
field.setAccessible(true);
|
field.setAccessible(true);
|
||||||
return (Integer) field.get(dto);
|
return (Integer) field.get(dto);
|
||||||
} catch (NoSuchFieldException | IllegalAccessException e) {
|
} catch (NoSuchFieldException | IllegalAccessException e) {
|
||||||
logger.error("反射方法异常:{}", e.getMessage());
|
logger.error("DataLimitTarget反射方法异常:{}", e.getMessage());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -532,7 +631,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
field.setAccessible(true);
|
field.setAccessible(true);
|
||||||
return (String) field.get(dto);
|
return (String) field.get(dto);
|
||||||
} catch (NoSuchFieldException | IllegalAccessException e) {
|
} catch (NoSuchFieldException | IllegalAccessException e) {
|
||||||
logger.error("反射方法异常:{}", e.getMessage());
|
logger.error("DataLimitRateDetail反射方法异常:{}", e.getMessage());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -547,7 +646,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
Collectors.mapping(DataLimitTargetDto::getLineId, Collectors.collectingAndThen(Collectors.toSet(), Set::size))));
|
Collectors.mapping(DataLimitTargetDto::getLineId, Collectors.collectingAndThen(Collectors.toSet(), Set::size))));
|
||||||
for (DateTime dateTime : ranged) {
|
for (DateTime dateTime : ranged) {
|
||||||
Map<String, Object> rangeMap = new HashMap<>();
|
Map<String, Object> rangeMap = new HashMap<>();
|
||||||
String time = DateUtil.format(dateTime,DATE_FORMAT);
|
String time = DateUtil.format(dateTime, DATE_FORMAT);
|
||||||
rangeMap.put("time", time);
|
rangeMap.put("time", time);
|
||||||
rangeMap.put("val", map.getOrDefault(time, 0));
|
rangeMap.put("val", map.getOrDefault(time, 0));
|
||||||
result.add(rangeMap);
|
result.add(rangeMap);
|
||||||
@@ -584,7 +683,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
Collectors.mapping(DataVerify::getLineId, Collectors.collectingAndThen(Collectors.toSet(), Set::size))));
|
Collectors.mapping(DataVerify::getLineId, Collectors.collectingAndThen(Collectors.toSet(), Set::size))));
|
||||||
for (DateTime dateTime : ranged) {
|
for (DateTime dateTime : ranged) {
|
||||||
Map<String, Object> rangeMap = new HashMap<>();
|
Map<String, Object> rangeMap = new HashMap<>();
|
||||||
String time = DateUtil.format(dateTime,DATE_FORMAT);
|
String time = DateUtil.format(dateTime, DATE_FORMAT);
|
||||||
rangeMap.put("time", time);
|
rangeMap.put("time", time);
|
||||||
rangeMap.put("val", map.getOrDefault(time, 0));
|
rangeMap.put("val", map.getOrDefault(time, 0));
|
||||||
result.add(rangeMap);
|
result.add(rangeMap);
|
||||||
@@ -619,8 +718,8 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
*/
|
*/
|
||||||
public List<VerifyTargetVO> getAbnormalTarget(List<DataVerify> dataVerifyList) {
|
public List<VerifyTargetVO> getAbnormalTarget(List<DataVerify> dataVerifyList) {
|
||||||
Map<String, Set<String>> dataMap = dataVerifyList.stream().collect(Collectors.groupingBy(it ->
|
Map<String, Set<String>> dataMap = dataVerifyList.stream().collect(Collectors.groupingBy(it ->
|
||||||
it.getIndexCode() +SEPARATOR+ it.getIndexTable(), Collectors.mapping(DataVerify::getLineId, Collectors.toSet())));
|
it.getIndexCode() + SEPARATOR + it.getIndexTable(), Collectors.mapping(DataVerify::getLineId, Collectors.toSet())));
|
||||||
Map<String,PqReasonableRangeDto> rangeMap = getStandRange();
|
Map<String, PqReasonableRangeDto> rangeMap = getStandRange();
|
||||||
//正序、负序和零序电压
|
//正序、负序和零序电压
|
||||||
List<VerifyTargetVO> result = new ArrayList<>();
|
List<VerifyTargetVO> result = new ArrayList<>();
|
||||||
dataMap.forEach((key, num) -> {
|
dataMap.forEach((key, num) -> {
|
||||||
@@ -637,27 +736,27 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
Map.Entry<String, PqReasonableRangeDto> entry = iterator.next();
|
Map.Entry<String, PqReasonableRangeDto> entry = iterator.next();
|
||||||
if (!vMap.containsKey(entry.getKey())) {
|
if (!vMap.containsKey(entry.getKey())) {
|
||||||
PqReasonableRangeDto dto = entry.getValue();
|
PqReasonableRangeDto dto = entry.getValue();
|
||||||
assembleEntity(new HashSet<>(),dto,result);
|
assembleEntity(new HashSet<>(), dto, result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result.stream().sorted(Comparator.comparing(VerifyTargetVO::getSort)).collect(Collectors.toList());
|
return result.stream().sorted(Comparator.comparing(VerifyTargetVO::getSort)).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*组装实体
|
* 组装实体
|
||||||
*/
|
*/
|
||||||
private void assembleEntity(Set<String> ids, PqReasonableRangeDto dto, List<VerifyTargetVO> result) {
|
private void assembleEntity(Set<String> ids, PqReasonableRangeDto dto, List<VerifyTargetVO> result) {
|
||||||
VerifyTargetVO verifyTargetVO = new VerifyTargetVO();
|
VerifyTargetVO verifyTargetVO = new VerifyTargetVO();
|
||||||
verifyTargetVO.setKey(dto.getIndexCode() +SEPARATOR+ dto.getInfluxdbTableName());
|
verifyTargetVO.setKey(dto.getIndexCode() + SEPARATOR + dto.getInfluxdbTableName());
|
||||||
verifyTargetVO.setTargetName(dto.getIndexName());
|
verifyTargetVO.setTargetName(dto.getIndexName());
|
||||||
verifyTargetVO.setIds(ids);
|
verifyTargetVO.setIds(ids);
|
||||||
verifyTargetVO.setRemark(dto.getRemark());
|
verifyTargetVO.setRemark(dto.getRemark());
|
||||||
verifyTargetVO.setSort(dto.getSort());
|
verifyTargetVO.setSort(dto.getSort());
|
||||||
String unit = "";
|
String unit = "";
|
||||||
if(StrUtil.isNotBlank(dto.getUnit())){
|
if (StrUtil.isNotBlank(dto.getUnit())) {
|
||||||
unit = dto.getUnit();
|
unit = dto.getUnit();
|
||||||
}
|
}
|
||||||
verifyTargetVO.setRangeDesc(dto.getMinValue()+unit + " ~ " + dto.getMaxValue()+unit);
|
verifyTargetVO.setRangeDesc(dto.getMinValue() + unit + " ~ " + dto.getMaxValue() + unit);
|
||||||
result.add(verifyTargetVO);
|
result.add(verifyTargetVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -665,11 +764,11 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
/**
|
/**
|
||||||
* 获取异常范围标准
|
* 获取异常范围标准
|
||||||
*/
|
*/
|
||||||
private Map<String, PqReasonableRangeDto> getStandRange(){
|
private Map<String, PqReasonableRangeDto> getStandRange() {
|
||||||
DataCleanParam dataCleanParam = new DataCleanParam();
|
DataCleanParam dataCleanParam = new DataCleanParam();
|
||||||
dataCleanParam.setSystemType(DataCleanEnum.Pqs.getCode());
|
dataCleanParam.setSystemType(DataCleanEnum.Pqs.getCode());
|
||||||
List<PqReasonableRangeDto> pqReasonableRangeDtoList = pqReasonableRangeFeignClient.getData(dataCleanParam).getData();
|
List<PqReasonableRangeDto> pqReasonableRangeDtoList = pqReasonableRangeFeignClient.getData(dataCleanParam).getData();
|
||||||
return pqReasonableRangeDtoList.stream().collect(Collectors.toMap(it -> it.getIndexCode() +SEPARATOR+ it.getInfluxdbTableName(), Function.identity()));
|
return pqReasonableRangeDtoList.stream().collect(Collectors.toMap(it -> it.getIndexCode() + SEPARATOR + it.getInfluxdbTableName(), Function.identity()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -678,35 +777,29 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
Map<String, List<DataVerify>> dataMap = dataVerifyList.stream().collect(Collectors.groupingBy(DataVerify::getLineId));
|
Map<String, List<DataVerify>> dataMap = dataVerifyList.stream().collect(Collectors.groupingBy(DataVerify::getLineId));
|
||||||
dataMap.forEach((key, list) -> {
|
dataMap.forEach((key, list) -> {
|
||||||
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);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public List<PowerQualityIndicatorsVO> getLimitTable(List<DataLimitTargetDto> dataVerifyList, MonitorBaseParam monitorBaseParam) {
|
public List<PowerQualityIndicatorsVO> getLimitTable(List<DataLimitTargetDto> dataVerifyList, MonitorBaseParam monitorBaseParam) {
|
||||||
List<PowerQualityIndicatorsVO> result = new ArrayList<>();
|
List<PowerQualityIndicatorsVO> result = new ArrayList<>();
|
||||||
Map<String, List<DataLimitTargetDto>> dataMap = dataVerifyList.stream().collect(Collectors.groupingBy(DataLimitTargetDto::getLineId));
|
Map<String, List<DataLimitTargetDto>> dataMap = dataVerifyList.stream().collect(Collectors.groupingBy(DataLimitTargetDto::getLineId));
|
||||||
dataMap.forEach((key, list) -> {
|
dataMap.forEach((key, list) -> {
|
||||||
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);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断测点是否存在连续异常数据
|
* 判断测点是否存在连续异常数据
|
||||||
*/
|
*/
|
||||||
private void processTable(MonitorBaseParam monitorBaseParam,List<LocalDate> dateList,List<PowerQualityIndicatorsVO> result,String lineId) {
|
private void processTable(MonitorBaseParam monitorBaseParam, List<LocalDate> dateList, List<PowerQualityIndicatorsVO> result, String lineId) {
|
||||||
Integer warnDay = monitorBaseParam.getWarnDayLimit();
|
Integer warnDay = monitorBaseParam.getWarnDayLimit();
|
||||||
Integer alarmDay = monitorBaseParam.getAlarmDayLimit();
|
Integer alarmDay = monitorBaseParam.getAlarmDayLimit();
|
||||||
//检查是否有连续指定天数的告警
|
//检查是否有连续指定天数的告警
|
||||||
@@ -725,7 +818,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void dealTableResult(List<PowerQualityIndicatorsVO> result){
|
private void dealTableResult(List<PowerQualityIndicatorsVO> result) {
|
||||||
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()));
|
||||||
@@ -758,6 +851,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查日期列表中是否存在连续指定天数的异常
|
* 检查日期列表中是否存在连续指定天数的异常
|
||||||
|
*
|
||||||
* @param dateList 日期列表(已排序)
|
* @param dateList 日期列表(已排序)
|
||||||
* @param day 连续天数阈值
|
* @param day 连续天数阈值
|
||||||
* @return 是否存在连续异常
|
* @return 是否存在连续异常
|
||||||
@@ -779,6 +873,4 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import java.util.Map;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface LargeScreenMapper {
|
public interface LargeScreenMapper {
|
||||||
|
|
||||||
Map<String, Object> selectDownCount(@Param("lineIds") List<String> lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
Integer selectDownCount(@Param("lineIds") List<String> lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||||
|
|
||||||
List<Map<String, Object>> selectLoadTypeCount(@Param("lineIds") List<String> lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
List<Map<String, Object>> selectLoadTypeCount(@Param("lineIds") List<String> lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.njcn.event.mapper.majornetwork.LargeScreenMapper">
|
<mapper namespace="com.njcn.event.mapper.majornetwork.LargeScreenMapper">
|
||||||
|
|
||||||
<select id="selectDownCount" resultType="java.util.Map">
|
<select id="selectDownCount" resultType="java.lang.Integer">
|
||||||
select
|
select
|
||||||
count(ed.event_id) "count"
|
count(ed.event_id) "COUNT"
|
||||||
from r_mp_event_detail ed
|
from r_mp_event_detail ed
|
||||||
where
|
where
|
||||||
ed.measurement_point_id in
|
ed.measurement_point_id in
|
||||||
|
|||||||
@@ -86,83 +86,36 @@ public class AreaLineServiceImpl implements AreaLineService {
|
|||||||
List<List<Object>> listObject = new ArrayList<>();
|
List<List<Object>> listObject = new ArrayList<>();
|
||||||
// 获取暂降监测点
|
// 获取暂降监测点
|
||||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData();
|
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData();
|
||||||
List<String> lineIndexs;
|
List<String> lineIds = generalDeviceDTOList.stream().flatMap(x -> x.getLineIndexes().stream()).collect(Collectors.toList());
|
||||||
|
List<AreaLineInfoVO> lineDetails = lineFeignClient.getBaseLineAreaInfo(lineIds).getData();
|
||||||
List<SubstationDetailVO> substationDetailVOList = new ArrayList<>();
|
List<SubstationDetailVO> substationDetailVOList = new ArrayList<>();
|
||||||
// 获取所有终端信息
|
// 获取所有终端信息
|
||||||
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
|
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
|
||||||
List<Object> objectList = new ArrayList<>();
|
List<Object> objectList = new ArrayList<>();
|
||||||
List<String> subIndexs;
|
List<AreaLineInfoVO> areaLineInfoVOS = lineDetails.stream().filter(x -> generalDeviceDTO.getLineIndexes().contains(x.getLineId())).collect(Collectors.toList());
|
||||||
subIndexs = generalDeviceDTO.getSubIndexes();
|
Map<String, List<AreaLineInfoVO>> subMap = areaLineInfoVOS.stream().collect(Collectors.groupingBy(x->x.getSubId()+"_"+x.getSubName()));
|
||||||
lineIndexs = generalDeviceDTO.getLineIndexes();
|
subMap.forEach((key,value)->{
|
||||||
// 通讯正常个数
|
int j = 0;
|
||||||
int stateZc = 0;
|
// 总的监测点个数
|
||||||
// 通讯中断个数
|
for (AreaLineInfoVO line : value) {
|
||||||
int stateZd = 0;
|
SubstationDetailVO substationDetail = new SubstationDetailVO();
|
||||||
// 总次数
|
substationDetail.setId(line.getLineId());
|
||||||
int tail = 0;
|
substationDetail.setSrbName(line.getLineName());
|
||||||
|
substationDetail.setSubName(line.getSubName());
|
||||||
String color = "";
|
substationDetail.setCoordY(line.getLng().floatValue() + 0.0035 * Math.cos(2 * Math.PI * j / value.size()));
|
||||||
List<SubstationDetailVO> substationDetailVOS = new ArrayList<>();
|
substationDetail.setCoordX(line.getLat().floatValue() + 0.0035 * Math.sin(2 * Math.PI * j / value.size()));
|
||||||
if (subIndexs.size() > 0) {
|
substationDetail.setColor(line.getComFlag() == 1?"green":"red");
|
||||||
List<LineDeviceStateVO> lineList = lineFeignClient.getAllLine(lineIndexs).getData();
|
substationDetailVOList.add(substationDetail);
|
||||||
substationDetailVOS = lineFeignClient.getSubstationData(subIndexs).getData();
|
j++;
|
||||||
for (int i = 0; i < substationDetailVOS.size(); i++) {
|
|
||||||
List<LineDeviceStateVO> list = new ArrayList<>();
|
|
||||||
list.addAll(lineList);
|
|
||||||
Iterator<LineDeviceStateVO> iterator = list.listIterator();
|
|
||||||
// 获取监测点
|
|
||||||
while (iterator.hasNext()) {
|
|
||||||
LineDeviceStateVO line = iterator.next();
|
|
||||||
String[] ids = line.getPids().split(",");
|
|
||||||
if (!ids[3].equals(substationDetailVOS.get(i).getId())) {
|
|
||||||
iterator.remove();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
List<LineDeviceStateVO> lineDataVOList = list;
|
|
||||||
// 通讯正常个数
|
|
||||||
int stateTrue;
|
|
||||||
stateTrue = 0;
|
|
||||||
// 通讯中断个数
|
|
||||||
int stateFalse = 0;
|
|
||||||
// 次数
|
|
||||||
double r = 0.0035;
|
|
||||||
|
|
||||||
int j = 0;
|
|
||||||
// 总的监测点个数
|
|
||||||
int lineTail = lineDataVOList.size();
|
|
||||||
for (LineDeviceStateVO lineDataVO : lineDataVOList) {
|
|
||||||
if (lineDataVO.getState() == 1) {
|
|
||||||
stateTrue++;
|
|
||||||
color = "green";
|
|
||||||
} else {
|
|
||||||
stateFalse++;
|
|
||||||
color = "red";
|
|
||||||
}
|
|
||||||
SubstationDetailVO substationDetail = new SubstationDetailVO();
|
|
||||||
substationDetail.setId(lineDataVO.getId());
|
|
||||||
substationDetail.setSrbName(lineDataVO.getName());
|
|
||||||
substationDetail.setSubName(lineDataVO.getSubName());
|
|
||||||
substationDetail.setCoordY(substationDetailVOS.get(i).getCoordY().floatValue() + r * Math.cos(2 * Math.PI * j / lineTail));
|
|
||||||
substationDetail.setCoordX(substationDetailVOS.get(i).getCoordX().floatValue() + r * Math.sin(2 * Math.PI * j / lineTail));
|
|
||||||
substationDetail.setColor(color);
|
|
||||||
substationDetailVOList.add(substationDetail);
|
|
||||||
j++;
|
|
||||||
}
|
|
||||||
stateZc += stateTrue;
|
|
||||||
stateZd += stateFalse;
|
|
||||||
tail += lineTail;
|
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
// 获取变电站
|
// 获取变电站
|
||||||
substationDetailVOList.addAll(substationDetailVOS);
|
areaLineVO.setSubstationDetailVOList(substationDetailVOList);
|
||||||
if (lineIndexs.size() > 0) {
|
objectList.add(generalDeviceDTO.getName());
|
||||||
areaLineVO.setSubstationDetailVOList(substationDetailVOList);
|
objectList.add(areaLineInfoVOS.stream().filter(x->x.getComFlag()==1).count());
|
||||||
objectList.add(generalDeviceDTO.getName());
|
objectList.add(areaLineInfoVOS.stream().filter(x->x.getComFlag()==0).count());
|
||||||
objectList.add(tail);
|
objectList.add(areaLineInfoVOS.size());
|
||||||
objectList.add(stateZc);
|
listObject.add(objectList);
|
||||||
objectList.add(stateZd);
|
|
||||||
listObject.add(objectList);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
areaLineVO.setAreaValue(listObject);
|
areaLineVO.setAreaValue(listObject);
|
||||||
return areaLineVO;
|
return areaLineVO;
|
||||||
@@ -208,8 +161,7 @@ public class AreaLineServiceImpl implements AreaLineService {
|
|||||||
List<AreaLineInfoVO> ev = new ArrayList<>();
|
List<AreaLineInfoVO> ev = new ArrayList<>();
|
||||||
Integer count = info.stream()
|
Integer count = info.stream()
|
||||||
.filter(obj -> obj.getMeasurementPointId().equals( areaLineInfoVO.getLineId()))
|
.filter(obj -> obj.getMeasurementPointId().equals( areaLineInfoVO.getLineId()))
|
||||||
.mapToInt(RmpEventDetailPO::getFileFlag)
|
.collect(Collectors.toList()).size();
|
||||||
.sum();
|
|
||||||
tail+=count;
|
tail+=count;
|
||||||
areaLineInfoVO.setTail(count);
|
areaLineInfoVO.setTail(count);
|
||||||
ev.add(areaLineInfoVO);
|
ev.add(areaLineInfoVO);
|
||||||
|
|||||||
@@ -83,12 +83,10 @@ public class LargeScreenServiceImpl implements LargeScreenService {
|
|||||||
param.setSize(0);
|
param.setSize(0);
|
||||||
list.add(param);
|
list.add(param);
|
||||||
} else {
|
} else {
|
||||||
Map<String, Object> map = largeScreenMapper.selectDownCount(generalDeviceDTO.getLineIndexes(), largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
|
int count = largeScreenMapper.selectDownCount(generalDeviceDTO.getLineIndexes(), largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
|
||||||
MonitoringPointScaleParam param = new MonitoringPointScaleParam();
|
MonitoringPointScaleParam param = new MonitoringPointScaleParam();
|
||||||
param.setName(generalDeviceDTO.getName());
|
param.setName(generalDeviceDTO.getName());
|
||||||
param.setIndex(generalDeviceDTO.getIndex());
|
param.setIndex(generalDeviceDTO.getIndex());
|
||||||
String s = map.get("count").toString();
|
|
||||||
int count = Integer.parseInt(s);
|
|
||||||
param.setCount(count);
|
param.setCount(count);
|
||||||
param.setSize(generalDeviceDTO.getLineIndexes().size());
|
param.setSize(generalDeviceDTO.getLineIndexes().size());
|
||||||
list.add(param);
|
list.add(param);
|
||||||
@@ -96,27 +94,6 @@ public class LargeScreenServiceImpl implements LargeScreenService {
|
|||||||
}
|
}
|
||||||
result.setParam(list);
|
result.setParam(list);
|
||||||
return result;
|
return result;
|
||||||
/* //获取所有监测点集合
|
|
||||||
List<String> lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList());
|
|
||||||
List<Map<String, Object>> maps = largeScreenMapper.selectDownCount(lineIds);
|
|
||||||
|
|
||||||
Map<String,Integer> countMap = new HashMap<>();
|
|
||||||
for (Map<String, Object> map : maps) {
|
|
||||||
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
|
|
||||||
for (String lineIndex : generalDeviceDTO.getLineIndexes()) {
|
|
||||||
if (map.get("id").equals(lineIndex)){
|
|
||||||
if(countMap.containsKey(generalDeviceDTO.getName())){
|
|
||||||
countMap.put(generalDeviceDTO.getName(),countMap.get(generalDeviceDTO.getName())+1);
|
|
||||||
break;
|
|
||||||
}else {
|
|
||||||
countMap.put(generalDeviceDTO.getName(),1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user