From 95767bebd637f47bc79a97544e60304b5e2c5f2f Mon Sep 17 00:00:00 2001 From: ALW <850658129@qq.com> Date: Thu, 17 Nov 2022 10:07:37 +0800 Subject: [PATCH] =?UTF-8?q?=E9=AA=8C=E8=AF=81=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../emr/controller/CheckcodeController.java | 48 ++++++ .../emr/controller/StatisticsController.java | 23 +++ .../com/emr/dao/CollectorStatusMapper.java | 11 ++ .../java/com/emr/entity/CollectorStatus.java | 28 ++++ .../emr/service/ipml/StatisticsService.java | 35 ++++- src/main/java/com/emr/util/DrawCheckcode.java | 74 +++++++++ .../java/com/emr/vo/CollectorStatusVo.java | 27 ++++ src/main/resources/config/jdbc.properties | 2 +- .../mapper/CollectorStatusMapper.xml | 13 ++ .../views/beHospitaledDir/beHospList.jsp | 2 +- .../views/statistics/collectorStatus.jsp | 141 +++++++++--------- .../js/hospitalCommom/hospitalCommom.js | 7 +- .../static/js/statistics/collectorStatus.js | 139 ++++++++++------- 13 files changed, 418 insertions(+), 132 deletions(-) create mode 100644 src/main/java/com/emr/controller/CheckcodeController.java create mode 100644 src/main/java/com/emr/dao/CollectorStatusMapper.java create mode 100644 src/main/java/com/emr/entity/CollectorStatus.java create mode 100644 src/main/java/com/emr/util/DrawCheckcode.java create mode 100644 src/main/java/com/emr/vo/CollectorStatusVo.java create mode 100644 src/main/resources/mapper/CollectorStatusMapper.xml diff --git a/src/main/java/com/emr/controller/CheckcodeController.java b/src/main/java/com/emr/controller/CheckcodeController.java new file mode 100644 index 0000000..1456920 --- /dev/null +++ b/src/main/java/com/emr/controller/CheckcodeController.java @@ -0,0 +1,48 @@ +package com.emr.controller; + +import com.emr.util.DrawCheckcode; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.imageio.ImageIO; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.awt.image.BufferedImage; +import java.io.IOException; + +@Controller +public class CheckcodeController { + @RequestMapping("/check") + @ResponseBody + public String checkcodeCheck(String codeClient, HttpServletRequest request){ + String codeServer = (String)request.getSession().getAttribute("CHECKCODE"); + if (codeClient.equals(codeServer)){ + return "验证码正确"; + }else{ + return "验证码错误"; + } + } + + @RequestMapping("/checkcode") + public void checkcodeMake(HttpServletResponse response, HttpServletRequest request) throws IOException { + + //画验证码 + DrawCheckcode drawCheckcode = new DrawCheckcode(); + BufferedImage image = drawCheckcode.doDraw(); + + //设置响应头,防止缓存 + response.setHeader("Pragma","no-cache"); + response.setHeader("Cache-Control","no-cache"); + response.setHeader("Expires","0"); + //将验证码的值保存在session中,以便校验 + request.getSession().setAttribute("CHECKCODE",drawCheckcode.getCheckCode()); + + ServletOutputStream outputStream = response.getOutputStream(); + ImageIO.write(image,"jpeg",outputStream); + outputStream.flush(); //清空缓冲区数据 + outputStream.close(); //关闭流 + } + +} diff --git a/src/main/java/com/emr/controller/StatisticsController.java b/src/main/java/com/emr/controller/StatisticsController.java index 8ada2e7..9d0d01f 100644 --- a/src/main/java/com/emr/controller/StatisticsController.java +++ b/src/main/java/com/emr/controller/StatisticsController.java @@ -1,6 +1,7 @@ package com.emr.controller; import com.emr.entity.Archive_Master_Vo; +import com.emr.entity.CollectorStatus; import com.emr.entity.OffsetLimitPage; import com.emr.service.ipml.StatisticsService; import com.emr.util.ExceptionPrintUtil; @@ -305,6 +306,28 @@ public class StatisticsController { } } + + + //采集器状态 + @RequestMapping("getCollectorStatus") + @ResponseBody + public OffsetLimitPage getCollectorStatus(Integer offset, Integer limit,CollectorStatusVo collectorStatusVo){ + if(null != offset && null != limit){ + PageHelper.offsetPage(offset, limit); + } + try { + List list = statisticsService.getCollectorStatus(collectorStatusVo); + return new OffsetLimitPage((Page)list); + } catch (Exception e) { + ExceptionPrintUtil.printException(e); + e.printStackTrace(); + return null; + } + } + + + + //扫描记录明细 @RequestMapping("getScanInfo") @ResponseBody diff --git a/src/main/java/com/emr/dao/CollectorStatusMapper.java b/src/main/java/com/emr/dao/CollectorStatusMapper.java new file mode 100644 index 0000000..b8273cd --- /dev/null +++ b/src/main/java/com/emr/dao/CollectorStatusMapper.java @@ -0,0 +1,11 @@ +package com.emr.dao; + +import com.emr.entity.CollectorStatus; +import com.emr.vo.CollectorStatusVo; + +import java.util.List; + +public interface CollectorStatusMapper { + + List getCollectorStatus(CollectorStatus collectorStatus); +} diff --git a/src/main/java/com/emr/entity/CollectorStatus.java b/src/main/java/com/emr/entity/CollectorStatus.java new file mode 100644 index 0000000..322f899 --- /dev/null +++ b/src/main/java/com/emr/entity/CollectorStatus.java @@ -0,0 +1,28 @@ +package com.emr.entity; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class CollectorStatus implements Serializable { + + private int id; + + //虚拟机ip + private String fictitiousIp; + //采集器名称 + private String collectorName; + //采集器标识 + private String collectorKey; + //更新时间 + private String updateTime; + //备用字段 + private String c1; + //备用字段 + private String c2; + + + +} diff --git a/src/main/java/com/emr/service/ipml/StatisticsService.java b/src/main/java/com/emr/service/ipml/StatisticsService.java index 3c721bd..f92789b 100644 --- a/src/main/java/com/emr/service/ipml/StatisticsService.java +++ b/src/main/java/com/emr/service/ipml/StatisticsService.java @@ -1,10 +1,8 @@ package com.emr.service.ipml; -import com.emr.dao.RecordStatisticsMapper; -import com.emr.dao.StatisticsMapper; -import com.emr.dao.TUuInfoMapper; -import com.emr.dao.TUuPrintMapper; +import com.emr.dao.*; import com.emr.entity.Archive_Master_Vo; +import com.emr.entity.CollectorStatus; import com.emr.entity.OffsetLimitPage; import com.emr.vo.*; import com.github.pagehelper.Page; @@ -43,6 +41,8 @@ public class StatisticsService { private RecordStatisticsMapper recordStatisticsMapper; @Autowired private CommomService commomService; + @Autowired + private CollectorStatusMapper collectorStatusMapper; //终审按天统计 public List getFinalStatistics(Integer offset, Integer limit, String startDate, String endDate,String sql) throws Exception{ if(null != offset && null != limit){ @@ -174,6 +174,33 @@ public class StatisticsService { } return countlist; } + //采集器状态 + public List getCollectorStatus(CollectorStatus collectorStatus){ + List list = collectorStatusMapper.getCollectorStatus(collectorStatus); + //获取系统当前时间 + Long time = System.currentTimeMillis(); + //时间格式转换 + SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + time -=20*1000*60;//在当前系统时间的基础上减去20分钟 + String currentTime = format.format(time); + if (list!=null){ + for (CollectorStatusVo StatusList:list){ + String updateTime = StatusList.getUpdateTime(); + if(updateTime.compareTo(currentTime)>0){ + StatusList.setCollectorStatus("正在运行"); + }else { + StatusList.setCollectorStatus("停止运行"); + } + String c1 = StatusList.getC1(); + if(StringUtils.isNotBlank(c1)){ + StatusList.setC1("采集任务已完成"); + }else { + StatusList.setC1("采集任务未完成"); + } + } + } + return list; + } private String setSearchName(TUuPrintSearch search, List userList) { String name = ""; diff --git a/src/main/java/com/emr/util/DrawCheckcode.java b/src/main/java/com/emr/util/DrawCheckcode.java new file mode 100644 index 0000000..a60804c --- /dev/null +++ b/src/main/java/com/emr/util/DrawCheckcode.java @@ -0,0 +1,74 @@ +package com.emr.util; + +import java.awt.*; +import java.awt.image.BufferedImage; +import java.util.Random; + +public class DrawCheckcode { + private String checkCode; + + public String getCheckCode() { + return checkCode; + } + + public void setCheckCode(String checkCode) { + this.checkCode = checkCode; + } + + //随机产生颜色 + public Color getColor(){ + Random random = new Random(); + //获取0-255随机值 + int r = random.nextInt(256); + int g = random.nextInt(256); + int b = random.nextInt(256); + return new Color(r,g,b); + } + + //产生验证码值 + public String getNum(){ + //原来是0-8999,+1000后变成1000-9999 + int ran = (int)(Math.random()*9000)+1000; + return String.valueOf(ran); + } + + public BufferedImage doDraw(){ + //绘制验证码 + //参数:长,宽,图片类型 + BufferedImage image = new BufferedImage(80, 30, BufferedImage.TYPE_INT_RGB); + //画笔 + Graphics graphics = image.getGraphics(); + //画长方形,坐标从0,0,到80,30 + graphics.fillRect(0,0,80,30); + //绘制50条干扰条 + for(int i=0;i<50;i++){ + Random random = new Random(); + int xBegin = random.nextInt(80); + int yBegin = random.nextInt(30); + int xEnd = random.nextInt(xBegin +10); + int yEnd = random.nextInt(yBegin +10); + //画笔颜色,随机 + graphics.setColor(getColor()); + //绘制线条 + graphics.drawLine(xBegin,yBegin,xEnd,yEnd); + } + + //绘制验证码 + //字体加粗,变大 + graphics.setFont(new Font("seif",Font.BOLD,20)); + //画笔颜色 + graphics.setColor(Color.BLACK); + //得到随机取得的数字 + String checode = getNum(); + checkCode = checode; + //在数字中间加上空格分开 + StringBuffer buffer = new StringBuffer(); + for(int i=0;i + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/beHospitaledDir/beHospList.jsp b/src/main/webapp/WEB-INF/views/beHospitaledDir/beHospList.jsp index 24919ba..924b483 100644 --- a/src/main/webapp/WEB-INF/views/beHospitaledDir/beHospList.jsp +++ b/src/main/webapp/WEB-INF/views/beHospitaledDir/beHospList.jsp @@ -846,7 +846,7 @@
-
+
diff --git a/src/main/webapp/WEB-INF/views/statistics/collectorStatus.jsp b/src/main/webapp/WEB-INF/views/statistics/collectorStatus.jsp index 92bcdc1..8c0c93e 100644 --- a/src/main/webapp/WEB-INF/views/statistics/collectorStatus.jsp +++ b/src/main/webapp/WEB-INF/views/statistics/collectorStatus.jsp @@ -3,7 +3,7 @@ - 扫描上传记录报表 + 采集器状态 @@ -38,7 +38,7 @@
- 扫描上传记录报表 + 采集器状态
@@ -46,79 +46,84 @@
-
-
- -
-
-
- -
- - - - -
-
- - -
- - + + + + + + + + +
-
- - -
+ <%--
--%> + <%----%> + <%--
--%> + <%-- + <%--maxlength="10" autocomplete="off" value="${startDate}"/>--%> + <%-----%> + <%-- + <%--maxlength="10" autocomplete="off" value="${endDate}"/>--%> + <%--
--%> + <%--
--%> + <%----%> + <%----%> + <%--
--%> + <%----%> + <%----%> + <%--
--%> + <%--
--%> + <%----%> + <%----%> + <%--
--%> - + <%----%>
-
-
-
- -
- -
-
+ <%--
--%> + <%--
--%> + <%--
--%> + <%----%> + <%--
--%> + <%----%> + <%--
--%> + <%--
--%> diff --git a/src/main/webapp/static/js/hospitalCommom/hospitalCommom.js b/src/main/webapp/static/js/hospitalCommom/hospitalCommom.js index 716ce72..5960386 100644 --- a/src/main/webapp/static/js/hospitalCommom/hospitalCommom.js +++ b/src/main/webapp/static/js/hospitalCommom/hospitalCommom.js @@ -651,12 +651,15 @@ function initTable2() { valign: 'middle', visible: false }, - { title: '标题', field: 'title', align: 'left', - valign: 'middle' + valign: 'middle', + width: 1, + cellStyle: { + css: {"max-width":"450px","white-space":"nowrap","text-overflow":"ellipsis","overflow":"hidden"} + } }, { title: '采集完成时间', diff --git a/src/main/webapp/static/js/statistics/collectorStatus.js b/src/main/webapp/static/js/statistics/collectorStatus.js index 58e6432..21d9baf 100644 --- a/src/main/webapp/static/js/statistics/collectorStatus.js +++ b/src/main/webapp/static/js/statistics/collectorStatus.js @@ -22,7 +22,7 @@ $("#dateFlag").change(function(){ function initTable() { if(tipLoad == 1){ $("#table").bootstrapTable({ // 对应table标签的id - url: path+"/statistics/getScanCount", // 获取表格数据的url + url: path+"/statistics/getCollectorStatus", // 获取表格数据的url contentType: "application/x-www-form-urlencoded",//一种编码。好像在post请求的时候需要用到。这里用的get请求,注释掉这句话也能拿到数据 cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true striped: true, //表格显示条纹,默认为false @@ -74,11 +74,7 @@ function initTable() { var temp = { limit: limit, //页面大小 offset: offset, //页码 - startDate: startDate, - endDate: endDate, - name:$("#name").val(), - isSearch:$("#isSearch").val(), - dateFlag:$("#dateFlag").val() + collectorKey:$("#collectorKey").val(), }; return temp; }, @@ -91,29 +87,60 @@ function initTable() { valign: 'middle' }, { - title: '扫描人', - field: 'uuname', + title: '虚拟机ip', + field: 'fictitiousIp', align: 'center', valign: 'middle' }, { - title: '扫描日期', - field: 'uploaddatetime', + title: '采集器名称', + field: 'collectorName', align: 'center', valign: 'middle' }, { - title: '扫描次数', - field: 'scanCount', + title: '采集器标识', + field: 'collectorKey', align: 'center', valign: 'middle' }, { - title: '扫描份数', - field: 'scanNums', + title: '最后更新时间', + field: 'updateTime', align: 'center', valign: 'middle' }, + { + title: '采集器状态', + field: 'collectorStatus', + align: 'center', + valign: 'middle', + formatter: function (value, row, index) { + if(value != null){ + var color = ''; + if(row.collectorStatus=="正在运行"){ + color = 'green'; + }else{ + color = 'red'; + } + return '' + value + ''; + } + } + }, + { + title: '是否完成任务', + field: 'c1', + align: 'center', + valign: 'middle', + // formatter: function (value, row, index) { + // if(value != null ||value != ""){ + // value='采集任务已完成' + // }else { + // value='采集任务未完成' + // } + // return value; + // } + }, ], onLoadSuccess: function (result) { //加载成功时执行 $(".page-list").show(); @@ -126,45 +153,45 @@ function initTable() { }); } } - -//导出excel功能 -$("#excelBtn").click(function () { - //获取选中数据记录 - var idlist = $('#table').bootstrapTable('getAllSelections'); - var dateFlag = $("#dateFlag").val(); - var sql = '';//AND ((uuName = '何素芳' and convert(date, UpLoadDateTime, 8) = '2019-12-26') or (uuName = '何素芳' and convert(date, UpLoadDateTime, 8) = '2019-12-26')) - if(idlist.length > 0){ - var dateWhereSql = ''; - if(dateFlag == 1){ - dateWhereSql = 'CONVERT (VARCHAR(10), t1.UpLoadDateTime, 120)'; - }else if(dateFlag == 2){ - dateWhereSql = 'CONVERT (VARCHAR(7), t1.UpLoadDateTime, 120)'; - }else if(dateFlag == 3){ - dateWhereSql = 'CONVERT (VARCHAR(4), t1.UpLoadDateTime, 120)'; - } - for (var i = 0; i < idlist.length; i++) { - if(idlist.length == 1){ - sql += "AND (powerusers.name = '"+idlist[i].uuname+"' and "+dateWhereSql+" = '"+idlist[i].uploaddatetime+"')"; - }else{ - if(i == 0){ - sql += "AND ((powerusers.name = '"+idlist[i].uuname+"' and "+dateWhereSql+" = '"+idlist[i].uploaddatetime+"') or "; - }else if(i != idlist.length - 1){ - sql += "(powerusers.name = '"+idlist[i].uuname+"' and "+dateWhereSql+" = '"+idlist[i].uploaddatetime+"') or "; - }else if(i == idlist.length - 1){ - sql += "(powerusers.name = '"+idlist[i].uuname+"' and "+dateWhereSql+" = '"+idlist[i].uploaddatetime+"'))"; - } - } - } - } - var url = path+"/statistics/exportExcelScanCount"; - var startDate = getStartOrEndDate(dateFlag,"startTime"); - var endDate = getStartOrEndDate(dateFlag,"endTime"); - post(url, { - "startDate": startDate, - "endDate": endDate, - "name":$("#name").val(), - "isSearch":$("#isSearch").val(), - "sql":sql, - "dateFlag":dateFlag - }); -}); +// +// //导出excel功能 +// $("#excelBtn").click(function () { +// //获取选中数据记录 +// var idlist = $('#table').bootstrapTable('getAllSelections'); +// var dateFlag = $("#dateFlag").val(); +// var sql = '';//AND ((uuName = '何素芳' and convert(date, UpLoadDateTime, 8) = '2019-12-26') or (uuName = '何素芳' and convert(date, UpLoadDateTime, 8) = '2019-12-26')) +// if(idlist.length > 0){ +// var dateWhereSql = ''; +// if(dateFlag == 1){ +// dateWhereSql = 'CONVERT (VARCHAR(10), t1.UpLoadDateTime, 120)'; +// }else if(dateFlag == 2){ +// dateWhereSql = 'CONVERT (VARCHAR(7), t1.UpLoadDateTime, 120)'; +// }else if(dateFlag == 3){ +// dateWhereSql = 'CONVERT (VARCHAR(4), t1.UpLoadDateTime, 120)'; +// } +// for (var i = 0; i < idlist.length; i++) { +// if(idlist.length == 1){ +// sql += "AND (powerusers.name = '"+idlist[i].uuname+"' and "+dateWhereSql+" = '"+idlist[i].uploaddatetime+"')"; +// }else{ +// if(i == 0){ +// sql += "AND ((powerusers.name = '"+idlist[i].uuname+"' and "+dateWhereSql+" = '"+idlist[i].uploaddatetime+"') or "; +// }else if(i != idlist.length - 1){ +// sql += "(powerusers.name = '"+idlist[i].uuname+"' and "+dateWhereSql+" = '"+idlist[i].uploaddatetime+"') or "; +// }else if(i == idlist.length - 1){ +// sql += "(powerusers.name = '"+idlist[i].uuname+"' and "+dateWhereSql+" = '"+idlist[i].uploaddatetime+"'))"; +// } +// } +// } +// } +// var url = path+"/statistics/exportExcelScanCount"; +// var startDate = getStartOrEndDate(dateFlag,"startTime"); +// var endDate = getStartOrEndDate(dateFlag,"endTime"); +// post(url, { +// "startDate": startDate, +// "endDate": endDate, +// "name":$("#name").val(), +// "isSearch":$("#isSearch").val(), +// "sql":sql, +// "dateFlag":dateFlag +// }); +// });