日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

高級(jí)配置

更新時(shí)間:

創(chuàng)建文件核對(duì)規(guī)則 的過(guò)程中,您可以在設(shè)置核對(duì)配置時(shí)進(jìn)行以下高級(jí)配置。

說(shuō)明

高級(jí)配置 僅適用于創(chuàng)建文件核對(duì)規(guī)則的場(chǎng)景。對(duì)于離線核對(duì)規(guī)則,未提供該選項(xiàng)。

規(guī)則表達(dá)式

如果在設(shè)置規(guī)則表達(dá)式時(shí)開啟 高級(jí)配置 開關(guān),您可以使用 qlExpressGroovy 自定義較為復(fù)雜的表達(dá)式。

  • 若選擇 qlExpress,示例如下:

    • 引用數(shù)據(jù)源或文件時(shí),需要使用數(shù)據(jù)節(jié)點(diǎn)名稱。

    • 多個(gè)規(guī)則用英文逗號(hào) [,] 隔開。

    • 獲取數(shù)據(jù)節(jié)點(diǎn)上的數(shù)據(jù)。使用時(shí)須使用字段對(duì)應(yīng)的映射字段。

    DCD0191204k29o26m1.fileamount < DCD019120997hcfyh1.payamount , DCD0191204k29o26m1.fileamount <= DCD019120997hcfyh1.payamount

  • 若選擇 Groovy,示例如下:

    重要

    模型 一詞非字面義,本文特指 映射字段,即字段映射關(guān)系。以 核對(duì)模型,一左一右 為例,是指會(huì)根據(jù)映射字段分別為兩個(gè)數(shù)據(jù)節(jié)點(diǎn)生成兩個(gè)模型。

import com.alibaba.common.lang.StringUtil
 
import com.alibaba.fastjson.JSONObject
import org.slf4j.LoggerFactory;
import com.alipay.finorm.common.util.LoggerConstants;
import com.alipay.finorm.common.util.LoggerUtil;
import com.alipay.finorm.common.facade.enums.RuleResultErrorCode
import com.alipay.finorm.common.facade.sdk.GuardianContext
import com.alipay.finorm.common.facade.model.immune.RuleResult
 
def ruleExecute(rule, immuneModelList) {
 
    def LOGGER = LoggerFactory.getLogger(LoggerConstants.BIZ_GUARDIAN);
 
    def ruleResult = new RuleResult()
    ruleResult.setRuleId(rule.ruleId)
    ruleResult.setRuleName(rule.ruleName)
    ruleResult.setIsSuccess(true)
 
    if (immuneModelList==null){
       return ruleResult
    }
 
    //上下文 map
    def tmModel = GuardianContext.getBizEventContext();
 
    //核對(duì)模型,一左一右,可以通過(guò)模型 id 等關(guān)鍵信息判斷具體誰(shuí)左誰(shuí)右
    def model1 = immuneModelList.get(0);
    def model2 = immuneModelList.get(1);
 
    //獲取模型上的數(shù)據(jù),明細(xì)核對(duì)時(shí)候,是一行數(shù)據(jù)的 fieldName; 匯總核對(duì)時(shí)候,是自定義的匯總字段 fieldName;
    Map<String, Object> kv1 = model1.getFieldName2Value();
    Map<String, Object> kv2 = model2.getFieldName2Value();
    //匯總數(shù)值;  明細(xì)核對(duì)時(shí)候,可以獲取到明細(xì)數(shù)值
    Object id_sum1 = kv1.get("fileamount");
    Object id_sum2 = kv2.get("payamount");
 
    //可以統(tǒng)一轉(zhuǎn)為 bigdecimal 的方式處理
 
    def isSuccess = id_sum1 > id_sum2;
 
    // 核對(duì)結(jié)果
    ruleResult.setIsSuccess(isSuccess);
    // 如果失敗,失敗的原因可以在這里放進(jìn)去
    ruleResult.setRuleErrorCode(" fileamount :" + id_sum1 +"  [class:"+id_sum1.class + "] vs payamount :" + id_sum2+"  [class:"+id_sum2.class + "]" )
 
    打印日志
    LoggerUtil.info(LOGGER, " ###groovy###  immuneModelList :" + JSONObject.toJSONString(immuneModelList) + "   ruleResult :" + JSONObject.toJSONString(ruleResult));
 
    return ruleResult
 
}