1、首页增加点击统计显示列表

This commit is contained in:
weidong 2024-05-17 10:33:17 +08:00
parent 63a3499444
commit 14ed26ae00
5 changed files with 249 additions and 9 deletions

View File

@ -36,7 +36,6 @@ public class GnssStatusController extends BasicController implements CommonExcel
return "/page/gnss_status";
}
/**** 推送数据 *****/
@RequestMapping("/gnss/status/list")
@ResponseBody

View File

@ -1,11 +1,17 @@
package com.imdroid.beidou.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.imdroid.beidou.entity.Tenant;
import com.imdroid.secapi.dto.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpSession;
import java.util.Iterator;
@ -90,4 +96,51 @@ public class IndexController extends BasicController{
return "/page/device_overview";
}
@RequestMapping("/page/gnss_q_status")
public String gnssStatusQuery(Model m, HttpSession session,@RequestParam String query) {
initModel(m, session);
if(query != null){
session.setAttribute("query",query);
}
return "/page/table/gnss_status_list";
}
/**** 推送数据 *****/
@RequestMapping("/gnss/q_status/list")
@ResponseBody
public JSONObject list(HttpSession session, Integer page, Integer limit) {
Page pageable = new Page<>(page == null ? 1 : page, limit == null ? 10 : limit);
QueryWrapper<GnssStatus> queryWrapper = new QueryWrapper<>();
queryWrapper.ne("tenantid",Tenant.SAAS_PROVIDER_ID);
String query = (String) session.getAttribute("query");
if(query != null){
if(query.equals("offline")){
queryWrapper.eq("state",GnssStatus.STATE_OFFLINE);
}
else if(query.equals("nofixed")){
queryWrapper.ge("warningcode",256);
queryWrapper.le("warningcode",512);
}
else if(query.equals("warning1")){
queryWrapper.eq("warning",WarningCfg.LEVEL_1);
}
else if(query.equals("warning2")){
queryWrapper.eq("warning",WarningCfg.LEVEL_2);
}
else if(query.equals("nogga")){
queryWrapper.isNull("latitude");
}
session.setAttribute("query",query);
}
IPage<GnssStatus> cs = statusMapper.selectPage(pageable, queryWrapper);
JSONObject jsonObject = new JSONObject();
jsonObject.put("code", 0);
jsonObject.put("msg", "");
jsonObject.put("count", cs.getTotal());
jsonObject.put("data", cs.getRecords());
return jsonObject;
}
}

View File

@ -77,9 +77,9 @@
<a style="color: #1aa094" th:text="${deviceOnlineNum}">2,020</a><br>
</div>
<div class="layui-col-xs3 layui-col-md4">
掉线数 <a style="color: #bd3004" th:text="${deviceOfflineNum}">0</a><br>
<div th:if="${noFix>0}">长期无解 <a style="color: #bd3004" th:text="${noFix}">0</a><br></div>
装机量 <a style="color: #000000" th:text="${deviceDeployedNum}">2020</a>
<a href="#" onclick="queryDevices('offline')" style="color: #bd3004" th:text="'掉线数 '+${deviceOfflineNum}">0</a><br>
<div th:if="${noFix>0}"><a href="#" onclick="queryDevices('nofixed')" style="color: #bd3004" th:text="'长期无解 '+${noFix}">0</a><br></div>
<a style="color: #000000" th:text="'装机量 '+${deviceDeployedNum}">2020</a>
</div>
</div>
</div>
@ -94,9 +94,9 @@
<a style="color: #f6c102" th:text="${warningTotalNum}">20</a><br>
</div>
<div class="layui-col-xs3 layui-col-md4">
严重 <a style="color: #bd3004" th:text="${warning2Num}">5</a><br>
一般 <a style="color: #f6c102" th:text="${warning1Num}">20</a>
<div th:if="${noGGA>0}">无GGA <a style="color: #e7be1d" th:text="${noGGA}">0</a><br></div>
<a href="#" onclick="queryDevices('warning2')" style="color: #bd3004" th:text="'严重 '+${warning2Num}">5</a><br>
<a href="#" onclick="queryDevices('warning1')" style="color: #f6c102" th:text="'一般 '+${warning1Num}">20</a>
<div th:if="${noGGA>0}"><a href="#" onclick="queryDevices('nogga')" style="color: #e7be1d" th:text="'无GGA '+${noGGA}">0</a><br></div>
</div>
</div>
</div>
@ -315,8 +315,22 @@
map.removeOverlay(redLabels[i]);
}
}
</script>
<script src="../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
function queryDevices(status_type){
var index = layer.open({
title: '',
type: 2,
shade: 0.2,
maxmin:true,
shadeClose: true,
anim: 2,
offset: 'rb',
area: ['100%', '50%'],
content: '../page/gnss_q_status?query='+status_type,
});
}
</script>
</body>

