自定义字段低代码配置
系统字段低代码自定义配置功能重构,迭代新增需求功能bug修复并优化
======关于一个业务嵌入开发管理高级搜索,页面配置和代码调用如下:=======
1. 列表示例:物料管理→物料列表
·管理员开发管理需要在对应的模块下新增一个单元,此时默认会给标准字段增加进来,开发人员保留列表需要展示以及搜索的字段即可,其他无关字段移除,后续有需要也可以再加进来。
·扩展字段需要自己添加字段;
·自定义类型的字段意思是,针对列表需要返回一些企业名称、用户名称、枚举值等数据库没有的字段,是java代码自己处理的字段,可以在添加自定义字段类型的。
代码方面调用:
①需要将原有get请求的分页列表接口,重构一个post请求的列表接口;
②设置开发管理列表,对应业务的业务编码,用于获取select后面的扩展字段,queryBizCode字段PageDTO中已经增加该字段,各业务的dto有继承SupperDTO或PageDTO都可以set到。
·走Mapper.xml的方式,使用预设高级搜索:
·走myBatis-plus写法使用高级搜索示例:
QueryWrapper<DemandForecast> query = WrappersUtralUtil.queryWrapper(demandForecastDTO,where->{
where.eq("")
})
·说明:where条件里面放固定参数,例如custId、userId、倒序排序等固定参数,其他页面搜索条件,此工具类会做封装,不需要自己再增加参数。
2. 物料管理→发布物料,表单设计方面:
首先,对应的model实体,需要继承BaseModel,如果之前有实体继承了extends Model
①走Mapper.xml写法:
·如果是单个保存方法:
//获取添加的扩展字段拼接sql
WrappersUtralUtil.setInsertFieldNames(product);
${expFieldNames}
${expFieldVals}
·如果是批量添加的方法:
BaseModel baseModel = WrappersUtralUtil.getInsertThExps();
demandMapper.insertBatches(list, baseModel.getExpFieldNames(), baseModel.getExpFieldVals());
②走myBatis-plus写法: 如果是myBatis-plus写法,更简单,则不需要调用该工具类,平时正常的save方法即可。
3. 物料管理→编辑物料: ①走Mapper.xml写法:
//设置修改的参数,拼接sql
WrappersUtralUtil.setUpdateFieldVals(product);
${expFieldUpVals}
②走myBatis-plus写法: 如果是myBatis-plus写法,更简单,则不需要调用该工具类,平时正常的update方法即可。
4. 物料管理→物料详情:
需要传业务编码,用于获取select后面的字段,这个详情一般都是和添加用一个表单,所以传的是使用那个表单的业务编码即可。
<if test="expFields != null and expFields != '' ">
, ${expFields}
</if>
=======关于字段下推其他业务,下面以物料字段下推到需求预测模块为例:=======
1、一般业务会遇到选择物料弹窗,这个我们配一个公共的表单,供各业务选择物料的弹窗使用。
这时候点击保存/提交时,可以选择让前端传给你,自己后端通过productId查询也是可以的,只需要通过这个工具进行转换。
第一个参数:来源方对象集合【这个集合肯定要返回扩展字段】
第二个参数:来源方用于和目标方做匹配的字段
第三个参数:目标方对象集合
第四个参数:目标方用于和来源方做匹配的字段
第五个参数:来源方单元标识【admin的开发管理列表有】
第六个参数:目标方单元标识【admin的开发管理列表有】
其他标准字段,建议还是各业务自己set参数值不变,因为上面这个转换工具只会针对绑定的字段进行转换。
保存时,我们基本都是使用model进行传参,所以对应业务的model需要继承BaseModel