Lowcode Module Generator

Other

低代码模块生成器。低代码平台出码(完整前后端代码),支持ACM系统的普通主页、左右布局等模块开发。用户只需提供中文模块名和字段明细表,即可生成 PO、Form、VO、Service、Controller、Mapper 等后端代码,以及前端 React 页面组件。

Install

openclaw skills install lowcode-module-generator

低代码模块生成器 技能

低代码平台出码(完整前后端代码),支持ACM系统的普通主页、左右布局等模块开发。用户只需提供中文模块名和字段明细表,即可生成 PO、Form、VO、Service、Controller、Mapper 等后端代码,以及前端 React 页面组件。


目录结构

lowcode-module-generator/
├── SKILL.md                               # 技能定义文档(Agent 必读)
├── README.md                              # 本文件(人读概览)
├── CHANGES.md                             # 变更记录
└── src/
    ├── config.json                         # 配置文件(microservice、frontend、database)
    ├── documents/                          # 详细说明文档
    │   ├── template/                       # 模板约束与变量说明
    │   │   ├── velocity-variables.md       # Velocity 模板变量说明
    │   │   └── template-constraints.md     # 模板约束规则说明
    │   ├── form-controls/                  # 表单控件说明
    │   ├── layout-types/                   # 布局类型说明
    │   │   ├── layout-labels.md            # 标签页说明
    │   │   └── layout-leftright.md         # 左右布局说明
    │   ├── examples/                       # 使用示例(按需加载)
    │   │   ├── example-common.md           # 普通主页示例
    │   │   ├── example-org.md              # 组织下拉框示例
    │   │   ├── example-user.md             # 用户下拉框示例
    │   │   ├── example-fileupload.md       # 附件上传示例
    │   │   ├── example-project.md          # 选择项目示例
    │   │   ├── example-leftright-action.md # 左右布局-普通列表
    │   │   └── example-leftright-folder.md # 左右布局-树形列表
    │   └── sql-generator.md                # SQL生成说明
    └── template/                           # Velocity 模板文件(原始模板,禁止修改)
        ├── 说明.txt                         # 模板说明文档
        ├── java/                           # 后端Java模板
        │   ├── po/                         # PO实体模板
        │   │   └── po.java.vm
        │   ├── vo/                         # VO视图模板
        │   │   ├── vo.java.vm
        │   │   ├── treevo.java.vm
        │   │   └── datavo.java.vm
        │   ├── form/                       # Form模板
        │   │   ├── addform.java.vm
        │   │   ├── updateform.java.vm
        │   │   └── searchform.java.vm
        │   ├── service/                    # Service模板
        │   │   ├── service.java.vm
        │   │   └── serviceimpl.java.vm
        │   ├── controller/                 # Controller模板
        │   │   ├── controller.java.vm
        │   │   └── controller-wf.java.vm
        │   ├── mapper/                     # Mapper模板
        │   │   ├── mapper.java.vm
        │   │   └── mapper.xml.vm
        │   └── feign/                      # Feign模板
        │       └── relevancyApiFeign.java.vm
        └── web/                            # 前端React模板
            ├── index/                      # 主页模板
            │   ├── web-index.jsx.vm
            │   └── web-toptags.jsx.vm
            ├── form/                       # 表单模板
            │   ├── web-addform.jsx.vm
            │   ├── web-updateform.jsx.vm
            │   ├── web-searchform.jsx.vm
            │   └── web-infoform.jsx.vm
            ├── labels/                     # 标签页模板
            │   ├── web-label-index.jsx.vm
            │   └── web-label-toptags.jsx.vm
            ├── wf/                         # 工作流模板
            │   ├── web-wf-index.jsx.vm
            │   └── web-wf-approval.jsx.vm
            ├── leftRight/                  # 左右布局模板
            │   ├── web-left-index.jsx.vm
            │   ├── web-left-toptags.jsx.vm
            │   └── web-index-right.jsx.vm
            └── upDown/                     # 上下布局模板
                ├── web-top-index.jsx.vm
                ├── web-index-top.jsx.vm
                └── web-top-toptags.jsx.vm

