BusProcessBillOpPlugin.java 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package fi.fa.opplugin;
  2. import com.alibaba.druid.util.StringUtils;
  3. import kd.bos.dataentity.entity.DynamicObject;
  4. import kd.bos.dataentity.entity.DynamicObjectCollection;
  5. import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
  6. import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
  7. import kd.bos.orm.query.QCP;
  8. import kd.bos.orm.query.QFilter;
  9. import kd.bos.servicehelper.BusinessDataServiceHelper;
  10. import kd.bos.servicehelper.operation.SaveServiceHelper;
  11. //业务处理单
  12. public class BusProcessBillOpPlugin extends AbstractOperationServicePlugIn {
  13. @Override
  14. public void beginOperationTransaction(BeginOperationTransactionArgs e) {
  15. DynamicObject[] dynamicObjects = e.getDataEntities();
  16. for (int i = 0; i < dynamicObjects.length; i++) {
  17. if (StringUtils.equals(e.getOperationKey(),"audit")) {
  18. DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
  19. if ("D".equals(info.getString("nckd_detailtype"))) {
  20. for (DynamicObject nckd_entryentity6 : info.getDynamicObjectCollection("nckd_entryentity6")) {
  21. String number = nckd_entryentity6.getDynamicObject("nckd_basedatafield").getString("number");
  22. if (!StringUtils.isEmpty(number)) {
  23. //查询e管家实物卡片清单
  24. QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number);
  25. DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
  26. for (int j = 0; j < cardObjects.length; j++) {
  27. DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName());
  28. //回写e管家实物清单字段
  29. cardInfo.set("nckd_discard", "1");//是否报废
  30. SaveServiceHelper.save(new DynamicObject[]{cardInfo});
  31. }
  32. }
  33. }
  34. }
  35. //获取租赁合同分录
  36. DynamicObjectCollection nckd_entryentity3 = info.getDynamicObjectCollection("nckd_entryentity3");
  37. for (DynamicObject object : nckd_entryentity3) {
  38. long org = object.getDynamicObject("nckd_pzhtorg").getLong("id");
  39. String nckd_pzhthth = object.getString("nckd_pzhthth");
  40. String nckd_combofield = object.getString("nckd_combofield");
  41. //查询租赁合同反写
  42. QFilter htfilter = new QFilter("number", QCP.equals,nckd_pzhthth);
  43. htfilter.and("org.id", QCP.equals,org);
  44. DynamicObject[] contract = BusinessDataServiceHelper.load("fa_lease_contract","id",new QFilter[] {htfilter});
  45. for (int j = 0; j < contract.length; j++) {
  46. DynamicObject contractInfo = BusinessDataServiceHelper.loadSingle(contract[j].getPkValue(), contract[j].getDynamicObjectType().getName());
  47. //收款/付款计划明细分录
  48. DynamicObjectCollection payplanentryentity = contractInfo.getDynamicObjectCollection("payplanentryentity");
  49. for (DynamicObject detail : payplanentryentity) {
  50. detail.set("nckd_combofield1", nckd_combofield);
  51. }
  52. SaveServiceHelper.save(new DynamicObject[]{contractInfo});
  53. }
  54. }
  55. }
  56. else if (StringUtils.equals(e.getOperationKey(),"unaudit")) {
  57. DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
  58. if ("D".equals(info.getString("nckd_detailtype"))) {
  59. for (DynamicObject nckd_entryentity6 : info.getDynamicObjectCollection("nckd_entryentity6")) {
  60. String number = nckd_entryentity6.getDynamicObject("nckd_basedatafield").getString("number");
  61. if (!StringUtils.isEmpty(number)) {
  62. //查询e管家实物卡片清单
  63. QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number);
  64. DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
  65. for (int j = 0; j < cardObjects.length; j++) {
  66. DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName());
  67. //回写e管家实物清单字段
  68. cardInfo.set("nckd_discard", "0");//是否报废
  69. SaveServiceHelper.save(new DynamicObject[]{cardInfo});
  70. }
  71. }
  72. }
  73. }
  74. //获取租赁合同分录
  75. DynamicObjectCollection nckd_entryentity3 = info.getDynamicObjectCollection("nckd_entryentity3");
  76. for (DynamicObject object : nckd_entryentity3) {
  77. long org = object.getDynamicObject("nckd_pzhtorg").getLong("id");
  78. String nckd_pzhthth = object.getString("nckd_pzhthth");
  79. //查询租赁合同反写
  80. QFilter htfilter = new QFilter("number", QCP.equals,nckd_pzhthth);
  81. htfilter.and("org.id", QCP.equals,org);
  82. DynamicObject[] contract = BusinessDataServiceHelper.load("fa_lease_contract","id",new QFilter[] {htfilter});
  83. for (int j = 0; j < contract.length; j++) {
  84. DynamicObject contractInfo = BusinessDataServiceHelper.loadSingle(contract[j].getPkValue(), contract[j].getDynamicObjectType().getName());
  85. //收款/付款计划明细分录
  86. DynamicObjectCollection payplanentryentity = contractInfo.getDynamicObjectCollection("payplanentryentity");
  87. for (DynamicObject detail : payplanentryentity) {
  88. detail.set("nckd_combofield1", null);
  89. }
  90. SaveServiceHelper.save(new DynamicObject[]{contractInfo});
  91. }
  92. }
  93. } else if (StringUtils.equals(e.getOperationKey(),"delete")) {
  94. DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
  95. if ("D".equals(info.getString("nckd_detailtype"))) {
  96. String type = info.getString("nckd_source_type");
  97. Long nckd_mid_assert = info.getLong("nckd_mid_assert");
  98. if (!StringUtils.isEmpty(type)) {
  99. //查询e管家实物卡片清单
  100. QFilter filter = new QFilter("id", QCP.equals,nckd_mid_assert);
  101. DynamicObject[] midObjects = BusinessDataServiceHelper.load(type,"id",new QFilter[] {filter});
  102. for (int j = 0; j < midObjects.length; j++) {
  103. DynamicObject midInfo = BusinessDataServiceHelper.loadSingle(midObjects[j].getPkValue(), midObjects[j].getDynamicObjectType().getName());
  104. //回写e管家实物清单字段
  105. midInfo.set("nckd_flag", "0");//是否报废
  106. SaveServiceHelper.save(new DynamicObject[]{midInfo});
  107. }
  108. }
  109. }
  110. }
  111. }
  112. }
  113. }