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 ae3cbba..f0c6cb7 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 @@ -1504,7 +1504,7 @@ public class ApiService { if (bankCate == null) { bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), ""); } else { - bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), bankCate.get("name")); + bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), bankCate.getLocaleString("name").getLocaleValue_zh_CN()); } } else if ("JSFSLB".equals(shkd_djzdms)) { diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/PushLcListPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/PushLcListPlugin.java new file mode 100644 index 0000000..8c18203 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/PushLcListPlugin.java @@ -0,0 +1,163 @@ +package shkd.sys.sys.plugin.list; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.datamodel.ListSelectedRow; +import kd.bos.entity.datamodel.ListSelectedRowCollection; +import kd.bos.form.control.events.ItemClickEvent; +import kd.bos.list.BillList; +import kd.bos.list.plugin.AbstractListPlugin; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.sdk.plugin.Plugin; + +import java.util.*; + +import static shkd.sys.sys.mservice.ApiService.calculateTheDate; +import static shkd.sys.sys.mservice.ApiService.universalApproach; + +/** + * 标准单据列表插件 + * 推送浪潮 + */ +public class PushLcListPlugin extends AbstractListPlugin implements Plugin { + private static final Log logger = LogFactory.getLog(PushLcListPlugin.class); + + @Override + public void itemClick(ItemClickEvent evt) { + super.itemClick(evt); + String itemKey = evt.getItemKey(); + //获取列表 + BillList list = this.getControl("billlistap"); + //获取列表选中的行数据 + ListSelectedRowCollection selectedRows = list.getSelectedRows(); + + if ("pushlc".equals(itemKey)) { + if (selectedRows.isEmpty()) { + this.getView().showTipNotification("请至少选择一条数据"); + return; + } else { + Map resultMap = new HashMap<>(); + + Map headMap = new HashMap<>(); + Map bodyMap = new HashMap<>(); + List fieldList = new ArrayList<>(); + + String billMark = null; + + List bdBebanks = new ArrayList<>(); + for (ListSelectedRow selectedRow : selectedRows) { + + Object primaryKeyValue = selectedRow.getPrimaryKeyValue(); + DynamicObject bdBebank = BusinessDataServiceHelper.loadSingle(primaryKeyValue, "bd_bebank"); + bdBebanks.add(bdBebank); + } + + String billName = bdBebanks.get(0).getDataEntityType().getName(); + switch (billName) { + case "ifm_inneracct"://内部账户管理 + billMark = "MDMNBZH"; + break; + case "cas_accountcash"://现金账户 + billMark = "MDMXZJH"; + break; + case "cas_fundflowitem"://资金用途 + billMark = "MDMZJYT"; + break; + case "bd_finorginfo"://合作金融机构 + billMark = "MDMBanks_2"; + break; + case "bd_finorgtype"://金融机构类别 + billMark = "MDMBankType_2"; + break; + case "fpm_membersubject"://计划科目 + billMark = "MDMZJJHXM"; + break; + case "cdm_billtype"://票据类型 + billMark = "MDMPJLX"; + break; + case "cfm_loanbill_bond"://债券发行 + billMark = "MDMZQMC"; + break; + case "bd_settlementtype"://结算方式 + billMark = "MDMSettlementWay"; + break; + case "am_accountbank"://账户查询 + billMark = "MDMBFBANKACCOUNTS"; + break; + case "bd_bebank"://行名行号 + billMark = "MDMBanks_1"; + break; + case "bd_bankcgsetting"://银行类别 + billMark = "MDMBankType_1"; + break; + case "bd_acctpurpose"://账户用途 + billMark = "MDMZHLX"; + break; + } + + if (billMark == null) { + this.getView().showTipNotification("billMark == null"); + } else { + 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_tsfs,shkd_cxfw," + + "shkd_jrrzxx,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()); + + if (apiMapping.length == 0) { + logger.info("未找到符合条件的推送配置!shkd_djlxbm = " + billMark); + return; + } + // 记录日志选项() + String shkdJrrzxx = apiMapping[0].getString("shkd_jrrzxx"); + resultMap.put("logOption", shkdJrrzxx); + // url + String shkd_url = apiMapping[0].getString("shkd_url"); + // 单据类型编码 + String djlxbm = apiMapping[0].getString("shkd_djlxbm"); + String billTypeCode; + if (djlxbm.contains("_")) { + String[] split = djlxbm.split("_"); + billTypeCode = split[0]; + } else { + billTypeCode = djlxbm; + } + + DynamicObjectCollection shkd_heade = apiMapping[0].getDynamicObjectCollection("shkd_heade"); + for (DynamicObject dynamicObject : shkd_heade) { + headMap.put(dynamicObject.getString("shkd_headcsm"), dynamicObject.getString("shkd_headcsz")); + } + + // 映射字段单据体 + DynamicObjectCollection shkd_mapping = apiMapping[0].getDynamicObjectCollection("shkd_mapping"); + + switch (billMark) { + case "MDMBankType_1":// 银行类别 → (推送可用,推送浪潮时间为空,修改时间大于推送浪潮时间数据) + case "MDMSettlementWay":// 结算方式 + case "MDMPJLX":// 票据类型 + case "MDMZJJHXM":// 资金计划项目 + case "MDMBankType_2"://金融机构类别 + case "MDMBanks_2":// 合作金融机构 + case "MDMZJYT":// 资金用途 + case "MDMXZJH":// 现金账户 + case "MDMZHLX":// 账户用途 + case "MDMBanks_1":// 银行 → (推送启用和不疑似过期,推送浪潮时间为空,修改时间大于推送浪潮时间数据) + case "MDMBFBANKACCOUNTS":// 银行账户 → (账户状态正常,推送浪潮时间为空,修改时间大于推送浪潮时间数据) + case "MDMNBZH":// 内部账户 + case "MDMZQMC":// 债券信息 + for (DynamicObject billObject : bdBebanks) { + universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping[0]); + } + this.getView().showTipNotification("已推送,请至对接第三方系统记录日志查询推送结果"); + break; + } + } + } + } + } +} \ No newline at end of file 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 09744f7..9f2aec6 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 @@ -95,6 +95,7 @@ public class PushLcTaskPlugin extends AbstractTask implements Plugin { case "MDMXJZH":// 现金账户 case "MDMJRCPLX":// 金融产品类型 case "MDMBanks_1":// 银行 → (推送启用和不疑似过期,推送浪潮时间为空,修改时间大于推送浪潮时间数据) + case "MDMZHLX":// 账户用途 if ("初始推送".equals(shkdTsfs)) { sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1") .and("shkd_pushlcdatetime", QCP.is_null, true).toArray());