@specpow/framework 0.5.22 → 0.5.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/builtin/schemas/mes-prd-to-code/schema.yaml +365 -0
- package/builtin/schemas/mes-prd-to-code/templates/code-generation.md +81 -0
- package/builtin/schemas/mes-prd-to-code/templates/confirm-scope.md +51 -0
- package/builtin/schemas/mes-prd-to-code/templates/parse.md +168 -0
- package/builtin/schemas/mes-prd-to-code/templates/tasks.md +162 -0
- package/builtin/schemas/mes-prd-to-code/templates/tech-design.md +310 -0
- package/builtin/schemas/prd-to-tech-doc/schema.yaml +161 -0
- package/builtin/schemas/prd-to-tech-doc/templates/analysis.md +133 -0
- package/builtin/schemas/prd-to-tech-doc/templates/tech-design.md +263 -0
- package/builtin/schemas/prd-to-tech-doc/templates/tech-tasks.md +134 -0
- package/package.json +1 -1
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
# MES PRD to Code Schema
|
|
2
|
+
# 功能文档 → 技术文档 → 完整代码
|
|
3
|
+
# 工件流: parse → confirm-scope → tech-design → tasks → code
|
|
4
|
+
|
|
5
|
+
name: mes-prd-to-code
|
|
6
|
+
description: |
|
|
7
|
+
MES 项目专属 Schema:从业务功能文档端到端生成技术文档和完整代码。
|
|
8
|
+
|
|
9
|
+
输入:功能文档(*.md + *-流程图.drawio + *.html)
|
|
10
|
+
输出:技术设计文档 + 实施任务清单 + 完整可编译代码
|
|
11
|
+
|
|
12
|
+
核心能力:
|
|
13
|
+
- 自动解析结构化功能文档(字段表、DDL、业务逻辑、接口定义)
|
|
14
|
+
- 苏格拉底式对话确认模块归属、实施范围、实现细节
|
|
15
|
+
- 适配 MES 项目规范(Oracle + BaseModel + ResponseWrapper + Vue2/ViewUI)
|
|
16
|
+
- 支持多模块文档(识别子模块、依赖图、用户选择范围)
|
|
17
|
+
- 不预定义模式,跟随功能文档描述生成对应代码
|
|
18
|
+
|
|
19
|
+
项目结构(相对路径,相对于项目根目录):
|
|
20
|
+
- 后端: mom-master/(Spring Boot + MyBatis-Plus + Oracle)
|
|
21
|
+
- 前端: implat-ui/(Vue2 + ViewUI + VXETable)
|
|
22
|
+
- 功能文档: 由用户提供文件路径
|
|
23
|
+
|
|
24
|
+
apply:
|
|
25
|
+
requires:
|
|
26
|
+
- code # 实施前必须完成所有工件
|
|
27
|
+
|
|
28
|
+
artifacts:
|
|
29
|
+
- id: parse
|
|
30
|
+
name: 功能文档解析
|
|
31
|
+
description: 解析功能文档,提取结构化信息,识别子模块和依赖关系
|
|
32
|
+
requires: []
|
|
33
|
+
template: parse.md
|
|
34
|
+
instruction: |
|
|
35
|
+
读取用户提供的功能文档文件,完成以下解析工作:
|
|
36
|
+
|
|
37
|
+
## 1. 文件识别
|
|
38
|
+
- 读取 *.md 文件(主功能文档)
|
|
39
|
+
- 读取 *-流程图.drawio 文件(如有,提取流程逻辑)
|
|
40
|
+
- 读取 *.html 文件(如有,提取原型界面信息)
|
|
41
|
+
|
|
42
|
+
## 2. 子模块识别
|
|
43
|
+
- 扫描文档中的"模块一/模块二/..."或"功能一/功能二/..."标记
|
|
44
|
+
- 如果没有显式分模块,将整份文档视为单个模块
|
|
45
|
+
- 对每个子模块提取:名称、类型(新建CRUD/修改已有/外部接口/记录表)
|
|
46
|
+
|
|
47
|
+
## 3. 每个子模块的信息提取
|
|
48
|
+
|
|
49
|
+
### 3.1 功能简介
|
|
50
|
+
- 菜单路径 → 推断前端目录归属
|
|
51
|
+
- 使用人员 → 权限设计参考
|
|
52
|
+
- 功能描述 → 模块概述
|
|
53
|
+
|
|
54
|
+
### 3.2 字段/数据提取
|
|
55
|
+
- 主表字段表 → Entity 字段列表
|
|
56
|
+
- 子表字段表(如有)→ 子表 Entity 字段列表
|
|
57
|
+
- 字段类型映射:
|
|
58
|
+
- VARCHAR → String
|
|
59
|
+
- INT/BIGINT → Long
|
|
60
|
+
- DECIMAL → BigDecimal
|
|
61
|
+
- DATETIME/DATE → Date
|
|
62
|
+
- TINYINT → Integer
|
|
63
|
+
|
|
64
|
+
### 3.3 数据表结构
|
|
65
|
+
- 提取表名、字段、类型、约束
|
|
66
|
+
- 标记需要适配的项:
|
|
67
|
+
- AUTO_INCREMENT → 雪花算法
|
|
68
|
+
- MySQL 类型 → Oracle 类型
|
|
69
|
+
- 非标准审计字段 → BaseModel 审计字段
|
|
70
|
+
|
|
71
|
+
### 3.4 业务逻辑
|
|
72
|
+
- 提取"补充逻辑"/"特殊逻辑"/"业务逻辑"章节
|
|
73
|
+
- 提取校验规则(唯一性、非空、格式校验等)
|
|
74
|
+
- 提取导入/导出规则
|
|
75
|
+
- 从流程图提取状态流转(如有)
|
|
76
|
+
|
|
77
|
+
### 3.5 接口定义
|
|
78
|
+
- 提取外部接口(如有)的方法、路径、请求/响应格式
|
|
79
|
+
- 标记调用方向(设备→MES / MES→外部系统)
|
|
80
|
+
|
|
81
|
+
### 3.6 按钮/操作
|
|
82
|
+
- 提取按钮清单 → API 接口清单
|
|
83
|
+
- 映射:新增/编辑/查看/删除/导入/导出 → 标准 CRUD 接口
|
|
84
|
+
|
|
85
|
+
## 4. 依赖关系分析
|
|
86
|
+
- 分析子模块之间的数据依赖(A 模块的表被 B 模块引用)
|
|
87
|
+
- 分析子模块之间的功能依赖(B 模块修改 A 模块创建的功能)
|
|
88
|
+
- 绘制依赖关系图(ASCII)
|
|
89
|
+
|
|
90
|
+
## 5. 输出格式
|
|
91
|
+
按 parse.md 模板输出解析报告,包含:
|
|
92
|
+
- 模块清单表
|
|
93
|
+
- 每个模块的字段清单、表结构、业务逻辑摘要
|
|
94
|
+
- 依赖关系图
|
|
95
|
+
- 需要用户确认的疑问点
|
|
96
|
+
|
|
97
|
+
注意:此阶段只做解析,不做任何技术决策。技术决策在后续对话中完成。
|
|
98
|
+
output: parse.md
|
|
99
|
+
|
|
100
|
+
- id: confirm-scope
|
|
101
|
+
name: 范围确认
|
|
102
|
+
description: 苏格拉底式对话确认模块归属、实施范围、架构决策
|
|
103
|
+
requires: [parse]
|
|
104
|
+
template: confirm-scope.md
|
|
105
|
+
instruction: |
|
|
106
|
+
基于解析报告,以苏格拉底式对话与用户确认以下内容。
|
|
107
|
+
逐个问题提问,不要一次问多个。
|
|
108
|
+
|
|
109
|
+
## 必须确认的问题
|
|
110
|
+
|
|
111
|
+
### Q0: 项目根目录
|
|
112
|
+
- 提问:"项目根目录在哪里?(mom-master 和 implat-ui 所在的目录)"
|
|
113
|
+
- 说明:后续所有代码路径将基于此目录生成
|
|
114
|
+
- 使用 codegraph_explore 或 ls 验证目录结构是否正确
|
|
115
|
+
|
|
116
|
+
### Q1: 实施范围(仅多模块时)
|
|
117
|
+
如果解析出多个子模块:
|
|
118
|
+
- 展示模块清单和依赖关系图
|
|
119
|
+
- 提问:"识别到 N 个子模块,依赖关系如下: ... 本次实施哪些?"
|
|
120
|
+
- 等待用户选择
|
|
121
|
+
|
|
122
|
+
### Q2: 后端模块归属
|
|
123
|
+
- 提问:"后端代码归属哪个 center?"
|
|
124
|
+
- 给出建议(根据功能文档的菜单路径推断)
|
|
125
|
+
- 选项参考:modules-center 下的 material-center / production-center / quality-center 等
|
|
126
|
+
|
|
127
|
+
### Q3: 后端包路径
|
|
128
|
+
- 提问:"后端包路径?"
|
|
129
|
+
- 给出建议:com.twsz.mom.{module}.{sub-package}
|
|
130
|
+
- 参照已有代码的包结构
|
|
131
|
+
|
|
132
|
+
### Q4: 前端目录
|
|
133
|
+
- 提问:"前端页面和 API 放在哪个目录?"
|
|
134
|
+
- 给出建议:
|
|
135
|
+
- API: src/api/{domain}/
|
|
136
|
+
- 页面: src/views/{domain}/{entity}/
|
|
137
|
+
|
|
138
|
+
### Q5: 已有代码影响
|
|
139
|
+
- 使用 codegraph_explore 扫描是否已有相关代码
|
|
140
|
+
- 如果有:展示已有代码,提问是否需要修改
|
|
141
|
+
- 如果没有:标注为全部新建
|
|
142
|
+
|
|
143
|
+
### Q6: 特殊技术决策
|
|
144
|
+
根据解析结果自动判断是否需要询问:
|
|
145
|
+
- 如果有"单据编号"字段 → 确认是否使用 @AutoGenCode
|
|
146
|
+
- 如果有状态字段 → 确认是否需要状态流转(审核/弃审)
|
|
147
|
+
- 如果有外部接口 → 确认接口鉴权方式
|
|
148
|
+
- 如果涉及已有模块修改 → 确认修改范围和回归测试
|
|
149
|
+
|
|
150
|
+
## 确认结果记录
|
|
151
|
+
将所有确认结果写入 confirm-scope 记录中,作为技术文档的输入。
|
|
152
|
+
格式:
|
|
153
|
+
```
|
|
154
|
+
## 确认结果
|
|
155
|
+
- 实施范围: [模块列表]
|
|
156
|
+
- 后端 center: xxx
|
|
157
|
+
- 后端包路径: com.twsz.mom.xxx
|
|
158
|
+
- 前端 API 目录: src/api/xxx/
|
|
159
|
+
- 前端页面目录: src/views/xxx/
|
|
160
|
+
- 编号生成: @AutoGenCode / 无
|
|
161
|
+
- 状态流转: 有(审核/弃审) / 无
|
|
162
|
+
- 已有代码影响: [列表]
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
- id: tech-design
|
|
166
|
+
name: 技术设计文档
|
|
167
|
+
description: 基于确认结果生成完整技术设计文档
|
|
168
|
+
requires: [parse, confirm-scope]
|
|
169
|
+
template: tech-design.md
|
|
170
|
+
instruction: |
|
|
171
|
+
基于解析报告和确认结果,生成完整的技术设计文档。
|
|
172
|
+
|
|
173
|
+
## 文档结构
|
|
174
|
+
|
|
175
|
+
### 1. 数据库设计
|
|
176
|
+
- 将功能文档的 DDL 适配为 Oracle 语法
|
|
177
|
+
- 适配规则:
|
|
178
|
+
- INT/BIGINT AUTO_INCREMENT → NUMBER(19) 雪花算法
|
|
179
|
+
- VARCHAR(n) → VARCHAR2(n)
|
|
180
|
+
- DATETIME → DATE
|
|
181
|
+
- CURRENT_TIMESTAMP → SYSDATE
|
|
182
|
+
- 审计字段统一为: created_by, created_date, last_updated_by, last_updated_date
|
|
183
|
+
- 去除 is_deleted 逻辑删除字段(MES 使用物理删除)
|
|
184
|
+
- 包含完整 DDL + 索引 + 注释
|
|
185
|
+
- 标注建表方式: dbx MCP(优先)/ SQL 脚本
|
|
186
|
+
|
|
187
|
+
### 2. API 接口设计
|
|
188
|
+
- 标准 CRUD 接口(根据功能文档的按钮/操作推导):
|
|
189
|
+
- POST /{entity}/search — 分页查询
|
|
190
|
+
- POST /{entity}/add — 新增
|
|
191
|
+
- PUT /{entity}/update — 修改
|
|
192
|
+
- DELETE /{entity}/delete — 批量删除
|
|
193
|
+
- POST /{entity}/export — 导出
|
|
194
|
+
- POST /{entity}/uploadExcel — 导入(如有)
|
|
195
|
+
- 外部接口(如功能文档有定义):
|
|
196
|
+
- 按功能文档定义的路径和方法
|
|
197
|
+
- 请求/响应格式按功能文档
|
|
198
|
+
- 每个接口给出:
|
|
199
|
+
- 请求示例 JSON
|
|
200
|
+
- 响应示例 JSON
|
|
201
|
+
- 错误码
|
|
202
|
+
|
|
203
|
+
### 3. 后端代码结构
|
|
204
|
+
对每个 Entity 给出:
|
|
205
|
+
|
|
206
|
+
#### Entity(完整代码模板)
|
|
207
|
+
- 继承 BaseModel
|
|
208
|
+
- @TableName, @Data, @EqualsAndHashCode(callSuper=false)
|
|
209
|
+
- @TableId(type=IdType.ASSIGN_ID) + @JsonSerialize(ToStringSerializer)
|
|
210
|
+
- @AutoGenCode(如有编号字段)
|
|
211
|
+
- @ExcelProperty(每个业务字段)
|
|
212
|
+
- 给出完整 Java 代码
|
|
213
|
+
|
|
214
|
+
#### Mapper(完整代码模板)
|
|
215
|
+
- 接口继承 BaseMapper<T>
|
|
216
|
+
- 方法: pageSearch + list
|
|
217
|
+
- XML: Columns/Where 片段 + 查询语句
|
|
218
|
+
- 给出完整代码
|
|
219
|
+
|
|
220
|
+
#### Service(方法签名 + 关键逻辑)
|
|
221
|
+
- 接口方法签名
|
|
222
|
+
- 关键业务逻辑用伪代码描述:
|
|
223
|
+
- 校验规则
|
|
224
|
+
- 唯一性检查
|
|
225
|
+
- 事务控制
|
|
226
|
+
- 导入逻辑
|
|
227
|
+
- 不要求完整实现代码
|
|
228
|
+
|
|
229
|
+
#### Controller(完整代码模板)
|
|
230
|
+
- @RestController + @RequestMapping
|
|
231
|
+
- 每个方法的签名和参数
|
|
232
|
+
- 给出完整代码
|
|
233
|
+
|
|
234
|
+
### 4. 前端代码结构
|
|
235
|
+
对每个页面给出:
|
|
236
|
+
|
|
237
|
+
#### API 文件
|
|
238
|
+
- 完整 JS 代码(import + 各方法)
|
|
239
|
+
|
|
240
|
+
#### 列表页(配置描述)
|
|
241
|
+
- 搜索条件字段
|
|
242
|
+
- 表格列定义(列名、key、slot)
|
|
243
|
+
- 工具栏按钮
|
|
244
|
+
- 组件: search-table + indexPage mixin
|
|
245
|
+
|
|
246
|
+
#### 表单页(配置描述)
|
|
247
|
+
- 表单字段列表(控件类型、必填、校验规则)
|
|
248
|
+
- 组件: master-sub + Form
|
|
249
|
+
- 提交逻辑
|
|
250
|
+
|
|
251
|
+
### 5. 业务逻辑流程
|
|
252
|
+
- 用 ASCII 流程图描述核心业务操作
|
|
253
|
+
- 标注校验点和异常处理
|
|
254
|
+
- 如有状态流转,画出状态机
|
|
255
|
+
|
|
256
|
+
### 6. 集成点 + 菜单权限
|
|
257
|
+
- 被其他模块调用的方式
|
|
258
|
+
- 菜单注册 SQL(c_sys_resource)
|
|
259
|
+
|
|
260
|
+
## 对话 2: 实现确认
|
|
261
|
+
生成技术文档初稿后,以苏格拉底式对话确认:
|
|
262
|
+
- 表名和字段名是否确认?
|
|
263
|
+
- API 路径是否正确?
|
|
264
|
+
- 前端组件选型是否符合预期?
|
|
265
|
+
- 特殊校验规则是否完整?
|
|
266
|
+
- 用户确认后更新技术文档
|
|
267
|
+
|
|
268
|
+
## 输出
|
|
269
|
+
最终版 tech-design.md
|
|
270
|
+
|
|
271
|
+
output: tech-design.md
|
|
272
|
+
|
|
273
|
+
- id: tasks
|
|
274
|
+
name: 实施任务清单
|
|
275
|
+
description: 基于技术文档拆分实施任务,每个任务含完整代码
|
|
276
|
+
requires: [tech-design]
|
|
277
|
+
template: tasks.md
|
|
278
|
+
instruction: |
|
|
279
|
+
基于技术设计文档,拆分为可执行的实施任务列表。
|
|
280
|
+
|
|
281
|
+
## 任务拆分原则
|
|
282
|
+
1. 每个任务足够小(2-5 分钟完成)
|
|
283
|
+
2. 包含精确的文件路径(匹配 MES 项目包结构)
|
|
284
|
+
3. 包含完整的代码(从技术文档的模板中提取)
|
|
285
|
+
4. 包含验证步骤
|
|
286
|
+
5. 任务之间尽量独立
|
|
287
|
+
|
|
288
|
+
## 任务顺序
|
|
289
|
+
按以下顺序排列:
|
|
290
|
+
|
|
291
|
+
### 数据库任务
|
|
292
|
+
1. 建表 DDL(标注 dbx MCP 或 SQL 脚本)
|
|
293
|
+
|
|
294
|
+
### 后端任务(每个 Entity 一组)
|
|
295
|
+
2. Entity 实体类(完整代码)
|
|
296
|
+
3. Mapper 接口(完整代码)
|
|
297
|
+
4. Mapper XML(完整代码)
|
|
298
|
+
5. Service 接口(完整代码)
|
|
299
|
+
6. ServiceImpl 实现(完整代码,含业务逻辑)
|
|
300
|
+
7. Controller(完整代码)
|
|
301
|
+
|
|
302
|
+
### 前端任务(每个页面一组)
|
|
303
|
+
8. API 文件(完整代码)
|
|
304
|
+
9. 列表页 index.vue(完整代码)
|
|
305
|
+
10. 表单页 form.vue(完整代码)
|
|
306
|
+
|
|
307
|
+
### 配置任务
|
|
308
|
+
11. 菜单注册 SQL
|
|
309
|
+
|
|
310
|
+
### 如有外部接口
|
|
311
|
+
12. 外部接口 Controller(独立路径)
|
|
312
|
+
13. 外部接口 Service 逻辑
|
|
313
|
+
|
|
314
|
+
## 任务格式
|
|
315
|
+
```
|
|
316
|
+
- [ ] Task-NNN: <标题>
|
|
317
|
+
文件: <精确路径>
|
|
318
|
+
描述: <具体实现指令>
|
|
319
|
+
代码:
|
|
320
|
+
```java/vue/js/sql
|
|
321
|
+
<完整代码>
|
|
322
|
+
```
|
|
323
|
+
验证: <验证步骤>
|
|
324
|
+
依赖: Task-XXX
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
## 任务依赖图
|
|
328
|
+
用 ASCII 图展示任务依赖关系
|
|
329
|
+
|
|
330
|
+
output: tasks.md
|
|
331
|
+
|
|
332
|
+
- id: code
|
|
333
|
+
name: 代码生成
|
|
334
|
+
description: 按任务清单生成完整代码文件
|
|
335
|
+
requires: [tasks]
|
|
336
|
+
template: code-generation.md
|
|
337
|
+
instruction: |
|
|
338
|
+
按任务清单逐个生成代码文件。
|
|
339
|
+
|
|
340
|
+
## 执行方式
|
|
341
|
+
1. 按任务依赖顺序执行
|
|
342
|
+
2. 每个任务:
|
|
343
|
+
a. 从 tasks.md 中取出代码
|
|
344
|
+
b. 写入精确的文件路径
|
|
345
|
+
c. 验证文件创建成功
|
|
346
|
+
3. 数据库任务:通过 dbx MCP 或输出 SQL 脚本
|
|
347
|
+
|
|
348
|
+
## 代码规范检查
|
|
349
|
+
生成的代码必须符合以下 MES 规范:
|
|
350
|
+
- Java 8 语法,不使用 Java 9+ 特性
|
|
351
|
+
- Lombok 注解(@Data, @Builder 等)
|
|
352
|
+
- SLF4J 日志(@Slf4j),不用 System.out.println
|
|
353
|
+
- LambdaQueryWrapper,不用字符串字段名
|
|
354
|
+
- ResponseWrapper<T> 统一响应
|
|
355
|
+
- BaseModel 继承
|
|
356
|
+
- Vue 2 Options API
|
|
357
|
+
- View Design 4 组件
|
|
358
|
+
- indexPage mixin / master-sub 组件
|
|
359
|
+
|
|
360
|
+
## 输出
|
|
361
|
+
- 所有代码文件已写入磁盘
|
|
362
|
+
- 生成文件清单
|
|
363
|
+
- 标注需要用户手动执行的操作(如建表 SQL、菜单注册 SQL)
|
|
364
|
+
|
|
365
|
+
output: code-generation.md
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# 代码生成报告: <功能名称>
|
|
2
|
+
|
|
3
|
+
> 输入: 任务清单 (tasks.md)
|
|
4
|
+
> 生成日期: <日期>
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 执行摘要
|
|
9
|
+
|
|
10
|
+
| 维度 | 数量 |
|
|
11
|
+
|------|:----:|
|
|
12
|
+
| 总任务数 | |
|
|
13
|
+
| 已完成 | |
|
|
14
|
+
| 跳过 | |
|
|
15
|
+
| 失败 | |
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 文件清单
|
|
20
|
+
|
|
21
|
+
### 后端文件
|
|
22
|
+
|
|
23
|
+
| # | 任务 | 文件路径 | 状态 |
|
|
24
|
+
|:-:|------|----------|:----:|
|
|
25
|
+
| 1 | Task-002 | `modules-center/.../model/{Entity}.java` | ✅ / ❌ |
|
|
26
|
+
| 2 | Task-003 | `.../mapper/{Entity}Mapper.java` | |
|
|
27
|
+
| 3 | Task-004 | `resources/mapper/{module}/{Entity}Mapper.xml` | |
|
|
28
|
+
| 4 | Task-005 | `.../service/{Entity}Service.java` | |
|
|
29
|
+
| 5 | Task-006 | `.../service/impl/{Entity}ServiceImpl.java` | |
|
|
30
|
+
| 6 | Task-007 | `.../controller/{Entity}Controller.java` | |
|
|
31
|
+
|
|
32
|
+
### 前端文件
|
|
33
|
+
|
|
34
|
+
| # | 任务 | 文件路径 | 状态 |
|
|
35
|
+
|:-:|------|----------|:----:|
|
|
36
|
+
| 7 | Task-008 | `src/api/{domain}/{entity}.js` | ✅ / ❌ |
|
|
37
|
+
| 8 | Task-009 | `src/views/{domain}/{entity}/index.vue` | |
|
|
38
|
+
| 9 | Task-010 | `src/views/{domain}/{entity}/{entity}-form.vue` | |
|
|
39
|
+
|
|
40
|
+
### SQL 文件
|
|
41
|
+
|
|
42
|
+
| # | 任务 | 文件路径 | 状态 |
|
|
43
|
+
|:-:|------|----------|:----:|
|
|
44
|
+
| 10 | Task-001 | 建表 DDL | ✅ / ⏳ 待手动执行 |
|
|
45
|
+
| 11 | Task-011 | 菜单注册 SQL | ✅ / ⏳ 待手动执行 |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 需要手动执行的操作
|
|
50
|
+
|
|
51
|
+
| # | 操作 | SQL / 命令 | 说明 |
|
|
52
|
+
|:-:|------|-----------|------|
|
|
53
|
+
| 1 | 建表 | `<DDL>` | 在 Oracle 中执行 |
|
|
54
|
+
| 2 | 菜单注册 | `<INSERT>` | 在 Oracle 中执行 |
|
|
55
|
+
| 3 | 重启后端 | — | 加载新代码 |
|
|
56
|
+
| 4 | 重启前端 | — | 加载新页面 |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 代码规范检查
|
|
61
|
+
|
|
62
|
+
| 检查项 | 状态 | 说明 |
|
|
63
|
+
|--------|:----:|------|
|
|
64
|
+
| Java 8 语法 | ✅ | 未使用 Java 9+ 特性 |
|
|
65
|
+
| Lombok 注解 | ✅ | @Data, @EqualsAndHashCode 等 |
|
|
66
|
+
| SLF4J 日志 | ✅ | @Slf4j,无 System.out |
|
|
67
|
+
| LambdaQueryWrapper | ✅ | 无字符串字段名 |
|
|
68
|
+
| ResponseWrapper | ✅ | 统一响应格式 |
|
|
69
|
+
| BaseModel 继承 | ✅ | 审计字段自动填充 |
|
|
70
|
+
| Vue 2 Options API | ✅ | 未使用 Composition API |
|
|
71
|
+
| View Design 4 组件 | ✅ | 统一 UI 库 |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 下一步
|
|
76
|
+
|
|
77
|
+
1. 执行建表 SQL
|
|
78
|
+
2. 执行菜单注册 SQL
|
|
79
|
+
3. 重启后端服务
|
|
80
|
+
4. 重启前端开发服务
|
|
81
|
+
5. 验证功能
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# 范围确认记录
|
|
2
|
+
|
|
3
|
+
> 确认日期: <日期>
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 确认结果
|
|
8
|
+
|
|
9
|
+
| 维度 | 确认值 |
|
|
10
|
+
|------|--------|
|
|
11
|
+
| 项目根目录 | <绝对路径> |
|
|
12
|
+
| 实施范围 | <模块列表> |
|
|
13
|
+
| 后端 center | modules-center/{module}-center |
|
|
14
|
+
| 后端包路径 | com.twsz.mom.{module}.{sub} |
|
|
15
|
+
| 前端 API 目录 | src/api/{domain}/ |
|
|
16
|
+
| 前端页面目录 | src/views/{domain}/{entity}/ |
|
|
17
|
+
| 编号生成 | @AutoGenCode / 无 |
|
|
18
|
+
| 状态流转 | 有 / 无 |
|
|
19
|
+
| 已有代码影响 | <列表或无> |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 对话记录
|
|
24
|
+
|
|
25
|
+
### Q0: 项目根目录
|
|
26
|
+
|
|
27
|
+
<对话内容>
|
|
28
|
+
|
|
29
|
+
### Q1: 实施范围
|
|
30
|
+
|
|
31
|
+
<对话内容>
|
|
32
|
+
|
|
33
|
+
### Q2: 后端模块归属
|
|
34
|
+
|
|
35
|
+
<对话内容>
|
|
36
|
+
|
|
37
|
+
### Q3: 后端包路径
|
|
38
|
+
|
|
39
|
+
<对话内容>
|
|
40
|
+
|
|
41
|
+
### Q4: 前端目录
|
|
42
|
+
|
|
43
|
+
<对话内容>
|
|
44
|
+
|
|
45
|
+
### Q5: 已有代码影响
|
|
46
|
+
|
|
47
|
+
<对话内容>
|
|
48
|
+
|
|
49
|
+
### Q6: 特殊技术决策
|
|
50
|
+
|
|
51
|
+
<对话内容>
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# 功能文档解析报告: <功能名称>
|
|
2
|
+
|
|
3
|
+
> 输入文件:
|
|
4
|
+
> - 功能文档: <*.md 文件路径>
|
|
5
|
+
> - 流程图: <*.drawio 文件路径>(如有)
|
|
6
|
+
> - 原型: <*.html 文件路径>(如有)
|
|
7
|
+
> 解析日期: <日期>
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. 子模块清单
|
|
12
|
+
|
|
13
|
+
| 编号 | 模块名称 | 类型 | 新建/修改 | 简述 |
|
|
14
|
+
|:----:|----------|------|:---------:|------|
|
|
15
|
+
| M-01 | | 新建CRUD / 修改已有 / 外部接口 / 记录表 | 新建 / 修改 | |
|
|
16
|
+
| M-02 | | | | |
|
|
17
|
+
|
|
18
|
+
> 如仅一个模块,此表只有一行。
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 2. 各模块解析详情
|
|
23
|
+
|
|
24
|
+
### M-01: <模块名称>
|
|
25
|
+
|
|
26
|
+
#### 2.1 功能简介
|
|
27
|
+
|
|
28
|
+
| 项目 | 值 |
|
|
29
|
+
|------|-----|
|
|
30
|
+
| 菜单路径 | |
|
|
31
|
+
| 应用设备 | |
|
|
32
|
+
| 使用人员 | |
|
|
33
|
+
| 功能描述 | |
|
|
34
|
+
|
|
35
|
+
#### 2.2 数据表
|
|
36
|
+
|
|
37
|
+
##### 表: <table_name>
|
|
38
|
+
|
|
39
|
+
| 字段名 | 中文名 | 原始类型 | 长度 | 主键 | 非空 | 默认值 | 说明 | Java 类型 | 适配说明 |
|
|
40
|
+
|--------|--------|----------|------|:----:|:----:|--------|------|-----------|----------|
|
|
41
|
+
| id | 主键 | BIGINT | - | ✅ | ✅ | - | | Long | → NUMBER(19) 雪花算法 |
|
|
42
|
+
| | | | | | | | | | |
|
|
43
|
+
|
|
44
|
+
**适配变更**(功能文档 DDL → MES Oracle 规范):
|
|
45
|
+
- <列出所有需要适配的项>
|
|
46
|
+
|
|
47
|
+
**审计字段**(自动补充):
|
|
48
|
+
- created_by VARCHAR2(64)
|
|
49
|
+
- created_date DATE DEFAULT SYSDATE
|
|
50
|
+
- last_updated_by VARCHAR2(64)
|
|
51
|
+
- last_updated_date DATE DEFAULT SYSDATE
|
|
52
|
+
|
|
53
|
+
##### 子表: <detail_table_name>(如有)
|
|
54
|
+
|
|
55
|
+
| 字段名 | 中文名 | 原始类型 | 长度 | 主键 | 非空 | 说明 | Java 类型 |
|
|
56
|
+
|--------|--------|----------|------|:----:|:----:|------|-----------|
|
|
57
|
+
| | | | | | | | |
|
|
58
|
+
|
|
59
|
+
**外键字段**: <关联主表的字段>
|
|
60
|
+
|
|
61
|
+
#### 2.3 操作/按钮
|
|
62
|
+
|
|
63
|
+
| 按钮 | 类型 | 对应接口 | 说明 |
|
|
64
|
+
|------|------|----------|------|
|
|
65
|
+
| 新增 | CRUD | POST /add | |
|
|
66
|
+
| 编辑 | CRUD | PUT /update | |
|
|
67
|
+
| 查看 | CRUD | GET /get/{id} | |
|
|
68
|
+
| 删除 | CRUD | DELETE /delete | |
|
|
69
|
+
| 导入 | 导入 | POST /uploadExcel | 模板: xxx |
|
|
70
|
+
| 导出 | 导出 | POST /export | |
|
|
71
|
+
|
|
72
|
+
#### 2.4 业务逻辑
|
|
73
|
+
|
|
74
|
+
##### 校验规则
|
|
75
|
+
|
|
76
|
+
| 编号 | 校验项 | 规则 | 错误提示 |
|
|
77
|
+
|:----:|--------|------|----------|
|
|
78
|
+
| V-01 | | | |
|
|
79
|
+
|
|
80
|
+
##### 特殊逻辑
|
|
81
|
+
|
|
82
|
+
1. <逻辑描述>
|
|
83
|
+
2. <逻辑描述>
|
|
84
|
+
|
|
85
|
+
##### 导入逻辑(如有)
|
|
86
|
+
|
|
87
|
+
- 模板格式: <描述>
|
|
88
|
+
- 校验规则: <列出>
|
|
89
|
+
- 事务控制: 整批回滚 / 逐行处理
|
|
90
|
+
|
|
91
|
+
##### 状态流转(如有)
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
<状态机 ASCII 图>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
#### 2.5 外部接口(如有)
|
|
98
|
+
|
|
99
|
+
| 接口名 | 方法 | 路径 | 调用方 | 描述 |
|
|
100
|
+
|--------|------|------|--------|------|
|
|
101
|
+
| | | | | |
|
|
102
|
+
|
|
103
|
+
##### 接口详情
|
|
104
|
+
|
|
105
|
+
**<接口名>**
|
|
106
|
+
|
|
107
|
+
请求:
|
|
108
|
+
```json
|
|
109
|
+
{}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
响应:
|
|
113
|
+
```json
|
|
114
|
+
{}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
业务逻辑:
|
|
118
|
+
1. <步骤>
|
|
119
|
+
|
|
120
|
+
#### 2.6 流程图摘要
|
|
121
|
+
|
|
122
|
+
从 *.drawio 提取的关键流程:
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
<ASCII 流程图>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
<!-- 重复以上结构,为每个子模块 M-02, M-03... 生成 -->
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 3. 依赖关系图
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
M-01 (新建CRUD)
|
|
138
|
+
│
|
|
139
|
+
├──→ M-02 (修改已有,依赖 M-01 的数据)
|
|
140
|
+
│
|
|
141
|
+
└──→ M-03 (外部接口,读取 M-01 + M-02 的数据)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
| 依赖 | 源模块 | 目标模块 | 类型 | 说明 |
|
|
145
|
+
|------|--------|----------|------|------|
|
|
146
|
+
| D-01 | M-01 | M-02 | 数据依赖 | M-02 读取 M-01 的表 |
|
|
147
|
+
| D-02 | M-01 | M-03 | 功能依赖 | M-03 调用 M-01 的 Service |
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## 4. 疑问点
|
|
152
|
+
|
|
153
|
+
| 编号 | 类型 | 描述 | 建议 |
|
|
154
|
+
|:----:|------|------|------|
|
|
155
|
+
| Q-01 | 字段疑问 / 逻辑疑问 / 依赖疑问 | | |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 5. 统计
|
|
160
|
+
|
|
161
|
+
| 维度 | 数量 |
|
|
162
|
+
|------|:----:|
|
|
163
|
+
| 子模块数 | |
|
|
164
|
+
| 新建表数 | |
|
|
165
|
+
| 修改表数 | |
|
|
166
|
+
| API 接口数 | |
|
|
167
|
+
| 外部接口数 | |
|
|
168
|
+
| 校验规则数 | |
|