提交内容:整体代码更新

备注:BIP对接代码更新
提交人:邹江涛
This commit is contained in:
zoujiangtao 2025-04-08 11:50:53 +08:00
parent f9bb6a07ac
commit b31fb15f1a
3 changed files with 25 additions and 116 deletions

View File

@ -97,11 +97,6 @@ public class ApiService {
// 禁用 SSL 证书验证 // 禁用 SSL 证书验证
disableSSLCertificateValidation(); disableSSLCertificateValidation();
// 禁用 SSL 证书验证
// disableSSLCertificateChecking();
// return urlString;
// 设置自定义主机名 // 设置自定义主机名
connection.setHostnameVerifier((hostname, session) -> { connection.setHostnameVerifier((hostname, session) -> {
logger.info("获取验证主机名: " + hostname); logger.info("获取验证主机名: " + hostname);
@ -133,7 +128,7 @@ public class ApiService {
} }
private static void disableSSLCertificateValidation() throws Exception { private static void disableSSLCertificateValidation() throws Exception {
// Create a trust manager that does not validate certificate chains // 创建不验证证书链的信任管理器
TrustManager[] trustAllCerts = new TrustManager[]{ TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() { new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() { public X509Certificate[] getAcceptedIssuers() {
@ -148,18 +143,18 @@ public class ApiService {
} }
}; };
// Install the all-trusting trust manager // 安装完全信任的信任管理器
SSLContext sc = SSLContext.getInstance("SSL"); SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom()); sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
// Create all-trusting host name verifier // 创建完全信任的主机名验证器
HostnameVerifier allHostsValid = (hostname, session) -> { HostnameVerifier allHostsValid = (hostname, session) -> {
logger.info("HostnameVerifier called for: " + hostname); logger.info("HostnameVerifier called for: " + hostname);
return true; return true;
}; };
// Install the all-trusting host verifier // 安装完全信任的主机验证程序
HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid); HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
} }
@ -308,21 +303,6 @@ public class ApiService {
dynamicObjects.add(dynamic); dynamicObjects.add(dynamic);
logger.info("银行收付处理 → BIP推送接口 → 成功\n成功单据编号{}\n成功请求体{}\n推送成功接口返回数据{}", dynamic.getString("billno"), saveRequestBody, saveResponseBody); logger.info("银行收付处理 → BIP推送接口 → 成功\n成功单据编号{}\n成功请求体{}\n推送成功接口返回数据{}", dynamic.getString("billno"), saveRequestBody, saveResponseBody);
result = "推送 → 银行收付处理 → 成功"; result = "推送 → 银行收付处理 → 成功";
/*// 电子回单关联标记
String receiptno = dynamic.getString("receiptno");
DynamicObject[] loaded = BusinessDataServiceHelper.load("bei_elecreceipt",
"id,billno,shkd_pushstatus,fileserverurl,bizdate,oppbankname,description,company," +
"oppbanknumber,detaildatetime,accountbank,amount,use,debitamount,creditamount,detailid," +
"uploadfilename,shkd_businessnumber,shkd_businessid,shkd_businessname,filepath"
, new QFilter("receiptno", QCP.equals, receiptno).toArray());
String slipsJson = paymentSlipsJson(loaded[0], "BIP", dynamicObjects, null);
if (slipsJson.contains("成功")) {
result = "(推送 → 银行收付处理 → 成功\n推送 → 电子回单 → 成功\n推送 → 电子回单附件 → 成功)";
} else {
result = "(推送 → 银行收付处理 → 成功\n推送 → 电子回单 → 失败\n推送 → 电子回单附件 → 失败)";
}*/
} else { } else {
logger.info("银行收付处理 → BIP推送接口 → 失败\n失败单据编号{}\n失败请求体{}\n推送失败接口返回数据{}", dynamic.getString("billno"), saveRequestBody, saveResponseBody); logger.info("银行收付处理 → BIP推送接口 → 失败\n失败单据编号{}\n失败请求体{}\n推送失败接口返回数据{}", dynamic.getString("billno"), saveRequestBody, saveResponseBody);
result = "推送 → 银行收付处理 → 失败"; result = "推送 → 银行收付处理 → 失败";

View File

@ -109,6 +109,9 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
map.put("reccity", bd_bebank[0].getString("citytxt")); map.put("reccity", bd_bebank[0].getString("citytxt"));
} }
Map<String, Object> settletype = (Map<String, Object>) map.get("settletype");
String settletype_number = settletype.get("number").toString();
Map<String, Object> payeracctbank = (Map<String, Object>) map.get("payeracctbank"); Map<String, Object> payeracctbank = (Map<String, Object>) map.get("payeracctbank");
bankNumber = payeracctbank.get("number").toString(); // 付款银行账号 bankNumber = payeracctbank.get("number").toString(); // 付款银行账号
@ -121,8 +124,10 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
payerbank.put("number", amAccountbanks[0].getDynamicObject("bank").getString("number")); payerbank.put("number", amAccountbanks[0].getDynamicObject("bank").getString("number"));
logger.info("账户查询,通过银行账号查对应的付款账户信息:{}", amAccountbanks[0]); logger.info("账户查询,通过银行账号查对应的付款账户信息:{}", amAccountbanks[0]);
if (amAccountbanks[0].getBoolean("issetbankinterface")) { if ("JSFS17、JSFS18".contains(settletype_number) && amAccountbanks[0].getBoolean("issetbankinterface")) {
map.put("paymentchannel", "bei"); map.put("paymentchannel", "bei");
} else {
map.put("paymentchannel", "counter");
} }
} }

