16.仿简道云公式函数实战-钉钉宜搭逻辑函数-加餐

本文详细介绍了如何在钉钉宜搭中实现逻辑函数,包括EQ(判断相等)、NE(判断不等)、LT(小于)、GT(大于)、LE(小于等于)和GE(大于等于)的代码实战和测试用例,适用于数据处理和比较操作。
摘要由CSDN通过智能技术生成

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;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值