自定义比较符,组织字段,过滤上级组织和同级组织原创
2人赞赏了该文章
362次浏览
编辑于2023年11月24日 19:03:00
配置工具中添加自定义比较符
单据中添加上一步新增的自定义比较符
单据中使用:
解析类代码如下:
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 ""; } }