Commit e11da046 authored by tianyiming's avatar tianyiming

稳压泵数据逻辑优化

parent 0418e899
...@@ -38,12 +38,10 @@ public interface IPressurePumpService { ...@@ -38,12 +38,10 @@ public interface IPressurePumpService {
/** /**
* 获取所有稳压泵最近一次启停间隔,min * 获取所有稳压泵最近一次启停间隔,min
* @param redisDataList * @param dataList
* @param iotDataList
* @param nowStrLong * @param nowStrLong
* @param bizOrgCode
*/ */
long getAllPressurePumpStartStopInterval(List<IotDataVO> redisDataList, List<Map<String, String>> iotDataList, String nowStrLong, String bizOrgCode); long getAllPressurePumpStartStopInterval(List<IotDataVO> dataList, String nowStrLong);
/** /**
* 获取稳压泵一定时间内启动频率或次数 * 获取稳压泵一定时间内启动频率或次数
...@@ -54,23 +52,19 @@ public interface IPressurePumpService { ...@@ -54,23 +52,19 @@ public interface IPressurePumpService {
/** /**
* 获取稳压泵最近一次启停时长,min * 获取稳压泵最近一次启停时长,min
* @param redisDataList * @param dataList
* @param iotDataList
* @param nowStrLong * @param nowStrLong
* @param bizOrgCode
*/ */
long getAllPressurePumpStartStopDuration(List<IotDataVO> redisDataList, List<Map<String, String>> iotDataList, String nowStrLong, String bizOrgCode); long getAllPressurePumpStartStopDuration(List<IotDataVO> dataList, String nowStrLong);
/** /**
* 获取稳压泵指定启泵前 minutes 分钟,管网压力差绝对值 * 获取稳压泵指定启泵前 minutes 分钟,管网压力差绝对值
* @param redisDataList * @param dataList
* @param redisDataPipeList * @param dataPipeList
* @param iotDataList
* @param iotDataPipeList
* @param nowStrLong
* @param minutes * @param minutes
* @return
*/ */
double getAllPressurePumpPipePressureDiff(List<IotDataVO> redisDataList, List<IotDataVO> redisDataPipeList, List<Map<String, String>> iotDataList, List<Map<String, String>> iotDataPipeList, String nowStrLong, String minutes); double getAllPressurePumpPipePressureDiff(List<IotDataVO> dataList, List<IotDataVO> dataPipeList, String minutes);
/** /**
* 根据指标,获取物联top数据,influxdb * 根据指标,获取物联top数据,influxdb
......
...@@ -3,6 +3,7 @@ package com.yeejoin.equipmanage.service.impl; ...@@ -3,6 +3,7 @@ package com.yeejoin.equipmanage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.CommonUtils;
import com.yeejoin.equipmanage.common.entity.SupervisionVideo; import com.yeejoin.equipmanage.common.entity.SupervisionVideo;
import com.yeejoin.equipmanage.common.entity.vo.AlamVideoVO; import com.yeejoin.equipmanage.common.entity.vo.AlamVideoVO;
import com.yeejoin.equipmanage.common.enums.PressurePumpRelateEnum; import com.yeejoin.equipmanage.common.enums.PressurePumpRelateEnum;
...@@ -22,6 +23,8 @@ import org.springframework.util.CollectionUtils; ...@@ -22,6 +23,8 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
...@@ -149,16 +152,22 @@ public class SupervisionVideoServiceImpl extends ServiceImpl<SupervisionVideoMap ...@@ -149,16 +152,22 @@ public class SupervisionVideoServiceImpl extends ServiceImpl<SupervisionVideoMap
List<Map> infoList = pressurePumpService.getNameKeyInfoList(PressurePumpRelateEnum.PRESSURE_PUMP.getValue()); List<Map> infoList = pressurePumpService.getNameKeyInfoList(PressurePumpRelateEnum.PRESSURE_PUMP.getValue());
if (!CollectionUtils.isEmpty(infoList)) { if (!CollectionUtils.isEmpty(infoList)) {
// 获取redis稳压泵缓存数据,默认JSON配置最近4小时 // 获取redis稳压泵缓存数据,默认JSON配置最近4小时
List<IotDataVO> redisDataList = pressurePumpService.getDataToRedis(PressurePumpRelateEnum.PRESSURE_PUMP.getValue(), pressurePumpStart, null); List<IotDataVO> DataList = pressurePumpService.getDataToRedis(PressurePumpRelateEnum.PRESSURE_PUMP.getValue(), pressurePumpStart, null);
if(!CollectionUtils.isEmpty(redisDataList)){ if(CollectionUtils.isEmpty(DataList)){
//从redis中获取最近一次启停间隔
interval = pressurePumpService.getAllPressurePumpStartStopInterval(redisDataList, null, nowStrLong, bizOrgCode);
} else {
//从influxdb中获取最近一次启停间隔 //从influxdb中获取最近一次启停间隔
String top = infoList.get(0).get("top").toString(); String top = infoList.get(0).get("top").toString();
List<Map<String, String>> iotDataList = pressurePumpService.getIotTopSingleField(top, prefix, null, null, pressurePumpStart); List<Map<String, String>> iotDataList = pressurePumpService.getIotTopSingleField(top, prefix, null, null, pressurePumpStart);
interval = pressurePumpService.getAllPressurePumpStartStopInterval(null, iotDataList, nowStrLong, bizOrgCode); iotDataList.stream().forEach(e -> {
try {
IotDataVO iotDataVO = (IotDataVO) mapToObject(e, IotDataVO.class);
DataList.add(iotDataVO);
} catch (Exception el) {
throw new RuntimeException();
}
});
} }
interval =pressurePumpService.getAllPressurePumpStartStopInterval(DataList, nowStrLong);
} }
double finalDiffMinute = (double) interval; double finalDiffMinute = (double) interval;
pressurePumpInfo.getRecords().stream( pressurePumpInfo.getRecords().stream(
...@@ -177,4 +186,37 @@ public class SupervisionVideoServiceImpl extends ServiceImpl<SupervisionVideoMap ...@@ -177,4 +186,37 @@ public class SupervisionVideoServiceImpl extends ServiceImpl<SupervisionVideoMap
pressurePumpInfo.setRecords(records); pressurePumpInfo.setRecords(records);
return pressurePumpInfo; return pressurePumpInfo;
} }
/**
* map 转化为对象
* @param map 需要转化的参数
* @param aClass 要转化成的对象
* @return 转化成功的对象
* @throws IllegalAccessException 非法访问异常
* @throws InstantiationException 实例化异常
*/
public Object mapToObject(Map<String,String> map,Class<?> aClass) throws IllegalAccessException, InstantiationException {
if(null == map || map.size()<=0){
return null;
}
Object o = aClass.newInstance();
Field[] declaredFields = o.getClass().getDeclaredFields();
for (Field field :declaredFields) {
int modifiers = field.getModifiers();
if(Modifier.isStatic(modifiers) || Modifier.isFinal(modifiers)){
continue;
}
// (此处如果不设置 无法获取对象的私有属性)
field.setAccessible(true);
if("key".equals(field.getName())){
field.set(o,pressurePumpStart);
} else if("value".equals(field.getName())){
field.set(o,map.get(pressurePumpStart));
} else {
field.set(o,map.get(field.getName()));
}
}
return o;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment