|
@@ -0,0 +1,65 @@
|
|
|
+package fi.em.formPlugin;
|
|
|
+
|
|
|
+import kd.bos.bill.AbstractMobBillPlugIn;
|
|
|
+import kd.bos.dataentity.entity.DynamicObject;
|
|
|
+import kd.bos.exception.KDBizException;
|
|
|
+import kd.bos.form.field.BasedataEdit;
|
|
|
+import kd.bos.form.field.events.BeforeF7SelectEvent;
|
|
|
+import kd.bos.form.field.events.BeforeF7SelectListener;
|
|
|
+import kd.bos.list.MobileListShowParameter;
|
|
|
+import kd.bos.orm.query.QCP;
|
|
|
+import kd.bos.orm.query.QFilter;
|
|
|
+import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
+import kd.sdk.plugin.Plugin;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+
|
|
|
+import java.util.EventObject;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 移动表单插件
|
|
|
+ * 2024-09-11 wangj
|
|
|
+ * 主要功能:过滤支付组织
|
|
|
+ */
|
|
|
+public class BxdF7ListtenerMobileFromPlugin extends AbstractMobBillPlugIn implements Plugin, BeforeF7SelectListener {
|
|
|
+ private final static String paycompany="paycompany";//支付组织
|
|
|
+ @Override
|
|
|
+ public void registerListener(EventObject e) {
|
|
|
+ super.registerListener(e);
|
|
|
+ // 侦听基础资料字段的事件
|
|
|
+ BasedataEdit fieldEdit1 = this.getView().getControl(paycompany);
|
|
|
+ fieldEdit1.addBeforeF7SelectListener(this);
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
|
|
+ String fieldKey = beforeF7SelectEvent.getProperty().getName();
|
|
|
+ int row = beforeF7SelectEvent.getRow();
|
|
|
+ if (StringUtils.equals(fieldKey, paycompany)){
|
|
|
+ this.getQFilter(beforeF7SelectEvent,paycompany);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ private void getQFilter(BeforeF7SelectEvent arg0, String type) {
|
|
|
+ if (type.equals(paycompany)) {
|
|
|
+ DynamicObject fkdata = (DynamicObject)this.getModel().getValue("costcompany") ;
|
|
|
+ if(fkdata ==null){
|
|
|
+ throw new KDBizException("费用承担组织为空!");
|
|
|
+ }
|
|
|
+ long orgid = fkdata.getLong("id");
|
|
|
+ QFilter banks = new QFilter("fromorg.id", QCP.equals, orgid);
|
|
|
+ banks.and("typerelation.id", QCP.equals, Long.valueOf("633138469186574336"));
|
|
|
+ Map<Object, DynamicObject> nckd_cas_arbilMap = BusinessDataServiceHelper.loadFromCache("bos_org_orgrelation", new QFilter[]{banks});
|
|
|
+ HashSet<Long> objects = new HashSet<>();
|
|
|
+ for (Object idkey:nckd_cas_arbilMap.keySet()) {
|
|
|
+ //当前单头
|
|
|
+ DynamicObject dynamicObject = nckd_cas_arbilMap.get(idkey);
|
|
|
+ DynamicObject fromorg1 = dynamicObject.getDynamicObject("toorg");
|
|
|
+ long id = fromorg1.getLong("id");
|
|
|
+ objects.add(id);
|
|
|
+ }
|
|
|
+ QFilter nckd_skzjFilter = new QFilter("id", QCP.in,objects);
|
|
|
+ MobileListShowParameter showParameter = (MobileListShowParameter)arg0.getFormShowParameter();
|
|
|
+ showParameter.getListFilterParameter().setFilter(nckd_skzjFilter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|