Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

zhouger 7 mēneši atpakaļ
vecāks
revīzija
92c816ec22

+ 15 - 3
src/main/java/fi/cas/opplugin/PayBillToolUtil.java

@@ -152,7 +152,7 @@ public class PayBillToolUtil {
                 isZFQZ = false;
             }
             if(bbh>=1 && bbh!=fkcs){
-                errMsg.append("单据号:").append(billNum).append(",付款单版本号有误,请检查数据,或联系管理员~\r\n");
+                errMsg.append("单据号:").append(billNum).append(",付款单未调整,请调整数据,或点击重付~\r\n");
                 isZFQZ = false;
             }
             if(payBillEntity.getDynamicObject("payeracctbank")==null) {
@@ -188,12 +188,18 @@ public class PayBillToolUtil {
                 errMsg.append("错误号:").append("XXXXXXX");
                 errMsg.append(",错误原因:").append("接口无法连通,未获取到返回结果");
                 errMsg.append("\r\n");
+            }else if(cbsReturnJson.getJSONObject("Message")==null){
+                isSuccess = false;
+                errMsg.append("单据号:").append(billNum).append(",推送支付前置失败,");
+                errMsg.append("错误号:").append("DDDDDD1");
+                errMsg.append(",错误原因:").append("接口已连通,但未获取到返回结果");
+                errMsg.append("\r\n");
             }else{
                 JSONObject bodyinfo = cbsReturnJson.getJSONObject("Message").getJSONObject("Body");
                 if(bodyinfo==null){
                     isSuccess = false;
                     errMsg.append("单据号:").append(billNum).append(",推送支付前置失败,");
-                    errMsg.append("错误号:").append("DDDDDDD");
+                    errMsg.append("错误号:").append("DDDDDDD2");
                     errMsg.append(",错误原因:").append("接口已连通,但无法解析返回结果"+cbsReturnJson.toString());
                     errMsg.append("\r\n");
                 }else{
@@ -213,12 +219,16 @@ public class PayBillToolUtil {
                             payBillEntity.set("nckd_paystatus",4);//支付失败
                         }
 
-                    } else {
+                    } else {//拿到返回结果支付次数就必须加一
                         isSuccess = false;
                         errMsg.append("单据号:").append(billNum).append(",推送支付前置失败,");
                         errMsg.append("错误号:").append(errcode);
                         errMsg.append(",错误原因:").append(bodyinfo.getString("errormsg"));
                         errMsg.append("\r\n");
+                        payBillEntity.set("nckd_fkcs", fkcs+1);//付款次数+1
+                        payBillEntity.set("nckd_paystatus",4);//支付失败
+                        payBillEntity.set("nckd_sbyy",bodyinfo.getString("errormsg"));//错误信息
+                        SaveServiceHelper.update(new DynamicObject[]{payBillEntity});
                     }
 
                 }
@@ -245,6 +255,8 @@ public class PayBillToolUtil {
             logInfo.set("nckd_payid",payBillEntity.getPkValue()+"");
             logInfo.set("nckd_qqbw_tag",qqbw);
             logInfo.set("nckd_fhbw_tag",fhbw);
+            logInfo.set("nckd_redate",new Date());
+
             logInfo.set("nckd_djlx","1");
             OperationServiceHelper.executeOperate("save","nckd_zfjkdyrz",new DynamicObject[]{logInfo});
 

+ 48 - 0
src/main/java/fi/cas/opplugin/PayQueryOP.java

@@ -0,0 +1,48 @@
+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.AddValidatorsEventArgs;
+import kd.bos.entity.plugin.args.AfterOperationArgs;
+import kd.bos.entity.plugin.args.BeforeOperationArgs;
+
+
+public class PayQueryOP extends AbstractOperationServicePlugIn {
+    private static final String ENTITY_NAME = "cas_paybill";
+
+    @Override
+    public void onAddValidators(AddValidatorsEventArgs e) {
+        super.onAddValidators(e);
+
+
+    }
+
+    @Override
+    public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
+
+        String errMsg = "";
+
+        //获取选中行
+        DynamicObject[] billEntities = e.getDataEntities();
+
+        //获取操作按钮操作编码
+        String operationKey = e.getOperationKey();
+        if (StringUtils.equals( "paytoqianzhi",operationKey)){
+            errMsg =  PayBillToolUtil.payBillForCBSSync(billEntities);
+        }
+        if(!errMsg.isEmpty()) {
+            ////将错误信息返回到前端
+            e.setCancelMessage(errMsg);
+            e.setCancel(true);
+            System.out.println("PayToZFQZOP 错误信息:" + errMsg.toString());
+        }
+    }
+
+
+    @Override
+    public void afterExecuteOperationTransaction(AfterOperationArgs e) {
+        super.afterExecuteOperationTransaction(e);
+
+    }
+}

+ 1 - 2
src/main/java/fi/cas/opplugin/PayToZFQZOP.java

@@ -25,9 +25,8 @@ public class PayToZFQZOP  extends AbstractOperationServicePlugIn {
 
         //获取选中行
         DynamicObject[] billEntities = e.getDataEntities();
-
-        //获取操作按钮操作编码
         String operationKey = e.getOperationKey();
+        //获取操作按钮操作编码
         if (StringUtils.equals( "paytoqianzhi",operationKey)){
             errMsg =  PayBillToolUtil.payBillForCBSSync(billEntities);
         }

+ 78 - 0
src/main/java/fi/cas/opplugin/RePayToZFQZOP.java

@@ -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;
+            }
+            //可以重复,修改付款状态及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());
+        }
+    }
+}