异常数据功能调整

This commit is contained in:
2025-07-08 13:49:41 +08:00
parent 4072cc7517
commit 8a353ac9a4
6 changed files with 70 additions and 26 deletions

View File

@@ -16,7 +16,9 @@ import java.time.LocalDateTime;
@Data
@ApiModel
public class LineDetailDataVO {
private String lineId;
@ApiModelProperty(name = "id",value = "监测点序号")
private Integer id;
@@ -83,6 +85,9 @@ public class LineDetailDataVO {
@ApiModelProperty(name = "dealCapacity",value = "用户协议容量MVA")
private Float dealCapacity;
@ApiModelProperty(name = "powerFlag",value = "电网标志0-电网侧1-非电网侧)")
private Integer powerFlag;
/**
* 测量间隔1-10分钟
*/

View File

@@ -16,6 +16,8 @@ public class DetailAbnormalVO {
private String monitorName;
private String bdName;
private String timeSum;
private String errCount;

View File

@@ -456,6 +456,9 @@ public interface LineMapper extends BaseMapper<Line> {
*/
List<LineDevGetDTO> getMonitorListDetail(@Param("monitorIds") List<String> monitorIds);
List<LineDetailDataVO> getLineDetailDataVO(@Param("monitorIds") List<String> monitorIds);
/**
* 根据条件进行监测筛选出监测点id
*

View File

@@ -1202,6 +1202,26 @@
</select>
<select id="getLineDetailDataVO" resultType="com.njcn.device.pq.pojo.vo.LineDetailDataVO">
select line.id lineId,
line.name lineName,
dev.id devId,
station.name bdName,
lineDetail.Time_Interval as timeInterval,
lineDetail.obj_name as objName,
lineDetail.Power_Flag as powerFlag
from pq_line line
inner join pq_line_detail lineDetail on line.id = lineDetail.id
inner join pq_line subv on line.pid = subv.id
inner join pq_line dev on subv.pid = dev.id
inner join pq_line station on dev.pid = station.id
where line.id in
<foreach collection="monitorIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
<select id="getLineByIDs" resultType="java.lang.String">
SELECT DISTINCT
line.id

View File

@@ -37,6 +37,7 @@ import com.njcn.device.pq.pojo.po.DataVerify;
import com.njcn.device.pq.pojo.po.Line;
import com.njcn.device.pq.pojo.po.LineDetail;
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
import com.njcn.device.pq.pojo.vo.dataClean.*;
import com.njcn.device.pq.service.CommTerminalService;
import com.njcn.device.pq.service.IDataVerifyService;
@@ -257,8 +258,8 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
@Override
public List<DetailAbnormalVO> monitorLimitTable(MonitorBaseParam monitorBaseParam) {
List<DetailAbnormalVO> result = new ArrayList<>();
List<LineDevGetDTO> lineDetailList = lineMapper.getMonitorListDetail(monitorBaseParam.getMonitorIds());
Map<String, LineDevGetDTO> lineDetailMap = lineDetailList.stream().collect(Collectors.toMap(LineDevGetDTO::getPointId, Function.identity()));
List<LineDetailDataVO> lineDetailList = lineMapper.getLineDetailDataVO(monitorBaseParam.getMonitorIds());
Map<String, LineDetailDataVO> lineDetailMap = lineDetailList.stream().collect(Collectors.toMap(LineDetailDataVO::getLineId, Function.identity()));
LineCountEvaluateParam lineCountEvaluateParam = new LineCountEvaluateParam();
lineCountEvaluateParam.setLineId(monitorBaseParam.getMonitorIds());
@@ -270,7 +271,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
limitMap.forEach((date, list) -> {
Map<String, DataLimitRateDetailDto> map = list.stream().collect(Collectors.toMap(DataLimitRateDetailDto::getLineId, Function.identity()));
map.forEach((lineId, line) -> {
LineDevGetDTO lineInfoVO = lineDetailMap.get(lineId);
LineDetailDataVO lineInfoVO = lineDetailMap.get(lineId);
Integer timeInterval = lineInfoVO.getTimeInterval();
Set<String> timeSet = new HashSet<>();
List<String> specialTargetList = new ArrayList<>();
@@ -364,20 +365,25 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
});
}
} else {
JSONArray jsonArray = new JSONArray(jonsStr);
List<JsonBaseVO> jsonBaseVOList = jsonArray.toList(JsonBaseVO.class);
jsonBaseVOList.forEach(it -> {
timeSet.addAll(Arrays.asList(it.getTime().split(StrUtil.COMMA)));
});
if(StrUtil.isNotBlank(jonsStr)){
JSONArray jsonArray = new JSONArray(jonsStr);
List<JsonBaseVO> jsonBaseVOList = jsonArray.toList(JsonBaseVO.class);
jsonBaseVOList.forEach(it -> {
timeSet.addAll(Arrays.asList(it.getTime().split(StrUtil.COMMA)));
});
}
}
DetailAbnormalVO detailAbnormalVO = new DetailAbnormalVO();
detailAbnormalVO.setMonitorId(lineId);
detailAbnormalVO.setDate(date.format(DATE_FORMAT));
detailAbnormalVO.setMonitorName(lineInfoVO.getPointName());
detailAbnormalVO.setTimeSum("");
detailAbnormalVO.setTargetKey(monitorBaseParam.getTargetKey());
result.add(detailAbnormalVO);
if(timeSet.size()>0){
DetailAbnormalVO detailAbnormalVO = new DetailAbnormalVO();
detailAbnormalVO.setMonitorId(lineId);
detailAbnormalVO.setDate(date.format(DATE_FORMAT));
detailAbnormalVO.setMonitorName(lineInfoVO.getLineName());
detailAbnormalVO.setBdName(lineInfoVO.getBdName());
detailAbnormalVO.setTimeSum(String.valueOf(timeInterval*timeSet.size()));
detailAbnormalVO.setTargetKey(monitorBaseParam.getTargetKey());
result.add(detailAbnormalVO);
}
});
});
return result;
@@ -427,7 +433,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
case FLICKER:
jsonArray = new JSONArray(dto.getFlickerOvertime());
break;
case phase_Voltage:
case PHASE_VOLTAGE:
jsonArray = new JSONArray(dto.getUbalanceOvertime());
break;
case FREQUENCY_DEV:

View File

@@ -18,14 +18,17 @@ import com.njcn.dataProcess.enums.DataCleanEnum;
import com.njcn.dataProcess.param.DataCleanParam;
import com.njcn.dataProcess.pojo.dto.PqReasonableRangeDto;
import com.njcn.device.biz.enums.DeviceResponseEnum;
import com.njcn.device.biz.enums.LineFlagEnum;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.pq.constant.Param;
import com.njcn.device.pq.enums.LineBaseEnum;
import com.njcn.device.pq.mapper.LineMapper;
import com.njcn.device.pq.mapper.PqDataVerifyBakMapper;
import com.njcn.device.pq.pojo.param.dataClean.MonitorBaseParam;
import com.njcn.device.pq.pojo.po.DataVerify;
import com.njcn.device.pq.pojo.po.PqDataVerifyBak;
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
import com.njcn.device.pq.pojo.vo.dataClean.DetailAbnormalVO;
import com.njcn.device.pq.pojo.vo.dataClean.PowerQualityIndicatorsVO;
import com.njcn.device.pq.pojo.vo.dataClean.VerifyMonitorVO;
@@ -184,10 +187,9 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
throw new BusinessException("targetKey异常参数!");
}
}
//查询台账
List<LineDevGetDTO> lineDetailList = lineMapper.getMonitorListDetail(monitorBaseParam.getMonitorIds());
Map<String, LineDevGetDTO> lineDetailMap = lineDetailList.stream().collect(Collectors.toMap(LineDevGetDTO::getPointId, Function.identity()));
List<LineDetailDataVO> lineDetailList = lineMapper.getLineDetailDataVO(monitorBaseParam.getMonitorIds());
Map<String, LineDetailDataVO> lineDetailMap = lineDetailList.stream().collect(Collectors.toMap(LineDetailDataVO::getLineId, Function.identity()));
LambdaQueryWrapper<PqDataVerifyBak> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.between(PqDataVerifyBak::getTimeId, DateUtil.beginOfDay(DateUtil.parse(monitorBaseParam.getSearchBeginTime())),
@@ -216,7 +218,6 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
case Param.vl_dev:
lambdaQueryWrapper.eq(PqDataVerifyBak::getVlDev,1);
break;
case Param.rms_i:
lambdaQueryWrapper.eq(PqDataVerifyBak::getIRms,1);
break;
@@ -269,6 +270,13 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
}
List<PqDataVerifyBak> dataVerifyList = this.list(lambdaQueryWrapper);
for (PqDataVerifyBak pqDataVerifyBak : dataVerifyList) {
LineDetailDataVO lineDevGetDTO = lineDetailMap.get(pqDataVerifyBak.getLineId());
String temBgName = "";
if(lineDevGetDTO.getPowerFlag().equals(LineBaseEnum.POWER_FLAG.getCode())){
temBgName = lineDevGetDTO.getBdName();
}else if(lineDevGetDTO.getPowerFlag().equals(LineBaseEnum.POWER_FLAG_NOT.getCode())) {
temBgName = lineDevGetDTO.getObjName();
}
try (InputStream fileStream = fileStorageUtil.getFileStream(pqDataVerifyBak.getPath())) {
JSONArray jsonArray = new JSONArray(new JSONTokener(fileStream, new JSONConfig()));
String[] errorTimeCount = {"0"};
@@ -324,22 +332,22 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
}
});
DetailAbnormalVO detailAbnormalVO = new DetailAbnormalVO();
LineDevGetDTO lineDevGetDTO = lineDetailMap.get(pqDataVerifyBak.getLineId());
detailAbnormalVO.setTimeSum(errorTimeCount[0]);
detailAbnormalVO.setDate(pqDataVerifyBak.getTimeId().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
detailAbnormalVO.setMonitorName(lineDevGetDTO.getPointName());
detailAbnormalVO.setMonitorId(lineDevGetDTO.getPointId());
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();
LineDevGetDTO lineDevGetDTO = lineDetailMap.get(pqDataVerifyBak.getLineId());
detailAbnormalVO.setTimeSum("/");
detailAbnormalVO.setDate(pqDataVerifyBak.getTimeId().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
detailAbnormalVO.setMonitorName(lineDevGetDTO.getPointName());
detailAbnormalVO.setMonitorId(lineDevGetDTO.getPointId());
detailAbnormalVO.setMonitorName(lineDevGetDTO.getLineName());
detailAbnormalVO.setBdName(temBgName);
detailAbnormalVO.setMonitorId(lineDevGetDTO.getLineId());
detailAbnormalVO.setTargetKey(monitorBaseParam.getTargetKey());
result.add(detailAbnormalVO);
} catch (Exception e) {