作者 钟来

修改曲线算法

... ... @@ -2,6 +2,7 @@ package com.zhonglai.luhui.api.service;
import com.google.common.base.CaseFormat;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.zhonglai.luhui.api.controller.data.DeviceSensorData;
import com.zhonglai.luhui.api.controller.data.SensorData;
import com.zhonglai.luhui.api.controller.data.TableGenerateSqlEnum;
... ... @@ -310,18 +311,69 @@ public class DataService {
if(null != list && list.size() !=0 && null != list.get(0) && null != list.get(0).get("ct") && (list.get(0).get("ct")+"").equals("1"))
{
list = publicMapper.getObjectListBySQL("select * from `ly-device-data`.`"+deviceInfoId+"-"+dataType+"` where (`time` % "+interval+")=0 and `time`>="+startTime+" and `time`<="+endTime+"");
list = publicMapper.getObjectListBySQL("select *,(`time` % "+interval+") asb from `ly-device-data`.`"+deviceInfoId+"-"+dataType+"` where ((`time` % "+interval+")=0 OR `value`<>'') AND `time`>="+startTime+" and `time`<="+endTime+" order by `time` asc");
if(null != list && list.size() !=0 )
{
StringBuffer sb = new StringBuffer();
for(Map<String,Object> map:list)
for(int i=0;i<list.size();i++)
{
Map<String,Object> map = list.get(i);
if(StringUtils.isNotEmpty((String)map.get("value")))
{
sb.append(map.get("time"));
sb.append(",");
sb.append(map.get("value"));
sb.append("\r\n");
}else{
String svalue = (String) map.get("value");
Long sasb = 0l;
if (i-1>=0)
{
String object = (String) list.get(i-1).get("value");
if((Long) list.get(i-1).get("asb")!=0 && !"".equals(object)){
svalue = object;
sasb = (Long) list.get(i-1).get("asb");
}
}
String xvalue = (String) map.get("value");
Long xasb = 0l;
if (i+1<list.size())
{
String object = (String) list.get(i+1).get("value");
if((Long) list.get(i+1).get("asb")!=0 && !"".equals(object)){
xvalue = object;
xasb = (Long) list.get(i+1).get("asb");
}
}
if(!"".equals(svalue) && !"".equals(xvalue) )
{
if(sasb-xasb>=0)
{
sb.append(map.get("time"));
sb.append(",");
sb.append(xvalue);
sb.append("\r\n");
}else {
sb.append(map.get("time"));
sb.append(",");
sb.append(svalue);
sb.append("\r\n");
}
}else{
sb.append(map.get("time"));
sb.append(",");
sb.append( svalue+""+xvalue);
sb.append("\r\n");
}
}
}
// 销毁数据源 在执行方法之后
DynamicDataSourceContextHolder.clearDataSourceType();
... ...