核心能力

  • 严格遵循模板:所有代码生成严格遵守 src/template/ 目录下的 Velocity 模板,按模板变量填充,不得篡改
  • 自动命名转换:简体中文名称 → 英文标识、类名前缀
  • 后端代码生成:PO、Form、VO、Service、Controller、Mapper、Feign
  • 前端代码生成:主页、工具栏、表单、标签页、工作流
  • 模板引擎:基于Velocity语法,支持复杂模板替换
  • 工作流程强制执行:所有任务必须按工作流程的8个步骤顺序执行,不得跳过任何步骤
  • 简体中文优先:所有生成内容必须使用简体中文

用户输入要求

用户只需提供:

  1. 新模块简体中文名称(如:设备管理)
  2. 字段明细表

AI自动推断:

  • 字段中有 parentIdparent_idTree(树形表)
  • 否则 → Page(分页数据表)

外键配置(可选):如关联EPS项目可额外说明

字段明细格式

字段名(简体中文)字段名(英文)类型必填列表显示关联类型控件说明
项目名称projectNameStringdictproject_status
项目编号projectCodeString
责任主体orgIdTreeSelectorg组织控件(OBS)
责任人userIdSelectuser用户控件(责任人)
附件fileIdsFileUpload上传附件
开始日期startDateDate日期筛选
结束日期endDateDateTime日期时间筛选
设备名称equipmentNameString
设备编号equipmentCodeString
供应商supplierIdLongrelevancytype:2,url:/api/base/supplier
采购合同contractIdLongrelevancytype:3,url:/api/contract/select

关联类型配置

关联类型说明关联配置格式
dict数据字典dict:{dictType}
org组织架构org
user用户user
project项目project
relevancy数据关联relevancy:type:{1/2/3},url:{接口URL}

relevancyType 三种模式

type值说明前端组件
1枚举类型FormSelect + customDicts内嵌选项
2远程搜索FormSelect + relevancySelectUrl远程数据
3弹窗选择FormDataModel + SelectSingleModal弹窗

表类型

类型说明特征
Tree树形表有parentId,支持父子结构
Page分页数据表支持分页查询
普通普通列表无分页,支持搜索
左右结构左右联动布局左边表格/树形 + 右边表格/树形联动

页面布局类型

布局类型说明生成文件
普通主页单表格页面(默认)index.jsx, TopTags/index.jsx
左右布局左右联动LeftIndex.jsx, RightIndex.jsx, TopTags/index.jsx
标签页多标签页LabelIndex.jsx, LabelTopTags/index.jsx, Labels/{tab}/index.jsx
工作流审批流程WfIndex.jsx, WfApproval.jsx

布局类型自动判断

判断规则

用户输入关键词自动判断为
未提及"左右布局"普通主页
提及"左右布局"(含左边描述 + 右边描述)左右布局
提及"标签页"或"页签"标签页

标签页(页签)说明

详细说明请参见:src/documents/layout-types/layout-labels.md

内容包括:

  • 标签页与布局的组合
  • 普通主页 + 标签页图示
  • 左右布局 + 标签页图示
  • 联动原理
  • 标签页结构
  • 标签页识别特征
  • 模板文件说明
  • 代码组织
  • SKILL 自动识别页签
  • 标签页自动判断流程

左右结构说明

详细说明请参见:src/documents/layout-types/layout-leftright.md

内容包括:

  • 左右结构特点
  • 联动原理
  • API 设计
  • 模板文件说明
  • 代码组织
  • 左右布局自动判断流程

输出结果

类型生成文件
后端-POXxxPo.java
后端-FormXxxAddForm.java, XxxUpdateForm.java, XxxSearchForm.java
后端-VOXxxVo.java, XxxTreeVo.java, XxxDataVo.java
后端-ServiceXxxService.java, XxxServiceImpl.java
后端-ControllerXxxController.java, XxxControllerWf.java
后端-MapperXxxMapper.java, XxxMapper.xml
前端-主页index.jsx
前端-工具栏TopTags/index.jsx
前端-表单AddForm.jsx, UpdateForm.jsx, SearchForm.jsx
前端-标签页LabelIndex.jsx, LabelTopTags.jsx, Labels/{tab}/index.jsx
前端-工作流WfIndex.jsx, WfApproval.jsx
前端-左右布局LeftIndex.jsx, RightIndex.jsx
数据库-初始化SQLdb/init.sql

左右布局详细说明

详细内容请参见:src/documents/layout-types/layout-leftright.md

