终端运行管理bug修复
This commit is contained in:
@@ -72,4 +72,6 @@ public class RunManageParam extends BaseParam implements Serializable {
|
|||||||
@ApiModelProperty(name = "runFlag", value = "终端状态")
|
@ApiModelProperty(name = "runFlag", value = "终端状态")
|
||||||
private List<Integer> runFlag;
|
private List<Integer> runFlag;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "searchValue", value = "篩選數據")
|
||||||
|
private String searchValue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,6 @@ public class RunTimeVO implements Serializable {
|
|||||||
@ApiModelProperty(name = "loginTime",value = "投运时间")
|
@ApiModelProperty(name = "loginTime",value = "投运时间")
|
||||||
private String loginTime;
|
private String loginTime;
|
||||||
|
|
||||||
|
|
||||||
@ApiModelProperty(name = "devType",value = "终端型号")
|
@ApiModelProperty(name = "devType",value = "终端型号")
|
||||||
private String devType;
|
private String devType;
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.njcn.device.pq.mapper;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.njcn.device.pq.pojo.po.Device;
|
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.RunManageVO;
|
||||||
import com.njcn.device.pq.pojo.vo.RunTimeVO;
|
import com.njcn.device.pq.pojo.vo.RunTimeVO;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
@@ -46,9 +47,15 @@ public interface DeviceMapper extends BaseMapper<Device> {
|
|||||||
* @param list 终端集合
|
* @param list 终端集合
|
||||||
* @param comFlag 状态
|
* @param comFlag 状态
|
||||||
* @param runFlag 状态
|
* @param runFlag 状态
|
||||||
|
* @param manufacturer
|
||||||
|
* @param searchValue
|
||||||
* @return 结果
|
* @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
|
* @date 2023/2/10
|
||||||
*/
|
*/
|
||||||
List<String> getDevByGrade(@Param("devId")List<String> devIds,@Param("lineGrade") String lineGrade);
|
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=")">
|
<foreach item="item" collection="list" open="(" separator="," close=")">
|
||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
<if test="runFlag == '' and runFlag !=null">
|
<if test="runFlag.size()!=0">
|
||||||
and device.Run_Flag in
|
and device.Run_Flag in
|
||||||
<foreach item="item1" collection="runFlag" open="(" separator="," close=")">
|
<foreach item="item1" collection="runFlag" separator="," open="(" close=")">
|
||||||
#{item1}
|
#{item1}
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="comFlag == '' and comFlag !=null">
|
<if test="comFlag.size()!=0">
|
||||||
and device.Com_Flag in
|
and device.Com_Flag in
|
||||||
<foreach item="item2" collection="comFlag" open="(" separator="," close=")">
|
<foreach item="item2" collection="comFlag" separator="," open="(" close=")">
|
||||||
#{item2}
|
#{item2}
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</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
|
ORDER BY
|
||||||
areaId.NAME
|
areaId.NAME
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
|
|||||||
@@ -93,19 +93,22 @@ public class RunManageServiceImpl implements RunManageService {
|
|||||||
if (!CollectionUtils.isEmpty(generalDeviceDTOList)) {
|
if (!CollectionUtils.isEmpty(generalDeviceDTOList)) {
|
||||||
List<String> devIndexes = generalDeviceDTOList.stream().flatMap(list->list.getDeviceIndexes().stream()).collect(Collectors.toList());
|
List<String> devIndexes = generalDeviceDTOList.stream().flatMap(list->list.getDeviceIndexes().stream()).collect(Collectors.toList());
|
||||||
DateFormat bf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
DateFormat bf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
runManageParam.setSearchBeginTime(DateUtil.beginOfMonth(new Date()).toString(bf));
|
runManageParam.setSearchBeginTime(bf.format(DateUtil.beginOfDay(DateUtil.parse(runManageParam.getSearchBeginTime()))));
|
||||||
runManageParam.setSearchEndTime(DateUtil.endOfMonth(new Date()).toString(bf));
|
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)){
|
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);
|
List<LineInfluxDbOnlineVO> lineInfluxDbOnlineVOList = deviceMapper.getOnlineEvaluate(devIndexes,runManageParam.getSearchBeginTime(),runManageParam.getSearchEndTime());
|
||||||
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();
|
// StringBuilder devSql = InfluxDBCommUtils.assToInfluxParamDev(devIndexes);
|
||||||
List<LineInfluxDbOnlineVO> lineInfluxDbOnlineVOList = inCn.toPOJO(queryResult,LineInfluxDbOnlineVO.class);
|
// 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());
|
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