单据转换插件设置满足某条件不允许下推的示例 - IShare

单据转换插件设置满足某条件不允许下推的示例

单据转换插件设置满足某条件不允许下推的示例

public class JudgContractState extends AbstractConvertPlugIn implements Plugin {
    @Override
    public void beforeBuildRowCondition(BeforeBuildRowConditionEventArgs e) {
        List<ListSelectedRow> selectedRows = e.getSelectedRows();
        List<Long> pkValues = new ArrayList<>();
        for (ListSelectedRow selectedRow : selectedRows) {
            Long keyValue = (Long) selectedRow.getPrimaryKeyValue();
            pkValues.add(keyValue);
        }
        Map<String, HashSet<Long>> targetBills = BFTrackerServiceHelper.findTargetBills("yfsw_dcxys", pkValues.toArray(new Long[0]));
        if (targetBills.containsKey("yfsw_contract")) {
            HashSet<Long> preferId = targetBills.get("yfsw_contract");
            List<String> billStatusList = new ArrayList<>();
            for (Long next : preferId) {
                DynamicObject object = BusinessDataServiceHelper.loadSingle(next, "yfsw_contract");
                String billStatus = object.getString("yfsw_htzhuangtai");
                billStatusList.add(billStatus);
            }
            if (billStatusList.contains("A")){
                e.setCustFilterDesc("存在签署中的合同,不允许重复发起!");  // 不允许下推的原因
                // 设置条件表达式,用于脚本执行 (必选)
                e.setCustFilterExpression(" 1 != 1 ");
                // 同时设置具有相同含义的QFilter条件,用于选单数据查询 (必选)
                QFilter qFilter = new QFilter("1", QCP.not_equals, "1");
                e.getCustQFilters().add(qFilter);
            }
        }
    }
}

1

无标签
打赏
评论区
头像
文章目录