Commit c58e397d by wuchengwu

采集设备授权:添加设备状态监控页面

parent 3ec4281b
......@@ -59,6 +59,33 @@ public class SysClientVpController {
}
/*
获取设备list
*/
@GetMapping("/sysClientVpZtlist")
@ResponseBody
public ResultMap sysClientVpZtlist(Model model, SysClientVp sysClientVp,HttpServletRequest request){
ResultMap resultMap=new ResultMap();
User user =(User)request.getSession().getAttribute("User");
// //设备审批管理 默认查询本单位
// if(sysClientVp.getCjsblxcode()!=null&&sysClientVp.getCjsblxcode().equals("1")){
// sysClientVp.setSsdwcode(user.getUnitcode());
// }
//我的设备管理 默认查询本人采集
if(sysClientVp.getCjsblxcode()!=null&&sysClientVp.getCjsblxcode().equals("2")){
sysClientVp.setZrmjjh(user.getPolicemanid());
}
//ip mac 加密 查询条件加密
if(sysClientVp.getIp()!=null&&!sysClientVp.getIp().equals("")){
sysClientVp.setIp(xzxtencode(sysClientVp.getIp()));
}
if(sysClientVp.getMac()!=null&&!sysClientVp.getMac().equals("")){
sysClientVp.setMac(xzxtencode(sysClientVp.getMac()));
}
resultMap =sysClientVpService.ClientVpAll(sysClientVp);
return resultMap;
}
/*
获取设备信息
*/
@GetMapping("/getSysClientVp")
......
......@@ -7,6 +7,8 @@ import com.founder.model.ResultMap;
import com.founder.model.SysClientVp;
import com.founder.model.User;
import com.founder.model.XzxtRestResult;
import com.founder.utils.DateUtil;
import com.founder.utils.SysUitl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
......@@ -32,7 +34,7 @@ public class SysClientVpServiceImpl implements SysClientVpService {
@Override
public ResultMap ClientVpAll(SysClientVp sysClientVp) {
List<SysClientVp> sysClientVplist=sysClientVpMapper.selectPageList(sysClientVp);
List<SysClientVp> sysClientVplist= sysClientVpMapper.selectPageList(sysClientVp);
ResultMap resultMap=new ResultMap();
if (!StringUtils.isEmpty(sysClientVplist)) {
//解密
......@@ -49,6 +51,13 @@ public class SysClientVpServiceImpl implements SysClientVpService {
if(sysClient.getMac()!=null && sysClient.getMac().length()>=24){
sysClient.setMac(xzxtdecode(sysClient.getMac()));
}
Date date = new Date();
int hour = DateUtil.differentDaysByMillisecond(sysClient.getGxsj(),date);
if(hour<=2){
sysClient.setSbztstr("启用");
}else {
sysClient.setSbztstr("禁用");
}
}
int totals=sysClientVpMapper.selectPageCount(sysClientVp);
resultMap.setCount(totals);
......
......@@ -63,6 +63,7 @@ public class DefaultViewConfig implements WebMvcConfigurer {
registry.addViewController("/frame").setViewName("cjqx/frame");
registry.addViewController("/files").setViewName("cjqx/files");
registry.addViewController("/sbcsglform").setViewName("cjqx/sbcsglform");
registry.addViewController("/sbztjkform").setViewName("cjqx/sbztjkform");
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
WebMvcConfigurer.super.addViewControllers(registry);
}
......
......@@ -109,6 +109,8 @@ public class SysClientVp extends PageBean{
private Date gxsj;
private String gxsjStr;
private String sprjh;
private String sprxm;
......@@ -125,6 +127,14 @@ public class SysClientVp extends PageBean{
private int yycsstr;
public void setGxsjStr(String gxsjStr) {
this.gxsjStr = gxsjStr;
}
public String getGxsjStr() {
return gxsjStr;
}
public String getYysjstr() {
return yysjstr;
}
......
......@@ -360,10 +360,24 @@ public class DateUtil {
return convertStringToDate("yyyy-MM-dd",todayAsString);
}
/**
* 通过时间秒毫秒数判断两个时间的间隔相差多少天
* @param date1
* @param date2
* @return
*/
public static int differentDaysByMillisecond(Date date1,Date date2)
{
int days = (int) ((date2.getTime() - date1.getTime()) / (1000*3600*24));
return days;
}
public static void main(String[] args) {
String a = getDatePattern();
String flrsj = DateUtil.beforeDate(3);
flrsj=flrsj.substring(0,10);
System.out.println(flrsj);
System.out.println(differentDaysByMillisecond(commonStringToDate("2021-03-15 15:49:11"),new Date()));
// String a = getDatePattern();
// String flrsj = DateUtil.beforeDate(3);
// flrsj=flrsj.substring(0,10);
// System.out.println(flrsj);
}
}
\ No newline at end of file
......@@ -4,6 +4,8 @@ import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.net.*;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SysUitl {
......@@ -190,6 +192,119 @@ public class SysUitl {
}
/**
* 根据ip判断当前ip是否能够ping通
* @param ip
* @return
*/
public static boolean IsIpReachable(String ips) {
boolean isIpReachable = false;
InetAddress address;
try
{
address = InetAddress.getByName(ips);
isIpReachable = address.isReachable(100);
System.out.println("Name: " + address.getHostName());
System.out.println("Addr: " + address.getHostAddress());
System.out.println("isIpReachable: " + isIpReachable);
}
catch (UnknownHostException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
return isIpReachable;
}
/**
* 根据ip判断当前ip是否能够ping通
* @param ip
* @return
*/
public static boolean isConnect(String ip) {
boolean bool = false;
Runtime runtime = Runtime.getRuntime();
try {
Process process = runtime.exec("ping " + ip);
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = null;
StringBuffer sb = new StringBuffer();
while ((line = br.readLine()) != null) {
sb.append(line);
// 优化速度
if (line.indexOf("请求超时") >= 0) {
// System.out.println(ip + "网络断开,时间 " + new Date());
return false;
}
}
is.close();
isr.close();
br.close();
if (null != sb && !sb.toString().equals("")) {
if (sb.toString().indexOf("TTL") > 0) {
// 网络畅通
// System.out.println(ip + "网络正常 ,时间" + new Date());
bool = true;
} else {
// 网络不畅通
// System.out.println(ip + "网络断开,时间 " + new Date());
bool = false;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return bool;
}
public static boolean isPing(String ip,int pingTimes,int timeOut) {
if (ip == null){
return false;
}
BufferedReader in = null;
try {
Process pro = Runtime.getRuntime().exec("ping " + ip +" -n "+pingTimes+" -W "+timeOut+"");
//GB2312 解决InputStreamReader乱码问题
in = new BufferedReader(new InputStreamReader(pro.getInputStream(),"GB2312"));
//逐行检查输出,计算类似出现=23ms TTL=62字样的次数
int connectedCount = 0;
String line = null;
while ((line = in.readLine()) != null){
connectedCount += getCheckResult(line);// 如果出现类似=23ms TTL=62这样的字样,出现的次数=测试次数则返回真
}
return connectedCount == 5;
} catch (Exception ex) {
ex.printStackTrace(); // 出现异常则返回假
return false;
}finally {
try {
in.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
//若line含有=18ms TTL=16字样,说明已经ping通,返回1,否則返回0.
private static int getCheckResult(String line) { // System.out.println("控制台输出的结果为:"+line);
Pattern pattern = Pattern.compile("(\\d+ms)(\\s+)(TTL=\\d+)", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
return 1;
}
return 0;
}
public static void main(String[] args) throws UnknownHostException, SocketException {
String ip = "192.168.0.103";
......
......@@ -84,6 +84,15 @@
<if test="sbztstr!=null and sbztstr !=''">AND sbztstr = #{sbztstr}</if>
<if test="zrmjjh!=null and zrmjjh !=''">AND zrmjjh = #{zrmjjh}</if>
<if test="ssdwcode!=null and ssdwcode !=''">AND SSDW_CODE = #{ssdwcode}</if>
<if test="gxsjStr!=null and gxsjStr==1">
AND GXSJ BETWEEN SYSDATE-1 and SYSDATE
</if>
<if test="gxsjStr!=null and gxsjStr==2">
AND GXSJ BETWEEN SYSDATE-2 and SYSDATE
</if>
<if test="gxsjStr!=null and gxsjStr==3">
AND (to_date(to_char(sysdate,'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd HH24:mi:ss')-(to_date(to_char(GXSJ,'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd HH24:mi:ss')) <![CDATA[ >= ]]> 7)
</if>
AND SCBZ='0'
</where>
</sql>
......
......@@ -80,6 +80,9 @@
<li>
<a href="javascript:void(0)" onclick="menuCAClick('sbjkglform',this,'page30001')"><i class="iconfont icon-kehu left"></i><font>设备监控管理</font></a>
</li>
<li>
<a href="javascript:void(0)" onclick="menuCAClick('sbztjkform',this,'page60001')"><i class="iconfont icon-kehu left"></i><font>设备状态监控</font></a>
</li>
<!--<li>
<a href="javascript:void(0)" onclick="menuCAClick('newShebcs',this,'page50001')"><i class="iconfont icon-kehu left"></i><font>新增设备厂商</font></a>
</li>-->
......
......@@ -127,7 +127,15 @@
 <input type="checkbox" checked="" name="open" lay-skin="switch" lay-filter="switchTest" lay-text="ON|OFF" disabled>
{{# } }}
</script>
<script type="text/html" id="ifspzt">
{{# if(d.spzt == '1'){ }}
<span class="layui-badge layui-bg-green"> </span>
{{# } else if(d.spzt == '2'){ }}
<span class="layui-badge">退 </span>
{{# } else{ }}
 <span class="layui-badge layui-bg-green">未审批</span>
{{# } }}
</script>
<script src="/static/layui/layui.js" charset="utf-8"></script>
<script src="/static/layui/layui.all.js" charset="utf-8"></script>
......@@ -152,7 +160,8 @@
,{field:'gxsj', title:'最后一次采集时间',align:'center', width:'15%',templet : "<div>{{layui.util.toDateString(d.lrsj, 'yyyy-MM-dd HH:mm:ss')}}</div>"}
,{field:'ssdwname', title:'隶属单位',align:'center', width:'15%'}
,{field:'zrmjname', title:'负责人',align:'center', width:'15%'}
,{field:'sbztstr', title:'设备状态',align:'center', width:'15%',templet: '#ifsbzt'}
// ,{field:'sbztstr', title:'设备状态',align:'center', width:'15%',templet: '#ifsbzt'}
,{field:'spzt', title:'审批状态',align:'center', width:'15%',templet: '#ifspzt'}
/* ,{field: 'right', title:'操作',align:'center', toolbar: '#barDemo', width:140}
,{field: 'right', title:'操作',align:'center', toolbar: '#barDemo4', width:140}*/
]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment