提交内容:整体代码更新

备注: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 证书验证
disableSSLCertificateValidation();
// 禁用 SSL 证书验证
// disableSSLCertificateChecking();
// return urlString;
// 设置自定义主机名
connection.setHostnameVerifier((hostname, session) -> {
logger.info("获取验证主机名: " + hostname);
@ -133,7 +128,7 @@ public class ApiService {
}
private static void disableSSLCertificateValidation() throws Exception {
// Create a trust manager that does not validate certificate chains
// 创建不验证证书链的信任管理器
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
@ -148,18 +143,18 @@ public class ApiService {
}
};
// Install the all-trusting trust manager
// 安装完全信任的信任管理器
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
// Create all-trusting host name verifier
// 创建完全信任的主机名验证器
HostnameVerifier allHostsValid = (hostname, session) -> {
logger.info("HostnameVerifier called for: " + hostname);
return true;
};
// Install the all-trusting host verifier
// 安装完全信任的主机验证程序
HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
}
@ -308,21 +303,6 @@ public class ApiService {
dynamicObjects.add(dynamic);
logger.info("银行收付处理 → BIP推送接口 → 成功\n成功单据编号{}\n成功请求体{}\n推送成功接口返回数据{}", dynamic.getString("billno"), saveRequestBody, saveResponseBody);
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 {
logger.info("银行收付处理 → BIP推送接口 → 失败\n失败单据编号{}\n失败请求体{}\n推送失败接口返回数据{}", dynamic.getString("billno"), saveRequestBody, saveResponseBody);
result = "推送 → 银行收付处理 → 失败";

View File

@ -109,6 +109,9 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
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");
bankNumber = payeracctbank.get("number").toString(); // 付款银行账号
@ -121,8 +124,10 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
payerbank.put("number", amAccountbanks[0].getDynamicObject("bank").getString("number"));
logger.info("账户查询,通过银行账号查对应的付款账户信息:{}", amAccountbanks[0]);
if (amAccountbanks[0].getBoolean("issetbankinterface")) {
if ("JSFS17、JSFS18".contains(settletype_number) && amAccountbanks[0].getBoolean("issetbankinterface")) {
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":
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"
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"
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(2))
.and("shkd_pushstatus", QCP.not_equals, "已结算")
.and("shkd_pushstatus", QCP.not_equals, "结算失败")
@ -70,19 +67,13 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
//TF 交易失败
//NC 交易未确认
//OF 银企异常
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"
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"
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(10))
.and("bankpaystatus", QCP.in, new String[]{"TS", "TF", "NC", "OF"})
.and("shkd_pushstatus", QCP.equals, "未结算")
.and(new QFilter("shkd_businessname", QCP.equals, "共享系统")).toArray());
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"
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"
, new QFilter("bankpaystatus", QCP.equals, "TS")
.and("shkd_pushstatus", QCP.equals, "结算失败")
.and(new QFilter("shkd_businessname", QCP.equals, "共享系统")).toArray());
@ -93,10 +84,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
break;
// 收款处理
case "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"
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"
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(2))
.and("shkd_pushstatus", QCP.not_equals, "已结算")
.and("billstatus", QCP.equals, "D").toArray());
@ -116,49 +104,14 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
* 收款 先有流水 后有单据
*/
case "bei_transdetail_cas":
// DynamicObject[] objects3 = BusinessDataServiceHelper.load("bei_transdetail_cas",
// "id,bizdate,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("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))
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, getFirstDayOfMonth(3))
.and("bizdate", QCP.less_equals, calculateTheDate(1))
.and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
Arrays.stream(objects3).forEach(dynamicObject -> {
DynamicObject companys = dynamicObject.getDynamicObject("company");
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").contains(companys.getString("number"))) {
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"))) {
ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null);
}
});
@ -169,39 +122,13 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
* 星空推送不会有影响吧
*/
case "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"
, new QFilter("bizdate", QCP.large_equals, getFirstDayOfMonth())
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"
, new QFilter("bizdate", QCP.large_equals, getFirstDayOfMonth(3))
.and("ismatch", QCP.equals, "1")
.and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
Arrays.stream(elecreceiptArays).forEach(dynamicObject -> {
DynamicObject companys = dynamicObject.getDynamicObject("company");
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").contains(companys.getString("number"))) {
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"))) {
ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null);
}
});
@ -233,15 +160,12 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
return date;
}
private static Date getFirstDayOfMonth() {
// 获取当前日期
LocalDate currentDate = LocalDate.now();
private static Date getFirstDayOfMonth(int month) {
// 获取当前年份
int currentYear = LocalDate.now().getYear();
// 获取当前年份和月份
YearMonth yearMonth = YearMonth.from(currentDate);
// 获取当前月份的第一天
LocalDate firstDayOfMonth = yearMonth.atDay(1);
// 获取指定年份和月份的第一天
LocalDate firstDayOfMonth = LocalDate.of(currentYear, month, 1);
// 将LocalDate转换为Date
return Date.from(firstDayOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());