内容包括:

  • 左右结构特点
  • 联动原理
  • API 设计
  • 模板文件说明
  • 代码组织
  • 左右布局自动判断流程

⚠️ 铁律:工作流程必须严格执行

所有代码生成任务必须严格按照以下工作流程执行,不得跳过任何步骤:

用户输入新模块信息
    ↓
步骤1:生成模块标识(简体中文→英文)[ ]
    ↓
步骤2:自动判断页面布局类型 [ ]
    ↓
步骤3:解析字段明细,构建模板变量 [ ]
    ↓
步骤4:替换Velocity模板变量 [ ]
    ↓
步骤5:生成后端代码(PO→Form→VO→Service→Controller→Mapper) [ ]
    ↓
步骤6:生成前端代码(根据布局类型生成对应页面) [ ]
    ↓
步骤7:生成数据库初始化SQL(根据配置的数据库类型,只生成一个SQL) [ ]
    ↓
步骤8:输出完整代码清单 [ ]
    ↓
步骤9:执行 check 检查,全部通过才能结束 [ ]

TODO执行要求(强制)

完整步骤清单

步骤内容状态
步骤1生成模块标识(简体中文→英文)[ ]
步骤2自动判断页面布局类型[ ]
步骤3解析字段明细,构建模板变量[ ]
步骤4替换Velocity模板变量[ ]
步骤5生成后端代码(PO→Form→VO→Service→Controller→Mapper)[ ]
步骤6生成前端代码(根据布局类型生成对应页面)[ ]
步骤7生成数据库初始化SQL(根据配置的数据库类型)[ ]
步骤8输出完整代码清单[ ]
步骤9执行 check 检查,全部通过才能结束[ ]

执行要求

  • 每个步骤完成后标记 [x] 表示已执行
  • 显示完整清单让用户了解全局进度
  • 步骤1-3为准备阶段,必须先完成才能进入生成阶段
  • 步骤4-7为生成阶段,必须按顺序执行,不得跳过
  • 步骤8为输出阶段,最后必须输出完整代码清单
  • 步骤9为检查阶段,必须执行 check 清单检查,全部通过才能结束
  • 如步骤7未执行,SQL不会生成,必须完成所有步骤
  • 任意步骤失败,必须停止并报告错误,不得继续下一步
  • 步骤1必须将模块标识清单打印输出后,才能继续执行步骤2
  • 步骤9 check 检查必须全部通过,才能完成工作流程

配置优先级

配置来源优先级:自然语言 > config.json

  • 微服务工程:用户可在自然语言中指定,如"在{microservice.name}中生成"
  • 前端模块生成路径:用户可在自然语言中指定,如"前端放到{frontend.path}目录下"
  • 数据库类型:用户可在自然语言中指定,如"使用Oracle数据库"
  • 若用户未指定,则读取 src/config.json 中的默认配置

步骤详细说明

步骤内容输出
步骤1生成模块标识buildBizName, buildClassName, buildPackage, buildTableName
步骤2判断布局类型普通主页 / 左右布局 / 标签页 / 工作流
步骤3解析字段构建变量buildColumns, buildAddforms, buildUpdateforms, buildSearchForms
步骤4Velocity模板替换处理所有 .vm 模板文件
步骤5生成后端代码PO, Form, VO, Service, Controller, Mapper
步骤6生成前端代码index.jsx, TopTags, AddForm, UpdateForm
步骤7生成SQL根据数据库类型生成一个SQL(init.sql)
步骤8输出代码清单完整文件列表 + 存放路径
步骤9执行 check 检查全部通过才能完成工作流程

步骤1详细说明

读取环境变量(config.json)

  • 后台微服务名称:{microservice.name}
  • 后台微服务工程JAVA包路径:{microservice.package}
  • 后台微服务代码生成路径:{microservice.path}
  • 前端模块代码生成路径:{frontend.path}
  • 数据库类型:{database.type}

生成模块标识清单

变量说明
buildBizName{模块英文名}模块英文名(驼峰)
buildClassName{ClassName}类名前缀(首字母大写)
buildPackage{microservice.package}JAVA包路径
buildTableName{database.tablePrefix}{模块名}表名
frontend{frontend.path}前端模块生成路径
microservice{microservice.path}后端微服务生成路径
databaseType{database.type}数据库类型

生成路径对照

