BusinessPdF7FormPlugin.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package fi.em.formPlugin;
  2. import kd.bos.bill.AbstractBillPlugIn;
  3. import kd.bos.context.RequestContext;
  4. import kd.bos.dataentity.entity.DynamicObject;
  5. import kd.bos.dataentity.entity.DynamicObjectCollection;
  6. import kd.bos.form.field.BasedataEdit;
  7. import kd.bos.form.field.events.BeforeF7SelectEvent;
  8. import kd.bos.form.field.events.BeforeF7SelectListener;
  9. import kd.bos.list.ListShowParameter;
  10. import kd.bos.orm.query.QCP;
  11. import kd.bos.orm.query.QFilter;
  12. import kd.bos.permission.api.HasPermOrgResult;
  13. import kd.bos.servicehelper.user.UserServiceHelper;
  14. import kd.sdk.plugin.Plugin;
  15. import org.apache.commons.lang.StringUtils;
  16. import java.util.ArrayList;
  17. import java.util.EventObject;
  18. import java.util.List;
  19. public class BusinessPdF7FormPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
  20. @Override
  21. public void registerListener(EventObject e) {
  22. super.registerListener(e);
  23. // 侦听基础资料字段的事件
  24. BasedataEdit fieldEdit = this.getView().getControl("nckd_basedatafield18");
  25. BasedataEdit fieldEdit1 = this.getView().getControl("nckd_orgfield1");
  26. fieldEdit.addBeforeF7SelectListener(this);
  27. fieldEdit1.addBeforeF7SelectListener(this);
  28. }
  29. @Override
  30. public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
  31. String fieldKey = beforeF7SelectEvent.getProperty().getName();
  32. if (StringUtils.equals(fieldKey, "nckd_basedatafield18")){
  33. List<String> numberList = new ArrayList<>();
  34. DynamicObjectCollection dynamicObjectCollections = this.getModel().getEntryEntity("nckd_entryentity61121");
  35. for (DynamicObject dynamicObject : dynamicObjectCollections) {
  36. DynamicObject fin = dynamicObject.getDynamicObject("nckd_basedatafield18");
  37. if (fin != null) {
  38. String number = fin.getString("number");
  39. numberList.add(number);
  40. }
  41. }
  42. if (numberList.size() > 0) {
  43. QFilter qFilter = new QFilter("number", QCP.not_in, numberList);
  44. // 表过滤条件
  45. ListShowParameter showParameter = (ListShowParameter)beforeF7SelectEvent.getFormShowParameter();
  46. showParameter.setShowApproved(false);
  47. showParameter.getListFilterParameter().setFilter(qFilter);
  48. }
  49. } else if (StringUtils.equals(fieldKey, "nckd_orgfield1")) {
  50. long lUserId = Long.parseLong(RequestContext.get().getUserId());
  51. HasPermOrgResult hasPermOrgResult = UserServiceHelper.getUserChangeAbleOrg(lUserId, true);
  52. List<Long> getHasPermOrgs = hasPermOrgResult.getHasPermOrgs();
  53. // 表过滤条件
  54. QFilter qFilter = new QFilter("id", QCP.in, getHasPermOrgs);
  55. ListShowParameter showParameter = (ListShowParameter)beforeF7SelectEvent.getFormShowParameter();
  56. showParameter.getListFilterParameter().setFilter(qFilter);
  57. }
  58. }
  59. }