View File

@ -42,10 +42,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
// 已结算未结算结算失败未推送 // 已结算未结算结算失败未推送
// 付款处理 // 付款处理
case "cas_paybill": case "cas_paybill":
DynamicObject[] objects1 = BusinessDataServiceHelper.load("cas_paybill", DynamicObject[] objects1 = BusinessDataServiceHelper.load("cas_paybill", "id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum,payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(2)) , new QFilter("bizdate", QCP.large_equals, calculateTheDate(2))
.and("shkd_pushstatus", QCP.not_equals, "已结算") .and("shkd_pushstatus", QCP.not_equals, "已结算")
.and("shkd_pushstatus", QCP.not_equals, "结算失败") .and("shkd_pushstatus", QCP.not_equals, "结算失败")
@ -70,19 +67,13 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
//TF 交易失败 //TF 交易失败
//NC 交易未确认 //NC 交易未确认
//OF 银企异常 //OF 银企异常
DynamicObject[] objects4 = BusinessDataServiceHelper.load("cas_paybill", DynamicObject[] objects4 = BusinessDataServiceHelper.load("cas_paybill", "id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum,payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(10)) , new QFilter("bizdate", QCP.large_equals, calculateTheDate(10))
.and("bankpaystatus", QCP.in, new String[]{"TS", "TF", "NC", "OF"}) .and("bankpaystatus", QCP.in, new String[]{"TS", "TF", "NC", "OF"})
.and("shkd_pushstatus", QCP.equals, "未结算") .and("shkd_pushstatus", QCP.equals, "未结算")
.and(new QFilter("shkd_businessname", QCP.equals, "共享系统")).toArray()); .and(new QFilter("shkd_businessname", QCP.equals, "共享系统")).toArray());
DynamicObject[] objects5 = BusinessDataServiceHelper.load("cas_paybill", DynamicObject[] objects5 = BusinessDataServiceHelper.load("cas_paybill", "id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum,payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
, new QFilter("bankpaystatus", QCP.equals, "TS") , new QFilter("bankpaystatus", QCP.equals, "TS")
.and("shkd_pushstatus", QCP.equals, "结算失败") .and("shkd_pushstatus", QCP.equals, "结算失败")
.and(new QFilter("shkd_businessname", QCP.equals, "共享系统")).toArray()); .and(new QFilter("shkd_businessname", QCP.equals, "共享系统")).toArray());
@ -93,10 +84,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
break; break;
// 收款处理 // 收款处理
case "cas_recbill": case "cas_recbill":
DynamicObject[] objects2 = BusinessDataServiceHelper.load("cas_recbill", DynamicObject[] objects2 = BusinessDataServiceHelper.load("cas_recbill", "id,billno,entry,entry.e_expenseitem,settletype,entry.e_remark,receivingtype,payertype,org,bizdate,accountbank,payernumber,actrecamt,txt_description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus"
"id,billno,entry,entry.e_expenseitem,settletype,entry.e_remark,receivingtype," +
"payertype,org,bizdate,accountbank,payernumber,actrecamt,txt_description,shkd_pushstatus," +
"shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus"
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(2)) , new QFilter("bizdate", QCP.large_equals, calculateTheDate(2))
.and("shkd_pushstatus", QCP.not_equals, "已结算") .and("shkd_pushstatus", QCP.not_equals, "已结算")
.and("billstatus", QCP.equals, "D").toArray()); .and("billstatus", QCP.equals, "D").toArray());
@ -116,49 +104,14 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
* 收款 先有流水 后有单据 * 收款 先有流水 后有单据
*/ */
case "bei_transdetail_cas": case "bei_transdetail_cas":
// DynamicObject[] objects3 = BusinessDataServiceHelper.load("bei_transdetail_cas", DynamicObject[] objects3 = BusinessDataServiceHelper.load("bei_transdetail_cas", "id,bizdate,billno,detailid,oppbank,oppunit,accountbank,description,company,oppbanknumber,bankdetailno,transbalance,description,debitamount,creditamount,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,recedbillentry,receiptno,recedbillentry.e_recedbilltype,recedbillentry.e_recedbillnumber,recedbillentry.e_recedbillid"
// "id,bizdate,oppbank,oppunit,accountbank,description,company,oppbanknumber," + , new QFilter("bizdate", QCP.large_equals, getFirstDayOfMonth(3))
// "bankdetailno,transbalance,description,debitamount,creditamount,shkd_pushstatus," +
// "shkd_businessnumber,shkd_businessid,shkd_businessname,recedbillentry,receiptno," +
// "recedbillentry.e_recedbilltype,recedbillentry.e_recedbillnumber,recedbillentry.e_recedbillid"
// , new QFilter("bizdate", QCP.large_equals, calculateTheDate(7))
// .and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
DynamicObject[] objects3 = BusinessDataServiceHelper.load("bei_transdetail_cas",
"id,bizdate,billno,detailid,oppbank,oppunit,accountbank,description,company,oppbanknumber," +
"bankdetailno,transbalance,description,debitamount,creditamount,shkd_pushstatus," +
"shkd_businessnumber,shkd_businessid,shkd_businessname,recedbillentry,receiptno," +
"recedbillentry.e_recedbilltype,recedbillentry.e_recedbillnumber,recedbillentry.e_recedbillid"
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(7))
.and("bizdate", QCP.less_equals, calculateTheDate(1)) .and("bizdate", QCP.less_equals, calculateTheDate(1))
.and("shkd_pushstatus", QCP.not_equals, "已推送").toArray()); .and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
Arrays.stream(objects3).forEach(dynamicObject -> { Arrays.stream(objects3).forEach(dynamicObject -> {
DynamicObject companys = dynamicObject.getDynamicObject("company"); DynamicObject companys = dynamicObject.getDynamicObject("company");
if (("SIG1040100、" + if (("SIG1040100、SIG1040901、SIG1040201、SIG1090000、SIG1040700、SIG000101135、SIG1040600、SIG1040300、SIG000100079、SIG000003001、SIG1041000、SIG1040802、SIG000101558、SIG1040808、SIG1040804、SIG1040803、SIG1040801、SIG1040400、SIG104010101、SIG104010102、SIG1040202、SIG1040203、SIG1040204、SIG1040902、SIG000101822、SIG000101799").contains(companys.getString("number"))) {
"SIG1040901、" +
"SIG1040201、" +
"SIG1090000、" +
"SIG1040700、" +
"SIG000101135、" +
"SIG1040600、" +
"SIG1040300、" +
"SIG000100079、" +
"SIG000003001、" +
"SIG1041000、" +
"SIG1040802、" +
"SIG000101558、" +
"SIG1040808、" +
"SIG1040804、" +
"SIG1040803、" +
"SIG1040801、" +
"SIG1040400、" +
"SIG104010101、" +
"SIG104010102、" +
"SIG1040202、" +
"SIG1040203、" +
"SIG1040204、" +
"SIG1040902").contains(companys.getString("number"))) {
ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null); ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null);
} }
}); });
@ -169,39 +122,13 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
* 星空推送不会有影响吧 * 星空推送不会有影响吧
*/ */
case "bei_elecreceipt": case "bei_elecreceipt":
DynamicObject[] elecreceiptArays = BusinessDataServiceHelper.load("bei_elecreceipt", DynamicObject[] elecreceiptArays = BusinessDataServiceHelper.load("bei_elecreceipt", "id,billno,shkd_pushstatus,fileserverurl,bizdate,oppbank,oppbankname,description,company,oppbanknumber,oppunit,detaildatetime,accountbank,amount,use,debitamount,creditamount,detailid,uploadfilename,shkd_businessnumber,shkd_businessid,shkd_businessname,filepath,receiptno,ismatch"
"id,billno,shkd_pushstatus,fileserverurl,bizdate,oppbank,oppbankname,description,company," + , new QFilter("bizdate", QCP.large_equals, getFirstDayOfMonth(3))
"oppbanknumber,oppunit,detaildatetime,accountbank,amount,use,debitamount,creditamount,detailid," +
"uploadfilename,shkd_businessnumber,shkd_businessid,shkd_businessname,filepath,receiptno,ismatch"
, new QFilter("bizdate", QCP.large_equals, getFirstDayOfMonth())
.and("ismatch", QCP.equals, "1") .and("ismatch", QCP.equals, "1")
.and("shkd_pushstatus", QCP.not_equals, "已推送").toArray()); .and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
Arrays.stream(elecreceiptArays).forEach(dynamicObject -> { Arrays.stream(elecreceiptArays).forEach(dynamicObject -> {
DynamicObject companys = dynamicObject.getDynamicObject("company"); DynamicObject companys = dynamicObject.getDynamicObject("company");
if (("SIG1040100、" + if (("SIG1040100、SIG1040901、SIG1040201、SIG1090000、SIG1040700、SIG000101135、SIG1040600、SIG1040300、SIG000100079、SIG000003001、SIG1041000、SIG1040802、SIG000101558、SIG1040808、SIG1040804、SIG1040803、SIG1040801、SIG1040400、SIG104010101、SIG104010102、SIG1040202、SIG1040203、SIG1040204、SIG1040902、SIG000101822、SIG000101799").contains(companys.getString("number"))) {
"SIG1040901、" +
"SIG1040201、" +
"SIG1090000、" +
"SIG1040700、" +
"SIG000101135、" +
"SIG1040600、" +
"SIG1040300、" +
"SIG000100079、" +
"SIG000003001、" +
"SIG1041000、" +
"SIG1040802、" +
"SIG000101558、" +
"SIG1040808、" +
"SIG1040804、" +
"SIG1040803、" +
"SIG1040801、" +
"SIG1040400、" +
"SIG104010101、" +
"SIG104010102、" +
"SIG1040202、" +
"SIG1040203、" +
"SIG1040204、" +
"SIG1040902").contains(companys.getString("number"))) {
ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null); ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null);
} }
}); });
@ -233,15 +160,12 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
return date; return date;
} }
private static Date getFirstDayOfMonth() { private static Date getFirstDayOfMonth(int month) {
// 获取当前日期 // 获取当前年份
LocalDate currentDate = LocalDate.now(); int currentYear = LocalDate.now().getYear();
// 获取当前年份和月份 // 获取指定年份和月份的第一天
YearMonth yearMonth = YearMonth.from(currentDate); LocalDate firstDayOfMonth = LocalDate.of(currentYear, month, 1);
// 获取当前月份的第一天
LocalDate firstDayOfMonth = yearMonth.atDay(1);
// 将LocalDate转换为Date // 将LocalDate转换为Date
return Date.from(firstDayOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant()); return Date.from(firstDayOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());