View File

@ -0,0 +1,78 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>设备状态</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="../../css/public.css" media="all">
<style>
body {
background-color: #ffffff;
}
</style>
</head>
<body>
<div class="layui-form layuimini-form">
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
</div>
<script src="../../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script th:inline="none">
layui.use(['form', 'table'], function () {
var $ = layui.$,
form = layui.form,
table = layui.table;
/**
* 初始化表单,要加上,不然刷新部分组件可能会不加载
*/
form.render();
table.render({
elem: '#currentTableId',
url: '/gnss/status/list',
toolbar: '#toolbarDemo',//开启头部工具栏
defaultToolbar: ['filter'],
cols: [[
{field: 'deviceid', title: '设备号', sort: true},
{field: 'devicetype', title: '设备类型',templet: '#typeTrans'},
{field: 'updatetime', title: '更新时间', templet: "<div>{{layui.util.toDateString(d.updatetime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
{field: 'devicetime', title: '设备时间'},
{field: 'state', title: '状态',templet: '#stateTrans'},
{field: 'warning', title: '告警',templet: '#warningTrans'},
{field: 'longitude', title: '经度'},
{field: 'latitude', title: '维度'},
{field: 'voltage', title: '电压'},
{field: 'temperature', title: '温度'},
{field: 'humidity', title: '湿度'},
{field: 'rssi', title: '信号'},
{field: 'satelliteinuse', title: '使用卫星数'},
{title: '操作', toolbar: '#currentTableBar', align: "center"}
]],
limits: [10, 15, 20, 25, 50, 100],
limit: 15,
page: true,
skin: 'line'
});
});
</script>
<script type="text/html" id="typeTrans">
{{# if(d.type == 0){ }}
<span>GNSS</span>
{{# } else if(d.type == 1){ }}
<span >DTU</span>
{{# } else if(d.type == 2){ }}
<span >MPU</span>
{{# } else { }}
<span >DEBUG</span>
{{# } }}
</script>
</body>
</html>

View File

@ -0,0 +1,96 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>设备状态</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="../../css/public.css" media="all">
<style>
body {
background-color: #ffffff;
}
</style>
</head>
<body>
<div class="layui-form layuimini-form">
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
</div>
<script src="../../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script th:inline="none">
layui.use(['form', 'table'], function () {
var $ = layui.$,
form = layui.form,
table = layui.table;
var iframeIndex = parent.layer.getFrameIndex(window.name);
/**
* 初始化表单,要加上,不然刷新部分组件可能会不加载
*/
form.render();
table.render({
elem: '#currentTableId',
url: '/gnss/q_status/list',
toolbar: '#toolbarDemo',//开启头部工具栏
defaultToolbar: ['filter'],
cols: [[
{field: 'deviceid', title: '设备号', sort: true},
{field: 'devicetype', title: '设备类型',templet: '#typeTrans'},
{field: 'updatetime', title: '更新时间', templet: "<div>{{layui.util.toDateString(d.updatetime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
{field: 'state', title: '状态',templet: '#stateTrans'},
{field: 'warning', title: '告警',templet: '#warningTrans'},
{field: 'longitude', title: '经度'},
{field: 'latitude', title: '维度'},
{field: 'voltage', title: '电压'},
{field: 'temperature', title: '温度'},
{field: 'humidity', title: '湿度'},
{field: 'rssi', title: '信号'},
{field: 'satelliteinuse', title: '使用卫星数'}
]],
limits: [10, 15, 20, 25, 50, 100],
limit: 15,
page: true,
skin: 'line'
});
});
</script>
<script type="text/html" id="typeTrans">
{{# if(d.devicetype == 1){ }}
<span>基准站</span>
{{# } else { }}
<span>监测站</span>
{{# } }}
</script>
<script type="text/html" id="stateTrans">
{{# if(d.state == 0){ }}
<span class="layui-badge layui-bg-gray">掉线</span>
{{# } else if(d.state == 1){ }}
<span class="layui-badge layui-bg-green">工作</span>
{{# } else if(d.state == 3){ }}
<span class="layui-badge layui-bg-orange">补传</span>
{{# } else { }}
<span class="layui-badge layui-bg-blue">休眠</span>
{{# } }}
</script>
<script type="text/html" id="warningTrans">
{{# if(d.warning == 2 || d.state == 0){ }}
<span class="layui-badge">严重</span>
{{# } else if(d.warning == 0){ }}
<span class="layui-badge layui-bg-green">正常</span>
{{# } else { }}
<span class="layui-badge layui-bg-orange">一般</span>
{{# } }}
</script>
</body>
</html>