parent
8a0f38bac5
commit
f969e3a041
|
|
@ -1504,7 +1504,7 @@ public class ApiService {
|
||||||
if (bankCate == null) {
|
if (bankCate == null) {
|
||||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), "");
|
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), "");
|
||||||
} else {
|
} 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)) {
|
} else if ("JSFSLB".equals(shkd_djzdms)) {
|
||||||
|
|
|
||||||
|
|
@ -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<String, Object> resultMap = new HashMap<>();
|
||||||
|
|
||||||
|
Map<String, Object> headMap = new HashMap<>();
|
||||||
|
Map<String, Object> bodyMap = new HashMap<>();
|
||||||
|
List<String> fieldList = new ArrayList<>();
|
||||||
|
|
||||||
|
String billMark = null;
|
||||||
|
|
||||||
|
List<DynamicObject> 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -95,6 +95,7 @@ public class PushLcTaskPlugin extends AbstractTask implements Plugin {
|
||||||
case "MDMXJZH":// 现金账户
|
case "MDMXJZH":// 现金账户
|
||||||
case "MDMJRCPLX":// 金融产品类型
|
case "MDMJRCPLX":// 金融产品类型
|
||||||
case "MDMBanks_1":// 银行 → (推送启用和不疑似过期,推送浪潮时间为空,修改时间大于推送浪潮时间数据)
|
case "MDMBanks_1":// 银行 → (推送启用和不疑似过期,推送浪潮时间为空,修改时间大于推送浪潮时间数据)
|
||||||
|
case "MDMZHLX":// 账户用途
|
||||||
if ("初始推送".equals(shkdTsfs)) {
|
if ("初始推送".equals(shkdTsfs)) {
|
||||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1")
|
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1")
|
||||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue