From b31fb15f1a2db5a0b41deed9115e78795f1faaef Mon Sep 17 00:00:00 2001 From: zoujiangtao Date: Tue, 8 Apr 2025 11:50:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=86=85=E5=AE=B9=EF=BC=9A?= =?UTF-8?q?=E6=95=B4=E4=BD=93=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0=20?= =?UTF-8?q?=E5=A4=87=E6=B3=A8=EF=BC=9ABIP=E5=AF=B9=E6=8E=A5=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=9B=B4=E6=96=B0=20=E6=8F=90=E4=BA=A4=E4=BA=BA?= =?UTF-8?q?=EF=BC=9A=E9=82=B9=E6=B1=9F=E6=B6=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shkd/sys/sys/mservice/ApiService.java | 28 +---- .../sys/plugin/api/PayBillApiSavePlugin.java | 7 +- .../sys/sys/plugin/task/PushTaskPlugin.java | 106 +++--------------- 3 files changed, 25 insertions(+), 116 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/ApiService.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/ApiService.java index fadf18d..574e46d 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/ApiService.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/ApiService.java @@ -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 = "推送 → 银行收付处理 → 失败"; diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/PayBillApiSavePlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/PayBillApiSavePlugin.java index c382f32..2cd8d5f 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/PayBillApiSavePlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/PayBillApiSavePlugin.java @@ -109,6 +109,9 @@ public class PayBillApiSavePlugin implements ApiSavePlugin { map.put("reccity", bd_bebank[0].getString("citytxt")); } + Map settletype = (Map) map.get("settletype"); + String settletype_number = settletype.get("number").toString(); + Map payeracctbank = (Map) 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"); } } diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java index 7ab8402..649df0f 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java @@ -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());