parent
8a0f38bac5
commit
f969e3a041
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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 "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());
|
||||
|
|
|
|||
Loading…
Reference in New Issue