16.仿简道云公式函数实战-钉钉宜搭逻辑函数-加餐
2023-12-18 18:32:12
1. 前言
钉钉宜搭中也有公式组件,发现在钉钉宜搭中逻辑函数有EQ、NE、LT、GT、LE、GE.虽然在QLExpress中也有对应的实现,但为了考虑系列文章的完整性,笔者在这篇文章加餐EQ、NE、LT、GT、LE、GE六个函数的实现
2. 函数说明
函数名 | 表达式 | 入参 | 返回值 |
EQ判断相等 | EQ(value1,value2) | 2个值作比较 |
boolean |
NE判断不等 | NE(value1,value2) | 2个值作比较 | boolean |
LT小于 | LT(value1,value2) | 2个值作比较 | boolean |
GT大于 | GT(value1,value2) | 2个值作比较 | boolean |
LE小于等于 | LE(value1,value2) | 2个值作比较 | boolean |
GE大于等于 | GE(value1,value2) | 2个值作比较 | boolean |
3. 代码实战
3.1 EQ判断相等
表达式:EQ(value1,value2)
入参:
-
2个值作比较
返回值:
-
类型:布尔值
-
返回值规则:两个值相等返回 true,支持数字,日期
package com.ql.util.express.self.combat.function.logic;
import com.ql.util.express.Operator;
/**
* 类描述:EQ函数
*
* @author admin
* @version 1.0.0
* @date 2023/11/27 14:04
*/
public class EqFunction extends Operator {
public EqFunction(String name) {
this.name = name;
}
@Override
public Object executeInner(Object[] list) throws Exception {
return executeInner(list[0], list[1]);
}
public Object executeInner(Object obj1, Object obj2) throws Exception {
return Operator.objectEquals(obj1, obj2);
}
}
3.2 NE判断不等
表达式:NE(value1,value2)
入参:
-
2个值做比较
返回值:
-
类型:布尔值
-
返回值规则:两个值不相等返回 true,支持数字,日期
package com.ql.util.express.self.combat.function.logic;
import com.ql.util.express.Operator;
/**
* 类描述: NE函数 判断不等
*
* @author admin
* @version 1.0.0
* @date 2023/11/27 14:07
*/
public class NeFunction extends Operator {
public NeFunction(String name) {
this.name = name;
}
@Override
public Object executeInner(Object[] list) throws Exception {
return executeInner(list[0], list[1]);
}
public Object executeInner(Object obj1, Object obj2) throws Exception {
return !Operator.objectEquals(obj1, obj2);
}
}
3.3 LT小于
表达式:LT(value1,value2)
入参:
-
2个值做比较
返回值:
-
类型:布尔值
-
返回值规则:value1 小于 value2 返回 true,支持数字,日期
package com.ql.util.express.self.combat.function.logic;
import com.ql.util.express.Operator;
import com.ql.util.express.self.combat.exception.FormulaException;
import static com.ql.util.express.config.QLExpressRunStrategy.isCompareNullLessMoreAsFalse;
/**
* 类描述: LT函数
*
* @author admin
* @version 1.0.0
* @date 2023/11/27 13:45
*/
public class LtFunction extends Operator {
public LtFunction(String name) {
this.name = name;
}
@Override
public Object executeInner(Object[] list) throws Exception {
return executeInner(list[0], list[1]);
}
public Object executeInner(Object obj1, Object obj2) throws Exception {
// 进行其他大小比较操作
if (obj1 == null || obj2 == null) {
if (isCompareNullLessMoreAsFalse()) {
return false;
}
throw new FormulaException("空操作数无法进行数字比较操作:left = " + obj1 + ",right = " + obj2);
}
int i = Operator.compareData(obj1, obj2);
boolean result = false;
if (i < 0) {
result = true;
}
return result;
}
}
文章来源:https://blog.csdn.net/DSDS454651/article/details/135067494
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!