一、业务背景:NCC的银行账号有很多种参照,客商银行账号,个人银行账号等等,有时候需要所有的银行账号做为参照,这个时候我们就可以在银行账号元数据(bankaccount)新增一个自定义参照了。
二、实现
SQL
--新增参照
INSERT INTO BD_REFINFO(CODE,DR,ISTREELAZYLOAD,ISNEEDPARA,ISSPECIALREF,LAYER,METADATANAMESPACE,METADATATYPENAME,MOBILEREFPATH,MODULENAME,NAME,PARA1,PARA2,PARA3,PK_COUNTRY,PK_INDUSTRY,PK_REFINFO,REFCLASS,REFPATH,REFSYSTEM,REFTYPE,RESERV1,RESERV2,RESERV3,RESID,RESIDPATH,TS,WHEREPART,WORKFLOWCONDITIONUSEUNITORG) VALUES ('FILETYPE01',0,'N',null,null,null,'uapbd','bankaccbas',null,'uapbd','收款账号',null,null,null,null,null,'0001Z020000000TYPEJ4',null,'arap/hsbcebankpay/refer/Bankacc/index',null,0,null,null,null,'收款账号','收款账号','2022-08-31 12:16:00',null,null);
前端代码
import { high } from 'nc-lightapp-front'; import { conf as unitConf } from '../../../../uapbd/refer/bankacc/BankaccDefaultGridTreeRef/index'; const { Refer } = high; export default function (props = {}) { var conf = { refType: 'grid', refName: '收款账号', queryGridUrl: '/nccloud/uapbd/ref/GatheringBankaccRef.do', isMultiSelectedEnabled: false, columnConfig: [{ name: ['编码', '名称'], code: ['accnum', 'accname'] }], unitProps: unitConf, isShowUnit: false }; return <Refer {...conf} {...props} /> }
后端代码
package nc.ui.bd.ref.model; import nccloud.framework.web.processor.refgrid.RefQueryInfo; import nccloud.framework.web.ui.meta.RefMeta; import nccloud.web.refer.DefaultGridRefAction; public class GatheringBankaccRefModel extends DefaultGridRefAction { @Override public RefMeta getRefMeta(RefQueryInfo arg0) { RefMeta retMeta = new RefMeta(); retMeta.setCodeField("accnum"); retMeta.setNameField("accname"); retMeta.setPkField("pk_bankaccbas"); retMeta.setTableName("bd_bankaccbas"); retMeta.setExtraFields(new String[] { "accnum", "accname" }); retMeta.setMutilLangNameRef(false); setShowDisabledData(null); return retMeta; } @Override public String getOrderSql(RefQueryInfo para, RefMeta meta) { return " order by code "; } @Override public String getExtraSql(RefQueryInfo para, RefMeta meta) { StringBuffer sql = new StringBuffer(); sql.append(" 11 = 11 "); return sql.toString(); } }
三、常见问题
1、开发环境:前端需要增加编译路径
"buildEntryPath": [ "./src/arap/hsbcebankpay/refer/Bankacc/index.js" ] 2、如果在新增的字段中选不到自定义参照,可能需要在已有的元数据要增加参照,可以选择修改元数据,也可以直接修改元数据后台表。
update md_class set refmodelname=refmodelname+';收款账号' where name = 'bankaccount' and refmodelname not like '%收款账号%'
3、后台数据库有值,参照不显示 通过spr录制,找到查询参照的sql。一般参照显示的编码和名称,是在元数据中业务接口属性映射,IBDObjet,code和name映射属性做为显示值,这两个字段需要有值。
标签:null,自定义,RefMeta,retMeta,参照,import,NCC,收款 From: https://www.cnblogs.com/birdGe/p/17100126.html