因修改influxDB数据库的部分表结构,谐波模块修改了部分代码

This commit is contained in:
njcn_dhj
2022-06-28 21:08:17 +08:00
parent 76747b5553
commit 90af2c3693
19 changed files with 707 additions and 640 deletions

View File

@@ -7,12 +7,16 @@
line.NAME srbName,
sub.Lng coordY,
sub.Lat coordX,
"blue" color
"blue" color,
dic.name scale
FROM
pq_line line,
pq_substation sub
pq_substation sub,
sys_dict_data dic
WHERE
line.Id = sub.Id
and
sub.scale = dic.id
AND
sub.Id IN
<foreach collection="id" item="item" open="(" close=")" separator=",">

View File

@@ -21,6 +21,7 @@ import com.njcn.device.pojo.param.DeviceInfoParam;
import com.njcn.device.pojo.po.*;
import com.njcn.device.pojo.vo.*;
import com.njcn.device.service.LineService;
import com.njcn.influxdb.param.InfluxDBPublicParam;
import com.njcn.influxdb.utils.InfluxDbUtils;
import com.njcn.system.api.AreaFeignClient;
import com.njcn.system.api.DicDataFeignClient;
@@ -38,8 +39,10 @@ import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -152,18 +155,17 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
@Override
public CommunicateVO getComFlagInfoData(String id, String searchBeginTime, String searchEndTime) {
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String devId = getLineIdByDevId(id);
QueryWrapper<Communicate> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Communicate::getId, devId)
.between(Communicate::getUpdateTime, PubUtils.beginTimeToLocalDateTime(searchBeginTime), PubUtils.endTimeToLocalDateTime(searchEndTime));
queryWrapper.orderBy(true, true, "pq_communicate.update_time");
List<Communicate> communicateList = communicateMapper.selectList(queryWrapper);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List<Communicate> communicateList = getCommunicate(id,searchBeginTime,searchEndTime);
CommunicateVO communicateVOList = new CommunicateVO();
List<String> updateTime = new ArrayList<>();
List<Integer> comType = new ArrayList<>();
for (Communicate communicate : communicateList) {
updateTime.add(df.format(communicate.getUpdateTime()));
//转化时间
Instant now = communicate.getUpdateTime().plusMillis(TimeUnit.HOURS.toMillis(8));
Long time = now.toEpochMilli();
String timeText = df.format(time);
updateTime.add(timeText);
comType.add(communicate.getType());
}
communicateVOList.setUpdateTime(updateTime);
@@ -541,6 +543,7 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
stringBuilder.append("dev_index ='").append(devIndexs.get(i)).append("' ");
}
}
stringBuilder.append(InfluxDBPublicParam.TIME_ZONE);
String sql = "select sum(onlinemin)/(sum(onlinemin) +sum(offlinemin))*100 as onlinerate from pqs_onlinerate where " + stringBuilder.toString() + "group by dev_index";
//获取暂降事件
QueryResult result = influxDbUtils.query(sql);
@@ -641,4 +644,17 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
return staticsValue;
}
public List<Communicate> getCommunicate(String lineIndex, String startTime,String endTime) {
//组装sql语句
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(startTime))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(endTime))).append("' and ");
stringBuilder.append("line_id = '").append(lineIndex).append("' group by line_id ").append(InfluxDBPublicParam.TIME_ZONE);
String sql = "select * from "+InfluxDBPublicParam.PQS_COMMUNICATE+" where " + stringBuilder.toString();
//获取暂降事件
QueryResult result = influxDbUtils.query(sql);
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
List<Communicate> communicateList = influxDBResultMapper.toPOJO(result, Communicate.class);
return communicateList;
}
}