跳到主要内容

函数扩展

实现函数扩展接口

实现接口 ICustomFunction,重写其方法。

提示

注意:函数类开发完后要在其类上加注解 @Component ,确保该类在项目spring的扫描目录下。

ICustomFunction 类属性说明

方法说明
String getTitle();函数中文名称
String getName();函数英文名称,是函数唯一标识,通过此名称调用该函数
String getDesc();描述,解释函数作用,换行使用<br/>
String getType();类型,用于函数列表分类
Object doFunction(FunctionContent content);函数执行逻辑,用户在此方法内实现函数功能。

Api说明

描述Api
获取函数所有入参List<Object> parameters = content.getParameters();

示例

@Component
public class Add1Fun implements ICustomFunction {

@Override
public String getTitle() {
return "加法";
}

@Override
public String getName() {
return "add";
}

@Override
public String getDesc() {
return "add(a,b,c,d) 值为 null 时,当作 0";
}

@Override
public String getType() {
return "计算";
}

@Override
public Object doFunction(FunctionContent functionContent) {
List<Object> parameters = functionContent.getParameters();
if (parameters == null || parameters.size() < 2) {
return null;
}
String firstNum;
if (functionContent.getParameter(0) == null) {
firstNum = "0";
}else {
firstNum = StrUtils.GetNum(functionContent.getParameter(0));
}
BigDecimal bigDecimal = new BigDecimal(firstNum);
for (int i = 1; i < parameters.size(); i++) {
String addedValue = "0";
Object addedValueObj = parameters.get(i);
if(addedValueObj != null){
addedValue = addedValueObj.toString();
}
String num = StrUtils.GetNum(addedValue);
bigDecimal = bigDecimal.add(new BigDecimal(num));
}
return NumberUtils.formatNum(bigDecimal);
}
}

效果展示

函数扩展_1.png