RePayToZFQZOP.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package fi.cas.opplugin;
  2. import com.alibaba.druid.util.StringUtils;
  3. import kd.bos.dataentity.entity.DynamicObject;
  4. import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
  5. import kd.bos.entity.plugin.args.AfterOperationArgs;
  6. import kd.bos.entity.plugin.args.BeforeOperationArgs;
  7. import kd.bos.servicehelper.BusinessDataServiceHelper;
  8. import kd.bos.servicehelper.operation.SaveServiceHelper;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11. public class RePayToZFQZOP extends AbstractOperationServicePlugIn {
  12. public String repay(DynamicObject[] billEntities) {
  13. StringBuffer errMsg = new StringBuffer();
  14. List<DynamicObject> cflist = new ArrayList<>();
  15. for (DynamicObject dataEntity : billEntities) {
  16. DynamicObject payBillEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), "cas_paybill");
  17. boolean isZFQZ = true;
  18. String billNum = payBillEntity.getString("billno");
  19. String billstatusString = payBillEntity.getString("billstatus");
  20. String paystatus = payBillEntity.getString("nckd_paystatus");
  21. int bbh = payBillEntity.getInt("nckd_bbh");
  22. int fkcs = payBillEntity.getInt("nckd_fkcs");
  23. if (!"C".equals(billstatusString)) {
  24. errMsg.append("单据号:").append(billNum).append(",付款单为审核状态,才能重付~\r\n");
  25. isZFQZ = false;
  26. }
  27. if (!"4".equals(paystatus) && !"".equals(paystatus)) {
  28. errMsg.append("单据号:").append(billNum).append(",付款单为支付失败,才能重付~\r\n");
  29. isZFQZ = false;
  30. }
  31. if(bbh>=1 && bbh!=fkcs-1){
  32. errMsg.append("单据号:").append(billNum).append(",该版本号"+bbh+"为最新版本,无需重付~\r\n");
  33. isZFQZ = false;
  34. }
  35. //可以重复,修改付款状态及bbh
  36. if(isZFQZ){
  37. payBillEntity.set("nckd_paystatus", "1");//支付状态改回未支付
  38. payBillEntity.set("nckd_bbh",bbh+1);
  39. SaveServiceHelper.update(payBillEntity);
  40. cflist.add(dataEntity);
  41. }
  42. }
  43. if(cflist.size()>0){
  44. errMsg.append(PayBillToolUtil.payBillForCBSSync(cflist.toArray(new DynamicObject[]{})));
  45. }
  46. return errMsg.toString();
  47. }
  48. @Override
  49. public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
  50. String errMsg = "";
  51. //获取选中行
  52. DynamicObject[] billEntities = e.getDataEntities();
  53. //获取操作按钮操作编码
  54. String operationKey = e.getOperationKey();
  55. if(StringUtils.equals( "repaytoZFQZ",operationKey)){
  56. //重付,版本号加一,支付状态改
  57. errMsg = repay(billEntities);
  58. }
  59. if(!errMsg.isEmpty()) {
  60. ////将错误信息返回到前端
  61. e.setCancelMessage(errMsg);
  62. e.setCancel(true);
  63. System.out.println("PayToZFQZOP 错误信息:" + errMsg.toString());
  64. }
  65. }
  66. }