终端运行管理bug修复
This commit is contained in:
@@ -3,6 +3,7 @@ package com.njcn.device.pq.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.device.pq.pojo.po.Device;
|
||||
import com.njcn.device.pq.pojo.vo.LineInfluxDbOnlineVO;
|
||||
import com.njcn.device.pq.pojo.vo.RunManageVO;
|
||||
import com.njcn.device.pq.pojo.vo.RunTimeVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@@ -46,9 +47,15 @@ public interface DeviceMapper extends BaseMapper<Device> {
|
||||
* @param list 终端集合
|
||||
* @param comFlag 状态
|
||||
* @param runFlag 状态
|
||||
* @param manufacturer
|
||||
* @param searchValue
|
||||
* @return 结果
|
||||
*/
|
||||
List<RunTimeVO> getRunManageDevList(@Param("list") List<String> list, @Param("comFlag")List<Integer> comFlag, @Param("runFlag")List<Integer> runFlag);
|
||||
List<RunTimeVO> getRunManageDevList(@Param("list") List<String> list,
|
||||
@Param("comFlag") List<Integer> comFlag,
|
||||
@Param("runFlag") List<Integer> runFlag,
|
||||
@Param("manufacturers") List<String> manufacturer,
|
||||
@Param("searchValue") String searchValue);
|
||||
|
||||
/**
|
||||
* 获取指定等级的装置
|
||||
@@ -56,4 +63,8 @@ public interface DeviceMapper extends BaseMapper<Device> {
|
||||
* @date 2023/2/10
|
||||
*/
|
||||
List<String> getDevByGrade(@Param("devId")List<String> devIds,@Param("lineGrade") String lineGrade);
|
||||
|
||||
List<LineInfluxDbOnlineVO> getOnlineEvaluate(@Param("list") List<String> devIndexes,
|
||||
@Param("begin") String searchBeginTime,
|
||||
@Param("end") String searchEndTime);
|
||||
}
|
||||
|
||||
@@ -160,19 +160,46 @@
|
||||
<foreach item="item" collection="list" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
<if test="runFlag == '' and runFlag !=null">
|
||||
<if test="runFlag.size()!=0">
|
||||
and device.Run_Flag in
|
||||
<foreach item="item1" collection="runFlag" open="(" separator="," close=")">
|
||||
<foreach item="item1" collection="runFlag" separator="," open="(" close=")">
|
||||
#{item1}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="comFlag == '' and comFlag !=null">
|
||||
<if test="comFlag.size()!=0">
|
||||
and device.Com_Flag in
|
||||
<foreach item="item2" collection="comFlag" open="(" separator="," close=")">
|
||||
<foreach item="item2" collection="comFlag" separator="," open="(" close=")">
|
||||
#{item2}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="manufacturers.size()!=0">
|
||||
and device.Manufacturer in
|
||||
<foreach collection="manufacturers" item="item3" separator="," open="(" close=")">
|
||||
#{item3}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="searchValue != '' and searchValue != null ">
|
||||
<bind name="searchValueLike" value="'%'+searchValue+'%'"/>
|
||||
AND sub.NAME LIKE #{searchValueLike}
|
||||
OR dev.NAME LIKE #{searchValueLike}
|
||||
OR devT.Name LIKE #{searchValueLike}
|
||||
OR device.IP LIKE #{searchValueLike}
|
||||
</if>
|
||||
ORDER BY
|
||||
areaId.NAME
|
||||
</select>
|
||||
<select id="getOnlineEvaluate" resultType="com.njcn.device.pq.pojo.vo.LineInfluxDbOnlineVO">
|
||||
SELECT
|
||||
SUM(r.online_min) / (SUM(r.online_min)+SUM(r.offline_min)) AS onlineRate,
|
||||
r.dev_index AS devIndex
|
||||
FROM r_stat_onlinerate_d r
|
||||
WHERE time_id BETWEEN #{begin} AND #{end}
|
||||
<if test="list.size > 0">
|
||||
AND r.dev_index IN
|
||||
<foreach collection="list" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
GROUP BY r.dev_index
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -93,19 +93,22 @@ public class RunManageServiceImpl implements RunManageService {
|
||||
if (!CollectionUtils.isEmpty(generalDeviceDTOList)) {
|
||||
List<String> devIndexes = generalDeviceDTOList.stream().flatMap(list->list.getDeviceIndexes().stream()).collect(Collectors.toList());
|
||||
DateFormat bf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
runManageParam.setSearchBeginTime(DateUtil.beginOfMonth(new Date()).toString(bf));
|
||||
runManageParam.setSearchEndTime(DateUtil.endOfMonth(new Date()).toString(bf));
|
||||
runManageParam.setSearchBeginTime(bf.format(DateUtil.beginOfDay(DateUtil.parse(runManageParam.getSearchBeginTime()))));
|
||||
runManageParam.setSearchEndTime(bf.format(DateUtil.beginOfDay(DateUtil.parse(runManageParam.getSearchEndTime()))));
|
||||
List<String> manuList = runManageParam.getManufacturer().stream().map(SimpleDTO::getId).collect(Collectors.toList());
|
||||
if(CollectionUtil.isNotEmpty(devIndexes)){
|
||||
runManageDevList = deviceMapper.getRunManageDevList(devIndexes, runManageParam.getComFlag(), runManageParam.getRunFlag());
|
||||
runManageDevList = deviceMapper.getRunManageDevList(devIndexes, runManageParam.getComFlag(), runManageParam.getRunFlag(),manuList,runManageParam.getSearchValue());
|
||||
|
||||
StringBuilder devSql = InfluxDBCommUtils.assToInfluxParamDev(devIndexes);
|
||||
String stringBuilder = "time >= '" + runManageParam.getSearchBeginTime() + "' and " + "time <= '" + runManageParam.getSearchEndTime()+"' and "+devSql+" group by dev_id";
|
||||
//sql语句
|
||||
String sql = "SELECT MEAN(online_rate) AS online_rate FROM " + PQS_ONLINERATE + " WHERE " + stringBuilder + TIME_ZONE;
|
||||
QueryResult queryResult = influxDbUtils.query(sql);
|
||||
List<LineInfluxDbOnlineVO> lineInfluxDbOnlineVOList = deviceMapper.getOnlineEvaluate(devIndexes,runManageParam.getSearchBeginTime(),runManageParam.getSearchEndTime());
|
||||
|
||||
InfluxDBResultMapper inCn = new InfluxDBResultMapper();
|
||||
List<LineInfluxDbOnlineVO> lineInfluxDbOnlineVOList = inCn.toPOJO(queryResult,LineInfluxDbOnlineVO.class);
|
||||
// StringBuilder devSql = InfluxDBCommUtils.assToInfluxParamDev(devIndexes);
|
||||
// String stringBuilder = "time >= '" + runManageParam.getSearchBeginTime() + "' and " + "time <= '" + runManageParam.getSearchEndTime()+"' and "+devSql+" group by dev_id";
|
||||
// //sql语句
|
||||
// String sql = "SELECT MEAN(online_rate) AS online_rate FROM " + PQS_ONLINERATE + " WHERE " + stringBuilder + TIME_ZONE;
|
||||
// QueryResult queryResult = influxDbUtils.query(sql);
|
||||
//
|
||||
// InfluxDBResultMapper inCn = new InfluxDBResultMapper();
|
||||
// List<LineInfluxDbOnlineVO> lineInfluxDbOnlineVOList = inCn.toPOJO(queryResult,LineInfluxDbOnlineVO.class);
|
||||
runManageDevList = runManageDevList.stream().peek(item-> lineInfluxDbOnlineVOList.stream().filter(it-> Objects.equals(item.getId(),it.getDevIndex())).findFirst().ifPresent(i->item.setOnlineEvaluate(i.getOnlineRate()))).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user