//有获取gps信息问题,使用打开表单,通过form_id获取设置信息,一个地址建一个表单
var doc = getCurrentDocument();
var r_id=doc.getFormid();
var WebUser = getWebUser();
var Userid = WebUser.getId();
var sql="select * from tlk_qr_sign_sitelist where item_qr_id='"+r_id+"'";
var datas=findBySQL(sql);
if(datas!=null){
var qr_lon=datas.getItemValueAsString("qr_lon");
var qr_lat=datas.getItemValueAsString("qr_lat");
var err_dis=datas.getItemValueAsString("site_r");
var time_r=datas.getItemValueAsString("stime_r");
var qr_name=datas.getItemValueAsString("qr_name");
var qr_site=datas.getItemValueAsString("qr_site");
var qr_no=datas.getItemValueAsString("qr_no");
var sDate=new Date();
var stime=format(sDate,"yyyy-MM-dd HH:mm:ss");
//js计算时间
var sdate1=new Date(sDate.getTime()-time_r*60*1000);
var stimer1=format(sdate1,"yyyy-MM-dd HH:mm:ss");
//时间判断
var sql0 = "select * from tlk_qr_sign_his where item_qr_id = '"+r_id+"' and item_user_id = '"+Userid+"' and item_sign_time>'"+stimer1+"'";
var t_count = countBySQL(sql0);
if(t_count>0){
createAlert("你已经在"+time_r+"分钟内签到了,不需再次签到!");
}else{
var gps = doc.getItemValueAsString("qr_gps");
var dep="["+gps+"]";
var lati=0;
var longi=0;
var sitei=0;
var jsonArray = new Packages.org.json.JSONArray(dep);
for(var i=0;i<jsonArray.length();i++){
var jsonObject = jsonArray.getJSONObject(i);
lati= jsonObject.getDouble("latitude");
longi= jsonObject.getDouble("longitude");
sitei= jsonObject.getString("address");
}
//计算距离
var lon1=qr_lon*Math.PI/180;
var lat1=qr_lat*Math.PI/180;
var lon2=longi*Math.PI/180;
var lat2=lati*Math.PI/180;
var b=lon1-lon2;
var a=lat1-lat2;
var s=2*Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2)+Math.cos(lat1)*Math.cos(lat2)*Math.pow(Math.sin(b/2),2)));
var r1=6371.393*1000*s;
if(parseDouble(r1.toFixed(6)) <= parseDouble(err_dis)){
var user_name = WebUser.getName();
var DepartmentId = WebUser.getDefaultDepartment();
var depprocess = getDepartmentProcess();
var dep = depprocess.doView(DepartmentId);
var dept_name = dep.getName();
var process = getDocumentProcess();
var formProcess = getFormProcess();
var newForm = formProcess.doViewByFormName("qr_sign_his",getApplication());
var doc1 = process.doNew(newForm,WebUser,createParamsTable());
doc1.addStringItem("sign_name",user_name);
doc1.addStringItem("user_id",Userid );
doc1.addStringItem("dept_name",dept_name);
doc1.addStringItem("dept_id",DepartmentId);
doc1.addStringItem("sign_time",stime);
doc1.addStringItem("gps_site",sitei);
doc1.addStringItem("gps_lon",longi);
doc1.addStringItem("gps_lat",lati);
doc1.addStringItem("qr_name",qr_name);
doc1.addStringItem("qr_site",qr_site);
doc1.addStringItem("qr_lon",qr_lon);
doc1.addStringItem("qr_lat",qr_lat);
doc1.addStringItem("qr_no",qr_no);
doc1.addStringItem("qr_id",r_id);
doc1.addStringItem("gps_r",r1);
process.doCreate(doc1);
createAlert("签到成功");
}else{
createAlert("距离签到地点"+r1+"米,无法签到");
}
}
var request = $WEB.getParamsTable().getHttpRequest();
var urlt="http://" + request.getServerName()+":" + request.getServerPort() + request.getContextPath();
var appid = doc.getApplicationid();
//跳转为手机模式视图,应只设置手机菜单或电脑不可用,需要固定视图id
var url=urlt+"/mobile/index.html#/open?linkType=01&appId="+appid+"&actionContent=__yfJ5WUX3jSYcvvW1vUg";
url;
}else{
createAlert("二维码地址失效,无法签到!")
}
|