通过id获取数据
__ekbsagrjF60f5gJnBQQ
__ekbsagrjF60f5gJnBQQ
published
__jLHEtB6BFlMJFn00kUn
UTF-8
post
/getdataboardbyid
json
" + context);
var docid = obj["id"];
if (!isNotNull(docid)) {
var result = new Packages.java.util.HashMap(); //创建指定类对象
result.put("code", "-1");
result.put("msg", "必须传参数");
return result;
}
println("缓存数据=========》");
var cacheData = getDataFromRedis(getDomainid()+"--"+departmentID+"--"+docid);
println("缓存的数据=========》:"+cacheData);
if(cacheData != null && cacheData != '') {
return cacheData;
}
//数据仓数据看板
var sql3 = "SELECT * from tlk_data_board_v3_config where id = '" + docid + "'";
var datas1 = queryByDSName("organizationAuth", sql3);
var datas1 = jsonUtils.collection2Json(datas1);
var datas1Sjon = JSON.parse(datas1);
println("datas1 ==================>" + datas1);
for (var i = 0; i < datas1Sjon.length; i++) {
println("执行" + i + "次");
println("datas1Sjon.length" + datas1Sjon.length);
var item_title = datas1Sjon[i].item_title;
var item_dataSource = datas1Sjon[i].item_datasource;
var item_dataScript = datas1Sjon[i].item_datascript;
var item_showRule = datas1Sjon[i].item_showrule;
println("item_dataSource ==================>" + item_dataSource);
println("item_dataScript ==================>" + item_dataScript);
while (item_dataScript.indexOf('(') != -1 || item_dataScript.indexOf(')') != -1) {
item_dataScript = item_dataScript.replace('(', '(');
item_dataScript = item_dataScript.replace(')', ')');
}
//替换条件
if (item_dataScript.indexOf('#') != -1 || item_showRule.indexOf('#') != -1) {
//获取当前组织
var sqlDomainData = "select * from tenant_organizations where id ='" + getDomainid() + "'";
println("sqlDomainData ========================== " + sqlDomainData);
var datasDomain = queryByDSName("obpm2", sqlDomainData);
var datasDomainStr = jsonUtils.collection2Json(datasDomain);
var datasDomainJSON = JSON.parse(datasDomainStr);
//赋值部门id(监管机构)
var dptid =getWebUser().getDefaultDepartment();//默认部门id
while (item_dataScript.indexOf("#{dptid}") != -1) {
if (item_dataScript.indexOf("%#{dptid}%") != -1) {
item_dataScript = item_dataScript.replace("#{dptid}",dptid);
} else {
item_dataScript = item_dataScript.replace("#{dptid}", "'" + dptid+ "'");
}
}
//赋值用户id
var userid =getWebUser().getId();//默认用户id
while (item_dataScript.indexOf("#{userid}") != -1) {
if (item_dataScript.indexOf("%#{userid}%") != -1) {
item_dataScript = item_dataScript.replace("#{userid}",userid);
} else {
item_dataScript = item_dataScript.replace("#{userid}", "'" + userid+ "'");
}
}
for (var k in datasDomainJSON[0]) {
var regs = "#{" + k + "}"
while (item_dataScript.indexOf(regs) != -1) {
item_dataScript = item_dataScript.replace("#{" + k + "}", "'" + datasDomainJSON[0]["" + k + ""] + "'");
}
while (item_showRule.indexOf(regs) != -1) {
item_showRule = item_showRule.replace("#{" + k + "}", "'" + datasDomainJSON[0]["" + k + ""] + "'");
}
}
}
//处理addDataPermissionFilterConditionByFieldName函数,由字符串转函数调用
var f_index;
while((f_index = item_dataScript.indexOf("addDataPermissionFilterConditionByFieldName")) != -1){
var startIndex = item_dataScript.indexOf("(",f_index);
var endIndex = item_dataScript.indexOf(")",startIndex);
var replaceStr = item_dataScript.substring(f_index,endIndex+1);
var f_parameters = replaceStr.substring(startIndex-f_index+1,endIndex-f_index).replace(/'/g,"").split(",");
if(f_parameters.length == 2){
item_dataScript = item_dataScript.replace(replaceStr,addDataPermissionFilterConditionByFieldName(f_parameters[0],f_parameters[1]));
}else if(f_parameters.length == 3){
item_dataScript = item_dataScript.replace(replaceStr,addDataPermissionFilterConditionByFieldName(f_parameters[0],f_parameters[1],f_parameters[2]));
}
}
//执行查询
var flag;
var sc = item_showRule;
var R = queryByDSName(item_dataSource, item_dataScript);
//是否显示
datas1Sjon[i].item_datascript = "";
datas1Sjon[i].item_datasource = "";
flag = eval("" + sc + "");
var datamap = new Packages.java.util.HashMap();
//添加数据标题
datamap.put("title", item_title);
//添加数据
datamap.put("data", R);
datamap.put("isshow", flag);
datamap.put("doc",jsonUtils.toMap(JSON.stringify(datas1Sjon[i])));
//添加结果到数组中
result.put('code', 0)
result.put('data', datamap)
println("item_dataScript" + "=======================sbsbsbsbsbsbbssbbsbssb>" + item_dataScript);
println("执行" + i + "次");
}
println("设置缓存 ============>" + result);
setDataToRedis(getDomainid()+"--"+departmentID+"--"+docid,result,60);
return result;
}catch(e){
println("异常: 执行通过id获取数据-0605=========》"+e);
}
})()]]>