package fi.cas.opplugin; import com.alibaba.druid.util.StringUtils; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.entity.plugin.AbstractOperationServicePlugIn; import kd.bos.entity.plugin.args.AfterOperationArgs; import kd.bos.entity.plugin.args.BeforeOperationArgs; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper; import java.util.ArrayList; import java.util.List; public class RePayToZFQZOP extends AbstractOperationServicePlugIn { public String repay(DynamicObject[] billEntities) { StringBuffer errMsg = new StringBuffer(); List cflist = new ArrayList<>(); for (DynamicObject dataEntity : billEntities) { DynamicObject payBillEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), "cas_paybill"); boolean isZFQZ = true; String billNum = payBillEntity.getString("billno"); String billstatusString = payBillEntity.getString("billstatus"); String paystatus = payBillEntity.getString("nckd_paystatus"); int bbh = payBillEntity.getInt("nckd_bbh"); int fkcs = payBillEntity.getInt("nckd_fkcs"); if (!"C".equals(billstatusString)) { errMsg.append("单据号:").append(billNum).append(",付款单为审核状态,才能重付~\r\n"); isZFQZ = false; } if (!"4".equals(paystatus) && !"".equals(paystatus)) { errMsg.append("单据号:").append(billNum).append(",付款单为支付失败,才能重付~\r\n"); isZFQZ = false; } if(bbh>=1 && bbh!=fkcs-1){ errMsg.append("单据号:").append(billNum).append(",该版本号"+bbh+"为最新版本,无需重付~\r\n"); isZFQZ = false; } //可以重复,修改付款状态及bbh if(isZFQZ){ payBillEntity.set("nckd_paystatus", "1");//支付状态改回未支付 payBillEntity.set("nckd_bbh",bbh+1); SaveServiceHelper.update(payBillEntity); cflist.add(dataEntity); } } if(cflist.size()>0){ errMsg.append(PayBillToolUtil.payBillForCBSSync(cflist.toArray(new DynamicObject[]{}))); } return errMsg.toString(); } @Override public void beforeExecuteOperationTransaction(BeforeOperationArgs e) { String errMsg = ""; //获取选中行 DynamicObject[] billEntities = e.getDataEntities(); //获取操作按钮操作编码 String operationKey = e.getOperationKey(); if(StringUtils.equals( "repaytoZFQZ",operationKey)){ //重付,版本号加一,支付状态改 errMsg = repay(billEntities); } if(!errMsg.isEmpty()) { ////将错误信息返回到前端 e.setCancelMessage(errMsg); e.setCancel(true); System.out.println("PayToZFQZOP 错误信息:" + errMsg.toString()); } } }