123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- 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<DynamicObject> 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());
- }
- }
- }
|