Skip to content

Commit 31e6316

Browse files
committed
feat(mcp): 实现需求分析工具并支持批量创建模块
1. 新增requirement_analyzer工具,用于将用户需求转换为结构化提示词 2. 修改gva_auto_generate工具支持批量创建多个模块 3. 更新文档示例和schema以反映批量创建功能 4. 优化执行计划验证逻辑,支持模块数组校验 5. 改进字典创建流程,避免重复创建相同字典类型
1 parent 9260111 commit 31e6316

File tree

4 files changed

+752
-390
lines changed

4 files changed

+752
-390
lines changed

server/mcp/execution_plan_schema.md

Lines changed: 241 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,11 @@ ExecutionPlan 是用于自动化模块创建的执行计划结构体,包含了
88
```go
99
type ExecutionPlan struct {
1010
PackageName string `json:"packageName"` // 包名,如:"user", "order", "product"
11-
ModuleName string `json:"moduleName"` // 模块名,通常与结构体名相同
1211
PackageType string `json:"packageType"` // "plugin" 或 "package"
1312
NeedCreatedPackage bool `json:"needCreatedPackage"` // 是否需要创建包
1413
NeedCreatedModules bool `json:"needCreatedModules"` // 是否需要创建模块
1514
PackageInfo *request.SysAutoCodePackageCreate `json:"packageInfo,omitempty"` // 包信息(当NeedCreatedPackage=true时必需)
16-
ModulesInfo *request.AutoCode `json:"modulesInfo,omitempty"` // 模块信息(当NeedCreatedModules=true时必需)
15+
ModulesInfo []*request.AutoCode `json:"modulesInfo,omitempty"` // 模块信息数组(当NeedCreatedModules=true时必需,支持批量创建
1716
Paths map[string]string `json:"paths,omitempty"` // 路径信息
1817
}
1918
```
@@ -94,12 +93,11 @@ type AutoCodeField struct {
9493

9594
## 使用示例
9695

97-
### 示例1:创建新包和模块
96+
### 示例1:创建新包和批量创建多个模块
9897

9998
```json
10099
{
101100
"packageName": "user",
102-
"moduleName": "User",
103101
"packageType": "package",
104102
"needCreatedPackage": true,
105103
"needCreatedModules": true,
@@ -109,129 +107,256 @@ type AutoCodeField struct {
109107
"template": "package",
110108
"packageName": "user"
111109
},
112-
"modulesInfo": {
113-
"package": "user",
114-
"tableName": "sys_users",
115-
"businessDB": "",
116-
"structName": "User",
117-
"packageName": "user",
118-
"description": "用户",
119-
"abbreviation": "user",
120-
"humpPackageName": "user",
121-
"gvaModel": true,
122-
"autoMigrate": true,
123-
"autoCreateResource": true,
124-
"autoCreateApiToSql": true,
125-
"autoCreateMenuToSql": true,
126-
"autoCreateBtnAuth": true,
127-
"onlyTemplate": false,
128-
"isTree": false,
129-
"treeJson": "",
130-
"isAdd": true,
131-
"generateWeb": true,
132-
"generateServer": true,
133-
"fields": [
134-
{
135-
"fieldName": "Username",
136-
"fieldDesc": "用户名",
137-
"fieldType": "string",
138-
"fieldJson": "username",
139-
"dataTypeLong": "50",
140-
"comment": "用户名",
141-
"columnName": "username",
142-
"fieldSearchType": "LIKE",
143-
"fieldSearchHide": false,
144-
"dictType": "",
145-
"form": true,
146-
"table": true,
147-
"desc": true,
148-
"excel": true,
149-
"require": true,
150-
"defaultValue": "",
151-
"errorText": "请输入用户名",
152-
"clearable": true,
153-
"sort": false,
154-
"primaryKey": false,
155-
"dataSource": null,
156-
"checkDataSource": false,
157-
"fieldIndexType": ""
158-
},
159-
{
160-
"fieldName": "Email",
161-
"fieldDesc": "邮箱",
162-
"fieldType": "string",
163-
"fieldJson": "email",
164-
"dataTypeLong": "100",
165-
"comment": "邮箱地址",
166-
"columnName": "email",
167-
"fieldSearchType": "EQ",
168-
"fieldSearchHide": false,
169-
"dictType": "",
170-
"form": true,
171-
"table": true,
172-
"desc": true,
173-
"excel": true,
174-
"require": true,
175-
"defaultValue": "",
176-
"errorText": "请输入邮箱",
177-
"clearable": true,
178-
"sort": false,
179-
"primaryKey": false,
180-
"dataSource": null,
181-
"checkDataSource": false,
182-
"fieldIndexType": "index"
183-
}
184-
]
185-
}
110+
"modulesInfo": [
111+
{
112+
"package": "user",
113+
"tableName": "sys_users",
114+
"businessDB": "",
115+
"structName": "User",
116+
"packageName": "user",
117+
"description": "用户",
118+
"abbreviation": "user",
119+
"humpPackageName": "user",
120+
"gvaModel": true,
121+
"autoMigrate": true,
122+
"autoCreateResource": true,
123+
"autoCreateApiToSql": true,
124+
"autoCreateMenuToSql": true,
125+
"autoCreateBtnAuth": true,
126+
"onlyTemplate": false,
127+
"isTree": false,
128+
"treeJson": "",
129+
"isAdd": true,
130+
"generateWeb": true,
131+
"generateServer": true,
132+
"fields": [
133+
{
134+
"fieldName": "Username",
135+
"fieldDesc": "用户名",
136+
"fieldType": "string",
137+
"fieldJson": "username",
138+
"dataTypeLong": "50",
139+
"comment": "用户名",
140+
"columnName": "username",
141+
"fieldSearchType": "LIKE",
142+
"fieldSearchHide": false,
143+
"dictType": "",
144+
"form": true,
145+
"table": true,
146+
"desc": true,
147+
"excel": true,
148+
"require": true,
149+
"defaultValue": "",
150+
"errorText": "请输入用户名",
151+
"clearable": true,
152+
"sort": false,
153+
"primaryKey": false,
154+
"dataSource": null,
155+
"checkDataSource": false,
156+
"fieldIndexType": ""
157+
},
158+
{
159+
"fieldName": "Email",
160+
"fieldDesc": "邮箱",
161+
"fieldType": "string",
162+
"fieldJson": "email",
163+
"dataTypeLong": "100",
164+
"comment": "邮箱地址",
165+
"columnName": "email",
166+
"fieldSearchType": "EQ",
167+
"fieldSearchHide": false,
168+
"dictType": "",
169+
"form": true,
170+
"table": true,
171+
"desc": true,
172+
"excel": true,
173+
"require": true,
174+
"defaultValue": "",
175+
"errorText": "请输入邮箱",
176+
"clearable": true,
177+
"sort": false,
178+
"primaryKey": false,
179+
"dataSource": null,
180+
"checkDataSource": false,
181+
"fieldIndexType": "index"
182+
}
183+
]
184+
},
185+
{
186+
"package": "user",
187+
"tableName": "user_profiles",
188+
"businessDB": "",
189+
"structName": "UserProfile",
190+
"packageName": "user",
191+
"description": "用户档案",
192+
"abbreviation": "userProfile",
193+
"humpPackageName": "user",
194+
"gvaModel": true,
195+
"autoMigrate": true,
196+
"autoCreateResource": true,
197+
"autoCreateApiToSql": true,
198+
"autoCreateMenuToSql": true,
199+
"autoCreateBtnAuth": true,
200+
"onlyTemplate": false,
201+
"isTree": false,
202+
"treeJson": "",
203+
"isAdd": true,
204+
"generateWeb": true,
205+
"generateServer": true,
206+
"fields": [
207+
{
208+
"fieldName": "UserID",
209+
"fieldDesc": "用户ID",
210+
"fieldType": "int",
211+
"fieldJson": "userId",
212+
"dataTypeLong": "",
213+
"comment": "关联用户ID",
214+
"columnName": "user_id",
215+
"fieldSearchType": "EQ",
216+
"fieldSearchHide": false,
217+
"dictType": "",
218+
"form": true,
219+
"table": true,
220+
"desc": true,
221+
"excel": true,
222+
"require": true,
223+
"defaultValue": "",
224+
"errorText": "请选择用户",
225+
"clearable": true,
226+
"sort": false,
227+
"primaryKey": false,
228+
"dataSource": null,
229+
"checkDataSource": false,
230+
"fieldIndexType": "index"
231+
},
232+
{
233+
"fieldName": "Avatar",
234+
"fieldDesc": "头像",
235+
"fieldType": "string",
236+
"fieldJson": "avatar",
237+
"dataTypeLong": "255",
238+
"comment": "用户头像URL",
239+
"columnName": "avatar",
240+
"fieldSearchType": "",
241+
"fieldSearchHide": true,
242+
"dictType": "",
243+
"form": true,
244+
"table": true,
245+
"desc": true,
246+
"excel": false,
247+
"require": false,
248+
"defaultValue": "",
249+
"errorText": "",
250+
"clearable": true,
251+
"sort": false,
252+
"primaryKey": false,
253+
"dataSource": null,
254+
"checkDataSource": false,
255+
"fieldIndexType": ""
256+
}
257+
]
258+
}
259+
]
186260
}
187261
```
188262

189-
### 示例2:仅在现有包中创建模块
263+
### 示例2:仅在现有包中批量创建多个模块
190264

191265
```json
192266
{
193267
"packageName": "system",
194-
"moduleName": "Role",
195268
"packageType": "package",
196269
"needCreatedPackage": false,
197270
"needCreatedModules": true,
198271
"packageInfo": null,
199-
"modulesInfo": {
200-
"package": "system",
201-
"tableName": "sys_roles",
202-
"businessDB": "",
203-
"structName": "Role",
204-
"packageName": "system",
205-
"description": "角色",
206-
"abbreviation": "role",
207-
"humpPackageName": "system",
208-
"gvaModel": true,
209-
"autoMigrate": true,
210-
"autoCreateResource": true,
211-
"autoCreateApiToSql": true,
212-
"autoCreateMenuToSql": true,
213-
"autoCreateBtnAuth": true,
214-
"onlyTemplate": false,
215-
"isTree": false,
216-
"generateWeb": true,
217-
"generateServer": true,
218-
"fields": [
219-
{
220-
"fieldName": "RoleName",
221-
"fieldDesc": "角色名称",
222-
"fieldType": "string",
223-
"fieldJson": "roleName",
224-
"dataTypeLong": "50",
225-
"comment": "角色名称",
226-
"columnName": "role_name",
227-
"fieldSearchType": "LIKE",
228-
"form": true,
229-
"table": true,
230-
"desc": true,
231-
"require": true
232-
}
233-
]
234-
}
272+
"modulesInfo": [
273+
{
274+
"package": "system",
275+
"tableName": "sys_roles",
276+
"businessDB": "",
277+
"structName": "Role",
278+
"packageName": "system",
279+
"description": "角色",
280+
"abbreviation": "role",
281+
"humpPackageName": "system",
282+
"gvaModel": true,
283+
"autoMigrate": true,
284+
"autoCreateResource": true,
285+
"autoCreateApiToSql": true,
286+
"autoCreateMenuToSql": true,
287+
"autoCreateBtnAuth": true,
288+
"onlyTemplate": false,
289+
"isTree": false,
290+
"generateWeb": true,
291+
"generateServer": true,
292+
"fields": [
293+
{
294+
"fieldName": "RoleName",
295+
"fieldDesc": "角色名称",
296+
"fieldType": "string",
297+
"fieldJson": "roleName",
298+
"dataTypeLong": "50",
299+
"comment": "角色名称",
300+
"columnName": "role_name",
301+
"fieldSearchType": "LIKE",
302+
"form": true,
303+
"table": true,
304+
"desc": true,
305+
"require": true
306+
}
307+
]
308+
},
309+
{
310+
"package": "system",
311+
"tableName": "sys_permissions",
312+
"businessDB": "",
313+
"structName": "Permission",
314+
"packageName": "system",
315+
"description": "权限",
316+
"abbreviation": "permission",
317+
"humpPackageName": "system",
318+
"gvaModel": true,
319+
"autoMigrate": true,
320+
"autoCreateResource": true,
321+
"autoCreateApiToSql": true,
322+
"autoCreateMenuToSql": true,
323+
"autoCreateBtnAuth": true,
324+
"onlyTemplate": false,
325+
"isTree": false,
326+
"generateWeb": true,
327+
"generateServer": true,
328+
"fields": [
329+
{
330+
"fieldName": "PermissionName",
331+
"fieldDesc": "权限名称",
332+
"fieldType": "string",
333+
"fieldJson": "permissionName",
334+
"dataTypeLong": "100",
335+
"comment": "权限名称",
336+
"columnName": "permission_name",
337+
"fieldSearchType": "LIKE",
338+
"form": true,
339+
"table": true,
340+
"desc": true,
341+
"require": true
342+
},
343+
{
344+
"fieldName": "PermissionCode",
345+
"fieldDesc": "权限代码",
346+
"fieldType": "string",
347+
"fieldJson": "permissionCode",
348+
"dataTypeLong": "50",
349+
"comment": "权限代码",
350+
"columnName": "permission_code",
351+
"fieldSearchType": "=",
352+
"form": true,
353+
"table": true,
354+
"desc": true,
355+
"require": true
356+
}
357+
]
358+
}
359+
]
235360
}
236361
```
237362

0 commit comments

Comments
 (0)