...
This commit is contained in:
@@ -17,6 +17,7 @@ public interface THDistortionService {
|
||||
|
||||
/**
|
||||
* 功能描述: 获取谐波总畸变率
|
||||
*
|
||||
* @param thDistortionParam
|
||||
* @return
|
||||
*/
|
||||
@@ -25,16 +26,18 @@ public interface THDistortionService {
|
||||
|
||||
/**
|
||||
* 功能描述: 获取总畸变率图表
|
||||
*
|
||||
* @param thDistortionCensusParam
|
||||
* @return
|
||||
*/
|
||||
THDistortionCensusVO getTHDistortionCensus(DeviceInfoParam.BusinessParam thDistortionCensusParam);
|
||||
|
||||
/**
|
||||
* @Description: 谐波总畸变率前topNum列表
|
||||
* @Param: [statisticsBizBaseParam]
|
||||
* @return: java.util.List<com.njcn.harmonic.pojo.vo.RMpVThdVO>
|
||||
* @Author: clam
|
||||
* @Date: 2022/11/7
|
||||
*/
|
||||
List<RMpVThdVO> getTHDTopTenData(StatisticsBizBaseParam statisticsBizBaseParam,Integer topNum);
|
||||
* @Description: 谐波总畸变率前topNum列表
|
||||
* @Param: [statisticsBizBaseParam]
|
||||
* @return: java.util.List<com.njcn.harmonic.pojo.vo.RMpVThdVO>
|
||||
* @Author: clam
|
||||
* @Date: 2022/11/7
|
||||
*/
|
||||
List<RMpVThdVO> getTHDTopTenData(StatisticsBizBaseParam statisticsBizBaseParam, Integer topNum);
|
||||
}
|
||||
|
||||
@@ -57,6 +57,7 @@ public class THDistortionServiceImpl implements THDistortionService {
|
||||
private final RMpVThdMapper rMpVThdMapper;
|
||||
private final LineFeignClient lineFeignClient;
|
||||
private final IRStatDataVDService statDataVDService;
|
||||
|
||||
@Override
|
||||
public List<THDistortionVO> getTHDistortionData(DeviceInfoParam.BusinessParam thDistortionParam) {
|
||||
List<THDistortionVO> thDistortionVOS = new ArrayList<>();
|
||||
@@ -72,7 +73,7 @@ public class THDistortionServiceImpl implements THDistortionService {
|
||||
THDistortionVO thDistortionVO = new THDistortionVO();
|
||||
thDistortionVO.setId(generalDeviceDTO.getIndex());
|
||||
thDistortionVO.setName(generalDeviceDTO.getName());
|
||||
if (!CollectionUtils.isEmpty(generalDeviceDTO.getLineIndexes())){
|
||||
if (!CollectionUtils.isEmpty(generalDeviceDTO.getLineIndexes())) {
|
||||
List<String> lineIndexes = generalDeviceDTO.getLineIndexes();
|
||||
|
||||
//查找畸变率
|
||||
@@ -121,33 +122,33 @@ public class THDistortionServiceImpl implements THDistortionService {
|
||||
* @Date: 2022/10/10
|
||||
*/
|
||||
@Override
|
||||
public List<RMpVThdVO> getTHDTopTenData(StatisticsBizBaseParam statisticsBizBaseParam,Integer topNum) {
|
||||
public List<RMpVThdVO> getTHDTopTenData(StatisticsBizBaseParam statisticsBizBaseParam, Integer topNum) {
|
||||
|
||||
List<RMpVThdVO> rMpVThdVOList = new ArrayList<> ();
|
||||
DeviceInfoParam deviceInfoParam = new DeviceInfoParam ();
|
||||
deviceInfoParam.setDeptIndex (statisticsBizBaseParam.getId ());
|
||||
deviceInfoParam.setStatisticalType (new SimpleDTO ());
|
||||
deviceInfoParam.setServerName (generalInfo.getMicroServiceName());
|
||||
deviceInfoParam.setPowerFlag (0);
|
||||
deviceInfoParam.setMonitorFlag (0);
|
||||
List<RMpVThdVO> rMpVThdVOList = new ArrayList<>();
|
||||
DeviceInfoParam deviceInfoParam = new DeviceInfoParam();
|
||||
deviceInfoParam.setDeptIndex(statisticsBizBaseParam.getId());
|
||||
deviceInfoParam.setStatisticalType(new SimpleDTO());
|
||||
deviceInfoParam.setServerName(generalInfo.getMicroServiceName());
|
||||
deviceInfoParam.setPowerFlag(0);
|
||||
deviceInfoParam.setMonitorFlag(0);
|
||||
/*获取按部门分类的实际所有终端综合信息*/
|
||||
List<GeneralDeviceDTO> deviceList = generalDeviceInfoClient.getPracticalAllDeviceInfoAsDept (deviceInfoParam).getData ();
|
||||
List<GeneralDeviceDTO> deviceList = generalDeviceInfoClient.getPracticalAllDeviceInfoAsDept(deviceInfoParam).getData();
|
||||
/*监测点ID扁平化*/
|
||||
List<String> collect = deviceList.stream ( ).map (GeneralDeviceDTO::getLineIndexes).flatMap (Collection::stream).distinct ( ).collect (Collectors.toList ( ));
|
||||
List<String> collect = deviceList.stream().map(GeneralDeviceDTO::getLineIndexes).flatMap(Collection::stream).distinct().collect(Collectors.toList());
|
||||
QueryWrapper<RMpVThd> wrapper = new QueryWrapper<>();
|
||||
wrapper.in ("measurement_point_id",collect)
|
||||
.between ("data_date", statisticsBizBaseParam.getStartTime (), statisticsBizBaseParam.getEndTime ())
|
||||
.eq("data_type",1)
|
||||
.orderByDesc ("v_thd");
|
||||
List<RMpVThd> rMpVThdList = rMpVThdMapper.selectList (wrapper);
|
||||
rMpVThdVOList = rMpVThdList.stream ( ).limit (topNum).map (rMpVThd -> {
|
||||
RMpVThdVO rMpVThdVO = new RMpVThdVO ( );
|
||||
BeanUtils.copyProperties (rMpVThd, rMpVThdVO);
|
||||
wrapper.in("measurement_point_id", collect)
|
||||
.between("data_date", statisticsBizBaseParam.getStartTime(), statisticsBizBaseParam.getEndTime())
|
||||
.eq("data_type", 1)
|
||||
.orderByDesc("v_thd");
|
||||
List<RMpVThd> rMpVThdList = rMpVThdMapper.selectList(wrapper);
|
||||
rMpVThdVOList = rMpVThdList.stream().limit(topNum).map(rMpVThd -> {
|
||||
RMpVThdVO rMpVThdVO = new RMpVThdVO();
|
||||
BeanUtils.copyProperties(rMpVThd, rMpVThdVO);
|
||||
/*查询监测点详情获取名称*/
|
||||
LineDetailDataVO data = lineFeignClient.getLineDetailData (rMpVThd.getMeasurementPointId ( )).getData ( );
|
||||
rMpVThdVO.setName (data.getLineName ());
|
||||
LineDetailDataVO data = lineFeignClient.getLineDetailData(rMpVThd.getMeasurementPointId()).getData();
|
||||
rMpVThdVO.setName(data.getLineName());
|
||||
return rMpVThdVO;
|
||||
}).collect (Collectors.toList ( ));
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
return rMpVThdVOList;
|
||||
}
|
||||
@@ -174,6 +175,7 @@ public class THDistortionServiceImpl implements THDistortionService {
|
||||
private List<THDistortionVO> getChildCategoryList(THDistortionVO item, List<THDistortionVO> child) {
|
||||
return child.stream().filter(allItem -> allItem.getPid().equals(item.getId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private void setChildesList(List<THDistortionVO> item, List<THDistortionVO> childes) {
|
||||
//groupLine变电站索引和监测点集合
|
||||
Map<String, List<THDistortionVO>> groupLine;
|
||||
@@ -215,7 +217,7 @@ public class THDistortionServiceImpl implements THDistortionService {
|
||||
// busBarList.stream().peek(item -> item.setChildren(getChildCategoryList(item, monitorList))).collect(Collectors.toList());
|
||||
// deviceList.stream().peek(item -> item.setChildren(getChildCategoryList(item, busBarList))).collect(Collectors.toList());
|
||||
// substationList.stream().peek(item -> item.setChildren(getChildesList(item, monitorList))).collect(Collectors.toList());
|
||||
setChildesList(substationList,monitorList);
|
||||
setChildesList(substationList, monitorList);
|
||||
setFatherDistortion(substationList);
|
||||
powerCompanyList.stream().peek(item -> item.setChildren(getChildCategoryList(item, substationList))).collect(Collectors.toList());
|
||||
setFatherDistortion(powerCompanyList);
|
||||
@@ -227,13 +229,14 @@ public class THDistortionServiceImpl implements THDistortionService {
|
||||
|
||||
/**
|
||||
* influxDB查询畸变率
|
||||
*
|
||||
* @param lineIndexes
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
*/
|
||||
private List<PublicDTO> getCondition(List<String> lineIndexes, String startTime, String endTime) {
|
||||
List<PublicDTO> publicDTOList = new ArrayList<>();
|
||||
List<String> phasicType=new ArrayList<>();
|
||||
List<String> phasicType = new ArrayList<>();
|
||||
phasicType.add(Param.PHASIC_TYPEA);
|
||||
phasicType.add(Param.PHASIC_TYPEB);
|
||||
phasicType.add(Param.PHASIC_TYPEC);
|
||||
@@ -247,11 +250,11 @@ public class THDistortionServiceImpl implements THDistortionService {
|
||||
.in(RStatDataVD::getPhasicType, phasicType)
|
||||
.eq(RStatDataVD::getValueType, Param.VALUE_TYPEAVG)
|
||||
);
|
||||
if (CollUtil.isNotEmpty(info)){
|
||||
if (CollUtil.isNotEmpty(info)) {
|
||||
//根据id分组,先乘以100.在取平均值,在四舍五入
|
||||
Map<String, Double> vthdMap = info.stream().filter(x-> x.getVThd()!=null).collect(Collectors.groupingBy(RStatDataVD::getLineId,
|
||||
Collectors.averagingDouble(x->x.getVThd().multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue())));
|
||||
PublicDTO publicDTO ;
|
||||
Map<String, Double> vthdMap = info.stream().filter(x -> x.getVThd() != null).collect(Collectors.groupingBy(RStatDataVD::getLineId,
|
||||
Collectors.averagingDouble(x -> x.getVThd().multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue())));
|
||||
PublicDTO publicDTO;
|
||||
for (Map.Entry<String, Double> entry : vthdMap.entrySet()) {
|
||||
publicDTO = new PublicDTO();
|
||||
publicDTO.setId(entry.getKey());
|
||||
@@ -260,43 +263,6 @@ public class THDistortionServiceImpl implements THDistortionService {
|
||||
}
|
||||
}
|
||||
return publicDTOList;
|
||||
|
||||
//组装sql语句
|
||||
// StringBuilder string = new StringBuilder();
|
||||
// string.append(Param.QualityFlag + "='1' and (" + Param.PHASIC_TYPE + "='" + Param.PHASIC_TYPEA + "' or " + Param.PHASIC_TYPE + "='" + Param.PHASIC_TYPEB + "' or " + Param.PHASIC_TYPE + "='" + Param.PHASIC_TYPEC + "') and "+ Param.VALUETYPE + "='AVG' and ");
|
||||
// StringBuilder timeId = new StringBuilder();
|
||||
// timeId.append(Param.TIME + " >= '" + startTime + Param.START_TIME + "' and " + Param.TIME + " <= '" + endTime + Param.END_TIME + "' and (");
|
||||
// for (int i = 0; i < lineIndexes.size(); i++) {
|
||||
// if (lineIndexes.size() - i != 1) {
|
||||
// timeId.append(Param.LINE_ID + "='").append(lineIndexes.get(i)).append("' or ");
|
||||
// } else {
|
||||
// timeId.append(Param.LINE_ID + "='").append(lineIndexes.get(i)).append("')");
|
||||
// }
|
||||
// }
|
||||
// // String a = "SELECT MEAN(V_THD) AS distortion FROM Data_V WHERE QualityFlag='1' and (phasic_type='A' or phasic_type='B' or phasic_type='C')and value_type='AVG' and time >= '2022-03-20 00:00:00' and time <= '2022-03-21 23:59:59' and (lineid ='1e3b8531483b2a8cbee6747f1f641cf9') group by lineid;";
|
||||
// //sql语句
|
||||
// String sql = "SELECT MEAN(" + Param.V_THD + ")*100 AS distortion FROM Data_V WHERE " + string + timeId + " group by " + Param.LINE_ID;
|
||||
// //结果集
|
||||
// QueryResult result = influxDbUtils.query(sql);
|
||||
// //处理结果集
|
||||
// List<QueryResult.Series> list = result.getResults().get(0).getSeries();
|
||||
// if (!CollectionUtils.isEmpty(list)){
|
||||
// list.forEach(po->{
|
||||
// PublicDTO publicDTO = new PublicDTO();
|
||||
// List<List<Object>> valueList = po.getValues();
|
||||
// String index = po.getTags().get(Param.LINE_ID);
|
||||
// if (!CollectionUtils.isEmpty(valueList)){
|
||||
// for (List<Object> value : valueList) {
|
||||
// //谐波畸变率 保留两位小数
|
||||
// Double distortion = value.get(1) == null ? null : BigDecimal.valueOf(Double.parseDouble(value.get(1).toString())).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
// publicDTO.setId(index);
|
||||
// publicDTO.setData(distortion);
|
||||
// }
|
||||
// }
|
||||
// publicDTOList.add(publicDTO);
|
||||
// });
|
||||
// }
|
||||
// return publicDTOList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user