函数扩展
实现函数扩展接口
实现接口 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);
}
}