AgentpaybillFormPlugin.java 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. package fi.em.formPlugin;
  2. import kd.bos.dataentity.entity.DynamicObject;
  3. import kd.bos.dataentity.entity.DynamicObjectCollection;
  4. import kd.bos.entity.ExtendedDataEntity;
  5. import kd.bos.entity.datamodel.events.PropertyChangedArgs;
  6. import kd.bos.form.events.AfterDoOperationEventArgs;
  7. import kd.bos.list.plugin.AbstractListPlugin;
  8. import kd.bos.orm.query.QCP;
  9. import kd.bos.orm.query.QFilter;
  10. import kd.bos.servicehelper.BusinessDataServiceHelper;
  11. import kd.bos.servicehelper.botp.BFTrackerServiceHelper;
  12. import kd.bos.servicehelper.operation.SaveServiceHelper;
  13. import kd.sdk.plugin.Plugin;
  14. import java.util.*;
  15. /**
  16. * @author cjz
  17. * @date 2024/8/28 15:05
  18. * @description:代发处理单支付状态变更后将值反写薪酬计提单
  19. */
  20. public class AgentpaybillFormPlugin extends AbstractListPlugin implements Plugin {
  21. private static String nckd_cas_agentpaybill="nckd_cas_agentpaybill";//代发处理单标识
  22. private static String nckd_paystatus="nckd_paystatus";//支付状态标识
  23. private static String nckd_salarydistribute="nckd_salarydistribute";//薪酬计提发放单标识
  24. //操作后刷新字段
  25. public void afterDoOperation(AfterDoOperationEventArgs arg){
  26. super.afterDoOperation(arg);
  27. String operateKey = arg.getOperateKey();
  28. //关闭付款按钮标识
  29. String closepay="closepay";
  30. //付款给前置按钮标识
  31. String payforfront="payforfront";
  32. //实时反写支付状态字段给上游薪酬计提
  33. if(closepay.equals(operateKey)||payforfront.equals(operateKey)) {
  34. this.getView().updateView();
  35. //获取当前单据模型
  36. DynamicObject dynamicObject=this.getModel().getDataEntity();
  37. //获取代发分录
  38. DynamicObjectCollection entryCollection=dynamicObject.getDynamicObjectCollection("entry");
  39. //获取源单id
  40. Long sourcebillid=entryCollection.get(0).getLong("sourcebillid");
  41. //支付状态
  42. String nckd_paystatus=dynamicObject.getString("nckd_paystatus");
  43. QFilter filter=new QFilter("id",QCP.equals,sourcebillid);
  44. //获取薪酬计提
  45. DynamicObject agentpaybill=BusinessDataServiceHelper.loadSingle(nckd_salarydistribute,"id,nckd_paystatus",new QFilter[]{filter});
  46. agentpaybill.set("nckd_paystatus",nckd_paystatus);
  47. SaveServiceHelper.save(new DynamicObject[] {agentpaybill});
  48. }
  49. //点击关闭付款按钮后,反写分录字段到上游单据
  50. if (closepay.equals(operateKey))
  51. {
  52. //获取当前单据模型
  53. DynamicObject dynamicObject=this.getModel().getDataEntity();
  54. //获取代发分录
  55. DynamicObjectCollection entryCollection=dynamicObject.getDynamicObjectCollection("entry");
  56. //获取源单id
  57. Long sourcebillid=entryCollection.get(0).getLong("sourcebillid");
  58. QFilter filter=new QFilter("id",QCP.equals,sourcebillid);
  59. DynamicObject agentpaybill=BusinessDataServiceHelper
  60. .loadSingle(nckd_salarydistribute,
  61. "id,nckd_entrytype,nckd_staffentry,nckd_earlyretiredentry,nckd_retireentry,nckd_salaryentry" +
  62. ",nckd_salaryentryre,nckd_se_success,nckd_se_sysfeedback,nckd_ee_success,nckd_ee_sysfeedback,nckd_re_success" +
  63. ",nckd_re_sysfeedback,nckd_sae_success,nckd_sae_sysfeedback,nckd_see_success,nckd_see_sysfeedback"
  64. ,new QFilter[]{filter});
  65. //薪酬计提单分录类型
  66. String nckd_entrytype=agentpaybill.getString("nckd_entrytype");
  67. //薪酬计提单分录
  68. if ("A".equals(nckd_entrytype)) {
  69. //一般员工分录
  70. DynamicObjectCollection nckd_staffentry=agentpaybill.getDynamicObjectCollection("nckd_staffentry");
  71. for (int a=0;a<nckd_staffentry.size();a++) {
  72. nckd_staffentry.get(a).set("nckd_se_success",entryCollection.get(a).getBoolean("e_issuccess"));
  73. nckd_staffentry.get(a).set("nckd_se_sysfeedback",entryCollection.get(a).getString("bankreturnmsg"));
  74. }
  75. }
  76. if ("B".equals(nckd_entrytype)) {
  77. //内退分录
  78. DynamicObjectCollection nckd_earlyretiredentry=agentpaybill.getDynamicObjectCollection("nckd_earlyretiredentry");
  79. for (int b=0;b<nckd_earlyretiredentry.size();b++)
  80. {
  81. nckd_earlyretiredentry.get(b).set("nckd_ee_success",entryCollection.get(b).getBoolean("e_issuccess"));
  82. nckd_earlyretiredentry.get(b).set("nckd_ee_sysfeedback",entryCollection.get(b).getString("bankreturnmsg"));
  83. }
  84. }
  85. if ("C".equals(nckd_entrytype)) {
  86. //退休分录
  87. DynamicObjectCollection nckd_retireentry=agentpaybill.getDynamicObjectCollection("nckd_retireentry");
  88. for (int c=0;c<nckd_retireentry.size();c++) {
  89. nckd_retireentry.get(c).set("nckd_re_success",entryCollection.get(c).getBoolean("e_issuccess"));
  90. nckd_retireentry.get(c).set("nckd_re_sysfeedback",entryCollection.get(c).getString("bankreturnmsg"));
  91. }
  92. }
  93. if ("D".equals(nckd_entrytype)) {
  94. //人力薪酬分录
  95. DynamicObjectCollection nckd_salaryentry=agentpaybill.getDynamicObjectCollection("nckd_salaryentry");
  96. for (int d=0;d<nckd_salaryentry.size();d++) {
  97. nckd_salaryentry.get(d).set("nckd_sae_success",entryCollection.get(d).getBoolean("e_issuccess"));
  98. nckd_salaryentry.get(d).set("nckd_sae_sysfeedback",entryCollection.get(d).getString("bankreturnmsg"));
  99. }
  100. }
  101. if ("E".equals(nckd_entrytype)) {
  102. //人力薪酬内退分录
  103. DynamicObjectCollection nckd_salaryentry=agentpaybill.getDynamicObjectCollection("nckd_salaryentryre");
  104. for (int d=0;d<nckd_salaryentry.size();d++) {
  105. nckd_salaryentry.get(d).set("nckd_see_success",entryCollection.get(d).getBoolean("e_issuccess"));
  106. nckd_salaryentry.get(d).set("nckd_see_sysfeedback",entryCollection.get(d).getString("bankreturnmsg"));
  107. }
  108. }
  109. //反写后保存
  110. SaveServiceHelper.save(new DynamicObject[] {agentpaybill});
  111. }
  112. }
  113. public void propertyChanged(PropertyChangedArgs e)
  114. {
  115. super.beforePropertyChanged(e);
  116. String name=e.getProperty().getName();
  117. //支付状态发生改变
  118. if (nckd_paystatus.equals(name))
  119. {
  120. //获取当前单据模型
  121. DynamicObject dynamicObject=this.getModel().getDataEntity(true);
  122. //id
  123. //获取代发分录
  124. DynamicObjectCollection entryCollection=dynamicObject.getDynamicObjectCollection("entry");
  125. //获取源单id
  126. Long id=entryCollection.get(0).getLong("sourcebillid");
  127. //当前支付状态
  128. String paystate=dynamicObject.getString(nckd_paystatus);
  129. QFilter filter=new QFilter("id",QCP.equals,id);
  130. DynamicObject agentpaybill=BusinessDataServiceHelper
  131. .loadSingle(nckd_salarydistribute,"id,nckd_paystatus",new QFilter[]{filter});
  132. //反写薪酬计提支付状态
  133. agentpaybill.set("nckd_paystatus",paystate);
  134. //获取代发单代发分录中字段信息
  135. SaveServiceHelper.save(new DynamicObject[] {agentpaybill});
  136. }
  137. }
  138. }