feat(oa): 添加AI数据查询功能

- 新增AI数据查询接口和相关服务
- 实现关键词匹配和AI智能识别表功能
- 添加SQL生成和执行逻辑
- 新增动态数据返回格式和字段信息类
- 优化SQL安全性验证
This commit is contained in:
2025-08-05 11:38:17 +08:00
parent 2b30d2186f
commit 845e8cfb1e
9 changed files with 1077 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
package com.ruoyi.oa.domain.bo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* AI数据查询请求
*
* @author ruoyi
* @date 2024-12-19
*/
@Data
public class OaAiDataQueryBo {
/**
* 用户查询需求描述
*/
@NotBlank(message = "查询需求不能为空")
private String query;
/**
* 最大返回记录数默认100
*/
private Integer limit = 100;
/**
* 是否包含字段元信息默认true
*/
private Boolean includeMeta = true;
}

View File

@@ -0,0 +1,63 @@
package com.ruoyi.oa.domain.vo;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* 动态数据返回格式
*
* @author ruoyi
* @date 2024-12-19
*/
@Data
public class DynamicDataVo {
/**
* 元数据信息
*/
private Meta meta;
/**
* 实际数据
*/
private List<Map<String, Object>> data;
/**
* 元数据类
*/
@Data
public static class Meta {
/**
* 字段信息列表
*/
private List<Field> fields;
}
/**
* 字段信息类
*/
@Data
public static class Field {
/**
* 字段名后端返回的key
*/
private String fieldName;
/**
* 字段中文名称(用于前端显示列名)
*/
private String label;
/**
* 数据类型number/string/date/bool等前端据此处理渲染
*/
private String type;
/**
* 格式化规则(如数字千分位、日期格式等,可选)
*/
private String format;
}
}

View File

@@ -0,0 +1,78 @@
package com.ruoyi.oa.domain.vo;
import lombok.Data;
/**
* 数据库表字段信息
*
* @author ruoyi
* @date 2024-12-19
*/
@Data
public class TableColumnVo {
/**
* 字段名
*/
private String columnName;
/**
* 是否必填
*/
private String isRequired;
/**
* 是否主键
*/
private String isPk;
/**
* 排序
*/
private Integer sort;
/**
* 字段注释
*/
private String columnComment;
/**
* 是否自增
*/
private String isIncrement;
/**
* 字段类型
*/
private String columnType;
/**
* 数据类型
*/
private String dataType;
/**
* 字符最大长度
*/
private Long characterMaximumLength;
/**
* 数值精度
*/
private Integer numericPrecision;
/**
* 数值小数位数
*/
private Integer numericScale;
/**
* 默认值
*/
private String columnDefault;
/**
* 是否可为空
*/
private String isNullable;
}