类型路径
后端代码{microservice.path}/
前端代码{frontend.path}/
SQL文件{microservice.path}{microservice.name}的位置为基准,即{microservice.path}中{microservice.name}之前的路径/{microservice.name}/db/init.sql

路径计算示例: 若{microservice.path} = /Users/hadoop/.../adp-modules/wsd-aiagent/src/main/java/com/wisdom/acm/aiagent{microservice.name} = wsd-aiagent出现在路径中 SQL文件 = /Users/hadoop/.../adp-modules/wsd-aiagent/db/init.sql

⚠️ 重要:步骤1必须将模块标识清单打印输出后,才能按工作流程继续执行。

⚠️ 强制要求:若用户输入包含繁体中文,AI必须先将其转换为简体中文,再生成代码。禁止直接使用繁体中文。


步骤9:CHECK 检查清单

执行时机:步骤8(输出完整代码清单)完成后,必须执行 check 检查,全部通过才能结束工作流程。

check 检查是强制步骤:若有任何检查项未通过,必须修复后重新检查,直到全部通过才能完成工作流程。

检查清单来源:根据当前生成模块的布局类型,加载对应的检查清单。不同布局类型对应不同的检查点组合。

示例类型与检查清单对应关系

示例文件说明
example-common.md普通主页示例
example-org.md组织下拉框示例
example-user.md用户下拉框示例
example-project.md选择项目示例
example-fileupload.md附件上传示例
example-leftright-action.md左右布局-普通列表
example-leftright-folder.md左右布局-树形列表

check 检查清单

序号检查项检查内容标准
1包名路径${buildPackage} 是否正确必须与微服务 package 一致,如 com.wisdom.acm.aiagent
2类名命名所有类名是否遵循驼峰命名首字母大写,如 EquipmentPo,方法名首字母小写如 equipmentName
3继承关系-POPO 是否继承 BasePoBaseCustomPo根据 buildEnableCustomField 判断
4继承关系-FormForm 是否继承 BaseForm / BaseSearchFormAddForm/UpdateForm 继承 BaseForm,SearchForm 继承 BaseSearchForm
5继承关系-VOVO 是否继承 BaseInfoVo / BaseVoVo 继承 BaseInfoVo,DataVo 继承 BaseVo
6继承关系-ServiceService 是否继承 CommService<Po>类型参数只有1个(Po)
7继承关系-ServiceImplServiceImpl 是否继承 BaseService<Mapper, Po>类型参数只有2个(Mapper, Po),不是5个
8继承关系-ControllerController 是否继承 BaseController必须继承 BaseController
9关联类型-orgorg 类型字段 VO 中是否为 GeneralVoprivate GeneralVo orgId;
10关联类型-useruser 类型字段 VO 中是否为 GeneralVoprivate GeneralVo userId;
11关联类型-dictdict 类型字段 VO 中是否为 DictionaryVoprivate DictionaryVo status;
12关联类型-statusstatus 字段 DataVo 中是否为 StatusVoprivate StatusVo status;
13日期类型格式化Date 类型字段是否有 @JsonFormat必须有 @JsonFormat(pattern = "yyyy-MM-dd")"yyyy-MM-dd HH:mm:ss"
14表名注解PO 类是否有 @Table(name = "...")表名必须与 buildTableName 一致
15Column注解PO 字段是否有 @Column(name = "...")字段名必须大写,如 equipment_name
16ApiModel注解Form/VO 类是否有 @ApiModel值必须为中文描述,如 设备管理
17ApiModelProperty注解字段是否有 @ApiModelProperty值必须为中文描述
18Required属性必填字段 required = true根据字段明细中是否必填来判断
19Service方法签名方法签名是否符合模板addXxx(AddForm)updateXxx(UpdateForm)deleteXxx(List<Long>)
20Controller注解是否有 @Api(tags = "...")tags 必须为中文描述
21Controller注入Service 是否用 @Autowired 注入必须有 @Autowired private XxxService xxxService;
22Mapper继承Mapper 是否继承 CommMapper<Po>类型参数只有1个(Po)
23Mapper.xmlXML 声明和 DOCTYPE 是否正确必须有 <?xml version="1.0" encoding="UTF-8" ?> 和对应 DOCTYPE
24Mapper.xml命名空间namespace 是否正确必须为 ${buildPackage}.mapper.${buildClassName}Mapper
25Mapper.xml中间为空mapper 标签内是否为空<mapper></mapper> 之间不能有内容
26buildColumns完整性列表显示字段是否完整只包含标记为"列表显示"的字段
27buildAddforms完整性增加表单字段是否完整只包含增加时需要的字段
28buildUpdateforms完整性修改表单字段是否完整包含所有可修改字段,status 字段已排除
29buildSearchForms完整性搜索表单字段是否完整只包含需要搜索的字段
30buildPos完整性PO字段是否完整包含所有数据库字段
31Tree表类型Tree表是否有 parentId 字段必须有 private Long parentId;
32Page表类型Page表无 parentId不生成 parentId 字段
33ForeignKey处理有外键时是否正确处理buildForeignKey 时需在 Form/VO 中生成对应字段
34前端import-关联前端关联字段 import 是否正确org/user 导入 GeneralVo,dict 导入 DictionaryVo
35前端formType映射前端组件类型是否正确input→FormInput,select→FormSelect,date→FormDate 等
36ServiceImpl-Override注解ServiceImpl中带有@Override注解的方法是否在Service接口中声明ServiceImpl中每个带有@Override注解的方法,必须在Service接口中有对应的方法声明

