跳到主要内容

数据处理

集成

基础依赖已包含该组件,可直接使用。

变量

//字符串
str = "张三";
//字符串拼接,有参数:name = "张三",age = 20
desc = "我是"+name+",我今年"+age+"了";
//数字
num = 2;
//计算,有参数:a = 1,b = 2
c = a+b+1;
//数组
list = [1,2,3,4];
//对象
json = {
a:1,
b:2
};
//创建 java 对象
list = new java.util.ArrayList();

ArrayList = Java.type("java.util.ArrayList");
list = new ArrayList();

取值

//上下文中有参数:a = 1,现要把 a 的值赋给 b
b = a
//上下文中有对象:obj = { "a":1 },现要把 a 的值赋给 b
b = obj.a

使用内置函数

提示

param 为组件外变量时,使用 this.param,this 为流程的上下文

isBlank(param) //param 为 String
isNotBlank(param) //param 为 String
isNull(param)//param 为 Object
isNotNull(param)//param 为 Object
isEmpty(param)//param 为 List、String、Object
isNotEmpty(param)//param 为 List、String、Object

使用低代码函数

//有函数 strUpperCase(),其能力是将字符串转成全大写形式
a = _fun.strUpperCase("abc");
//结果:a = "ABC"

使用 java 工具类

if(com.manatee.common.util.StringUtil.isBlank(xxx)){
...
}

if 逻辑

 
`判断对象不能为 null `
if(isNotNull(this.param)){
//...
}

`判断字符串不能为 blank `
if(isNotBlank(this.str)){
//...
}

`判断 list 不能为 empty `
if(isNotEmpty(this.list)){
//...
}

`逻辑符号`
: && 或:||

循环逻辑

// 循环集合 list 
for ( index = 0; index < list.size(); index++) {
one = list.get(index);
}

for each( one in list){

}

// 循环 map
for each (key in map.keySet()) {

}
for each (val in map.values()) {

}

switch case 逻辑

d=new Date().getDay();
switch (d)
{
case 0:x="今天是星期日";
break;
case 1:x="今天是星期一";
break;
case 2:x="今天是星期二";
break;
case 3:x="今天是星期三";
break;
case 4:x="今天是星期四";
break;
case 5:x="今天是星期五";
break;
case 6:x="今天是星期六";
break;
}

集合

list = new java.util.ArrayList();
list.add(1);
list.add(2);

对象

obj = new java.util.HashMap();
obj.put("name", "张三");
obj.put("age", 20);

引入常用包

load("nashorn:mozilla_compat.js");
importPackage("java.util");

list = new ArrayList();
list.add("a");
list.add("b");

map = new HashMap();
map.put("a", "a");
map.put("b", "b");

set = new HashSet();
set.add("a");
set.add("a");

uuid = UUID.randomUUID();

// ------------------------------------------------

importPackage("java.lang");

l = new Long(123);
d = new Double(3.1415926);
f = new Float(Math.E);
s = new Short("1");

sb = new StringBuffer();
sb.append("a --- ");
sb.append("b --- c");
sb.delete(sb.length() - 1, sb.length());

// ------------------------------------------------

importPackage("com.alibaba.fastjson");

jsonObject = new JSONObject();
jsonObject.put("a", "a");
jsonObject.put("b", "b");
strings = jsonObject.keySet();
a = jsonObject.get("a");
jsonObject.remove("b");

jsonArray = new JSONArray();
jsonArray.add("a");
jsonArray.add(true);
jsonArray.add(123);
value_0 = jsonArray.get(0);
isEmpty = jsonArray.isEmpty();
arrayContainsA = jsonArray.contains("a");

// ------------------------------------------------

inport = new JavaImporter(java.util, java.io, com.alibaba.fastjson, java.lang);
with(inport) {
// 作用域
l = new Long(123);
d = new Double(3.1415926);
f = new Float(Math.E);
s = new Short("1");

sb = new StringBuffer();
sb.append("a --- ");
sb.append("b --- c");
sb.delete(sb.length() - 1, sb.length());

list = new ArrayList();
list.add("a");
list.add("b");

map = new HashMap();
map.put("a", "a");
map.put("b", "b");

set = new HashSet()
set.add("a");
set.add("b");
set.add("b");

jsonObject = new JSONObject();
jsonObject.put("a", "a");
jsonObject.put("b", "b");
strings = jsonObject.keySet();
a = jsonObject.get("a");
jsonObject.remove("b");

jsonArray = new JSONArray();
jsonArray.add("a");
jsonArray.add(true);
jsonArray.add(123);
value_0 = jsonArray.get(0);
isEmpty = jsonArray.isEmpty();
arrayContainsA = jsonArray.contains("a");
}

场景记录

1、有以下这种情况,由于数据处理组件当中支持java类,所以为增强代码的可读性,建议大家使用如下形式

 currentData = new java.util.HashMap();
beforeData = new java.util.HashMap();
//这处使用的就是java类调用函数获取map值的方式,建议大家使用这种方式
if (currentData.get("doctorId")== beforeData.get("doctorId")) {
currentData.put("doctorId", "_cellMergeUp");
}
}

2、如果需要查看变量类型,可以使用如下方式

log.info("info : {}", student.getClass());