Ver código fonte

对公转账流程

lishiqiang 2 semanas atrás
pai
commit
8517873ce3

+ 32 - 1
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/job/ABCQueryJob.java

@@ -1,7 +1,9 @@
 package com.yc.ship.module.ota.job;
 
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.yc.ship.framework.quartz.core.handler.JobHandler;
 import com.yc.ship.framework.tenant.core.job.TenantJob;
+import com.yc.ship.module.infra.api.config.ConfigApi;
 import com.yc.ship.module.ota.dal.dataobject.distributor.DistributorDO;
 import com.yc.ship.module.ota.service.distributor.DistributorService;
 import com.yc.ship.module.ota.service.distributorselfrecharge.DistributorSelfRechargeService;
@@ -21,13 +23,42 @@ public class ABCQueryJob implements JobHandler {
     @Resource
     private DistributorService distributorService;
 
+    @Resource
+    private ConfigApi configApi;
+
     @Override
     @TenantJob
     public String execute(String param) {
         List<DistributorDO> list = distributorService.selectChildNo();
+
+        String host = configApi.getPlatformConfigValueByKey("dgConfig_ip");
+        String portStr = configApi.getPlatformConfigValueByKey("dgConfig_port");
+        String yqtCard = configApi.getPlatformConfigValueByKey("dgConfig_card");
+        String day = configApi.getPlatformConfigValueByKey("dgConfig_day");
+        String url = configApi.getPlatformConfigValueByKey("dgConfig_url");
+        int ofday = 1;
+        if (StringUtils.isNotBlank(day)) {
+            try {
+                ofday = Integer.parseInt(day);
+            } catch (Exception ignored) {
+
+            }
+        }
+
+        int port = 15999;
+        if (StringUtils.isNotBlank(portStr)) {
+            try {
+                port = Integer.parseInt(portStr);
+            } catch (Exception ignored) {
+
+            }
+        }
+
+        int finalPort = port;
+        int finalOfday = ofday;
         list.forEach(distributorDO -> {
             try {
-                distributorSelfRechargeService.abcRemittance(distributorDO);
+                distributorSelfRechargeService.abcRemittance(distributorDO,host, finalPort, yqtCard, finalOfday,url);
             } catch (Exception e) {
                 log.error(distributorDO.getId()+"查询失败",e);
             }

+ 1 - 1
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/distributorselfrecharge/DistributorSelfRechargeService.java

@@ -56,5 +56,5 @@ public interface DistributorSelfRechargeService {
 
     Long distributorSelfRecharge(Long id, String payOrderId, Integer payStatus);
     Long distributorCMBRecharge(Long id, String payOrderId, Integer payStatus);
-    void abcRemittance(DistributorDO distributorDO);
+    void abcRemittance(DistributorDO distributorDO, String host, Integer posrt, String yqtCard, int ofday, String url);
 }

+ 23 - 27
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/distributorselfrecharge/DistributorSelfRechargeServiceImpl.java

@@ -38,6 +38,8 @@ import java.io.*;
 import java.math.BigDecimal;
 import java.net.Socket;
 import java.net.SocketTimeoutException;
+import java.net.URL;
+import java.net.URLConnection;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.Date;
@@ -244,30 +246,10 @@ public class DistributorSelfRechargeServiceImpl implements DistributorSelfRechar
     }
 
     @Override
-    public void abcRemittance(DistributorDO distributor) {
+    public void abcRemittance(DistributorDO distributor, String host, Integer port, String yqtCard, int ofday, String url) {
         String cardNo = distributor.getCmbShortNo();
         log.error("abc对公转账充值查询{}", cardNo);
-        String host = configApi.getPlatformConfigValueByKey("dgConfig_ip");
-        String portStr = configApi.getPlatformConfigValueByKey("dgConfig_port");
-        String yqtCard = configApi.getPlatformConfigValueByKey("dgConfig_card");
-        String day = configApi.getPlatformConfigValueByKey("dgConfig_day");
-        int ofday = 1;
-        if (StringUtils.isNotBlank(day)) {
-            try {
-                ofday = Integer.parseInt(day);
-            } catch (Exception ignored) {
 
-            }
-        }
-
-        int port = 15999;
-        if (StringUtils.isNotBlank(portStr)) {
-            try {
-                port = Integer.parseInt(portStr);
-            } catch (Exception ignored) {
-
-            }
-        }
         try {
             // 1. 获取当前时间,用于组装公共包头流水与日期
             Date now = new Date();
@@ -376,12 +358,23 @@ public class DistributorSelfRechargeServiceImpl implements DistributorSelfRechar
                         log.error("无交易数据{}", cardNo);
                         return;
                     }
-                    // 使用 try-with-resources 自动关闭流 //替换成文件目录
-                    try (FileInputStream fis = new FileInputStream("/data/bankshare/" + batchFileName);
-                         InputStreamReader isr = new InputStreamReader(fis, "GBK");
-                         BufferedReader br = new BufferedReader(isr)) {
+                    try {
+                        // 1. 创建 URL 对象
+                        URL conurl = new URL(url + batchFileName);
+                        // 2. 打开连接
+                        URLConnection connection = conurl.openConnection();
+                        // 3. 设置可选参数(例如超时时间、User-Agent)
+                        connection.setConnectTimeout(5000); // 连接超时 5 秒
+                        connection.setReadTimeout(5000);    // 读取超时 5 秒
+                        connection.setRequestProperty("User-Agent", "Mozilla/5.0");
+
+                        // 4. 获取输入流
+                        InputStream inputStream = connection.getInputStream();
+
+                        // 5. 读取数据
+                        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "GBK"));
                         String line;
-                        while ((line = br.readLine()) != null) {
+                        while ((line = reader.readLine()) != null) {
                             log.error(line);
                             //省市代码|账号|账薄号|货币码|交易日期|日志号|交易时间|户名|账薄名|交易类型|交
                             //易行号|传票号|发生额标识|现转标志|交易金额|账户余额|上笔余额|凭证种类|交易码|
@@ -434,9 +427,12 @@ public class DistributorSelfRechargeServiceImpl implements DistributorSelfRechar
                             } catch (NumberFormatException e) {
                                 log.error("金额格式错误 | trsamt:{}", trsAmt, e);
                             }
-
                         }
 
+                        // 6. 关闭资源
+                        reader.close();
+                        inputStream.close();
+
                     } catch (IOException e) {
                         e.printStackTrace();
                     }