关联类型专项检查

序号检查项关联类型检查内容
1org关联-VO类型orgVO中org类型字段必须为 GeneralVo
2org关联-前端组件org前端org类型字段必须使用 FormTreeSelect + getOrgSelectTree
3org关联-数据加载org前端org字段必须有 loadDatas 加载树形数据
4user关联-VO类型userVO中user类型字段必须为 GeneralVo
5user关联-前端组件user前端user类型字段必须使用 FormSelect + allSelectGeneralUser
6user关联-数据加载user前端user字段必须有 url 指定远程数据源
7project关联-VO类型projectVO中project类型字段必须为 GeneralVo
8project关联-前端组件project前端project类型字段必须使用 FormSelect + projectList
9project关联-数据加载project前端project字段必须有 url 指定远程数据源
10fileUpload关联-VO类型fileUploadVO中fileUpload类型字段必须为 String
11fileUpload关联-前端组件fileUpload前端fileUpload字段必须使用 FormInputUpload
12fileUpload关联-importfileUpload前端必须导入 FormInputUpload 组件

左右布局专项检查

序号检查项检查内容
1左右布局-整体模块名模块名为整体名称,如 actionManagementfolderManage
2左右布局-左边业务对象左边业务对象独立生成,如 ActionGroupFolder
3左右布局-右边业务对象右边业务对象独立生成,如 ActionInfoDocument
4左右布局-前端同目录前端代码生成到同一模块目录,如 {frontend.path}/actionManagement/
5左右布局-外键配置foreignKey 和 foreignTitle 必须正确配置
6左右布局-左右联动左边选择后,右边根据 foreignKey 过滤数据

Tree表类型专项检查

序号检查项检查内容
1Tree表-parentId字段Tree表PO必须有 private Long parentId;
2Tree表-VO-parentIdTree表VO必须有parentId字段
3Tree表-树形查询方法Tree表Service必须有 queryXxxTreeList 方法

check 执行流程

步骤8完成 → 识别示例类型 → 加载对应检查清单 → 逐项核对 → 如有未通过项 → 修复问题 → 重新 check → 全部通过 → 工作流程结束

check 输出格式

执行时机:步骤8完成后,逐条列出检查项,每项记录文件名和检查结果。

⚠️ 铁律:不得少报、漏报任何检查不通过的事项,必须如实汇报给用户。

输出结构:按检查分类逐条检查项输出,每个分类显示检查项数统计

## check 检查结果

### 示例类型:example-leftright-action.md(左右布局-普通列表)

### 一、基础检查

| 序号 | 检查项 | 文件 | 结果 | 说明 |
|-----|-------|------|------|------|
| 1 | 包名路径 | ActionGroupPo.java | ✅ | buildPackage=com.wisdom.acm.aiagent |
| ... | ... | ... | ... | ... |

**基础检查:36项(23项相关,13项N/A)**

### 二、关联类型专项检查

| 序号 | 检查项 | 文件 | 结果 | 说明 |
|----|-------|---------|------|------|
| 1 | project关联-VO类型 | ActionInfoVo.java | ✅ | private GeneralVo projectId; |
| ... | ... | ... | ... | ... |

