自定义比较符,组织字段,过滤上级组织和同级组织原创
金蝶云社区-吴锐雄
吴锐雄
2人赞赏了该文章 321次浏览 未经作者许可,禁止转载编辑于2023年11月24日 19:03:00


配置工具中添加自定义比较符

image.png


单据中添加上一步新增的自定义比较符

image.png


单据中使用:

image.png


解析类代码如下:

package kdec.customfilter;

import com.kingdee.guard.service.checkrule.QCP;
import kd.bos.context.RequestContext;
import kd.bos.entity.filter.AbstractFilterContantParser;
import kd.bos.entity.filter.FilterContantParserArgs;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.org.OrgUnitServiceHelper;

import java.util.List;

/**
 * 过滤上级组织和同级组织
 */
public class SuperPeerOrgFilterParser extends AbstractFilterContantParser {

    @Override
    protected QFilter getQFilter(FilterContantParserArgs filterContantParserArgs) {

        String fieldName = filterContantParserArgs.getFieldName();
        fieldName = fieldName.split("\\.")[0];

        long currentOrgId = RequestContext.get().getOrgId();

        List<Long> superList = OrgUnitServiceHelper.getSuperiorOrgs("01",currentOrgId);

        List<Long> orgList = OrgUnitServiceHelper.getSubOrgLimitLevel( superList, 1, true);

        //QFilter qFilter = new QFilter("kdec_orgfield.number", QCP.like, "100001");
        //QFilter qFilter = new QFilter("kdec_orgfield.id", QCP.equals, 100001L);
        QFilter qFilter = new QFilter(fieldName + ".id", QCP.in, orgList);

        return qFilter;
    }

    @Override
    protected String getScriptFilter(FilterContantParserArgs filterContantParserArgs) {
        return "";
    }


}


赞 2