yonBIP参照开发

学习目标:

实现一个参照


学习内容:

1 参照简介

参照,即对其它实体信息的参考和对照。​YonBIP高级版参照的实质:​前端JS:通过配置属性控制参照的界面显示​后端java:拼接查询参照数据的具体sql

2 参照分类

​ 参照主要分为以下三种:

  1. 树形参照

 

 

  1. 表型参照

 

后端java类需继承DefaultGridRefAction,前端js配置中需加入ColumnConfig的配置一次请求。

  1. 树表型参照

 

​实际上是树形参照和表形参照的集合。两次请求,一次请求走树形参照action,一次请求走表形参照action。

3 YonBIP高级版 参照实现原理

3.1 往bd_refinfo表里插入一条数据,内容参考已有数据。

​ 往bd_refinfo里插入一条参照数据。 refclass字段代表原NC参照,若只加YonBIP高级版参照此处可以为空;refpath字段代表YonBIP高级版参照的前端js路径,mobilerefpath字段代表移动端参照的前端js路径。注意需要抽取参照脚本。

(注:当我们对表格中每一列代表的含义不清楚时,可以通过开发社区的数据字典进行查询。当前连接的数据库是培训老师给我们的。)

3.2 画参照对应的元数据。(跳过此阶段)

3.3 编写参照后端java代码(若存在原NC参照,可以以原NC参照代码作为参考)。

继承了对应参照类型基类后,一般只需重写4个方法和构造方法。

  1. 构造方法中设置管控模式,数据权限,停启用相关参数,后续在DefaultRefSqlbuilder类中会根据这些参数拼接sql条件。
  2. getRefMeta()方法中设置RefMeta对象各属性对应的String值,即sql语句中我们需要查询的字段,以及设置要查询的表名。
  3. getExtraSql()方法会拼接Sql语句中where 后的条件语句。
  4. getExtralSqlParameter()设置where后条件语句中占位符对应的真实数据(为了防止Sql注入)
  5. getOrderSql()方法设置sql语句中的order by内容。

NC参照:

 

YonBIP高级版参照:

 

1、 对应的是我们需要查询的额外字段。

​ 2、3、4、 对应的是参照的主键、名称和编码(若是树型参照还需要设置refMeta的pidField,即父节点主键)

​ 5、 原NC代码中若含有5,说明该参照是有停启用字段的,YonBIP高级版代码中也要加上5,设置默认不显示被停用数据。

​ 6、 设置数据权限资源code。

​ 7、 为设置order by语句。不重写该方法会默认按refmeta中的codeField排序。

​ 8、 需要查询的表,一般是实体vo中默认对应的表,部分情况需要自己写子查询拼表。

3.4 配置参照action映射文件以及authorize鉴权文件。

(文件位置:D:\NCChome\hotwebs\nccloud\WEB-INF\lib)

​ 鉴权文件:

action映射文件:

 

3.5 编写参照前端js代码(若存在原NC参照,可以以原NC参照代码作为参考)

​ YonBIP高级版参照前端JS配置:

 

conf中各参数具体含义请参见平台参照文档或YonBIP高级版开发手册,这里简单介绍一下上图中conf各参数:

属性说明

​multiLang | 多语配置,其中domainName为领域模块名,大部分参照所属领域均为uapbd,少部分为uap。​currentLocale | 默认语言,当前为简体中文,moduleId为多语文件名。​refType | 参照类型,这里为grid-表型,还有tree-树型和gridTree-左树右表型。​refName | 参照名即弹出框显示的标题名。​queryGridUrl | 参照配置文件中的action Name,树型参照为queryTreeUrl,左树右表型参照,两个属性都要配置。​treeConfig | 树的显示配置,树型参照只支持显示编码名称两列,表型参照对应的该配置为columnConfig,表型参照能显示多列(当配置超过3列时,表型参照会 显示列的配置按钮)。对象中name属性为显示名称,code为显示名在代码中对应的字段。Name和code需要按顺序一一对应。​IsMultiSelectedEnabled | 是否开启多选,不配置默认为false。​unitProps | 参照左上角过滤参照的配置。​isShowUnit | 是否显示左上角过滤参照。

4 参照后端整体流程

 后端主要流程如上图所示,对应下图中的java代码:

 

 图中为NCGridRefDBProcessor类中的getWhereSql方法:

 

  主要的where后条件sql拼接过程就在类DefaultRefSqlBuilder中的getExtraSql方法中:

 

 

 

 


学习时间:

2023.8.10


学习产出:

这是一个完整的参照制作流程,根据步骤一步步制作,前后端不知道代码中需要更改的字段含义可以查看数据字典。映射文件和鉴权文件的位置也标记出来了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值