**关联类型专项:3项(全部通过)**

### 三、左右布局专项检查

| 序号 | 检查项 | 文件 | 结果 | 说明 |
|----|-------|---------|------|------|
| 1 | 左右布局-整体模块名 | 前端目录 | ✅ | actionManagement |
| ... | ... | ... | ... | ... |

**左右布局专项:6项(全部通过)**

重要

  • 检查结果必须按分类逐条检查项输出,每个分类独立成节
  • 每个分类标题后必须显示检查项数统计,格式:{分类名}:{总项数}项({相关项数}项相关,{N/A项数}项N/A)(全部通过)
  • 表格中每条检查结果必须单独一行,便于用户事后复查
  • 不得少报、漏报任何未通过的检查项,必须如实完整列出
  • 未通过项用 ❌ 标记,必须列出问题详情修复建议
  • 全部通过(100% ✅)后才能结束工作流程

check 未通过处理

若有任何检查项未通过:

  1. 列出未通过项及原因
  2. 修复问题
  3. 重新执行 check 检查
  4. 直到全部通过才能完成工作流程

check 参考示例

各示例文件的检查项数统计:

示例文件说明检查项数
example-common.md普通主页示例基础36项
example-org.md组织下拉框示例基础36项 + org关联3项 = 39项
example-user.md用户下拉框示例基础36项 + user关联3项 = 39项
example-project.md选择项目示例基础36项 + project关联3项 = 39项
example-fileupload.md附件上传示例基础36项 + fileUpload关联3项 = 39项
example-leftright-action.md左右布局-普通列表基础36项 + 左右布局专项6项 = 42项
example-leftright-folder.md左右布局-树形列表基础36项 + 左右布局专项6项 + Tree专项3项 = 45项

Velocity模板变量详解

详细内容请参见:src/documents/template/velocity-variables.md

内容包括:

  • 一、后端核心变量
  • 二、字段集合变量(buildColumns/buildAddforms/buildPos)
  • 三、关联关系变量(buildRelationList/buildRelevancyFields)
  • 四、搜索相关变量(buildTextSearchForms)
  • 五、前端变量
  • 六、关联字段变量(rl.relation/relationName/voClassName)
  • 七、前端特殊变量(codeBuilderId/column.fieldType)
  • 八、功能开关变量
  • 九、formType 表单控件类型

字段类型映射

Java类型映射

表单类型Java类型
InputString
InputNumberInteger / Long
TreeSelectLong
SelectString
DateDate
DateTimeDate
TextAreaString
CheckboxString
RadioString
FileUploadString

前端组件映射

表单类型前端组件
InputFormInput
InputNumberFormNumber
TreeSelectFormTreeSelect
SelectFormSelect
DateFormDate
DateTimeFormDate
TextAreaFormTextArea
CheckboxFormCheckGroup
RadioFormRadioGroup
FileUploadFormInputUpload

关联类型渲染

关联类型列表渲染表单渲染
dictgetDictNameByProject()FormSelect
orgname字段FormTreeSelect
username字段FormSelect
projectname字段FormSelect
relevancy:1customDicts查找FormSelect
relevancy:2name字段FormSelect远程
relevancy:3name字段FormDataModel弹窗

控件实现说明

详细说明请参见:src/documents/form-controls/form-controls.md

内容包括:

  • 控件类型映射
  • Java类型映射
  • 前端组件映射
  • 6种控件实现说明(项目选择、用户控件、组织控件、上传附件、日期筛选)
  • 通用控件导入
  • 关联类型渲染

SQL生成

详细说明请参见:src/documents/sql-generator.md

内容包括:

  • 数据库类型识别(MySQL/Oracle/达梦)
  • Java类型到数据库类型映射
  • 三种数据库的CREATE TABLE语句模板
  • 通用字段说明
  • 生成流程

模板约束规则

详细内容请参见:src/documents/template/template-constraints.md

内容包括:

  • 铁律:生成代码前必须先读取模板文件
  • 约束说明(模板文件只读、槽位填充原则等)
  • 常见错误:BaseService 类型参数说明
  • 槽位填充要求
  • mapper.xml 模板约束
  • 违反约束的处理

⚠️ 绝对禁止:凭记忆生成代码

