|
@@ -0,0 +1,78 @@
|
|
|
+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;
|
|
|
+ }
|
|
|
+
|
|
|
+ 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());
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|