Commit db3cb685 by yangliang

增加指纹卡扫描及服务器性能获取功能

parent a5f4e220
......@@ -157,6 +157,11 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.hyperic</groupId>
<artifactId>sigar</artifactId>
<version>1.6.5.132</version>
</dependency>
<!-- 数据库驱动包 -->
<dependency>
<groupId>org.oracle</groupId>
......
......@@ -19,7 +19,7 @@ public class FilterConfig extends WebMvcConfigurerAdapter {
addPathPatterns("/**").
excludePathPatterns("/","/toLogin","/hncsLogin","/hnzzLogin","/hnxtLogin","/hnhyLogin","/hnsyLogin","/hnyueyLogin","/hnzjjLogin","/hncdLogin","/hnyiyLogin","/hnczLogin","/hnyzLogin","/hnhhLogin","/hnldLogin","/hnxxLogin","/hainanLogin","/neimengLogin","/getSjcntDetail","/noLogin","/saveSwSjXx",
"/saveHmSjXx","/getSwSjXx","/getYthcjryxxByZjhm","/getYthcjUser","/getZfbaUser","/getZwbzJbxxCnt","/getCcbzJbxxCnt","/toswcj",
"/doLogin","/toHome","/static*//**","/refreshCodeCache","/qxdoLogin","/queryNameByCode","/queryTypeCode","/toFjxz","/toCzsmxz","/download/**","/toObjectKJ","/catchimg","/iframe1","/iframe2","/xj","/report","/SavePersonInfo4Nmtc","/singleLoginAct","/getZjxxbdjg",
"/doLogin","/toHome","/static*//**","/refreshCodeCache","/qxdoLogin","/queryNameByCode","/queryTypeCode","/toFjxz","/toCzsmxz","/download/**","/toObjectKJ","/catchimg","/iframe1","/iframe2","/xj","/report","/SavePersonInfo4Nmtc","/singleLoginAct","/getZjxxbdjg","/toShowScan","/ajaxGettoAfisStr","/getTime","/savePersonScanBackInfo",
"/getYhkDetail","/getSwDetail","/getRyzjzpimages","/getRyzpimages","/getPmimages","/getGdimages"
);
......
......@@ -7,27 +7,37 @@ import com.founder.amsisDao.NewDataSourceDao;
import com.founder.login.service.LoginService;
import com.founder.model.AutoTbRyZp;
import com.founder.model.AutoTbStRy;
import com.founder.model.Param;
import com.founder.model.User;
import com.founder.module.redis.service.IDicItemService;
import com.founder.service.AutoTbXwRycjService;
import com.founder.service.IParamService;
import com.founder.service.ITbRyRyzpService;
import com.founder.utils.EasyUIPage;
import com.founder.utils.SysUitl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.ExecutionException;
/**
* Created by libin on 2018/4/10.
* Created by yangliang on 2020/4/10.
*/
@Controller
public class DemoController {
......@@ -45,11 +55,16 @@ public class DemoController {
@Autowired
private LoginService loginService;
@Autowired
private AutoTbXwRycjService rycjService;
@Autowired
private IParamService paramService;
@Autowired
private ITbRyRyzpService tbRyRyzpService;
@RequestMapping("/test")
@ResponseBody
public String Hello(String name){
return "hello,"+name;
}
......@@ -300,4 +315,74 @@ public class DemoController {
}
return map;
}
// 图片下载、并且存入数据库
public String insPic(byte[] bytes, String filenameStr) {
try {
String filePathS = "D:/Founder_YTHCJ/zpimg/ryimg";
File filejiaS = new File(filePathS); // 如果文件夹不存在则创建
if (!filejiaS.exists()) {
filejiaS.mkdir();
}
GenerateImage(bytes, filejiaS+"/"+filenameStr);
} catch (Exception e) {
return "-1";
} finally {
return "1";
}
}
@RequestMapping("/exportRyzp")
@ResponseBody
public String queryRyxxPage(HttpServletRequest request){
AutoTbStRy ryxx = new AutoTbStRy();
ryxx.setFlrsjStr("2020-05-20");
ryxx.setLrdwdm("460000000000");
List<AutoTbStRy> ryxxs = rycjService.queryRyxxList(ryxx);
int numtemp = 0;
for(int num=0;num<ryxxs.size();num++){
AutoTbStRy ryxxtmp = ryxxs.get(num);
if(ryxxtmp!=null&&ryxxtmp.getZmzpxxbh()!=null&&!"".equals(ryxxtmp.getZmzpxxbh())){
AutoTbRyZp zp = tbRyRyzpService.getTbRyRyzpById(ryxxtmp.getZmzpxxbh(),"460000000000");
//String baseZp = GetImageStrsByByte(zp.getDzwjnr());
if(zp!=null&&zp.getDzwjnr()!=null){
insPic(zp.getDzwjnr(),ryxxtmp.getXm()+"_"+ryxxtmp.getGmsfhm()+".jpg");
numtemp++;
}else{
continue;
}
}else{
continue;
}
}
return numtemp+"/"+ryxxs.size();
}
public static String GetImageStrsByByte(byte[] data) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
// 对字节数组Base64编码
if(data==null||data.length<=0){
return null;
}
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);// 返回Base64编码过的字节数组字符串
}
public static String GenerateImage(byte[] bytes, String imgFilePath) {// 对字节数组字符串进行Base64解码并生成图片
try { // Base64解码
for (int i = 0; i < bytes.length; ++i) {
if (bytes[i] < 0) {// 调整异常数据
bytes[i] += 256;
}
} // 生成jpeg图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(bytes);
out.flush();
out.close();
return "1";
} catch (Exception e) {
return null;
}
}
}
......@@ -2325,6 +2325,87 @@ public class TbXwRycjController {
}
@ResponseBody
@RequestMapping("/savePersonScanBackInfo")
public String savePersonScanBackInfo(HttpServletResponse response,HttpServletRequest request,String zwbh,String username){
User user = new User();
if(username!=null&&!"".equals(username)){
user = loginService.getUserByUsername(username);
}else{
user = loginService.getUserByUsername("admin");
}
Param param = paramService.getParamById("0012");
String serviceUrl = param.getParamvalue();
String returnXml = "";
Client client = null;
if (serviceUrl != null && !"".equals(serviceUrl)) {
try {
if(serviceUrl.indexOf("?wsdl")<0){
serviceUrl = serviceUrl + "?wsdl";
}
if(client == null){
client = new Client(new URL(serviceUrl));
}
} catch (Exception e) {
e.printStackTrace();
}
}
String paramXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><PARAMETER><BARCODE>"+zwbh+"</BARCODE><DATATYPE>0</DATATYPE></PARAMETER>";
try {
Object[] results = client.invoke("getScanResult", new Object[] { paramXml });
returnXml = ""+results[0];
String zwcjr = user.getUsername();
String zwcjdwdm = user.getUnitcode();
String rybh = "R"+zwbh;
String fingervalue = returnXml.substring(returnXml.indexOf("<FINGERVALUE>")+13, returnXml.indexOf("</FINGERVALUE>"));
AutoTbStRy ryxx = rycjService.getRyxxByRybh(rybh);
if(ryxx!=null){
fingervalue = fingervalue.substring(0,30);
String zmzpxxbh = ryxx.getZmzpxxbh();
String cmzpxxbh = ryxx.getCmzpxxbh();
String ycmzpxxbh = ryxx.getYcmzpxxbh();
if(zmzpxxbh!=null&&!zmzpxxbh.equals("")){
fingervalue = fingervalue+"F10000000";
}else{
fingervalue = fingervalue+"F00000000";
}
if(cmzpxxbh!=null&&!cmzpxxbh.equals("")){
fingervalue = fingervalue+"G10000000";
}else{
fingervalue = fingervalue+"G00000000";
}
if(ycmzpxxbh!=null&&!ycmzpxxbh.equals("")){
fingervalue = fingervalue+"H00000000";
}else{
fingervalue = fingervalue+"H00000000";
}
}
String results_str = zwbh+":"+fingervalue;
String zwString = rycjService.upzw(rybh,zwbh,results_str,"0",zwcjr,zwcjdwdm);
String message=zwString.trim();
//更新采集方式采集次数,检查结果
AfisQualityCk afisQualityCk = new AfisQualityCk();
afisQualityCk.setRZwbh(zwbh);
afisQualityCk.setRCjr(zwcjr);
afisQualityCk.setRCjdw(zwcjdwdm);
afisQualityCk.setRRybh(rybh);
boolean afisFlag = afisQualityService.updateAfisQualityCk(afisQualityCk);
response.setHeader("Cache-Control","no-cache");
response.setContentType("text/html;charset=GBK");
response.getWriter().write("指纹采集成功");
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@ResponseBody
@RequestMapping("/getZmzwimages")
public Map<String,Object> testAsyncReturnZzmzwImg(String zwbh) throws ExecutionException, InterruptedException {
......@@ -3856,6 +3937,40 @@ public class TbXwRycjController {
return returnStr;
}
@RequestMapping(value="/toShowScan",method = {RequestMethod.POST,RequestMethod.GET})
public String toShowScan(HttpServletRequest request,Model model,String ids,String username){
User user = new User();
if(username!=null&&!"".equals(username)){
user = loginService.getUserByUsername(username);
}
if(user==null){
return "login/login.html";
}
model.addAttribute("username",user.getUsername());
model.addAttribute("cxqssj",getSystemTime());
model.addAttribute("unitname",user.getUnitname());
model.addAttribute("truename",user.getTrueName());
model.addAttribute("unitcode",user.getUnitcode());
model.addAttribute("rybh",ids);
if(ids!=null&&!ids.equals("")){
model.addAttribute("zwbh",ids.substring(1));
AutoTbStRy newryxx = rycjService.getRyxxByRybh(ids);
doRyxxToAMSIS(newryxx); //扫描时将人员信息传递给AMSIS指纹系统
}
return "rygl/showScan.html";
}
@RequestMapping("/getTime")
@ResponseBody
public String getTime(){
Date date = new Date(); // 获取当前系统时间
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 设置日期格式
String strTime = simpleDateFormat.format(date); // 格式转换
System.out.println("指纹卡扫描获取时间字段:"+strTime);
return strTime;
}
// 向AMSIS系统推送人员信息 add by jiaorong 20150106
public String doRyxxToAMSIS(AutoTbStRy newryxx) {
// 获取AMSISService的参数信息,调用AMSISService的接口程序,将人员和照片信息传递到AMSIS系统
......
......@@ -88,7 +88,7 @@ public class AutoTbXwRycjServiceImpl extends BaseService<AutoTbStRy> implements
}
}
map.put("begin", "0");
map.put("end", "10000");
map.put("end", "30000");
map.put("sort", "LRSJ");
map.put("order", "desc");
map.put("entity", entity);
......
function writeScanOcx(){
//var obj = document.createElement("object");
//scanfinger.append(obj);
//obj.id = "PrtScanOcxCtrl";
//obj.width="100%";
//obj.height="100%";
//obj.classid="CLSID:276C0720-AB32-4091-AA01-ECE182D034B2";
//$("scanfinger").append("<object ID=\"PrtScanOcxCtrl\" CLASSID=\"CLSID:276C0720-AB32-4091-AA01-ECE182D034B2\" style=\"height: 100%;\"></object>");
document.write("<object ID=\"PrtScanOcxCtrl\" CLASSID=\"CLSID:276C0720-AB32-4091-AA01-ECE182D034B2\" style=\"height: 100%;width:100%\"></object>");
}
function writeShowOcx(id){
document.write("<OBJECT ID=\""+id+"\" CLASSID=\"CLSID:44568294-A37C-42DC-ACC8-764DC58D468F\" width=\"100%\" height=\"100%\"></OBJECT>");
}
function showMntOcx(id){
document.write("<OBJECT ID=\""+id+"\" CLASSID=\"CLSID:BC56AAB5-E79A-42B9-816E-5E2B90E8FFA2\" width=\"100%\" height=\"99%\"></OBJECT>");
}
function showAffrimOcx(id){
document.write("<OBJECT ID=\""+id+"\" CLASSID=\"CLSID:CEDFE206-3FF9-4B32-9DE3-DC17C1ECBF08\" style=\"width: 1160px;height: 550px;\"></OBJECT>");
}
function writeCaseOcx(id){
document.write("<OBJECT ID=\""+id+"\" CLASSID=\"CLSID:9EB78F9E-9BBA-4439-953E-8D9E8BB17A13\" style=\"width: 100%; height: 99%;\"></OBJECT>");
}
function writeAllOcx(id,classid){
document.write("<OBJECT ID=\""+id+"\" CLASSID=\""+classid+"\" style=\"width: 100%; height: 100%;\"></OBJECT>");
}
\ No newline at end of file
......@@ -303,6 +303,7 @@
var clentip = $("#clentip").val();
sbqxyz(clentip,"");
var unitcode = $("#unitcode").val();
var username = $("#username").val();
var cjsb = $("#cjsb").val();
if(unitcode.substring(0,2)=="14"){
if(cjsb.indexOf("SJ")<0){
......@@ -325,8 +326,12 @@
}
$('#sgtz').css('display', 'none');
}
if(username=="admin") {
$('#zwksm').css('display', 'block');
}
});
var dbtime=null;
var ifallowed = 0;//是否允许高科客户端进行采集
var xmlPersonInfo = "";
......@@ -1263,6 +1268,10 @@
function showScan(rybh,zmzp,cmzp,ycmzp){
var rybh=$("#rybh").val();
var xm=$("#xm").val();
var username=$("#username").val();
/*
var rybh=$("#rybh").val();
var ifamis=$("#ifamis").val();
var zwbh=$("#szzwbh").val();
var zmzpxxbh=$("#zmzpxxbh").val();
......@@ -1277,6 +1286,18 @@
}
var urlbak = "toShowScan.action?&ids="+rybh+"&ifamis="+ifamis+"&rzwbh="+zwbh;
openBrow(urlbak);
*/
window.open("openIE:http://172.31.5.115:7881/AMSIS/scan/scan_person.jsp?MODEL=TMFYseparatortypeflag=editseparatorBARCODE=4601000000002021040002separatorTDTXT=-separatorrandom=92");
}
function rxbc(){
$.ajax({
type: "POST",
url: "exportRyzp",
dataType: "json",
success: function(data){
alert(data);
}
});
}
//----------------------------------------验证
function checkZwClient(){
......@@ -2874,6 +2895,8 @@
<li id="wp"><a onclick="sswpcj()"><i class="fa fa-barcode"></i> 随身物品信息采集<img id="sswpifcj" src="/static/rygl/img/no.png"/></a></li>
<li id="dna"><a onclick="openDialog_DNADY()"><i class="fa fa-print"></i> 打印DNA标签</a></li>
<li><a href="javascript:prtzw()"><i class="fa fa-print"></i> 打印指纹卡</a></li>
<li id="zwksm" style="display: none;"><a onclick="swksm()"><i class="fa fa-barcode"></i> 指纹卡扫描</a></li>
<li style="display: none;"><a onclick="rxbc()"><i class="fa fa-barcode"></i> 生成人像</a></li>
<li><a href="javascript:openDialog_bz()"><i class="fa fa-barcode"></i> 人员信息无法采集说明</a></li>
<li id="hmts"><a onclick="hmts()" href="#"><i class="fa fa-barcode"></i> 虹膜推送(建设测试中)</a></li>
<div><span style="color: red;"></span></div>
......@@ -3437,6 +3460,36 @@
])
}
function swksm(){
var dialogId='w';
openUrlForm({
id:dialogId,
url:'openIE:http://127.0.0.1:9200/toShowScan?ids='+$('#rybh').val()+'separatorusername='+$('#username').val(),
title:'指纹卡扫描',
width:850,
height:500,
cache:false,
onClose:function(){
}
},[
{
//确定生成表头配置信息,并重新加载表格数据
text:'确定',
handler:function(){
$('#w').dialog('close');
$(document).unbind("scroll");
}
},{
text:'取消',
handler:function(){
$('#w').dialog('close');
$(document).unbind("scroll");
}
}
])
}
function openDialog_bz(){
var dialogId='w';
openUrlForm({
......
<!doctype html>
<html xmlns:th="http://www.thymeleaf.org">
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>指纹卡扫描</title>
<link rel="icon" href="static/zwbdxq/img/favicon.ico" type="image/x-icon">
<script language="javascript" src="/static/js/writeOcx.js"></script>
<script type="text/javascript" src="/static/ajgl/js/jquery.min.js"></script>
<script type="text/javascript" src="/static/ajgl/js/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" src="/static/easyui-window/js/jquery.easyui.min.js"></script>
<script type="text/javascript" src="/static/easyui-window/js/function.js"></script>
<script type="text/javascript" src="/static/js/function_tck.js"></script>
<script type="text/javascript" src="/static/common/js/baseJs.js"></script>
<script src="/static/xtba/ythcj/js/bootstrap-select.min.js"></script>
<script src="/static/js/jquery.base64.js"></script>
<script>
window.onbeforeunload = onbeforeunload_handler;
function onbeforeunload_handler(){
var ifamis=$("#ifamis").val();
var zwbh = $("#zwbh").val();
var rybh = $("#rybh").val();
var username = $("#username").val();
alert("ifamis="+ifamis+"----rybh="+rybh+"----zwbh="+rybh+"----username="+username);
if(ifamis=="1"){
$.ajax({
url:"savePersonScanBackInfo.action?rzwbh="+zwbh+"&rrybh="+rybh,
async:false,//是否异步
error:function(XMLHttpRequest, textStatus, errorThrown) {
alert("获取采集信息异常!");
},
success:function(data){
//alert(data);
}
});
}
window.opener.location.reload();
}
</script>
</head>
<body style="overflow: auto">
<form name="showscan">
<input type="hidden" name="rybh" id="rybh" th:value="${rybh}" />
<input type="hidden" name="unitcode" id="unitcode" th:value="${unitcode}" />
<input type="hidden" name="unitname" id="unitname" th:value="${unitname}" />
<input type="hidden" name="unitname" id="username" th:value="${username}" />
<input type="hidden" name="ifamis" id="ifamis" value="1" />
<input type="hidden" name="zwbh" id="zwbh" th:value="${zwbh }" />
<table>
<tr>
<td>
<input type="button" value="关 闭" class=button3 name="closeScan" onclick="window.close()" />
</td>
</tr>
</table>
<object ID="PrtScanOcxCtrl" CLASSID="CLSID:276C0720-AB32-4091-AA01-ECE182D034B2" style="height: 100%;width:100%"></object>
</form>
<script language="javaScript" defer="defer">
var rybh=$("#rybh").val();
var xmlStr = "";
var scanunitname = $("#unitname").val();
var scanunitcode = $("#unitcode").val();
var scanpsn = "";
var createuser = $("#username").val();
var FINGERVALUE = "A0*#A0A0A0A0A0A0A0A0A0A0*#A0A0A0A0A0A0A0A0A0A0*#A0A0*#A0A0*#A0A0A0A0A0A0A0A0*#A0A0A0A0A0A0A0A0*#A0A0A0A0A0A0A0A0*#"; //初始化默认值,不再动态获取
var scandate = "";
var IPAddr = "";
$.post("/getTime","",function(result){scandate=result; scandate = scandate.replace(new RegExp("-","gm"),"");});
$.ajax({
url:"/ajaxGettoAfisStr",
type:"POST",
data:{"psnid" : rybh,"clientVersion" : "2"},
dataType:"text",
async: false,
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("获取人员文字信息失败!","提示");
},
success:function(data){
xmlStr = data;
}
});
document.getElementById("PrtScanOcxCtrl").SetParameters(xmlStr,scanunitname,scanunitcode,scandate,scanpsn,createuser,IPAddr,FINGERVALUE);
</script>
</body>
</html>
\ No newline at end of file
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