package tqq9.lc123.cloud.app.plugin.form.im; import kd.bos.bill.AbstractBillPlugIn; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.LocaleString; import kd.bos.dataentity.utils.StringUtils; import kd.bos.entity.datamodel.events.ChangeData; import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.field.BasedataEdit; import kd.bos.form.field.ComboEdit; import kd.bos.form.field.ComboItem; import kd.bos.form.field.events.BeforeF7SelectEvent; import kd.bos.form.field.events.BeforeF7SelectListener; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.sdk.plugin.Plugin; import tqq9.lc123.cloud.app.plugin.form.conm.purconmAddRebateRulesPlugin; import java.util.ArrayList; import java.util.EventObject; import java.util.List; /** * 表单通用插件 * 行政区划:省市区过滤插件 */ public class AreaSelectionBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener { private final static Log logger = LogFactory.getLog(AreaSelectionBillPlugin.class); private final static String PROVINCE = "tqq9_province"; private final static String CITY = "tqq9_city"; private final static String DISTRICT = "tqq9_district"; @Override public void registerListener(EventObject e) { super.registerListener(e); // 侦听基础资料字段的事件 BasedataEdit Basedata_city = this.getView().getControl(CITY); BasedataEdit Basedata_district = this.getView().getControl(DISTRICT); Basedata_city.addBeforeF7SelectListener(this); Basedata_district.addBeforeF7SelectListener(this); } @Override public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { String key = beforeF7SelectEvent.getProperty().getName(); if (StringUtils.equals(CITY, key)) { DynamicObject tqq9_province = (DynamicObject) this.getModel().getValue(PROVINCE); QFilter qFilter = null; if (tqq9_province != null) { qFilter = new QFilter("parent.number", QCP.equals, tqq9_province.getString("number")); } else { qFilter = new QFilter("parent.number", QCP.equals, "过滤全部筛选条件"); } beforeF7SelectEvent.addCustomQFilter(qFilter); } else if (StringUtils.equals(DISTRICT, key)) { DynamicObject tqq9_city = (DynamicObject) this.getModel().getValue(CITY); QFilter qFilter = null; if (tqq9_city != null) { qFilter = new QFilter("parent.number", QCP.equals, tqq9_city.getString("number")); } else { qFilter = new QFilter("parent.number", QCP.equals, "过滤全部筛选条件"); } beforeF7SelectEvent.addCustomQFilter(qFilter); } } }