BusinessProcessingSplitPlugin.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package fi.em.formPlugin;
  2. import com.alibaba.druid.util.StringUtils;
  3. import com.alibaba.dubbo.common.utils.CollectionUtils;
  4. import com.alibaba.fastjson.JSONObject;
  5. import kd.bos.context.RequestContext;
  6. import kd.bos.dataentity.entity.DynamicObject;
  7. import kd.bos.dataentity.entity.DynamicObjectCollection;
  8. import kd.bos.entity.datamodel.events.BeforeImportEntryEventArgs;
  9. import kd.bos.entity.datamodel.events.ChangeData;
  10. import kd.bos.entity.datamodel.events.PropertyChangedArgs;
  11. import kd.bos.form.plugin.AbstractFormPlugin;
  12. import kd.bos.form.plugin.importentry.resolving.ImportEntryData;
  13. import kd.bos.orm.query.QCP;
  14. import kd.bos.orm.query.QFilter;
  15. import kd.bos.servicehelper.BusinessDataServiceHelper;
  16. import kd.bos.servicehelper.user.UserServiceHelper;
  17. import java.util.*;
  18. public class BusinessProcessingSplitPlugin extends AbstractFormPlugin {
  19. @Override
  20. public void propertyChanged(PropertyChangedArgs e) {
  21. String fieldKey = e.getProperty().getName();
  22. if (StringUtils.equals("nckd_basedatafield19", fieldKey)) {
  23. //获取变更的数据
  24. ChangeData changeData = e.getChangeSet()[0];
  25. DynamicObject dynamicObject = (DynamicObject) changeData.getNewValue();
  26. this.getModel().deleteEntryData("nckd_entryentity6112");
  27. if (dynamicObject != null) {
  28. DynamicObject realCard = dynamicObject.getDynamicObject("realcard");
  29. String number = realCard.getString("number");
  30. QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number);
  31. DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
  32. int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity6112");
  33. this.getModel().setValue("nckd_combofield5", "拆分前", 0);
  34. if (dynamicObjects.length > 0) {
  35. this.getView().setVisible(false, "nckd_advconbaritemap61");
  36. this.getView().setVisible(false, "nckd_advconbaritemap6");
  37. this.getView().setVisible(true, "nckd_card");
  38. this.getView().setEnable(false, "nckd_integerfield1");
  39. this.getModel().setValue("nckd_integerfield1", dynamicObjects.length);
  40. }else {
  41. this.getView().setVisible(true, "nckd_advconbaritemap61");
  42. this.getView().setVisible(true, "nckd_advconbaritemap6");
  43. this.getView().setVisible(false, "nckd_card");
  44. this.getView().setEnable(true, "nckd_integerfield1");
  45. this.getModel().setValue("nckd_integerfield1", 0);
  46. }
  47. }
  48. } else if (StringUtils.equals("nckd_detailtype", fieldKey)) {
  49. //获取变更的数据
  50. ChangeData changeData = e.getChangeSet()[0];
  51. String nckd_detailtype = (String) changeData.getNewValue();
  52. if (StringUtils.equals(nckd_detailtype, "E")) {
  53. //当前用户
  54. Long currentUserId = UserServiceHelper.getCurrentUserId();
  55. // 当前用户组织
  56. Long id = RequestContext.get().getOrgId();
  57. //调出组织
  58. this.getModel().setValue("nckd_orgfield1", id);
  59. }else {
  60. this.getModel().setValue("nckd_orgfield1", null);
  61. }
  62. }
  63. }
  64. @Override
  65. public void beforeImportEntry(BeforeImportEntryEventArgs e) {
  66. Map source = (Map) e.getSource();
  67. Set<Map.Entry<String, List<ImportEntryData>>> entries = source.entrySet();
  68. for (Map.Entry<String, List<ImportEntryData>> entry : entries) {
  69. String entryName = entry.getKey();
  70. if (StringUtils.equals(entryName, "nckd_entryentity61121")) {
  71. List<ImportEntryData> entryEntityImportDataList = entry.getValue();
  72. if (CollectionUtils.isEmpty(entryEntityImportDataList)) {
  73. return;
  74. }
  75. DynamicObjectCollection nckd_entryentity61121s = this.getModel().getEntryEntity("nckd_entryentity61121");
  76. Map<String, DynamicObject> entryMap = new HashMap<>();
  77. for (DynamicObject dynamicObject : nckd_entryentity61121s) {
  78. entryMap.put(dynamicObject.getDynamicObject("nckd_basedatafield18").getString("number"), dynamicObject);
  79. }
  80. Iterator<ImportEntryData> iterator = entryEntityImportDataList.iterator();
  81. while (iterator.hasNext()) {
  82. ImportEntryData entryData = iterator.next();
  83. JSONObject jsonObject = entryData.getData();
  84. String importNumber = jsonObject.getJSONObject("nckd_basedatafield18").getString("number");
  85. DynamicObject dynamicObject = entryMap.get(importNumber);
  86. if (dynamicObject != null){
  87. nckd_entryentity61121s.remove(dynamicObject);
  88. }
  89. }
  90. }
  91. }
  92. }
  93. }