Commit 4e72f6a4 by wangyang

虹膜采集提交

parent 58e5f1bd
......@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
......@@ -135,9 +136,12 @@ public class HmCjController {
}
@RequestMapping("/toHmTest")
public ModelAndView toTest(ModelAndView model) {
model.setViewName("test/Hmtest");
@RequestMapping("/toHmCj")
public ModelAndView toTest(ModelAndView model, HttpServletRequest request) {
model.addObject("rybh",request.getParameter("rybh"));
model.addObject("xm",request.getParameter("xm"));
model.addObject("gmsfhm",request.getParameter("gmsfhm"));
model.setViewName("hmcj/index");
return model;
}
......@@ -212,4 +216,72 @@ public class HmCjController {
}
/**
* 保存虹膜采集数据--中科虹霸
*
* @param tbStHm
* @return
*/
@RequestMapping("/saveHmSjXxHb")
@ResponseBody
private Map<String, String> saveHmSjXxHb(TbStHm tbStHm) {
Map<String, String> map = new HashMap<>();
//判断必填项是否有值
if (tbStHm == null || StringUtils.isEmpty(tbStHm.getRybh())) {
//失败
map.put("code", "1");
map.put("msg", "人员编号不能为空!");
return map;
}
if (StringUtils.isEmpty(tbStHm.getXm())) {
//失败
map.put("code", "1");
map.put("msg", "姓名不能为空!");
return map;
}
if (StringUtils.isEmpty(tbStHm.getHmywdm())) {
//失败
map.put("code", "1");
map.put("msg", "虹膜眼位代码不能为空!");
return map;
}
if (tbStHm.getHmsj() == null || tbStHm.getHmsj().length == 0) {
//失败
map.put("code", "1");
map.put("msg", "虹膜数据不能为空!");
return map;
}
if (StringUtils.isEmpty(tbStHm.getHmqsqk())) {
//失败
map.put("code", "1");
map.put("msg", "虹膜缺失情况不能为空!");
return map;
}
if (StringUtils.isEmpty(tbStHm.getLrrPolicemanid())) {
//失败
map.put("code", "1");
map.put("msg", "采集人警号不能为空!");
return map;
}
//生成信息主键编号
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
tbStHm.setXxzjbh(uuid);
//录入人相关信息
tbStHm.setLrr(dicItemService.queryNameByCode(tbStHm.getLrrPolicemanid(), "CODE_JY"));
Boolean b = hmCjService.saveHmSjXx(tbStHm);
if (b) {
//成功
map.put("code", "0");
map.put("msg", "虹膜数据保存成功!");
} else {
//失败
map.put("code", "1");
map.put("msg", "虹膜数据保存失败!");
}
return map;
}
}
\ No newline at end of file
......@@ -23,6 +23,13 @@ public class TbStHm implements Serializable {
//虹膜眼位代码 0:左眼虹膜1:右眼虹膜9:未知
private String hmywdm;
//虹膜左数据
private String hmsjLeft;
//虹膜右数据
private String hmsjRight;
//虹膜数据
private byte[] hmsj;
......@@ -129,4 +136,20 @@ public class TbStHm implements Serializable {
public void setCjsj(Date cjsj) {
this.cjsj = cjsj;
}
public String getHmsjLeft() {
return hmsjLeft;
}
public void setHmsjLeft(String hmsjLeft) {
this.hmsjLeft = hmsjLeft;
}
public String getHmsjRight() {
return hmsjRight;
}
public void setHmsjRight(String hmsjRight) {
this.hmsjRight = hmsjRight;
}
}
html, body {
width: 100%;
height: 100%;
}
body {
margin: 0;
padding: 0;
}
.btn_group {
position: absolute;
top: 20px;
left: 0;
}
.choose_eqip {
margin-left: 6px;
}
.btn_style {
margin: 20px 0 0 10px;
height: 30px;
width: 88px;
outline: none;
border: none;
border-radius: 10px;
color: #f8f8f8;
font-size: 12px;
background-color: #299bd7;
cursor: pointer;
}
.btn_style:hover {
background-color: #0188cc;
}
.btn_style:disabled {
background-color: rgba(41, 155, 215, 0.5);
cursor: not-allowed;
}
label {
margin-left: 10px;
width: 70px;
font-size: 12px;
}
select {
cursor: pointer;
outline: none;
border-radius: 10px;
padding: 2px 0 4px 5px;
font-size: 12px;
}
select:disabled {
background-color: rgba(0, 0, 0, 0.2);
cursor: not-allowed;
}
#iframe_btn_groups {
display: none;
}
html, body {
width: 100%;
height: 100%;
}
body {
margin: 0;
padding: 0;
}
.btn_style {
height: 30px;
width: 88px;
outline: none;
border: none;
border-radius: 10px;
color: #f8f8f8;
font-size: 12px;
background-color: #299bd7;
cursor: pointer;
}
.btn_style:hover {
background-color: #0188cc;
}
.btn_style:disabled {
background-color: rgba(41, 155, 215, 0.5);
cursor: not-allowed;
}
label {
width: 70px;
font-size: 12px;
}
select {
cursor: pointer;
outline: none;
border-radius: 10px;
padding: 2px 0 4px 5px;
font-size: 12px;
}
select:disabled {
background-color: rgba(0, 0, 0, 0.2);
cursor: not-allowed;
}
.display_image .circle.left {
top: 20%;
left: 10%;
}
.display_image .circle.right {
top: 20%;
right: 10%;
}
.equip_status {
left: 38%;
}
\ No newline at end of file
@charset "UTF-8";
body{
overflow:hidden;
}
td{
vertical-align:top;
}
select {
width: 120px !important;
outline: none !important;
margin: 0px;
}
.container {
width: 100%;
height: 100%;
padding: 0;
}
.demo_panel {
width:260px;
}
.display_image {
width: 100%;
height: 0;
padding-bottom: 56%;
position: relative;
}
.display_image .image_cover {
width: 100%;
height: 100%;
position: absolute;
background-color: rgba(255, 255, 0, .3);
z-index:20;
}
.display_image img {
z-index: 10;
width: 100%;
height: 100%;
position: absolute;
}
.full_view {
width: 100%;
height: 100%;
}
.error_msg {
min-width: 145px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
font-size: 2.5vw;
color: red;
display: none;
}
.display_image .display_info, .display_image .display_info_empty {
position: absolute;
top: 0;
left: 0;
background-color: rgba(0, 0, 255, 0.2);
width: 100%;
height: 100%;
color: lime;
display: none;
z-index:30;
}
.display_image .circle{
width:252px;
height:252px;
}
.display_image .circle.left {
position: absolute;
top: 50%;
left: 25%;
width: 32%;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
}
.display_image .circle.right {
position: absolute;
top: 50%;
right: 25%;
width: 32%;
transform: translate(50%, -50%);
-webkit-transform: translate(50%, -50%);
-moz-transform: translate(50%, -50%);
-ms-transform: translate(50%, -50%);
}
.circle img{
position:absolute;
left:0px;
top:0px;
}
.eyes_progress {
text-align: center;
font-size: 2vw;
margin-top:10px;
}
.equip_status {
color: #ff780a;
text-align: center;
font-size: 2vw;
position: absolute;
bottom: 42px;
left: 50%;
transform: translate(-50%);
-webkit-transform: translate(-50%);
-moz-transform: translate(-50%);
-ms-transform: translate(-50%);
min-width: 260px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
line-height:normal;
}
#warn_message {
word-break: break-word;
font-size: 16px;
word-wrap:break-word;
}
#show_information {
word-break: break-word;
}
#prompt_info {
font-size: 18px;
margin: 15px;
}
.btn_table td {
vertical-align: middle;
padding:5px;
}
\ No newline at end of file
@charset "UTF-8";
/**
* 480 + 20 = 500
* 270 + 4 = 274
*/
.container {
width: 100%;
height: 100%;
padding: 0;
}
#visible {
padding: 0 10px;
}
.visible {
display: inline-block;
box-sizing: border-box;
width: 100%;
}
.visible .visible_area {
width: 100%;
position: relative;
}
.visible .visible_area .visible_image {
width: 100%;
height: 100%;
}
.visible .visible_area img {
width: 100%;
height: 100%;
}
.error_msg {
min-width: 145px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
font-size: 2.5vw;
color: red;
display: none;
}
.visible_info, .visible_info_empty {
position: absolute;
top: 0;
left: 0;
background-color: rgba(0, 0, 255, 0.2);
width: 100%;
height: 100%;
color: lime;
display: none;
}
.eyes_progress {
text-align: center;
}
.left_circle {
position: absolute;
top: 50%;
left: 25%;
width: 32%;
border-radius: 50%;
border: 5px solid green;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
}
.left_circle:before {
content: "";
padding-top: 100%;
display: block;
}
.right_circle {
position: absolute;
top: 50%;
right: 25%;
width: 32%;
border-radius: 50%;
border: 5px solid green;
transform: translate(50%, -50%);
-webkit-transform: translate(50%, -50%);
-moz-transform: translate(50%, -50%);
-ms-transform: translate(50%, -50%);
}
.right_circle:before {
content: "";
padding-top: 100%;
display: block;
}
#svgLeft, #svgRight {
position: absolute;
top: -5px;
left: -5px;
}
.equip_status {
color: #ff780a;
text-align: center;
font-size: 2vw;
position: absolute;
bottom: 42px;
left: 50%;
transform: translate(-50%);
-webkit-transform: translate(-50%);
-moz-transform: translate(-50%);
-ms-transform: translate(-50%);
min-width: 260px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.left_coordinate {
position: absolute;
bottom: 18px;
left: 5px;
font-size: 12px;
}
.right_coordinate {
position: absolute;
bottom: 0;
left: 5px;
font-size: 12px;
}
.display_pic img {
margin-right: 20px;
width: 160px;
height: 120px;
cursor: pointer;
}
.display_pic .left {
text-align: center;
}
.display_pic .left img:nth-child(3) {
margin: 0;
}
.display_pic .right {
margin-top: 30px;
text-align: center;
}
.display_pic .right img:nth-child(3) {
margin: 0;
}
#warn_message {
word-break: break-word;
font-size: 16px;
}
#show_information {
word-break: break-word;
}
#prompt_info {
font-size: 18px;
margin: 15px;
}
#canvas1 {
position: absolute;
top: 50%;
left: 25%;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
}
#canvas2 {
position: absolute;
top: 50%;
right: 25%;
transform: translate(50%, -50%);
-webkit-transform: translate(50%, -50%);
}
#canvas .circle {
display: inline-block;
margin: 1em;
}
.circles-decimals {
font-size: .4em;
}
.circles-text {
display: none;
}
\ No newline at end of file
var IkServerI18n = null;
$.getJSON("/static/hmcj/i18n/ik-server-i18n.json", function (data, status) {
if (status == 'success') {
IkServerI18n = data;
SetDefaultText();
} else {
console.log("error loading [ik-server-i18n.json]:" + status);
}
})
function HTMLLocalisation() {
//给英文状态下的label的':'后边添加空格
if(PageLanguage == "zh-CN"){
$(".queryrow label").each(function () {
$(this).css("white-space","");
})
}else if(PageLanguage == "en"){
$(".queryrow label").each(function () {
$(this).css("white-space","pre");
})
}
try {
var tempStr = "";
//初始化页面元素
$('[data-i18n-placeholder]').each(function () {
tempStr = GetLocalisationText($(this).data('i18n-placeholder'));
if (tempStr !== undefined) {
$(this).attr('placeholder', tempStr);
}
});
$('[data-i18n-nav]').each(function () {
tempStr = GetLocalisationText($(this).data('i18n-nav'));
if (tempStr !== undefined) {
$(this).children('.caption').text(tempStr);
}
});
$('[data-i18n-text]').each(function () {
tempStr = GetLocalisationText($(this).data('i18n-text'));
if (tempStr !== undefined) {
if($(this).data('role') == 'checkbox' || $(this).data('role') == 'radio'){ //判断是不是metro的checkbox组件
//如果text里面还有html需要过滤掉
var html = $(this).nextAll('.caption').html();
var reg = /<(.*)>/;
if (reg.test(html)) {
var htmlValue = reg.exec(html)[0];
$(this).nextAll('.caption').html(htmlValue + tempStr);
}
else {
$(this).nextAll('.caption').text(tempStr);
}
}else{
//如果text里面还有html需要过滤掉
var html = $(this).html();
var reg = /<(.*)>/;
if (reg.test(html)) {
debugger;
var htmlValue = reg.exec(html)[0];
$(this).html(tempStr + htmlValue);
}
else {
$(this).text(tempStr);
}
}
}
});
$('[data-i18n-value]').each(function () {
tempStr = GetLocalisationText($(this).data('i18n-value'));
if (tempStr !== undefined) {
$(this).val(tempStr);
}
});
} catch (e) {
console.log("HTMLLocalisation error----", e);
}
}
function GetLocalisationText(codeStr) {
var reutrnText = undefined;
try {
$($(IkServerI18n).prop("ik-server-i18n")).each(function (index, item) {
if (item[codeStr] != undefined) {
$(item[codeStr]).each(function (index1, item1) {
if (item1[PageLanguage] != undefined) {
reutrnText = item1[PageLanguage];
return false;
}
});
return false;
}
});
} catch (e) {
console.log("GetLocalisationText error----", e);
}
return reutrnText;
}
function GetChineseToEn(dataMsg) {
var reutrnMsg = dataMsg;
var isfind = false;
try {
$($(IkServerI18n).prop("ik-server-i18n")).each(function (index, item) {
if(dataMsg != undefined){
$.each(item, function (n, value) {
$.each(value, function (k, val) {
for (var key in val) {
if(val[key] == dataMsg){
isfind = true;
}
}
})
if(isfind){
$(value).each(function (index1, item1) {
if (item1[PageLanguage] != undefined) {
reutrnMsg = item1[PageLanguage];
return false;
}
});
return false;
}
})
if(isfind){
return false;
}
}
});
} catch (e) {
console.log("GetChineseToEn error----", e);
}
return reutrnMsg;
}
var mainOrigin = "*";
// 距离状态
function distanceInfo(distanceMode) {
var distance_mode;
switch (distanceMode) {
case -1:
distance_mode = GetLocalisationText('DisplayPanel.TooFar');
break;
case 0:
distance_mode = GetLocalisationText('DisplayPanel.Appropriate');
break;
case 1:
distance_mode = GetLocalisationText('DisplayPanel.TooClose');
break;
case 100:
distance_mode = GetLocalisationText('DisplayPanel.NoEyesDetected');
break;
default:
distance_mode = distanceMode;
break;
}
return distance_mode;
}
// 提示信息
function UIUEMsgID(UIUEMsgID) {
var message;
switch (UIUEMsgID) {
case 0:
message = GetLocalisationText('DisplayPanel.ScanningNowKeepStable');
break;
case 1:
message = GetLocalisationText('DisplayPanel.PleaseAimYourEyesViewfinder');
break;
case 2:
message = GetLocalisationText('DisplayPanel.PleaseAimYourEyesViewfinder');
break;
case 4:
message = GetLocalisationText('DisplayPanel.PleaseStayAway');
break;
case 8:
message = GetLocalisationText('DisplayPanel.PleaseStayClose');
break;
case 16:
message = GetLocalisationText('DisplayPanel.PleaseAimYourEyesViewfinder');
break;
case 32:
message = GetLocalisationText('DisplayPanel.PleaseAimYourEyesViewfinder');
break;
case 64:
message = GetLocalisationText('DisplayPanel.PleaseAimYourEyesViewfinder');
break;
case 128:
message = GetLocalisationText('DisplayPanel.PleaseAimYourEyesViewfinder');
break;
case 256:
message = GetLocalisationText('DisplayPanel.ScanningNowKeepStable');
break;
case 512:
message = GetLocalisationText('DisplayPanel.ScanningNowKeepStable');
break;
case 1024:
message = GetLocalisationText('DisplayPanel.OpenEyesOrAdjustAngle');
break;
case 16384:
message = GetLocalisationText('DisplayPanel.AdjustAngleOrRemoveGlasses');
break;
case 32768:
message = GetLocalisationText('DisplayPanel.LeaveBrightOrIndoors');
break;
case 65536:
message = GetLocalisationText('DisplayPanel.StopMailciousAttacks');
break;
case 131072:
message = GetLocalisationText('DisplayPanel.PleaseWink');
break;
case 262144:
message = GetLocalisationText('DisplayPanel.NoRegisteredNousing');
break;
case 33554432:
message = GetLocalisationText('DisplayPanel.RaisHeadOrRemoveGlasses');
break;
case 67108864:
message = GetLocalisationText('DisplayPanel.RaisHeadOrRemoveGlasses');
break;
default:
message = "";
break;
}
return message;
}
// 错误码
function ErrorCode(ErrorCode) {
var errorMessage;
switch (ErrorCode) {
case -2147483648:
errorMessage = GetLocalisationText('DisplayPanel.NotTheSamePerson');
break;
case -1001:
errorMessage = GetLocalisationText('DisplayPanel.SDKFailedOrNotInitialized');
break;
case -1002:
errorMessage = GetLocalisationText('DisplayPanel.HandleFunctionFail');
break;
case -1003:
errorMessage = GetLocalisationText('DisplayPanel.ErrorInDeviceAll');
break;
case -1004:
errorMessage = GetLocalisationText('DisplayPanel.InvalidAuthorizationNeedNewSDK');
break;
case -1005:
errorMessage = GetLocalisationText('DisplayPanel.ErrorReadDeviceID');
break;
case -1006:
errorMessage = GetLocalisationText('DisplayPanel.ErrorInDeviceCalibration');
break;
case -1007:
errorMessage = GetLocalisationText('DisplayPanel.CheckingDeviceProgress');
break;
case -1008:
errorMessage = GetLocalisationText('DisplayPanel.UnsupportedDifferentDevice');
break;
case -1009:
errorMessage = GetLocalisationText('DisplayPanel.UpAndDownDevice');
break;
case -1010:
errorMessage = GetLocalisationText('DisplayPanel.SystemNotEnumerateDevice');
break;
case -1011:
errorMessage = GetLocalisationText('DisplayPanel.DeviceNumberLessThanTwo');
break;
case -1021:
errorMessage = GetLocalisationText('DisplayPanel.FaceCameraFailOrSDKNotInitialized');
break;
case -1031:
errorMessage = GetLocalisationText('DisplayPanel.SDKActuatorFailOrSDKNotInitialized');
break;
case -2102:
errorMessage = GetLocalisationText('DisplayPanel.StopRegisterOrIdentificationFail');
break;
case -2103:
errorMessage = GetLocalisationText('DisplayPanel.RegistrationAndRecognitionSimultaneously');
break;
case -2104:
errorMessage = GetLocalisationText('DisplayPanel.InvalidInputForRegistration');
break;
case -2105:
errorMessage = GetLocalisationText('DisplayPanel.InvalidInputForRecognition');
break;
case -2106:
errorMessage = GetLocalisationText('DisplayPanel.ComparisonTnputNotValid');
break;
case -2107:
errorMessage = GetLocalisationText('DisplayPanel.OvertimeInRecognition');
break;
case -2108:
errorMessage = GetLocalisationText('DisplayPanel.ManyInputFeaturesInRecognition');
break;
case -2109:
errorMessage = GetLocalisationText('DisplayPanel.NoFeatureInRecognition');
break;
case -2110:
errorMessage = GetLocalisationText('DisplayPanel.RepetitionOfNewAndRegisteredFeatures');
break;
case -2121:
errorMessage = GetLocalisationText('DisplayPanel.AsynchronousCallFailed');
break;
case -2122:
errorMessage = GetLocalisationText('DisplayPanel.AsynchronousTasksPerformedNotResulted');
break;
case -2201:
errorMessage = GetLocalisationText('DisplayPanel.ComparisonFailed');
break;
case -2301:
errorMessage = GetLocalisationText('DisplayPanel.ImageAcquisitionFailed');
break;
case -2302:
errorMessage = GetLocalisationText('DisplayPanel.NotHongbaImg');
break;
case -3001:
errorMessage = GetLocalisationText('DisplayPanel.InvalidIrismode');
break;
case -3002:
errorMessage = GetLocalisationText('DisplayPanel.RegistrationOrIdentificationTimeInvalid');
break;
case -3003:
errorMessage = GetLocalisationText('DisplayPanel.InvalidFindMode');
break;
case -3004:
errorMessage = GetLocalisationText('DisplayPanel.InvalidIfSpoofDetect');
break;
case -3005:
errorMessage = GetLocalisationText('DisplayPanel.InvalidAlgorithmicControlParameters');
break;
case -4001:
errorMessage = GetLocalisationText('DisplayPanel.DrawingFailed');
break;
case -4002:
errorMessage = GetLocalisationText('DisplayPanel.TurnOnTheCameraFailed');
break;
case -7000:
errorMessage = GetLocalisationText('DisplayPanel.JKImageErrorCode');
break;
case -7001:
errorMessage = GetLocalisationText('DisplayPanel.AddingAdditionalHeaderStructureErrors');
break;
case -8000:
errorMessage = GetLocalisationText('DisplayPanel.FunctionCallDefaultError');
break;
case -9000:
errorMessage = GetLocalisationText('DisplayPanel.ErrorAboutJAS');
break;
case -9001:
errorMessage = GetLocalisationText('DisplayPanel.ErrorJASInitialization');
break;
case -9002:
errorMessage = GetLocalisationText('DisplayPanel.InputStreamError');
break;
case -9003:
errorMessage = GetLocalisationText('DisplayPanel.OutputStreamError');
break;
default:
errorMessage = errorMsg;
break;
}
return errorMessage;
}
//console.log = function () { };
window.name = "iriskingNetSDK";
var isDemoMode = false;
var sdkType = "standard";
var isPreviewing = false;
var errorMsg;
var mainOrigin = "*";
var equipToken = "";
var imagePreviewTimer = null;
var singleEyeEnrollNumber = 3;
var imagePreviewInterval = 100; //毫秒
var serverIP = "localhost";// 地址
var serverPort = "7880";
var serverUrl = "http://" + serverIP + ":" + serverPort + "/irisking/netdevice/";
var imagePreviewUrl = serverUrl + "imagepreview";
var lastimagetime = 0;
var isRequestComplete = false;
var leftProgress = 0;
var rightProgress = 0;
var circleWidth = 216;
var isLowerThanIE9 = false;
var isInPreviewQuery = false;
var PageLanguage = "zh-CN"; //具体类型详见ik-server-i18n.json文件
$(document).ready(function () {
var DEFAULT_VERSION = 8.0;
var ua = navigator.userAgent.toLowerCase();
var isIE = ua.indexOf("msie") > -1;
var safariVersion;
if (isIE) {
safariVersion = ua.match(/msie ([\d.]+)/)[1];
}
if (safariVersion <= DEFAULT_VERSION) {
isLowerThanIE9 = true;
imagePreviewInterval = imagePreviewInterval * 2;
};
isDemoMode = true;
if (isDemoMode == true) {
sdkType = "GA";
if (sdkType.toLowerCase() == "ga") {
startEquipUrl = serverUrl + "enroll_ga";
forcecaptureUrl = serverUrl + "forcecapture_ga";
getDeviceInfoUrl = serverUrl + "deviceinfo_ga";
$("#force_regist_btn").show();
$("#hand_register_btn").hide();
$("#info_btn").show();
$("#extract_tr").hide();
}
isPreviewing = false;
$(".demo_panel").show();
}
else {
isPreviewing = true;
$(".demo_panel").hide();
StartPreview();
}
isInPreviewQuery = false;
});
function SetDefaultText() {
$("#image").attr("alt", GetLocalisationText("DisplayPanel.ImgAlt"));
$("#error_msg").html(GetLocalisationText("DisplayPanel.DeviceUpsideDown"));
$("#progress_info .eyes_progress").html(GetLocalisationText("DisplayPanel.DeviceDistance"));
$("#progress_info .equip_status").html(GetLocalisationText("DisplayPanel.DeviceFree"));
}
function StartPreview() {
imagePreviewTimer = window.setInterval(function () {
if (isInPreviewQuery == false) {
isInPreviewQuery = true;
queryPreviewImage();
}
}, imagePreviewInterval);
}
function StopPreview() {
window.clearInterval(imagePreviewTimer);
isInPreviewQuery = false;
}
function queryPreviewImage() {
if (isPreviewing == true) {
var browserType = isLowerThanIE9 ? 1 : 0;
$.ajax({
url: imagePreviewUrl,
type: "POST",
async: true,
data: "{token:'" + equipToken + "',code:'',lastimagetime:" + lastimagetime + ",specialbrowsertype:'" + browserType+ "' }",
contentType: "application/json-patch+json",
dataType: "json",
success: function (data, textStatus, jqXHR) {
if (data.code == 0 ) {
//if (data.imagetime > lastimagetime)
{
$(".image_cover").hide();
if (data.info) {
if (data.info.up_side_down) {
$(".error_msg").show();
} else {
$(".error_msg").hide();
}
}
if (data.image)
{
lastimagetime = data.imagetime;
$('#image').attr('src', 'data:image/png;base64,' + data.image);
}
$(".display_info").show();
circleWidth = $(".display_image .circle.left")[0].offsetWidth;
$(".display_image .circle.left").height(circleWidth + "px");
$(".display_image .circle.right").width(circleWidth + "px");
$(".display_image .circle.right").height(circleWidth + "px");
var html = '<div class="eyes_progress">'+GetLocalisationText("DisplayPanel.DeviceDistance") + distanceInfo(data.info.eys_position.distance_mode) + '</div>' +
'<div class="equip_status">' + UIUEMsgID(data.info.uiue_id) + '</div>';
$("#progress_info").html(html);
if (data.info.left_progress != leftProgress) {
leftProgress = data.info.left_progress;
$('#left_eye_progress').attr('src', getProgressImage(leftProgress / singleEyeEnrollNumber));
}
if (data.info.right_progress != rightProgress) {
rightProgress = data.info.right_progress;
$('#right_eye_progress').attr('src', getProgressImage(rightProgress / singleEyeEnrollNumber));
}
}
}
else {
$(".image_cover").show();
}
},
error: function (jqXHR, textStatus, errorThrown) {
$(".image_cover").show();
},
complete: function (XMLHttpRequest, status) {
isInPreviewQuery = false;
if (status == 'timeout') {
xhr.abort(); // 超时后中断请求
}
}
});
}
}
function getProgressImage(percent) {
var imageUrl = "/static/hmcj/images/eyesuggest.png";
if (percent > 0 && percent <= 0.34) {
imageUrl = "/static/hmcj/images/eye30p.png";
}
else if (percent > 0.34 && percent <= 0.68) {
imageUrl = "/static/hmcj/images/eye60p.png";
}
else if ( percent > 0.68) {
imageUrl = "/static/hmcj/images/eye100p.png";
}
return imageUrl;
}
function ResetEyeProgress() {
$('#left_eye_progress').attr('src', getProgressImage(0));
$('#right_eye_progress').attr('src', getProgressImage(0));
}
//获取url中的参数
function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r != null) return unescape(r[2]); return null; //返回参数值
}

