基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(一)

更多ruoyi-nbcio功能请看演示系统

gitee源代码地址

前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

演示地址:RuoYi-Nbcio后台管理系统

更多nbcio-boot功能请看演示系统

gitee源代码地址

后端代码: https://gitee.com/nbacheng/nbcio-boot

前端代码:https://gitee.com/nbacheng/nbcio-vue.git

在线演示(包括H5) : http://122.227.135.243:9888
 

为了实现在线表单关联数据库的实现与模拟,先进行一些基本的表单测试。

1、后端使用gen模块里的表与表列方法获取相应信息

列出可以选择的表

/**
     * 查询代码生成列表
     */
    @SaCheckPermission("tool:gen:list")
    @GetMapping("/list")
    public TableDataInfo<GenTable> genList(GenTable genTable, PageQuery pageQuery) {
        return genTableService.selectPageGenTableList(genTable, pageQuery);
    }

@Override
    public TableDataInfo<GenTable> selectPageGenTableList(GenTable genTable, PageQuery pageQuery) {
        Page<GenTable> page = baseMapper.selectPage(pageQuery.build(), this.buildGenTableQueryWrapper(genTable));
        return TableDataInfo.build(page);
    }

    private QueryWrapper<GenTable> buildGenTableQueryWrapper(GenTable genTable) {
        Map<String, Object> params = genTable.getParams();
        QueryWrapper<GenTable> wrapper = Wrappers.query();
        wrapper.like(StringUtils.isNotBlank(genTable.getTableName()), "lower(table_name)", StringUtils.lowerCase(genTable.getTableName()))
            .like(StringUtils.isNotBlank(genTable.getTableComment()), "lower(table_comment)", StringUtils.lowerCase(genTable.getTableComment()))
            .between(params.get("beginTime") != null && params.get("endTime") != null,
                "create_time", params.get("beginTime"), params.get("endTime"));
        return wrapper;
    }

列出可以选择的列名

/**
     * 查询数据表字段列表
     *
     * @param tableName 表名
     */
    @SaCheckPermission("tool:gen:list")
    @GetMapping(value = "/columnByName/{tableName}")
    public TableDataInfo<GenTableColumn> columnListByTableName(@PathVariable(value = "tableName") String tableName) {
        TableDataInfo<GenTableColumn> dataInfo = new TableDataInfo<>();
        List<GenTableColumn> list = genTableService.selectGenTableColumnListByTableName(tableName);
        dataInfo.setRows(list);
        dataInfo.setTotal(list.size());
        return dataInfo;
    }

@Override
	public List<GenTableColumn> selectGenTableColumnListByTableName(String tableName) {
		
		GenTable table = baseMapper.selectGenTableByName(tableName);
		if(ObjectUtils.isNotEmpty(table) ) {
			long tableId = table.getTableId();
			return genTableColumnMapper.selectList(new LambdaQueryWrapper<GenTableColumn>()
	            .eq(GenTableColumn::getTableId, tableId)
	            .orderByAsc(GenTableColumn::getSort));
		}
		return null;
	}

根据表名动态获取数据

/**
     * 根据主表名动态获取表数据
     * @param tableName 主表名称
     */
    @SaCheckPermission("workflow:form:query")
    @GetMapping(value = "/getData/{tableName}")
    public R<List<Map>> getData(@NotNull(message = "表名不能为空") @PathVariable("tableName") String tableName) {
        return R.ok(formService.getDataByTableName(tableName));
    }

@Override
	public List<Map> getDataByTableName(@NotNull(message = "表名不能为空") String tableName) {
		return baseMapper.getDataByTableName(tableName);
	}


public interface WfFormMapper extends BaseMapperPlus<WfFormMapper, WfForm, WfFormVo> {

    List<WfFormVo> selectFormVoList(@Param(Constants.WRAPPER) Wrapper<WfForm> queryWrapper);
    @Select("SELECT * FROM ${tableName}")
    List<Map> getDataByTableName(@Param("tableName") String tableName);
}

最近更新

  1. TCP协议是安全的吗?

    2024-01-20 20:26:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-20 20:26:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-20 20:26:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-20 20:26:01       20 阅读

热门阅读

  1. SpringMVC 参数传递见解5

    2024-01-20 20:26:01       37 阅读
  2. 设计模式——备忘录模式

    2024-01-20 20:26:01       37 阅读
  3. 【算法详解】力扣169.多数元素

    2024-01-20 20:26:01       42 阅读
  4. c语言-位段

    2024-01-20 20:26:01       36 阅读
  5. 机器视觉企业实战

    2024-01-20 20:26:01       30 阅读
  6. 编程语言的运行时和垃圾回收机制概览

    2024-01-20 20:26:01       36 阅读