Skip to content

本文是 AI 模块生成器 的技术参考,包含字段类型、CLI 命令和生成产物说明。

21 种支持的字段类型

类型Java 类型数据库类型前端组件说明
stringStringvarchar(100)Input短文本
textStringtextInput.TextArea长文本
integerIntegerintInputNumber整数
decimalBigDecimaldecimal(18,2)InputNumber金额/小数
booleanIntegertinyintSwitch开关
dateLocalDatedateDatePicker日期
datetimeLocalDateTimedatetimeDatePicker (show-time)日期时间
enumStringvarchar(100)Select固定枚举
dictStringvarchar(100)Select系统字典
fileStringvarchar(100)FileField附件上传
documentStringvarchar(100)DocumentFieldONLYOFFICE 文档
richtextStringlongtextRichTextField富文本
multiSelectStringvarchar(500)MultiSelectField多选标签
userSelectStringvarchar(100)UserSelectField用户选择
deptSelectStringvarchar(100)DeptSelectField部门选择
transferStringtextTransferField穿梭框
treeSelectStringvarchar(100)TreeSelectField树选择
dictSelectStringvarchar(100)DictSelectField字典选择
jsonEditorStringtextJsonEditorFieldJSON 配置编辑
userIntegerint用户 ID(旧版兼容)
deptIntegerint部门 ID(旧版兼容)

复杂字段(filedocumentrichtextmultiSelecttransfertreeSelectuserSelectdeptSelectdictSelectjsonEditor)使用平台已有的 generated-fields 组件,不手写组件代码。

子表(主从结构)

ModuleSpec 支持 childTables 定义一对多关系:

  • 子表字段限制为简单类型:stringtextintegerdecimalbooleandatedatetimeenum
  • 自动生成子表 Entity/Mapper/Service/ServiceImpl
  • 主表 Controller 包含子表的批量保存(先删后插)和级联加载
  • 前端表单中子表以内联可编辑表格呈现

CLI 工具参考

oars-tools CLI 位于 oars-tools/src/cli/index.js,可通过 node src/cli/index.js <command> 直接调用。

命令说明
ai:app-brief --prompt <text> --out <file> [--stream]将模糊需求分析为 AppBrief JSON
ai:module-spec --prompt <text> [--out <file>]根据自然语言生成单个 ModuleSpec JSON
ai:prompt-suggestions [--count <N>]生成提示词示例
ai:config显示 AI 提供商配置状态
create:module <name> --title <title> --out <file>创建默认 ModuleSpec
create:module --spec <file> [--root <dir>] [--source-mode plugin|core] [--dry-run] [--force]从 ModuleSpec 生成源码
create:module --spec <file> --source-mode plugin --plugin-version <version> --module-version <version> --base-oars-version <version> --customer-code <code>生成带交付元数据的源码插件
plugin:remove --manifest <file> [--force]根据插件清单删除生成的文件
plugin:delivery-check --manifest <file>校验源码插件交付 manifest、descriptor 和生成文件

AI 配置

AI 配置通过环境变量或 oars-tools/.env 文件设置:

变量说明默认值
OARS_AI_API_KEYAI 服务 API 密钥
OARS_AI_BASE_URL自定义 API 地址(代理/自托管)
OARS_AI_MODEL模型名称
OARS_AI_PROVIDER提供商openai

生成产物一览

源码插件模式文件清单

oars-plugins/<pluginKey>/
├── delivery/
│   └── <module>.delivery.json     # 客户源码交付描述
├── sql/
│   ├── <module>.install.sql       # 建表+菜单+权限+选项源
│   ├── <module>.uninstall.sql     # 禁用菜单和权限(不删数据表)
│   └── upgrade/
│       └── README.md              # 后续前向升级脚本目录说明
├── modules/
│   └── <module>.json              # 插件模块清单
oars-java/oars-app/src/main/java/com/oars/plugins/<pluginKey>/
├── entity/
│   ├── <Entity>.java              # 主表实体
│   └── <ChildEntity>.java         # 子表实体(可选)
├── mapper/
│   ├── <Entity>Mapper.java        # 主表 Mapper
│   └── <ChildEntity>Mapper.java   # 子表 Mapper(可选)
├── service/
│   ├── <Entity>Service.java       # 主表 Service 接口
│   └── <ChildEntity>Service.java  # 子表 Service 接口(可选)
├── service/impl/
│   ├── <Entity>ServiceImpl.java   # 主表 Service 实现
│   └── <ChildEntity>ServiceImpl.java # 子表 Service 实现(可选)
└── controller/
    └── <Entity>Controller.java    # REST 控制器
oars-web/apps/web-antd/src/plugins/<pluginKey>/
├── api/
│   └── <module>.ts               # TypeScript API 客户端
└── views/
    └── <module>/
        └── index.vue              # 管理列表页
    └── <module>/
        └── form.vue               # 移动端表单页(可选)

源码插件交付元数据

源码插件模式会生成两个 JSON 元数据文件:

文件说明
modules/<module>.json插件模块清单,记录生成文件、菜单、表、插件版本、模块版本和产品基线
delivery/<module>.delivery.json交付描述,记录 Git commit、生成器版本、ModuleSpec 哈希、SQL、源码边界和检查命令

生成命令可传入交付参数:

bash
node oars-tools/src/cli/index.js create:module \
  --spec ./expense.module.json \
  --source-mode plugin \
  --plugin-key acme-expense \
  --plugin-version 1.0.0 \
  --module-version 1.0.0 \
  --base-oars-version oars-v1.4.0 \
  --customer-code acme

交付检查命令:

bash
node oars-tools/src/cli/index.js plugin:delivery-check \
  --manifest oars-plugins/acme-expense/modules/expense.json

源码交付、客户分支、升级 SQL 和回滚边界见源码交付与版本控制

DSL 模式产物

无源码文件。数据库写入:

内容
biz_runtime_app应用定义(appKey、appName、generationMode)
biz_runtime_module模块定义(moduleKey、tableName、specJson)
biz_runtime_field字段定义(fieldName、fieldType、flags)
sys_menu菜单入口(/runtime/biz/{moduleKey})
sys_mobile_entry移动端入口(可选)

权限体系

生成器自动创建 4 个菜单/按钮权限条目:

权限码类型说明
biz:<name>menu模块列表页入口
biz:<name>:createbutton新增
biz:<name>:updatebutton编辑
biz:<name>:deletebutton删除

同时自动授权给超级管理员角色(roleId=1)。