禁止行为正确做法
凭记忆写import语句必须读取模板文件,复制模板中的import
凭经验猜测变量类型必须查看模板中的变量定义
凭直觉写代码逻辑必须按照模板的Velocity语法填充
跳过模板直接写代码必须先读取模板,再基于模板生成

错误示例

// ❌ 错误:凭记忆写import
import com.wisdom.base.common.vo.base.GeneralVo;  // 记错了路径

// ✅ 正确:复制模板中的import
import com.wisdom.base.common.vo.GeneralVo;

核心原则

  1. 生成代码前必须先读取模板文件,禁止根据经验生成
  2. 所有import、变量、方法调用都必须来自模板
  3. 若模板中有 #if#foreach 等Velocity指令,必须正确处理
  4. 不确定时必须重新读取模板确认

代码存放位置

普通主页/标签页/工作流

类型路径说明
后端微服务工程{microservice.name}/后台微服务工程
后端代码{microservice.path}后台工程代码生成路径
前端页面{frontend.path}/{模块英文名}/前端工程代码生成路径

左右布局

详细内容请参见:src/documents/layout-types/layout-leftright.md

SQL输出位置

类型路径说明
SQL文件{microservice.path}{microservice.name}的位置为基准只生成一个SQL文件,根据微服务实际连接的数据库类型
# 以microservice.name在microservice.path中的位置为基准
wsd-aiagent/                      # microservice.name所在目录
├── db/
│   └── init.sql                  # Oracle初始化SQL(默认)

路径计算示例

  • {microservice.path} = /Users/hadoop/.../adp-modules/wsd-aiagent/src/main/java/com/wisdom/acm/aiagent
  • {microservice.path}中找到{microservice.name} = wsd-aiagent的位置
  • SQL文件 = /Users/hadoop/.../adp-modules/wsd-aiagent/db/init.sql

使用示例

详细内容请参见:src/documents/examples/

SKILL 根据用户输入自动按需加载对应示例文件:

示例加载规则

用户输入关键词加载示例文件说明
"左右布局" + 有parentId/树形example-leftright-folder.md树形+普通列表左右布局
"左右布局" + 无parentIdexample-leftright-action.md普通列表左右布局
"组织"、"责任主体"、"项目团队"、"协作团队"example-org.md组织下拉框示例
"用户"、"责任人"、"负责人"、"创建人"、"修改人"example-user.md用户下拉框示例
"附件"、"上传"、"fileUpload"example-fileupload.md附件上传示例
"项目"、projectIdexample-project.md选择项目示例
默认(无上述关键词)example-common.md普通主页示例

加载时机

  • 步骤1完成后(生成模块标识),根据用户输入的字段明细判断需要加载的示例
  • 将示例文件内容作为上下文参考,帮助理解该类型模块的处理流程
  • 不是所有示例都加载,只加载与用户需求匹配的那一个

示例文件列表

src/documents/examples/
├── example-common.md              # 普通主页示例
├── example-org.md                 # 组织下拉框示例
├── example-user.md                # 用户下拉框示例
├── example-fileupload.md          # 附件上传示例
├── example-project.md             # 选择项目示例
├── example-leftright-action.md    # 左右布局-普通列表
└── example-leftright-folder.md    # 左右布局-树形列表

模板来源

模板来源于 wsd-adp/src/main/resources/codebuilder/ 目录,共 30个 .vm 模板文件:

  • java/ - 后端Java模板(12个)
  • web/ - 前端React模板(18个)

重要:模板文件禁止修改,如需调整功能请新建模板或使用配置参数。

变更记录

v2.1.0 - 2026-05-16

  • 新增铁律:生成代码前必须先读取模板文件,禁止根据经验生成
  • 新增说明:明确 BaseService 类型参数为2个(Mapper, Po),不是5个
  • 警告示例:添加错误示例和正确示例对比

v2.0.0 - 2026-05-16

  • 完善 Velocity 模板变量填充规则文档
  • 新增关联类型(relevancyType 1/2/3)配置说明
  • 新增自定义字段、工作流开关等变量说明
  • 补充字段明细表扩展字段定义
  • 统一前端路径为 {frontend.path}
  • 增加 SKILL 标准头部信息

v1.0.0 - 2026-05-15

  • 初始版本
  • 支持生成后端 PO、Form、VO、Service、Controller、Mapper
  • 支持生成前端主页、工具栏、表单