PrePayBillOpPlugin.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package fi.er.opplugin;
  2. import com.alibaba.druid.util.StringUtils;
  3. import fi.cas.common.SettlementStatusEnum;
  4. import kd.bos.dataentity.entity.DynamicObject;
  5. import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
  6. import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
  7. import kd.bos.servicehelper.BusinessDataServiceHelper;
  8. import kd.bos.servicehelper.operation.SaveServiceHelper;
  9. import java.math.BigDecimal;
  10. //预付借款单
  11. public class PrePayBillOpPlugin extends AbstractOperationServicePlugIn {
  12. @Override
  13. public void beginOperationTransaction(BeginOperationTransactionArgs e) {
  14. //获取预付借款单据信息
  15. DynamicObject[] dynamicObjects = e.getDataEntities();
  16. for (int i = 0; i < dynamicObjects.length; i++) {
  17. if (StringUtils.equals(e.getOperationKey(),"audit")) {
  18. //当前单头数据包
  19. DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
  20. BigDecimal totalUnsettleamount = BigDecimal.ZERO;
  21. //循环预付借款信息分录
  22. for (DynamicObject entryentity : info.getDynamicObjectCollection("expenseentryentity")) {
  23. //取当前循环预付借款信息分录的核定金额
  24. BigDecimal expeapproveamount = entryentity.getBigDecimal("expeapproveamount");
  25. //未结算金额=核定金额
  26. entryentity.set("nckd_unsettleamount_et",expeapproveamount);
  27. entryentity.set("nckd_settleamount_et",BigDecimal.ZERO);
  28. totalUnsettleamount = totalUnsettleamount.add(expeapproveamount);
  29. }
  30. info.set("nckd_unsettleamount",totalUnsettleamount);
  31. info.set("nckd_settleamount",BigDecimal.ZERO);
  32. info.set("nckd_settlestatus", SettlementStatusEnum.未结算.getValue());
  33. SaveServiceHelper.save(new DynamicObject[]{info});
  34. } else if (StringUtils.equals(e.getOperationKey(),"unaudit")) {
  35. //当前单头数据包
  36. DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
  37. BigDecimal totalUnsettleamount = BigDecimal.ZERO;
  38. //循环预付借款信息分录
  39. for (DynamicObject entryentity : info.getDynamicObjectCollection("expenseentryentity")) {
  40. //反审核,未结算金额置为0
  41. entryentity.set("nckd_unsettleamount_et",BigDecimal.ZERO);
  42. }
  43. info.set("nckd_unsettleamount",BigDecimal.ZERO);
  44. info.set("nckd_settlestatus", null);
  45. SaveServiceHelper.save(new DynamicObject[]{info});
  46. }
  47. }
  48. }
  49. }