//console.log = function () { };
var mainOrigin = "*";
var serverIP = "localhost";
var serverPort = "7880";
var wsUrl = "ws://" + serverIP + ":" + serverPort + "/irisking/netdevice/preview";
// 设置图片外面盒子的宽度和高度 宽度100%,根据宽度改变高度
var visibleImgWidth = $('.display_area')[0].clientWidth;
$('.display_area')[0].style.height = visibleImgWidth * 270 / 480 - 10 + "px";
var circleWidth = document.getElementById("left_circle").offsetWidth;
document.getElementById("svgLeft").setAttribute("width", circleWidth);
document.getElementById("svgLeft").setAttribute("height", circleWidth);
document.getElementById("svgRight").setAttribute("width", circleWidth);
document.getElementById("svgRight").setAttribute("height", circleWidth);
// 窗口变化
window.onresize = function () {
visibleImgWidth = $('.display_area')[0].clientWidth;
$('.display_area')[0].style.height = visibleImgWidth * 270 / 480 - 10 + "px";
circleWidth = document.getElementById("left_circle").offsetWidth;
document.getElementById("svgLeft").setAttribute("width", circleWidth);
document.getElementById("svgLeft").setAttribute("height", circleWidth);
document.getElementById("svgRight").setAttribute("width", circleWidth);
document.getElementById("svgRight").setAttribute("height", circleWidth);
}
// 圆的周长
var perimeter = Math.PI * 2 * 195;
// 图像预览 websocket
var ws;
// 图片
var img = "";
function createWebSocket() {
try {
console.log("createWebSocket->new WebSocket");
ws = new WebSocket(wsUrl);
if (ws.readyState == 2 || ws.readyState == 3) {
window.location.reload();
}
initEventHandle();
} catch (e) {
console.log("createWebSocket ", e);
console.error("后台异常");
$('#image').attr('src', '/static/hmcj/images/480x270.png');
$(".display_info").hide();
parent.postMessage("resetBtns:", mainOrigin);
}
}
//createWebSocket();
var hasImage = false;
var timer;
var leftProgress = 0;
var rightProgress = 0;
function initEventHandle() {
ws.onclose = function (event) {
console.log("onclose", event);
createWebSocket();
};
ws.onerror = function (event) {
console.log("onerror", event);
window.location.reload();
};
ws.onopen = function () {
};
ws.onmessage = function (event) {
var data = JSON.parse(event.data);
console.log(data);
clearTimeout(timer);
timer = setTimeout(function () {
createWebSocket();
}, 300);
if (data.info) {
if (data.info.up_side_down) {
$(".error_msg").show();
} else {
$(".error_msg").hide();
}
}
if (data.image) $('#image').attr('src', 'data:image/png;base64,' + data.image);
$(".display_info").show();
circleWidth = document.getElementById("left_circle").offsetWidth;
document.getElementById("svgLeft").setAttribute("width", circleWidth);
document.getElementById("svgLeft").setAttribute("height", circleWidth);
document.getElementById("svgRight").setAttribute("width", circleWidth);
document.getElementById("svgRight").setAttribute("height", circleWidth);
var html = '<div class="eyes_progress">距离: ' + distanceInfo(data.info.eys_position.distance_mode) + '</div>' +
'<div class="equip_status">' + UIUEMsgID(data.info.uiue_id) + '</div>';
$("#progress_info").html(html);
if (data.info.left_progress !== leftProgress && data.info.left_progress > leftProgress) {
leftProgress = data.info.left_progress;
document.getElementById("leftCircle").setAttribute('stroke-dasharray', perimeter * (data.info.left_progress / 3) + " " + perimeter * (1 - (data.info.left_progress / 3)));
}
if (data.info.right_progress !== rightProgress && data.info.right_progress > rightProgress) {
rightProgress = data.info.right_progress;
document.getElementById("rightCircle").setAttribute('stroke-dasharray', perimeter * (data.info.right_progress / 3) + " " + perimeter * (1 - (data.info.right_progress / 3)));
}
data = null;
}
}
function getWidth() {
return window.innerWidth / 6.5;
}
var queryInterval = 400000000;//400000000约100毫秒
var imagePreviewUrl = "http://localhost:7880/irisking/netdevice/imagepreview";
var lastimagetime = new Date();
var isRequestComplete = false;
$.ready(function () {
});
queryPreviewImage();
function queryPreviewImage() {
$.ajax({
url: imagePreviewUrl,
type: "GET",
async: true,
data: "{token:'',code:'',lastimagetime:" + lastimagetime + "}",
contentType: "application/json-patch+json",
dataType: "json",
success: function (data, textStatus, jqXHR) {
},
error: function (jqXHR, textStatus, errorThrown) {
},
complete: function (XMLHttpRequest, status) {
//延迟
var tempTime = new Date();
for (var i = 0; i < queryInterval; i++) { }
var tempTime1 = new Date();
var delay = tempTime1.getTime() - tempTime.getTime();
console.log("延迟:", delay );
queryPreviewImage();
if (status == 'timeout') {
xhr.abort(); // 超时后中断请求
}
}
});
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -35,6 +35,8 @@
<script type="text/javascript" src="/static/js/edzFunc.chrome.js" charset="utf-8"></script>
<script type="text/javascript" src="/static/js/activeObjUtil.js" charset="utf-8"></script>
<script type="text/javascript" src="/static/js/AjaxFuncPersontoAfis.js" charset="utf-8"></script>
<script type="text/javascript" src="/static/js/layer/layer.js"></script>
<link rel="stylesheet" type="text/css" href="/static/js/layer/skin/layer.css">
<!-- <script type="text/javascript" src="static/js/AjaxFunctoAfis.js" charset="utf-8"></script>-->
<!-- 重置 -->
<link rel="stylesheet" type="text/css" href="static/xtba/ythcj/css/reset.css">
......@@ -1265,17 +1267,20 @@
//虹膜采集
function hmcj(){
var a = new ActiveXObject("wscript.shell");
try {
a.run("file:///C:/Users/Administrator/Desktop/IKUSBSDKDemo.exe.lnk");
} catch(e) {
try {
a.run("file:///D:/E30/201903241748-E30Demo/IKUSBSDKDemo.exe");
} catch(e) {
$.messager.alert( '提示',"找不到文件虹膜启动程序,请检查路径是否正确!","提示");
}
if(!$("#rybh").val()){
layer.alert("人员编号不能为空!")
return;
}
if(!$("#xm").val()){
layer.alert("请输入人员姓名!")
return;
}
if(!$("#zjhm").val()){
layer.alert("请输入证件号码!")
return;
}
window.open("/toHmCj?rybh="+$("#rybh").val()+"&xm="+$("#xm").val()+"&gmsfhm="+$("#zjhm").val());
//jAlert("功能维护升级中,请耐心等待!","提示");
}
......
......@@ -5,7 +5,7 @@
</head>
<body>
<div>
<form action="/saveHmTest" name="formkk" enctype="multipart/form-data" method="post">
<!--<form action="/saveHmTest" name="formkk" enctype="multipart/form-data" method="post">
<table>
<tbody>
<tr>
......@@ -54,8 +54,8 @@
</tbody>
</table>
<input type="button" onclick="check()" value="提交" />
</form>
</form>-->
<iframe src="http://localhost:9100/toHmTest" name="myframe" id="irisIframe"></iframe>
</div>
<script>
function check(){
......
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