update:米东三方接口数据

This commit is contained in:
Yuan
2025-07-31 15:27:47 +08:00
parent 6b49fbfaca
commit d773108ac0
12 changed files with 1653 additions and 99 deletions

View File

@@ -1,7 +1,8 @@
package com.saye.hospitalgd.scheduler.job;
import com.saye.hospitalgd.commons.string.StringDUtil;
import com.saye.hospitalgd.scheduler.jobMethod.BankGetDataMethod;
import com.saye.hospitalgd.scheduler.jobMethod.*;
import com.saye.hospitalgd.service.ThirdFtpConfigService;
import com.saye.hospitalgd.service.ThirdSftpConfigService;
import org.quartz.Job;
import org.quartz.JobDataMap;
@@ -21,7 +22,7 @@ import java.util.List;
public class BankGetData implements Job {
@Autowired
private ThirdSftpConfigService thirdSftpConfigService;
private ThirdFtpConfigService thirdFtpConfigService;
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
@@ -34,41 +35,63 @@ public class BankGetData implements Job {
try {
HashMap<Object, Object> searchMap = new HashMap<>();
searchMap.put("FUBS", "1");
// List<HashMap<Object, Object>> thirdFtpConfigList = thirdSftpConfigService.findThirdSftpConfigList(searchMap);
List<HashMap<Object, Object>> wlConfigList = thirdSftpConfigService.findWLIF(searchMap);
searchMap.put("is_active", "1");
HashMap<Object, Object> wlifSearchMap = new HashMap<>();
wlifSearchMap.put("FUBS", "1");
List<HashMap<Object, Object>> thirdFtpConfigList = thirdFtpConfigService.findThirdFtpConfigList(searchMap);
List<HashMap<Object, Object>> wlConfigList = thirdFtpConfigService.findWLIF(searchMap);
for (int i = 0; i < thirdFtpConfigList.size(); i++) {
HashMap<Object, Object> hashMap = thirdFtpConfigList.get(i);
String execute_class = StringDUtil.changeNullToEmpty(hashMap.get("EXECUTE_CLASS"));
//商户对账单
if ("BankGetDataBySH".equals(execute_class)){
Thread thread = new Thread(() -> new BankGetDataBySH().getDate(id,name,trade_date,hashMap));
thread.start();
}
//商户POS对账单
if ("BankGetDataBySHPOS".equals(execute_class)){
Thread thread = new Thread(() -> new BankGetDataBySHPOS().getDate(id,name,trade_date,hashMap));
thread.start();
}
// 银行商户银行卡对账单
if ("BankGetDataBySHYLK".equals(execute_class)) {
Thread thread = new Thread(() -> new BankGetDataBySHYLK().getDate(id, name, trade_date, hashMap));
thread.start();
}
// 商户银联外卡对账单
if ("BankGetDataBySHYLWK".equals(execute_class)) {
Thread thread = new Thread(() -> new BankGetDataBySHYLWK().getDate(id, name, trade_date, hashMap));
thread.start();
}
// 微信账单
if ("BankGetDataByWXAPI".equals(execute_class)) {
Thread thread = new Thread(() -> new BankGetDataByWXAPI().getDate(id, name, trade_date, hashMap));
thread.start();
}
}
for (int i = 0; i < wlConfigList.size(); i++) {
HashMap<Object, Object> hashMap = wlConfigList.get(i);
String execute_class = StringDUtil.changeNullToEmpty(hashMap.get("EXECUTE_CLASS"));
//商户pos通过对账
if ("BankGetDataMethod".equals(execute_class)) {
Thread thread = new Thread(() -> new BankGetDataMethod().getDate(id, name, trade_date, hashMap));
//建行龙支付
if ("BankGetDataMethodByJHLZF".equals(execute_class)) {
Thread thread = new Thread(() -> new BankGetDataMethodByJHLZF().getDate(id, name, trade_date, hashMap));
thread.start();
}
// //商户对账单
// if ("BankGetDataBySH".equals(execute_class)){
// Thread thread = new Thread(() -> new BankGetDataBySH().getDate(id,name,trade_date,hashMap));
// thread.start();
// }
//
// //商户银行卡对账单
// if ("BankGetDataBySHYLK".equals(execute_class)){
// Thread thread = new Thread(() -> new BankGetDataBySHYLK().getDate(id,name,trade_date,hashMap));
// thread.start();
// }
//
// //商户营销联盟对账单
// if ("BankGetDataBySHYXLM".equals(execute_class)){
// Thread thread = new Thread(() -> new BankGetDataBySHYXLM().getDate(id,name,trade_date,hashMap));
// thread.start();
// }
}
} catch (Exception e) {
e.printStackTrace();
}
@@ -84,20 +107,35 @@ public class BankGetData implements Job {
String execute_class = StringDUtil.changeNullToEmpty(hashMap.get("EXECUTE_CLASS"));
//商户pos通过对账
if ("BankGetDataMethod".equals(execute_class)) {
return new BankGetDataMethod().getDate(id, name, trade_date, hashMap);
//建行龙支付
if ("BankGetDataMethodByJHLZF".equals(execute_class)) {
return new BankGetDataMethodByJHLZF().getDate(id, name, trade_date, hashMap);
}
// //商户对账单
// if ("BankGetDataBySH".equals(execute_class)){
// return new BankGetDataBySH().getDate(id,name,trade_date,hashMap);
// }
//
// //商户银联卡对账单
// if ("BankGetDataBySHYLK".equals(execute_class)){
// return new BankGetDataBySHYLK().getDate(id,name,trade_date,hashMap);
// }
//商户对账单
if ("BankGetDataBySH".equals(execute_class)){
return new BankGetDataBySH().getDate(id,name,trade_date,hashMap);
}
//商户POS对账单
if ("BankGetDataBySHPOS".equals(execute_class)){
return new BankGetDataBySHPOS().getDate(id,name,trade_date,hashMap);
}
// 银行商户银联卡对账单
if ("BankGetDataBySHYLK".equals(execute_class)) {
return new BankGetDataBySHYLK().getDate(id, name, trade_date, hashMap);
}
// 商户银联外卡对账单
if ("BankGetDataBySHYLWK".equals(execute_class)) {
return new BankGetDataBySHYLWK().getDate(id, name, trade_date, hashMap);
}
// 微信账单
if ("BankGetDataByWXAPI".equals(execute_class)) {
return new BankGetDataByWXAPI().getDate(id, name, trade_date, hashMap);
}
//
// //商户营销联盟对账单
// if ("BankGetDataBySHYXLM".equals(execute_class)){

View File

@@ -0,0 +1,181 @@
package com.saye.hospitalgd.scheduler.jobMethod;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.saye.hospitalgd.commons.date.DateDUtil;
import com.saye.hospitalgd.commons.getBean.GetBeanUtil;
import com.saye.hospitalgd.commons.log.LogUtil;
import com.saye.hospitalgd.commons.string.StringDUtil;
import com.saye.hospitalgd.entity.BankbillHistory;
import com.saye.hospitalgd.service.BankbillGetinfoService;
import com.saye.hospitalgd.service.BankbillHistoryService;
import com.saye.hospitalgd.service.datamanager.DataManagerService;
import com.saye.hospitalgd.service.impl.BankbillGetinfoServiceImpl;
import com.saye.hospitalgd.service.impl.BankbillHistoryServiceImpl;
import com.saye.hospitalgd.service.system.ServiceParamsService;
import com.saye.hospitalgd.service.system.impl.ServiceParamsServiceImpl;
import com.saye.hospitalgd.util.HttpDutil;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author thuang
* @version 1.0
* @description: 获取商户POS通对账单 调用dmz服务器部署的接口
* @date 2021/9/13 14:46
*/
public class BankGetDataBySHPOS {
public HashMap<Object, Object> getDate(String id, String name, String trade_date, HashMap<Object, Object> map) {
HashMap<Object, Object> resultMap = new HashMap<>();
String errCode = "0";
String errMsg = "";
BankbillHistoryService bankbillHistoryService = GetBeanUtil.getBean(BankbillHistoryServiceImpl.class);
BankbillGetinfoService bankbillGetinfoService = GetBeanUtil.getBean(BankbillGetinfoServiceImpl.class);
ServiceParamsService serviceParamsService = GetBeanUtil.getBean(ServiceParamsServiceImpl.class);
DataManagerService dataManagerService = GetBeanUtil.getBean(DataManagerService.class);
boolean isOk = false;
// 重新执行最多10次 还没获取到肯定有问题 不执行了
// 如果有传入时间 那就只执行一次 获取不到就还是获取不到
int num = "".equals(trade_date) ? 0 : 9;
while (!isOk && num < 10) {
num++;
String bill_table_name = StringDUtil.changeNullToEmpty(map.get("BILL_TABLE_NAME"));
String thirdConfigId = StringDUtil.changeNullToEmpty(map.get("ID"));
String ftp_file_name = StringDUtil.changeNullToEmpty(map.get("FTP_FILE_NAME"));
String mch_id = StringDUtil.changeNullToEmpty(map.get("MCH_ID"));
// 替换其中的标记
Matcher mat = Pattern.compile("\\{([^}]*)\\}").matcher(ftp_file_name);
while (mat.find()) {
String group = mat.group();
group = group.substring(1, group.length() - 1);
// 替换商户id
if ("MCH_ID".equals(group)) {
ftp_file_name = ftp_file_name.replaceFirst("\\{([^}]*)\\}", mch_id);
}
// 替换日期 主要试t+1 还是t+2这种
if (group.contains("DATE")) {
String dateStr = "";
// 如果有传入时间 那就使用传入时间
if ("".equals(trade_date)) {
group = group.replaceFirst("DATE", "");
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
// 执行修改日期
if (!"".equals(group)) {
int t = Integer.parseInt(group);
calendar.add(Calendar.DATE, t);
}
Date searchDate = calendar.getTime();
trade_date = DateDUtil.DateToStr(DateDUtil.yyyy_MM_dd, searchDate);
dateStr = DateDUtil.DateToStr(DateDUtil.yyyyMMdd, searchDate);
} else {
Date date = DateDUtil.strToDate(DateDUtil.yyyy_MM_dd, trade_date);
dateStr = DateDUtil.DateToStr(DateDUtil.yyyyMMdd, date);
}
ftp_file_name = ftp_file_name.replaceFirst("\\{([^}]*)\\}", dateStr);
}
}
map.put("FTP_FILE_NAME", ftp_file_name);
map.put("trade_date", trade_date);
try {
List<HashMap<Object, Object>> serviceParams = serviceParamsService.findParamValByParamCode("hgd_dmz");
String dmz_url = StringDUtil.changeNullToEmpty(serviceParams.get(0).get("PARAM_VAL"));
// HashMap<Object, Object> bankDataBySHPOS = dataManagerService.getBankDataBySHPOS(map);
String result = HttpDutil.post(dmz_url + "/getBankDataBySHPOS", map);
// 解析返回的json字符串
JSONObject jsonObject = JSONObject.parseObject(result);
errCode = StringDUtil.changeNullToEmpty(jsonObject.get("errCode"));
errMsg = StringDUtil.changeNullToEmpty(jsonObject.get("errMsg"));
// 如果没问题 解析返回的集合
if ("0".equals(errCode)) {
String list = StringDUtil.changeNullToEmpty(jsonObject.get("list"));
List<BankbillHistory> bankbillHistories = JSONArray.parseArray(list, BankbillHistory.class);
// 如果有数据
if (bankbillHistories != null && bankbillHistories.size() > 0) {
// 先存一份原始的 这份只是留底查询
bankbillHistoryService.insertBankBillOriginal(bankbillHistories, trade_date, bill_table_name);
// 再存一份修改其中某些字段的
bankbillHistoryService.insertAllBankHistory(bankbillHistories, trade_date, bill_table_name);
}
isOk = true;
} else {
isOk = false;
}
} catch (Exception e) {
e.printStackTrace();
errCode = "999";
errMsg = "处理数据错误,原因:" + e.getMessage();
isOk = false;
}
// 记录数据获取记录
HashMap<Object, Object> addMap = new HashMap<>();
addMap.put("trade_date", trade_date);
addMap.put("quartz_id", id);
addMap.put("quartz_name", name);
addMap.put("bill_table_name", bill_table_name);
addMap.put("thirdConfigId", thirdConfigId);
if (isOk) {
addMap.put("is_ok", "1");
} else {
addMap.put("is_ok", "0");
}
addMap.put("modify_time", DateDUtil.getCurrentDate(DateDUtil.yyyy_MM_dd_HH_mm_ss));
bankbillGetinfoService.insertBankbillGetinfo(addMap);
// 判断是否成功 如果失败 执行休眠一小时
if (!isOk && num < 10) {
try {
// 记录日志
LogUtil.error(this.getClass(), errMsg);
System.out.println("获取对账记录没有成功1小时后重新执行");
Thread.sleep(1000 * 60 * 60);
} catch (Exception e) {
e.printStackTrace();
}
}
}
resultMap.put("errCode", errCode);
resultMap.put("errMsg", errMsg);
return resultMap;
}
}

View File

@@ -0,0 +1,174 @@
package com.saye.hospitalgd.scheduler.jobMethod;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.saye.hospitalgd.commons.date.DateDUtil;
import com.saye.hospitalgd.commons.getBean.GetBeanUtil;
import com.saye.hospitalgd.commons.log.LogUtil;
import com.saye.hospitalgd.commons.string.StringDUtil;
import com.saye.hospitalgd.entity.BankbillHistory;
import com.saye.hospitalgd.service.BankbillGetinfoService;
import com.saye.hospitalgd.service.BankbillHistoryService;
import com.saye.hospitalgd.service.impl.BankbillGetinfoServiceImpl;
import com.saye.hospitalgd.service.impl.BankbillHistoryServiceImpl;
import com.saye.hospitalgd.service.system.ServiceParamsService;
import com.saye.hospitalgd.service.system.impl.ServiceParamsServiceImpl;
import com.saye.hospitalgd.util.HttpDutil;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author yuan
* @version 1.0
* @description: 获取商户银联外卡对账单 调用dmz服务器部署的接口
* @date 2025/7/18 14:46
*/
public class BankGetDataBySHYLWK {
public HashMap<Object,Object> getDate(String id,String name,String trade_date,HashMap<Object,Object> map){
HashMap<Object,Object> resultMap=new HashMap<>();
String errCode="0";
String errMsg="";
BankbillHistoryService bankbillHistoryService = GetBeanUtil.getBean(BankbillHistoryServiceImpl.class);
BankbillGetinfoService bankbillGetinfoService = GetBeanUtil.getBean(BankbillGetinfoServiceImpl.class);
ServiceParamsService serviceParamsService= GetBeanUtil.getBean(ServiceParamsServiceImpl.class);
boolean isOk=false;
//重新执行最多10次 还没获取到肯定有问题 不执行了
//如果有传入时间 那就只执行一次 获取不到就还是获取不到
int num ="".equals(trade_date)?0:9;
while (!isOk && num<10){
num++;
String bill_table_name=StringDUtil.changeNullToEmpty(map.get("BILL_TABLE_NAME"));
String thirdConfigId=StringDUtil.changeNullToEmpty(map.get("ID"));
String ftp_file_name=StringDUtil.changeNullToEmpty(map.get("FTP_FILE_NAME"));
String mch_id=StringDUtil.changeNullToEmpty(map.get("MCH_ID"));
//替换其中的标记
Matcher mat = Pattern.compile("\\{([^}]*)\\}").matcher(ftp_file_name);
while(mat.find()){
String group = mat.group();
group=group.substring(1,group.length()-1);
//替换商户id
if ("MCH_ID".equals(group)){
ftp_file_name = ftp_file_name.replaceFirst("\\{([^}]*)\\}", mch_id);
}
//替换日期 主要试t+1 还是t+2这种
if (group.contains("DATE")){
String dateStr="";
//如果有传入时间 那就使用传入时间
if ("".equals(trade_date)){
group=group.replaceFirst("DATE","");
Calendar calendar=Calendar.getInstance();
calendar.setTime(new Date());
//执行修改日期
if (!"".equals(group)){
int t = Integer.parseInt(group);
calendar.add(Calendar.DATE,t);
}
Date searchDate = calendar.getTime();
trade_date= DateDUtil.DateToStr(DateDUtil.yyyy_MM_dd,searchDate);
dateStr=DateDUtil.DateToStr(DateDUtil.yyyyMMdd,searchDate);
}else {
Date date = DateDUtil.strToDate(DateDUtil.yyyy_MM_dd, trade_date);
dateStr=DateDUtil.DateToStr(DateDUtil.yyyyMMdd,date);
}
ftp_file_name = ftp_file_name.replaceFirst("\\{([^}]*)\\}", dateStr);
}
}
map.put("FTP_FILE_NAME",ftp_file_name);
map.put("trade_date",trade_date);
try {
List<HashMap<Object, Object>> serviceParams = serviceParamsService.findParamValByParamCode("hgd_dmz");
String dmz_url = StringDUtil.changeNullToEmpty(serviceParams.get(0).get("PARAM_VAL"));
String result = HttpDutil.post(dmz_url+"/getBankDataBySHYLWK", map);
//解析返回的json字符串
JSONObject jsonObject = JSONObject.parseObject(result);
errCode = StringDUtil.changeNullToEmpty(jsonObject.get("errCode"));
errMsg = StringDUtil.changeNullToEmpty(jsonObject.get("errMsg"));
//如果没问题 解析返回的集合
if ("0".equals(errCode)){
String list = StringDUtil.changeNullToEmpty(jsonObject.get("list"));
List<BankbillHistory> bankbillHistories = JSONArray.parseArray(list, BankbillHistory.class);
//如果有数据
if (bankbillHistories!=null && bankbillHistories.size()>0){
//先存一份原始的 这份只是留底查询
bankbillHistoryService.insertBankBillOriginal(bankbillHistories,trade_date,bill_table_name);
//再存一份修改替换其中一些字段的
bankbillHistoryService.insertAllBankHistory(bankbillHistories,trade_date,bill_table_name);
}
isOk=true;
}else {
isOk=false;
}
}catch (Exception e){
e.printStackTrace();
errCode="999";
errMsg="处理数据错误,原因:"+e.getMessage();
isOk=false;
}
//记录数据获取记录
HashMap<Object,Object> addMap=new HashMap<>();
addMap.put("trade_date",trade_date);
addMap.put("quartz_id",id);
addMap.put("quartz_name",name);
addMap.put("bill_table_name",bill_table_name);
addMap.put("thirdConfigId",thirdConfigId);
if (isOk){
addMap.put("is_ok","1");
}else {
addMap.put("is_ok","0");
}
addMap.put("modify_time",DateDUtil.getCurrentDate(DateDUtil.yyyy_MM_dd_HH_mm_ss));
bankbillGetinfoService.insertBankbillGetinfo(addMap);
//判断是否成功 如果失败 执行休眠一小时
if (!isOk && num<10) {
try {
//记录日志
LogUtil.error(this.getClass(), errMsg);
System.out.println("获取对账记录没有成功1小时后重新执行");
Thread.sleep(1000 * 60 * 60);
} catch (Exception e) {
e.printStackTrace();
}
}
}
resultMap.put("errCode",errCode);
resultMap.put("errMsg",errMsg);
return resultMap;
}
}

View File

@@ -0,0 +1,137 @@
package com.saye.hospitalgd.scheduler.jobMethod;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.saye.hospitalgd.commons.date.DateDUtil;
import com.saye.hospitalgd.commons.getBean.GetBeanUtil;
import com.saye.hospitalgd.commons.log.LogUtil;
import com.saye.hospitalgd.commons.string.StringDUtil;
import com.saye.hospitalgd.entity.BankbillHistory;
import com.saye.hospitalgd.service.BankbillGetinfoService;
import com.saye.hospitalgd.service.BankbillHistoryService;
import com.saye.hospitalgd.service.impl.BankbillGetinfoServiceImpl;
import com.saye.hospitalgd.service.impl.BankbillHistoryServiceImpl;
import com.saye.hospitalgd.service.system.ServiceParamsService;
import com.saye.hospitalgd.service.system.impl.ServiceParamsServiceImpl;
import com.saye.hospitalgd.util.HttpDutil;
import lombok.extern.slf4j.Slf4j;
import java.util.HashMap;
import java.util.List;
/**
* @author Mr.zs
* @date 2024/6/25
*/
@Slf4j
public class BankGetDataByWXAPI {
public HashMap<Object, Object> getDate(String id, String name, String trade_date, HashMap<Object, Object> map) {
HashMap<Object, Object> resultMap = new HashMap<>();
String errCode = "0";
String errMsg = "";
BankbillHistoryService bankbillHistoryService = GetBeanUtil.getBean(BankbillHistoryServiceImpl.class);
BankbillGetinfoService bankbillGetinfoService = GetBeanUtil.getBean(BankbillGetinfoServiceImpl.class);
ServiceParamsService serviceParamsService = GetBeanUtil.getBean(ServiceParamsServiceImpl.class);
boolean isOk = false;
// 重新执行最多10次 还没获取到肯定有问题 不执行了
// 如果有传入时间 那就只执行一次 获取不到就还是获取不到
int num = "".equals(trade_date) ? 0 : 9;
while (!isOk && num < 10) {
num++;
String bill_table_name = StringDUtil.changeNullToEmpty(map.get("BILL_TABLE_NAME"));
String thirdConfigId = StringDUtil.changeNullToEmpty(map.get("ID"));
String dateStr = "";
// 如果有传入时间 那就使用传入时间
if (StrUtil.isNotBlank(trade_date)) {
DateTime parse = DateUtil.parse(trade_date);
dateStr = DateUtil.format(parse, "yyyyMMdd");
} else {
DateTime yesterday = DateUtil.yesterday();
dateStr = DateUtil.format(yesterday, "yyyyMMdd");
trade_date = DateUtil.format(yesterday, "yyyy-MM-dd");
}
map.put("trade_date", dateStr);
try {
List<HashMap<Object, Object>> serviceParams = serviceParamsService.findParamValByParamCode("hgd_dmz");
String dmz_url = StringDUtil.changeNullToEmpty(serviceParams.get(0).get("PARAM_VAL"));
String result = HttpDutil.post(dmz_url + "/getBankDataByWXAPI", map);
// 解析返回的json字符串
JSONObject jsonObject = JSONObject.parseObject(result);
errCode = StringDUtil.changeNullToEmpty(jsonObject.get("errCode"));
errMsg = StringDUtil.changeNullToEmpty(jsonObject.get("errMsg"));
// 如果没问题 解析返回的集合
if ("0".equals(errCode)) {
String list = StringDUtil.changeNullToEmpty(jsonObject.get("list"));
List<BankbillHistory> bankbillHistories = JSONArray.parseArray(list, BankbillHistory.class);
// 如果有数据
if (bankbillHistories != null && bankbillHistories.size() > 0) {
// 先存一份原始的 这份只是留底查询
bankbillHistoryService.insertBankBillOriginal(bankbillHistories, trade_date, bill_table_name);
// 再存一份修改替换其中一些字段的
bankbillHistoryService.insertAllBankHistory(bankbillHistories, trade_date, bill_table_name);
}
isOk = true;
} else {
isOk = false;
}
} catch (Exception e) {
e.printStackTrace();
errCode = "999";
errMsg = "处理数据错误,原因:" + e.getMessage();
isOk = false;
}
// 记录数据获取记录
HashMap<Object, Object> addMap = new HashMap<>();
addMap.put("trade_date", trade_date);
addMap.put("quartz_id", id);
addMap.put("quartz_name", name);
addMap.put("bill_table_name", bill_table_name);
addMap.put("thirdConfigId", thirdConfigId);
if (isOk) {
addMap.put("is_ok", "1");
} else {
addMap.put("is_ok", "0");
}
addMap.put("modify_time", DateDUtil.getCurrentDate(DateDUtil.yyyy_MM_dd_HH_mm_ss));
bankbillGetinfoService.insertBankbillGetinfo(addMap);
// 判断是否成功 如果失败 执行休眠一小时
if (!isOk && num < 10) {
try {
// 记录日志
LogUtil.error(this.getClass(), errMsg);
System.out.println("获取对账记录没有成功1小时后重新执行");
Thread.sleep(1000 * 60 * 60);
} catch (Exception e) {
e.printStackTrace();
}
}
}
resultMap.put("errCode", errCode);
resultMap.put("errMsg", errMsg);
return resultMap;
}
}

View File

@@ -6,11 +6,12 @@ import com.saye.hospitalgd.commons.date.DateDUtil;
import com.saye.hospitalgd.commons.getBean.GetBeanUtil;
import com.saye.hospitalgd.commons.log.LogUtil;
import com.saye.hospitalgd.commons.string.StringDUtil;
import com.saye.hospitalgd.entity.BankbillHistory;
import com.saye.hospitalgd.service.BankbillGetinfoService;
import com.saye.hospitalgd.service.BankbillsHistoryService;
import com.saye.hospitalgd.service.BankbillHistoryService;
import com.saye.hospitalgd.service.ThirdSftpConfigService;
import com.saye.hospitalgd.service.impl.BankbillGetinfoServiceImpl;
import com.saye.hospitalgd.service.impl.BankbillsHistoryServiceImpl;
import com.saye.hospitalgd.service.impl.BankbillHistoryServiceImpl;
import com.saye.hospitalgd.service.impl.ThirdSftpConfigServiceImpl;
import com.saye.hospitalgd.service.system.ServiceParamsService;
import com.saye.hospitalgd.service.system.impl.ServiceParamsServiceImpl;
@@ -42,16 +43,15 @@ import java.util.zip.ZipInputStream;
* @date 2021/9/13 14:46
*/
@Slf4j
public class BankGetDataMethod {
public class BankGetDataMethodByJHLZF {
public HashMap<Object, Object> getDate(String id, String name, String trade_date, HashMap<Object, Object> map) {
HashMap<Object, Object> resultMap = new HashMap<>();
String errCode = "0";
String errMsg = "";
BankbillsHistoryService bankbillsHistoryService = GetBeanUtil.getBean(BankbillsHistoryServiceImpl.class);
BankbillHistoryService bankbillHistoryService = GetBeanUtil.getBean(BankbillHistoryServiceImpl.class);
// BankbillGetinfoService bankbillGetinfoService = GetBeanUtil.getBean(BankbillGetinfoServiceImpl.class);
BankbillGetinfoService bankbillGetinfoService = GetBeanUtil.getBean(BankbillGetinfoServiceImpl.class);
ServiceParamsService serviceParamsService = GetBeanUtil.getBean(ServiceParamsServiceImpl.class);
@@ -233,7 +233,7 @@ public class BankGetDataMethod {
txtList.add(line);
}
log.info("继续执行程序3");
List<HashMap<Object, Object>> dataList = new ArrayList<>();
List<BankbillHistory> bankbillHistoryList = new ArrayList<>();
for (int i = 2; i < txtList.size(); i++) {
String d = txtList.get(i);
@@ -243,34 +243,51 @@ public class BankGetDataMethod {
continue;
}
HashMap<Object, Object> temMap = new HashMap<>();
BankbillHistory bankbillHistory = new BankbillHistory();
String[] split = s1[0].split(" ");
temMap.put("i_jyrq", split[0]);
temMap.put("i_jysj", split[1]);
temMap.put("i_jzrq", s1[1]);
temMap.put("i_yhlsh", s1[2]);
temMap.put("i_shlsh", s1[3]);
temMap.put("i_ddh", s1[4]);
temMap.put("i_ddzt", s1[5]);
temMap.put("i_fkfzh", s1[6]);
temMap.put("i_fkfhm", s1[7]);
temMap.put("i_ddje", s1[8]);
temMap.put("i_jyje", s1[9]);
temMap.put("i_sxf", s1[10]);
temMap.put("i_jsje", s1[11]);
temMap.put("i_gtdm", s1[12]);
temMap.put("i_fxk", s1[13]);
temMap.put("i_zfkz", s1[14]);
temMap.put("i_jylx", s1[15]);
temMap.put("i_qs", s1[16]);
// 设置BankbillHistory的字段
bankbillHistory.setCJyrq(split[0]); // 交易日期
bankbillHistory.setCJysj(split[1]); // 交易时间
bankbillHistory.setCQsrq(s1[1]); // 清算日期
bankbillHistory.setCLsh(s1[2]); // 流水号
bankbillHistory.setCShddh(s1[3]); // 商户订单号
bankbillHistory.setCYsddh(s1[4]); // 银商订单号
bankbillHistory.setCJyje(s1[9]); // 交易金额
bankbillHistory.setCSxf(s1[10]); // 手续费
bankbillHistory.setCJylx(s1[15]); // 交易类型
// 设置默认值
bankbillHistory.setCQsje(s1[9]); // 清算金额 = 交易金额
bankbillHistory.setCSjzfje(s1[9]); // 实际支付金额 = 交易金额
bankbillHistory.setCCkh(s1[2]); // 参考号 = 流水号
bankbillHistory.setCCard(""); // 卡号
bankbillHistory.setCKlx(""); // 卡类型
bankbillHistory.setCFkh(s1[13]); // 发卡行 = 付款行
bankbillHistory.setCZffs("建行龙支付"); // 支付方式
bankbillHistory.setCBzzd(""); // 备注字段
bankbillHistory.setCQbyhje("0"); // 钱包优惠金额
bankbillHistory.setCShyhje("0"); // 商户优惠金额
bankbillHistory.setCYjylsh(""); // 原交易流水号
bankbillHistory.setCFqqs(""); // 分期期数
bankbillHistory.setCFqsxf("0"); // 分期手续费
bankbillHistory.setCFqfwf(""); // 分期服务方
bankbillHistory.setCFqfxf(""); // 分期付息方
bankbillHistory.setCQtyhje("0"); // 其他优惠金额
bankbillHistory.setCThddh(""); // 退货订单号
bankbillHistory.setCFkfy(""); // 付款附言
bankbillHistory.setCFdjc(""); // 分店简称
bankbillHistory.setCZddh(""); // 子订单号
bankbillHistory.setBillTableName("建行龙支付对账单"); // 对账表名
dataList.add(temMap);
bankbillHistoryList.add(bankbillHistory);
}
if (!CollectionUtils.isEmpty(dataList)) {
bankbillsHistoryService.saveOriginalData(dataList, trade_date);//存一份原始数据
bankbillsHistoryService.saveHistoryData(dataList, trade_date);//存一份修改的用于对账
if (!CollectionUtils.isEmpty(bankbillHistoryList)) {
// 先存一份原始的 这份只是留底查询
bankbillHistoryService.insertBankBillOriginal(bankbillHistoryList, trade_date, "建行龙支付对账单");
// 再存一份修改的用于对账
bankbillHistoryService.insertAllBankHistory(bankbillHistoryList, trade_date, "建行龙支付对账单");
isOk = true;
} else {
errCode = "999";
@@ -295,7 +312,7 @@ public class BankGetDataMethod {
addMap.put("quartz_id", id);
addMap.put("quartz_name", name);
addMap.put("bill_table_name", fileName);
addMap.put("thirdConfigId", "3");
addMap.put("thirdConfigId", "999");
if (isOk) {
addMap.put("is_ok", "1");