Просмотр исходного кода

招行支付2.0—明细对账单轮询+下载,共用批次流程

ZhangWenQiang 4 лет назад
Родитель
Сommit
70c02c64f7

+ 29 - 15
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/task/PaymentRsaDownloadJob.java

@@ -63,14 +63,6 @@ public class PaymentRsaDownloadJob {
 
     public static OSSClientUtil iOssClientUtil;
 
-    @PostConstruct
-    public void init() {
-        paymentRsaDownloadJob = this;
-        iHlwPaymentService = hlwPaymentService;
-        iOssClientUtil = ossClientUtil;
-        iHlwPaymentDetailService = hlwPaymentDetailService;
-    }
-
     /**
      * 上传文件到oss的基础虚拟路径
      */
@@ -81,6 +73,14 @@ public class PaymentRsaDownloadJob {
      */
     static String printMode = "";
 
+    @PostConstruct
+    public void init() {
+        paymentRsaDownloadJob = this;
+        iHlwPaymentService = hlwPaymentService;
+        iOssClientUtil = ossClientUtil;
+        iHlwPaymentDetailService = hlwPaymentDetailService;
+    }
+
     /**
      * 按批次打印
      *
@@ -139,10 +139,6 @@ public class PaymentRsaDownloadJob {
             QueryWrapper<HlwPayRecord> queryWrapper = new QueryWrapper<>();
             queryWrapper.eq("payment_id", hlwPayment.getId());
             HlwPayRecord hlwPayRecord = hlwPayRecordService.getOne(queryWrapper);
-            //付款明细
-            QueryWrapper<HlwPaymentDetail> queryWrapperDetail = new QueryWrapper<>();
-            queryWrapperDetail.eq("payment_id", hlwPayment.getId());
-            List<HlwPaymentDetail> detailList = hlwPaymentDetailService.list(queryWrapperDetail);
             //打印模式 S:逐笔打印:每笔明细生成一个PDF文件 M:批量打印:所有明细生成生成到一个PDF文件里面
             printMode = "S";
             //请求银行接口查询结果
@@ -276,9 +272,27 @@ public class PaymentRsaDownloadJob {
             //上传后的文件路径
             String filePath = "/" + objectName;
             System.out.println("dff" + filePath);
-            //更新付款表
-            hlwPayment.setStatementUrl(filePath);
-            iHlwPaymentService.updateById(hlwPayment);
+            /**
+             * 区分打印模式(S:逐笔打印:每笔明细生成一个PDF文件 M:批量打印)
+             */
+            if ("M".equals(printMode)) {
+                //更新付款表
+                hlwPayment.setStatementUrl(filePath);
+                iHlwPaymentService.updateById(hlwPayment);
+            } else {
+                //付款明细
+                QueryWrapper<HlwPaymentDetail> queryWrapperDetail = new QueryWrapper<>();
+                queryWrapperDetail.eq("payment_id", hlwPayment.getId());
+                List<HlwPaymentDetail> detailList = iHlwPaymentDetailService.list(queryWrapperDetail);
+                for (HlwPaymentDetail hlwPaymentDetail : detailList) {
+                    //文件名称是否包含银行卡号
+                    if (name.contains(hlwPaymentDetail.getCardNumber())) {
+                        hlwPaymentDetail.setStatementUrl(filePath);
+                        iHlwPaymentDetailService.updateById(hlwPaymentDetail);
+                        break;
+                    }
+                }
+            }
             //关闭当前布姆
             zipInputStream.closeEntry();
             //读取下一个目录,作为循环条件