From ad832da4f038609efe38c59d27c2e39c9de6833e Mon Sep 17 00:00:00 2001 From: root Date: Wed, 17 Dec 2025 16:33:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E9=82=B9?= =?UTF-8?q?=E6=B1=9F=E6=B6=9B=20=E6=8F=90=E4=BA=A4=E6=97=B6=E9=97=B4?= =?UTF-8?q?=EF=BC=9A2025=E5=B9=B412=E6=9C=8817=E6=97=A5=20=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E5=86=85=E5=AE=B9=EF=BC=9A=E5=AE=9A=E6=97=B6=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E6=B5=AA=E6=BD=AE=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/sys/plugin/task/PushLcTaskPlugin.java | 218 +++++++++++------- 1 file changed, 131 insertions(+), 87 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushLcTaskPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushLcTaskPlugin.java index 2c8bb6a..c3f941c 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushLcTaskPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushLcTaskPlugin.java @@ -22,6 +22,8 @@ import kd.bos.servicehelper.operation.SaveServiceHelper; import kd.sdk.plugin.Plugin; import org.springframework.http.ResponseEntity; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.*; import static shkd.sys.sys.mservice.ApiService.pushLCMasterData; @@ -45,7 +47,7 @@ public class PushLcTaskPlugin extends AbstractTask implements Plugin { DynamicObject[] apiMapping = BusinessDataServiceHelper.load("shkd_apimapping", "id,billno," + "shkd_name,shkd_sourcenumber,shkd_domainname,shkd_appkey,shkd_appsecret,shkd_token,shkd_getfield,shkd_url,shkd_bodytype," + - "shkd_sourcebill,shkd_targetsystem,shkd_submiturl,shkd_banktype,shkd_startdate,shkd_orgs,shkd_djlxbm," + + "shkd_sourcebill,shkd_targetsystem,shkd_submiturl,shkd_banktype,shkd_startdate,shkd_orgs,shkd_djlxbm,shkd_tsfs,shkd_cxfw," + "shkd_heade,shkd_heade.shkd_headcsm,shkd_heade.shkd_headzdlx,shkd_heade.shkd_headcsz,shkd_heade.shkd_headmssm," + "shkd_mapping,shkd_mapping.shkd_jsonzdm,shkd_mapping.shkd_djzdms,shkd_mapping.shkd_mrz,shkd_mapping.shkd_ms", new QFilter("shkd_djlxbm", QCP.equals, billMark).toArray()); @@ -54,7 +56,12 @@ public class PushLcTaskPlugin extends AbstractTask implements Plugin { logger.info("未找到符合条件的推送配置!shkd_djlxbm = " + billMark); return; } - + // 推送方式 + String shkdTsfs = apiMapping[0].getString("shkd_tsfs"); + // 查询范围(N天前) + int shkdCxfw = apiMapping[0].getInt("shkd_cxfw"); + // 获取具体时间 + String calculateTheDate = calculateTheDate(shkdCxfw); // 推送单据类型 String sourceBill = apiMapping[0].getDynamicObject("shkd_sourcebill").getString("number"); // 推送单据编码 @@ -87,100 +94,106 @@ public class PushLcTaskPlugin extends AbstractTask implements Plugin { Date modifytime; switch (billMark.toString()) { case "MDMBankType_1":// 银行类别 → (推送可用,推送浪潮时间为空,修改时间大于推送浪潮时间数据) - sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1") - .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); - for (DynamicObject billObject : sourceBills) { - shkdPushlcdatetime = billObject.getDate("shkd_pushlcdatetime"); - modifytime = billObject.getDate("modifytime"); - if (shkdPushlcdatetime == null || modifytime.after(shkdPushlcdatetime)) { + case "MDMSettlementWay":// 结算方式 + case "MDMPJLX":// 票据类型 + case "MDMZJJHXM":// 资金计划项目 + case "MDMBankType_2"://金融机构类别 + case "MDMBanks_2":// 合作金融机构 + case "MDMZJYT":// 资金用途 + case "MDMXJZH":// 现金账户 + case "MDMJRCPLX":// 金融产品类型 + case "MDMBanks_1":// 银行 → (推送启用和不疑似过期,推送浪潮时间为空,修改时间大于推送浪潮时间数据) + if ("初始推送".equals(shkdTsfs)) { + sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1") + .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); + for (DynamicObject billObject : sourceBills) { universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); } } - break; - case "MDMBanks_1":// 银行 → (推送启用和不疑似过期,推送浪潮时间为空,修改时间大于推送浪潮时间数据) - sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1") - .and("isoverdue", QCP.equals, "N") - .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); - for (DynamicObject billObject : sourceBills) { - universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); + + if ("新增修改推送".equals(shkdTsfs)) { + //查询客户且修改时间在查询范围内的数据 + sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("modifytime", QCP.large_equals, calculateTheDate).toArray()); + for (DynamicObject billObject : sourceBills) { + Object shkdPushlcdatetimeObj = billObject.get("shkd_pushlcdatetime"); + String enable = billObject.getString("enable"); + if (shkdPushlcdatetimeObj == null && "1".equals(enable)) { + universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); + } + + if (shkdPushlcdatetimeObj != null) { + //获取推送浪潮时间 + shkdPushlcdatetime = billObject.getDate("shkd_pushlcdatetime"); + //获取修改时间 + modifytime = billObject.getDate("modifytime"); + if (modifytime.after(shkdPushlcdatetime)) { + universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); + } + } + } } break; case "MDMBFBANKACCOUNTS":// 银行账户 → (账户状态正常,推送浪潮时间为空,修改时间大于推送浪潮时间数据) - sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("acctstatus", QCP.equals, "normal") - .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); - for (DynamicObject billObject : sourceBills) { - universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); + case "MDMNBZH":// 内部账户 + if ("初始推送".equals(shkdTsfs)) { + sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("acctstatus", QCP.equals, "normal") + .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); + for (DynamicObject billObject : sourceBills) { + universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); + } } - break; - case "MDMSettlementWay":// 结算方式 - sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1") - .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); - for (DynamicObject billObject : sourceBills) { - universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); + + if ("新增修改推送".equals(shkdTsfs)) { + sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("modifytime", QCP.large_equals, calculateTheDate).toArray()); + for (DynamicObject billObject : sourceBills) { + Object shkdPushlcdatetimeObj = billObject.get("shkd_pushlcdatetime"); + String acctstatus = billObject.getString("acctstatus"); + if (shkdPushlcdatetimeObj == null && "normal".equals(acctstatus)) { + universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); + } + + if (shkdPushlcdatetimeObj != null) { + //获取推送浪潮时间 + shkdPushlcdatetime = billObject.getDate("shkd_pushlcdatetime"); + //获取修改时间 + modifytime = billObject.getDate("modifytime"); + if (modifytime.after(shkdPushlcdatetime)) { + universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); + } + } + } } break; case "MDMZQMC":// 债券信息 - sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("billstatus", QCP.equals, "C") - .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); - for (DynamicObject billObject : sourceBills) { - universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); + if ("初始推送".equals(shkdTsfs)) { + sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("billstatus", QCP.equals, "C") + .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); + for (DynamicObject billObject : sourceBills) { + universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); + } } - break; - case "MDMPJLX":// 票据类型 - sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1") - .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); - for (DynamicObject billObject : sourceBills) { - universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); - } - break; - case "MDMZJJHXM":// 资金计划项目 - sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1") - .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); - for (DynamicObject billObject : sourceBills) { - universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); - } - break; - case "MDMBankType_2"://金融机构类别 - sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1") - .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); - for (DynamicObject billObject : sourceBills) { - universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); - } - break; - case "MDMBanks_2":// 合作金融机构 - sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1") - .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); - for (DynamicObject billObject : sourceBills) { - universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); - } - break; - case "MDMZJYT":// 资金用途 - sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1") - .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); - for (DynamicObject billObject : sourceBills) { - universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); - } - break; - case "MDMXJZH":// 现金账户 - sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1") - .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); - for (DynamicObject billObject : sourceBills) { - universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); - } - break; - case "MDMNBZH":// 内部账户 - sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("acctstatus", QCP.equals, "normal") - .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); - for (DynamicObject billObject : sourceBills) { - universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); - } - break; - case "MDMJRCPLX":// 金融产品类型 - sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1") - .and("shkd_pushlcdatetime", QCP.is_null, true).toArray()); - for (DynamicObject billObject : sourceBills) { - universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); + + if ("新增修改推送".equals(shkdTsfs)) { + sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("modifytime", QCP.large_equals, calculateTheDate).toArray()); + for (DynamicObject billObject : sourceBills) { + Object shkdPushlcdatetimeObj = billObject.get("shkd_pushlcdatetime"); + String acctstatus = billObject.getString("billstatus"); + if (shkdPushlcdatetimeObj == null && "C".equals(acctstatus)) { + universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); + } + + if (shkdPushlcdatetimeObj != null) { + //获取推送浪潮时间 + shkdPushlcdatetime = billObject.getDate("shkd_pushlcdatetime"); + //获取修改时间 + modifytime = billObject.getDate("modifytime"); + if (modifytime.after(shkdPushlcdatetime)) { + universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping); + } + } + } } + break; } } @@ -300,6 +313,18 @@ public class PushLcTaskPlugin extends AbstractTask implements Plugin { } else if ("OPEN_DATE".equals(shkd_djzdms)) {//现金账户 → 开户日期 Date date = billObject.getDate("open_date");//转化为2020-10-10格式 bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), DateUtils.formatDate(date, "yyyy-MM-dd")); + } else if ("BILLSTATUS".equals(shkd_djzdms)) { + String value = billObject.getString("billstatus"); + String key = ""; + switch (value) { + case "A"://暂存 + key = "0"; + break; + case "C"://审核 + key = "1"; + break; + } + bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), key); } else { bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), billObject.getString(shkd_djzdms)); } @@ -321,17 +346,36 @@ public class PushLcTaskPlugin extends AbstractTask implements Plugin { String statusResult = data.getString("status"); if ("success".equals(statusResult)) { + Date date = new Date(); resultMap.put("shkd_issuccess", true); billObject.set("shkd_ispushlc", true); - billObject.set("shkd_pushlcdatetime", new Date()); + billObject.set("shkd_pushlcdatetime", date); + billObject.set("modifytime", date); SaveServiceHelper.save(new DynamicObject[]{billObject}); } else { resultMap.put("shkd_issuccess", false); + saveThePushLog(resultMap); } - }else { + } else { resultMap.put("shkd_issuccess", false); + saveThePushLog(resultMap); } + } - saveThePushLog(resultMap); + private String calculateTheDate(int days) { + // 获取当前日期 + LocalDate currentDate = LocalDate.now(); + // 获取当前日期的前两天 + LocalDate twoDaysAgo = currentDate.minusDays(days); + // 格式化日期为 "yyyy-MM-dd" + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + return twoDaysAgo.format(formatter); + /*Date date; + try { + date = com.kingdee.bos.qing.util.DateUtils.stringToDate(formattedDate, "yyyy-MM-dd"); + } catch (ParseException e) { + throw new RuntimeException(e); + } + return date;*/ } } \ No newline at end of file