BusProcessBillOpPlugin.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  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. import java.util.Arrays;
  12. import java.util.List;
  13. //业务处理单
  14. public class BusProcessBillOpPlugin extends AbstractOperationServicePlugIn {
  15. @Override
  16. public void beginOperationTransaction(BeginOperationTransactionArgs e) {
  17. DynamicObject[] dynamicObjects = e.getDataEntities();
  18. for (int i = 0; i < dynamicObjects.length; i++) {
  19. if (StringUtils.equals(e.getOperationKey(),"audit")) {
  20. DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
  21. if ("D".equals(info.getString("nckd_detailtype"))) {
  22. //资产报废
  23. for (DynamicObject nckd_entryentity6 : info.getDynamicObjectCollection("nckd_entryentity6")) {
  24. String number = nckd_entryentity6.getDynamicObject("nckd_basedatafield").getString("number");
  25. if (!StringUtils.isEmpty(number)) {
  26. //查询e管家实物卡片清单
  27. QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number);
  28. DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
  29. for (int j = 0; j < cardObjects.length; j++) {
  30. DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName());
  31. //回写e管家实物清单字段
  32. cardInfo.set("nckd_discard", "1");//是否报废
  33. SaveServiceHelper.save(new DynamicObject[]{cardInfo});
  34. }
  35. }
  36. }
  37. } else if ("N".equals(info.getString("nckd_detailtype"))) {
  38. //资产变更明细
  39. for (DynamicObject nckd_entryentity681 : info.getDynamicObjectCollection("nckd_entryentity681")) {
  40. //变更后存放地点
  41. String nckd_textfield45 = nckd_entryentity681.getString("nckd_textfield45");
  42. if(!StringUtils.isEmpty(nckd_textfield45)) {
  43. Long id = nckd_entryentity681.getDynamicObject("nckd_basedatafield21").getLong("id");
  44. //查询e管家实物卡片清单
  45. QFilter filter = new QFilter("id", QCP.equals,id);
  46. DynamicObject[] cardObjects = BusinessDataServiceHelper.load("fa_card_real","id",new QFilter[] {filter});
  47. DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[0].getPkValue(), cardObjects[0].getDynamicObjectType().getName());
  48. //回写e管家实物清单字段
  49. cardInfo.set("nckd_storeplace", nckd_textfield45);//是否报废
  50. SaveServiceHelper.save(new DynamicObject[]{cardInfo});
  51. }
  52. }
  53. }
  54. //获取租赁合同分录
  55. DynamicObjectCollection nckd_entryentity3 = info.getDynamicObjectCollection("nckd_entryentity3");
  56. for (DynamicObject object : nckd_entryentity3) {
  57. long org = object.getDynamicObject("nckd_pzhtorg").getLong("id");
  58. String nckd_pzhthth = object.getString("nckd_pzhthth");
  59. String nckd_combofield = object.getString("nckd_combofield");
  60. //查询租赁合同反写
  61. QFilter htfilter = new QFilter("number", QCP.equals,nckd_pzhthth);
  62. htfilter.and("org.id", QCP.equals,org);
  63. DynamicObject[] contract = BusinessDataServiceHelper.load("fa_lease_contract","id",new QFilter[] {htfilter});
  64. for (int j = 0; j < contract.length; j++) {
  65. DynamicObject contractInfo = BusinessDataServiceHelper.loadSingle(contract[j].getPkValue(), contract[j].getDynamicObjectType().getName());
  66. //收款/付款计划明细分录
  67. DynamicObjectCollection payplanentryentity = contractInfo.getDynamicObjectCollection("payplanentryentity");
  68. for (DynamicObject detail : payplanentryentity) {
  69. detail.set("nckd_combofield1", nckd_combofield);
  70. }
  71. SaveServiceHelper.save(new DynamicObject[]{contractInfo});
  72. }
  73. }
  74. }
  75. else if (StringUtils.equals(e.getOperationKey(),"unaudit")) {
  76. DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
  77. if ("D".equals(info.getString("nckd_detailtype"))) {
  78. for (DynamicObject nckd_entryentity6 : info.getDynamicObjectCollection("nckd_entryentity6")) {
  79. String number = nckd_entryentity6.getDynamicObject("nckd_basedatafield").getString("number");
  80. if (!StringUtils.isEmpty(number)) {
  81. //查询e管家实物卡片清单
  82. QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number);
  83. DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
  84. for (int j = 0; j < cardObjects.length; j++) {
  85. DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName());
  86. //回写e管家实物清单字段
  87. cardInfo.set("nckd_discard", "0");
  88. SaveServiceHelper.save(new DynamicObject[]{cardInfo});
  89. }
  90. }
  91. }
  92. }else if ("N".equals(info.getString("nckd_detailtype"))) {
  93. //资产变更明细
  94. for (DynamicObject nckd_entryentity681 : info.getDynamicObjectCollection("nckd_entryentity681")) {
  95. //变更后存放地点
  96. String nckd_textfield45 = nckd_entryentity681.getString("nckd_textfield45");
  97. String nckd_textfield42 = nckd_entryentity681.getString("nckd_textfield42");
  98. if(!StringUtils.isEmpty(nckd_textfield45)) {
  99. Long id = nckd_entryentity681.getDynamicObject("nckd_basedatafield21").getLong("id");
  100. //查询e管家实物卡片清单
  101. QFilter filter = new QFilter("id", QCP.equals,id);
  102. DynamicObject[] cardObjects = BusinessDataServiceHelper.load("fa_card_real","id",new QFilter[] {filter});
  103. DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[0].getPkValue(), cardObjects[0].getDynamicObjectType().getName());
  104. //回写e管家实物清单字段
  105. cardInfo.set("nckd_storeplace", nckd_textfield42);
  106. SaveServiceHelper.save(new DynamicObject[]{cardInfo});
  107. }
  108. }
  109. }
  110. //获取租赁合同分录
  111. DynamicObjectCollection nckd_entryentity3 = info.getDynamicObjectCollection("nckd_entryentity3");
  112. for (DynamicObject object : nckd_entryentity3) {
  113. long org = object.getDynamicObject("nckd_pzhtorg").getLong("id");
  114. String nckd_pzhthth = object.getString("nckd_pzhthth");
  115. //查询租赁合同反写
  116. QFilter htfilter = new QFilter("number", QCP.equals,nckd_pzhthth);
  117. htfilter.and("org.id", QCP.equals,org);
  118. DynamicObject[] contract = BusinessDataServiceHelper.load("fa_lease_contract","id",new QFilter[] {htfilter});
  119. for (int j = 0; j < contract.length; j++) {
  120. DynamicObject contractInfo = BusinessDataServiceHelper.loadSingle(contract[j].getPkValue(), contract[j].getDynamicObjectType().getName());
  121. //收款/付款计划明细分录
  122. DynamicObjectCollection payplanentryentity = contractInfo.getDynamicObjectCollection("payplanentryentity");
  123. for (DynamicObject detail : payplanentryentity) {
  124. detail.set("nckd_combofield1", null);
  125. }
  126. SaveServiceHelper.save(new DynamicObject[]{contractInfo});
  127. }
  128. }
  129. } else if (StringUtils.equals(e.getOperationKey(),"delete")) {
  130. DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
  131. List<String> list = Arrays.asList("D", "E", "N");
  132. if (list.contains(info.getString("nckd_detailtype"))) {
  133. String type = info.getString("nckd_source_type");
  134. Long nckd_mid_assert = info.getLong("nckd_mid_assert");
  135. if (!StringUtils.isEmpty(type)) {
  136. //查询e管家实物卡片清单
  137. QFilter filter = new QFilter("id", QCP.equals,nckd_mid_assert);
  138. DynamicObject[] midObjects = BusinessDataServiceHelper.load(type,"id",new QFilter[] {filter});
  139. for (int j = 0; j < midObjects.length; j++) {
  140. DynamicObject midInfo = BusinessDataServiceHelper.loadSingle(midObjects[j].getPkValue(), midObjects[j].getDynamicObjectType().getName());
  141. //回写e管家实物清单字段
  142. midInfo.set("nckd_flag", "0");
  143. midInfo.set("nckd_ywcl", 0);
  144. SaveServiceHelper.save(new DynamicObject[]{midInfo});
  145. }
  146. }
  147. }
  148. }
  149. }
  150. }
  151. }