From af14450f810b61479a0e7fb8c662289c9ea276ed Mon Sep 17 00:00:00 2001 From: zoujiangtao Date: Tue, 27 May 2025 17:30:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=86=85=E5=AE=B9=EF=BC=9ABI?= =?UTF-8?q?P=E6=8E=A8=E9=80=81=E6=B5=81=E6=B0=B4=E6=94=B9=E6=88=90?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E5=BD=93=E6=9C=88/=E8=B0=83=E7=94=A8BIP?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=88=90=E5=8A=9F=E8=8E=B7=E5=8F=96=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20=E6=97=B6=E9=97=B4=EF=BC=9A2025-05-27=2017=EF=BC=9A?= =?UTF-8?q?29=20=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E9=82=B9=E6=B1=9F?= =?UTF-8?q?=E6=B6=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shkd/sys/sys/mservice/ApiService.java | 14 ++-------- .../sys/sys/plugin/Exp/BalanceExpansion.java | 2 +- .../sys/plugin/api/InterfacePracticePlug.java | 13 +++++----- .../sys/plugin/api/TicketRegistration.java | 26 +++++++++++++++++++ .../sys/sys/plugin/task/PushTaskPlugin.java | 24 +++++++++++++++-- 5 files changed, 58 insertions(+), 21 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 319c76c..736e31c 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 @@ -251,7 +251,6 @@ public class ApiService { jsonObject = JSON.parseObject(saveResponseBody); code = jsonObject.getString("code"); if ("200".equals(code)) { -// LogService.newLog("INFO", "付款单", dynamic.getString("billno"), "付款处理 → BIP保存接口 → 成功", "请求数据:" + saveRequestBody + "\n推送成功接口返回数据:" + saveResponseBody); logger.info("付款处理 → BIP保存接口 → 成功\n失败单据编号:{}\n推送失败接口返回数据:{}", dynamic.getString("billno"), saveResponseBody); data = jsonObject.getJSONObject("data"); dynamic.set("shkd_businessnumber", data.getString("code")); @@ -268,7 +267,6 @@ public class ApiService { logger.info("付款处理 → BIP提交接口 → 返回结果:{}", submitResponseBody); result = "推送 → 付款处理单 → 成功"; } else { -// LogService.newLog("ERROR", "付款单", dynamic.getString("billno"), "付款处理 → BIP保存接口 → 失败", "请求数据:" + saveRequestBody + "\n推送失败接口返回数据:" + saveResponseBody); logger.info("付款处理 → BIP保存接口 → 失败\n失败单据编号:{}\n推送失败接口返回数据:{}", dynamic.getString("billno"), saveResponseBody); result = "推送 → 付款处理单 → 失败"; } @@ -281,8 +279,6 @@ public class ApiService { jsonObject = JSON.parseObject(saveResponseBody); code = jsonObject.getString("code"); if ("200".equals(code)) { -// LogService.newLog("INFO", "收款单", dynamic.getString("billno"), "收款处理 → BIP保存接口 → 成功", "请求数据:" + saveRequestBody + "\n推送成功接口返回数据:" + saveResponseBody); - logger.info("收款处理 → BIP保存接口 → 成功\n失败单据编号:{}\n推送失败接口返回数据:{}", dynamic.getString("billno"), saveResponseBody); data = jsonObject.getJSONObject("data"); dynamic.set("shkd_businessnumber", data.getString("code")); @@ -298,8 +294,6 @@ public class ApiService { logger.info("收款处理 → BIP提交接口 → 返回结果:{}", submitResponseBody); result = "推送 → 收款处理 → 成功"; } else { -// LogService.newLog("ERROR", "收款单", dynamic.getString("billno"), "收款处理 → BIP保存接口 → 失败", "请求数据:" + saveRequestBody + "\n推送失败接口返回数据:" + saveResponseBody); - logger.info("收款处理 → BIP保存接口 → 失败\n失败单据编号:{}\n推送失败接口返回数据:{}", dynamic.getString("billno"), saveResponseBody); result = "推送 → 收款处理 → 失败"; } @@ -309,18 +303,14 @@ public class ApiService { case "https://10.1.9.43/iuap-api-auth/yonbip/ctm/cmp/bankReconciliationBatchSave": saveResponseBody = pushBill(token, saveUrl, saveRequestBody); jsonObject = JSON.parseObject(saveResponseBody); - code = jsonObject.getString("code"); - if ("200".equals(code)) { + int successnum = jsonObject.getJSONObject("data").getIntValue("successnum"); + if (successnum > 0) { dynamic.set("shkd_pushstatus", "已推送"); dynamic.set("shkd_businessname", "共享系统"); dynamicObjects.add(dynamic); -// LogService.newLog("INFO", "银行收付处理", dynamic.getString("billno"), "银行收付处理 → BIP推送接口 → 成功", "请求数据:" + saveRequestBody + "\n推送成功接口返回数据:" + saveResponseBody); - logger.info("银行收付处理 → BIP推送接口 → 成功\n成功单据编号:{}\n成功请求体:{}\n推送成功接口返回数据:{}", dynamic.getString("billno"), saveRequestBody, saveResponseBody); result = "推送 → 银行收付处理 → 成功"; } else { -// LogService.newLog("ERROR", "银行收付处理", dynamic.getString("billno"), "银行收付处理 → BIP推送接口 → 失败", "请求数据:" + saveRequestBody + "\n推送失败接口返回数据:" + saveResponseBody); - 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/Exp/BalanceExpansion.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/BalanceExpansion.java index 46a2880..7ef1d12 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/BalanceExpansion.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/BalanceExpansion.java @@ -27,6 +27,6 @@ public class BalanceExpansion implements IFillBankBalance { } else { bankBalance.set("shkd_depositbalance", BigDecimal.ZERO); } - SaveServiceHelper.save(new DynamicObject[]{bankBalance}); + SaveServiceHelper.update(new DynamicObject[]{bankBalance}); } } diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/InterfacePracticePlug.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/InterfacePracticePlug.java index 3b65c08..de19ee1 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/InterfacePracticePlug.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/InterfacePracticePlug.java @@ -36,6 +36,7 @@ public class InterfacePracticePlug extends AbstractListPlugin implements Seriali /** * 计划编制写入 + * * @param arrHashMap * @return */ @@ -49,12 +50,12 @@ public class InterfacePracticePlug extends AbstractListPlugin implements Seriali jsonObject.getString("orgCode");// 编报主体 jsonObject.getString("subjectCode");// 计划科目 jsonObject.getString("entryPeriodCode");// 主维度数据分录期间code - jsonObject.getString("amount");//金额 + jsonObject.getString("amount");// 金额 FpmResponse voidFpmResponse = planningWrite(jsonObject.getString("periodCode"), jsonObject.getString("orgCode"), jsonObject.getString("subjectCode"), jsonObject.getString("entryPeriodCode"), jsonObject.getString("amount")); stringBuffer.append("第").append(i + 1).append("条数据写入").append(voidFpmResponse.isSuccess() ? "成功" : "失败") .append(",返回信息:").append(voidFpmResponse.getMessage()).append("\n"); } - return CustomApiResult.success(stringBuffer.toString()); + return CustomApiResult.fail("404", stringBuffer.toString()); } /** @@ -63,7 +64,7 @@ public class InterfacePracticePlug extends AbstractListPlugin implements Seriali * @param arrHashMap * @return */ - @ApiPostMapping(value = "planAdjustment_save", desc = "计划编制写入") + @ApiPostMapping(value = "planAdjustment_save", desc = "计划编制调整写入") public CustomApiResult<@ApiResponseBody("返回参数") String> planAdjustment_save(@ApiParam(value = "查询字段值") ArrayList> arrHashMap) { logger.info("planAdjustment_save,请求参数:{}", arrHashMap.get(0)); StringBuilder stringBuffer = new StringBuilder(); @@ -92,7 +93,7 @@ public class InterfacePracticePlug extends AbstractListPlugin implements Seriali stringBuffer.append("第").append(i + 1).append("条数据写入").append("成功,").append("单据编号:").append(adjustBillNoList).append("\n"); } } - return CustomApiResult.success(stringBuffer.toString()); + return CustomApiResult.fail("404", stringBuffer.toString()); } @@ -102,11 +103,11 @@ public class InterfacePracticePlug extends AbstractListPlugin implements Seriali * @param hashMap * @return */ - @ApiPostMapping(value = "planAdjustment_save", desc = "计划编制查询") + @ApiPostMapping(value = "planAdjustment_query", desc = "计划编制查询") public CustomApiResult<@ApiResponseBody("返回参数") String> planAdjustment_query(@ApiParam(value = "查询字段值") HashMap hashMap) { String reportPeriodName = hashMap.get("reportPeriodName").toString();// 编报期间ID String reportOrgName = hashMap.get("reportOrgName").toString();// 编报主体ID String queryPlanning = queryPlanning(reportPeriodName, reportOrgName); - return CustomApiResult.success(queryPlanning); + return CustomApiResult.fail("404", queryPlanning); } } diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/TicketRegistration.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/TicketRegistration.java index fdd9f40..e86e7f9 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/TicketRegistration.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/TicketRegistration.java @@ -25,6 +25,7 @@ public class TicketRegistration implements Serializable, ApiSavePlugin { @Override public List> preHandleRequestData(List> reqData) { + logger.info("进入TicketRegistration"); for (Map map : reqData) { String payeetype = map.get("payeetype").toString(); /** @@ -35,15 +36,28 @@ public class TicketRegistration implements Serializable, ApiSavePlugin { * other */ if ("bd_supplier".equals(payeetype) || "bd_customer".equals(payeetype)) { + logger.info("进入判断客商if方法"); if (map.get("deliver") != null) { logger.info("进入收票登记"); Map deliver = (Map) map.get("deliver"); + String deliveraccountbase = map.get("deliveraccountbase").toString();// 交票人账号 String deliver_number = deliver.get("number").toString(); DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype, "id,number," + "name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", new QFilter("societycreditcode", QCP.equals, deliver_number).toArray()); if (objects.length > 0) { logger.info("进入收票登记→objects.length > 0"); + DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank"); + dynamicObjectCollection.forEach(dynamicObject -> { + if (dynamicObject.getString("bankaccount").equals(deliveraccountbase)) { + Object bank = dynamicObject.get("bank"); + DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("bd_bebank", "id,number", new QFilter("id", QCP.equals, bank).toArray()); + Map deliveropenbank = new HashMap<>(); + deliveropenbank.put("number", dynamicObjects[0].getString("number")); + map.put("deliveropenbank", deliveropenbank); + map.put("deliveropenbanknum", dynamicObjects[0].getString("number")); + } + }); Map societycreditcode = new HashMap<>(); societycreditcode.put("number", objects[0].getString("number")); map.put("deliver", societycreditcode); @@ -53,12 +67,24 @@ public class TicketRegistration implements Serializable, ApiSavePlugin { if (map.get("receiver") != null) {//receiver_number logger.info("进入开票登记"); Map deliver = (Map) map.get("receiver"); + String receiveraccount = map.get("receiveraccount").toString();// 收款人账号 String receiver_number = deliver.get("number").toString(); DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype, "id,number," + "name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", new QFilter("societycreditcode", QCP.equals, receiver_number).toArray()); if (objects.length > 0) { logger.info("进入开票登记→objects.length > 0"); + DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank"); + dynamicObjectCollection.forEach(dynamicObject -> { + if (dynamicObject.getString("bankaccount").equals(receiveraccount)) { + Object bank = dynamicObject.get("bank"); + DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("bd_bebank", "id,number", new QFilter("id", QCP.equals, bank).toArray()); + Map receiverbank = new HashMap<>(); + receiverbank.put("number", dynamicObjects[0].getString("number")); + map.put("receiverbank", receiverbank); + map.put("receiverbankno", dynamicObjects[0].getString("number")); + } + }); Map societycreditcode = new HashMap<>(); societycreditcode.put("number", objects[0].getString("number")); map.put("receiver", societycreditcode); 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 8c7bb83..26db86d 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 @@ -24,6 +24,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.text.ParseException; import java.time.LocalDate; +import java.time.Month; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.*; @@ -142,8 +143,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { */ case "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" - , new QFilter("bizdate", QCP.large_equals, getFirstDayOfMonth(3)) - .and("bizdate", QCP.less_equals, calculateTheDate(1)) + , new QFilter("bizdate", QCP.large_equals, getFirstDayOfCurrentMonth()) .and("shkd_pushstatus", QCP.not_equals, "已推送").toArray()); Arrays.stream(objects3).forEach(dynamicObject -> { @@ -379,6 +379,11 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { return date; } + /** + * 获取指定月份的第一天 + * @param month + * @return + */ private static Date getFirstDayOfMonth(int month) { // 获取当前年份 int currentYear = LocalDate.now().getYear(); @@ -389,4 +394,19 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { // 将LocalDate转换为Date return Date.from(firstDayOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant()); } + + /** + * 获取当前月份的第一天 + * @return + */ + private static Date getFirstDayOfCurrentMonth() { + // 获取当前日期 + LocalDate currentDate = LocalDate.now(); + + // 获取当前月份的第一天 + LocalDate firstDayOfMonth = currentDate.withDayOfMonth(1); + + // 将LocalDate转换为Date + return Date.from(firstDayOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant()); + } } \ No newline at end of file