RealCardBillOpPlugin.java 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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.ArrayList;
  12. import java.util.List;
  13. //实物卡片
  14. public class RealCardBillOpPlugin 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. List<Long> ids = new ArrayList<>();
  21. //审批通过后,如果是报销单下推的单据,则回写e卡片清单
  22. DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
  23. String srcbillentityname = info.getString("srcbillentityname");
  24. long bxId = info.getLong("nckd_bz_id");
  25. String number = info.getString("number");//资产编码
  26. String name = info.getString("assetname");//资产名称
  27. DynamicObject org = info.getDynamicObject("assetunit");//资产组织
  28. String orgName = org.getString("name");
  29. if (!"fa_assetsplitbill".equals(srcbillentityname)) {
  30. DynamicObjectCollection nckd_real_card = info.getDynamicObjectCollection("nckd_real_card");
  31. if( nckd_real_card != null) {
  32. for (DynamicObject object : nckd_real_card) {
  33. DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(object.get(2), "nckd_fa_card_real_list");
  34. //回写e卡片实物清单字段
  35. cardInfo.set("nckd_flag", "1");
  36. cardInfo.set("nckd_card_real_org", orgName);
  37. cardInfo.set("nckd_card_real_code", number);
  38. cardInfo.set("nckd_card_real_name", name);
  39. SaveServiceHelper.save(new DynamicObject[]{cardInfo});
  40. }
  41. }
  42. //反写合同台账单
  43. if (bxId != 0) {
  44. //查询报销单
  45. QFilter bxFilter = new QFilter("id", QCP.equals,bxId);
  46. DynamicObject[] bxDynamicObjects = BusinessDataServiceHelper.load("er_publicreimbursebill","id",new QFilter[] {bxFilter});
  47. for (int j = 0; j < bxDynamicObjects.length; j++) {
  48. DynamicObject bxInfo = BusinessDataServiceHelper.loadSingle(bxDynamicObjects[i].getPkValue(), bxDynamicObjects[i].getDynamicObjectType().getName());
  49. String nckd_sourcebillid = bxInfo.getString("nckd_sourcebillid");
  50. if (!StringUtils.isEmpty(nckd_sourcebillid)) {
  51. Long contractbillId = Long.parseLong(nckd_sourcebillid);
  52. //查询合同台账单
  53. QFilter htFilter = new QFilter("id", QCP.equals,contractbillId);
  54. DynamicObject[] htDynamicObjects = BusinessDataServiceHelper.load("er_contractbill","id",new QFilter[] {htFilter});
  55. for (int k = 0; k < htDynamicObjects.length; k++) {
  56. DynamicObject htInfo = BusinessDataServiceHelper.loadSingle(htDynamicObjects[i].getPkValue(), htDynamicObjects[i].getDynamicObjectType().getName());
  57. htInfo.set("nckd_real_card", info.getString("billno"));
  58. SaveServiceHelper.save(new DynamicObject[]{htInfo});
  59. }
  60. }
  61. }
  62. }
  63. }
  64. }else if(StringUtils.equals(e.getOperationKey(),"unaudit")) {
  65. DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
  66. long bxId = info.getLong("nckd_bz_id");
  67. String srcbillentityname = info.getString("srcbillentityname");
  68. if (!"fa_assetsplitbill".equals(srcbillentityname)) {
  69. //反审核,e管家实物卡片清单三个字段置为空
  70. String number = info.getString("number");//资产编码
  71. //查询e管家实物清单
  72. QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number);
  73. DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
  74. for (int j = 0; j < cardObjects.length; j++) {
  75. DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName());
  76. //回写e卡片实物清单字段
  77. cardInfo.set("nckd_flag", "0");
  78. cardInfo.set("nckd_card_real_org", null);
  79. cardInfo.set("nckd_card_real_code", null);
  80. cardInfo.set("nckd_card_real_name", null);
  81. SaveServiceHelper.save(new DynamicObject[]{cardInfo});
  82. }
  83. //反写合同台账
  84. if (bxId != 0) {
  85. //查询报销单
  86. QFilter bxFilter = new QFilter("id", QCP.equals,bxId);
  87. DynamicObject[] bxDynamicObjects = BusinessDataServiceHelper.load("er_publicreimbursebill","id",new QFilter[] {bxFilter});
  88. for (int j = 0; j < bxDynamicObjects.length; j++) {
  89. DynamicObject bxInfo = BusinessDataServiceHelper.loadSingle(bxDynamicObjects[i].getPkValue(), bxDynamicObjects[i].getDynamicObjectType().getName());
  90. String nckd_sourcebillid = bxInfo.getString("nckd_sourcebillid");
  91. if (!StringUtils.isEmpty(nckd_sourcebillid)) {
  92. Long contractbillId = Long.parseLong(nckd_sourcebillid);
  93. //查询合同台账单
  94. QFilter htFilter = new QFilter("id", QCP.equals,contractbillId);
  95. DynamicObject[] htDynamicObjects = BusinessDataServiceHelper.load("er_contractbill","id",new QFilter[] {htFilter});
  96. for (int k = 0; k < htDynamicObjects.length; k++) {
  97. DynamicObject htInfo = BusinessDataServiceHelper.loadSingle(htDynamicObjects[i].getPkValue(), htDynamicObjects[i].getDynamicObjectType().getName());
  98. htInfo.set("nckd_real_card", null);
  99. SaveServiceHelper.save(new DynamicObject[]{htInfo});
  100. }
  101. }
  102. }
  103. }
  104. }
  105. }
  106. }
  107. }
  108. }