944 lines
23 KiB
Markdown
944 lines
23 KiB
Markdown
# JY1.0 项目结构、功能全景与 MCP 服务设计文档
|
||
|
||
## 1. 文档目标
|
||
|
||
本文档用于指导为「景耀 JY1.0」MES 前端项目创建配套 MCP 服务,使 AI 助手能够安全、可控地理解项目结构、查询业务功能、定位页面/API、生成代码建议、辅助排障,并在授权范围内调用项目相关工具。
|
||
|
||
本文档覆盖:
|
||
|
||
- 当前前端项目结构与技术栈。
|
||
- 现有业务功能模块全景。
|
||
- 前端与 ASP.NET `.ashx` 后端的通信规范。
|
||
- MCP 服务的资源、工具、提示词、权限和数据模型设计。
|
||
- MCP 服务的实施路线、部署方式和验收标准。
|
||
|
||
## 2. 项目概述
|
||
|
||
JY1.0 是江苏高精机械设备有限公司使用的制造执行系统前端,基于 Vue 2 和 Element UI 构建,后端以 ASP.NET 通用处理程序 `.ashx` 暴露统一入口。系统覆盖销售、基础资料、技术、精工车间、装配、采购、仓储、设备、可视化等制造业务。
|
||
|
||
项目特点:
|
||
|
||
- 前端为单页应用,基于 `vue-element-admin` 改造。
|
||
- 运行时路由主要由后端菜单数据动态注入。
|
||
- 业务请求统一 POST 到 `MESCommonBase.ashx` 一类端点。
|
||
- 业务字段大量使用中文数据库字段名。
|
||
- 页面以 Element UI 表单、筛选栏、表格、弹窗、分页为主。
|
||
- 文件上传下载、Excel 导出、图片/PDF 查看属于重要业务能力。
|
||
|
||
## 3. 技术栈
|
||
|
||
| 类别 | 技术 |
|
||
| --- | --- |
|
||
| 框架 | Vue 2.5.17 |
|
||
| 路由 | Vue Router 3.0.7 |
|
||
| 状态 | Vuex 3.0.1 |
|
||
| UI | Element UI 2.13 |
|
||
| HTTP | Axios 0.18 |
|
||
| 图表 | ECharts 4 |
|
||
| 构建 | Webpack 4 |
|
||
| 样式 | SCSS、Stylus |
|
||
| 文档/导出 | xlsx、xlsx-style、FileSaver、jsPDF、html2canvas、docxtemplater |
|
||
| 鉴权存储 | js-cookie |
|
||
| 富文本 | TinyMCE 4.7.5 |
|
||
| 预览 | v-viewer |
|
||
|
||
约束:
|
||
|
||
- 不使用 Vue 3。
|
||
- 不使用 TypeScript。
|
||
- 不使用 Composition API。
|
||
- 业务页面保持 Vue 2 Options API 风格。
|
||
- 请求封装沿用现有 `CreateData`、`ExecDatabase`、`getTable` 等全局方法。
|
||
|
||
## 4. 项目目录结构
|
||
|
||
根目录主要内容:
|
||
|
||
| 路径 | 说明 |
|
||
| --- | --- |
|
||
| `src/` | 前端源码 |
|
||
| `src/views/` | 页面视图,按业务模块组织 |
|
||
| `src/api/` | API 函数,部分新页面直接在视图内调用 `CreateData` |
|
||
| `src/utils/` | 请求封装、CRUD 工具、鉴权、通用方法 |
|
||
| `src/router/` | 静态路由与动态路由生成 |
|
||
| `src/store/` | Vuex 模块 |
|
||
| `src/components/` | 通用组件 |
|
||
| `src/icons/svg/` | SVG 图标 |
|
||
| `src/styles/` | 全局样式 |
|
||
| `static/config.js` | 服务地址、上传下载地址、WebSocket 地址 |
|
||
| `build/`、`config/` | Webpack 构建配置 |
|
||
| `dist/`、`dist.zip`、`dist.7z` | 构建产物 |
|
||
|
||
`src/views` 已识别的业务目录:
|
||
|
||
| 模块目录 | 功能定位 |
|
||
| --- | --- |
|
||
| `SalesManagement` | 销售、合同、订单、发货、售后、统计分析 |
|
||
| `BasicData` | 基础资料、人员、角色、菜单、工艺、班次、日历、物料 |
|
||
| `TechnologyCenter` | 技术中心、BOM、图纸、物料查询、图纸确认 |
|
||
| `SeikoWorkshop` | 精工车间、工艺制定、生产计划、派工、执行、质检、追溯 |
|
||
| `AssemblyManagement` | 装配任务、装配执行、领料、补货、滑台/专机装配 |
|
||
| `PurchasingManagement` | 采购订单、到货通知、供应商、外协采购查询 |
|
||
| `WarehouseManagement` | 仓储、入库、出库、库存、盘点、调拨、补货、库位 |
|
||
| `DeviceManagement` | 设备状态、点检、维修、实时监控、能耗、异常原因 |
|
||
| `ManufacturingCenter` | 制造中心相关页面 |
|
||
| `WarehouseVisualization` | 仓库可视化 |
|
||
| `dashboard` | 首页仪表盘 |
|
||
| `login` | 登录页 |
|
||
| `layout` | 主框架、导航、侧边栏、标签页 |
|
||
|
||
## 5. 业务功能全景
|
||
|
||
### 5.1 登录、权限与菜单
|
||
|
||
核心文件:
|
||
|
||
- `src/api/login.js`
|
||
- `src/store/modules/user.js`
|
||
- `src/store/modules/permission.js`
|
||
- `src/router/index.js`
|
||
- `src/router/getRouter.js`
|
||
- `src/permission.js`
|
||
|
||
功能:
|
||
|
||
- 用户名密码登录。
|
||
- Cookie 保存 token、用户姓名、人员流水号、工号等。
|
||
- 登录后获取用户信息和角色菜单。
|
||
- 后端返回菜单数据,前端按 `pid` 递归构建路由。
|
||
- 动态组件路径映射到 `src/views` 下的 Vue 文件。
|
||
- 路由 `meta.title` 为中文标题,`meta.icon` 对应 `src/icons/svg` 文件。
|
||
|
||
动态路由核心模式:
|
||
|
||
```js
|
||
component: () => import(`@/views${data[i].component}`)
|
||
```
|
||
|
||
### 5.2 统一请求机制
|
||
|
||
核心文件:
|
||
|
||
- `src/utils/request.js`
|
||
- `src/utils/curd.js`
|
||
- `static/config.js`
|
||
|
||
请求入口:
|
||
|
||
- Axios `baseURL` 来自 `static/config.js` 的 `request_config`。
|
||
- 业务请求 `url` 通常为空字符串。
|
||
- 由后端统一入口根据 `name` 字段路由到存储过程或 SQL 逻辑。
|
||
|
||
标准请求字段:
|
||
|
||
| 字段 | 说明 |
|
||
| --- | --- |
|
||
| `type` | 操作类型,常见为 `1` 查询、`2` 增删改、`7` 批量,也存在项目内扩展值如 `11`、`12`、`2001` |
|
||
| `name` | 后端过程名、业务路由名或特殊 SQL 字符串 |
|
||
| `param` | 参数,旧 API 多为 `key=value&key2=value2`,新全局方法多为参数数组 JSON 字符串 |
|
||
| `pageSize` | 分页大小 |
|
||
| `pageList` | 当前页 |
|
||
| `UserID` | 当前用户,来自 Cookie |
|
||
| `ModularID` | 当前路由路径 |
|
||
|
||
全局工具:
|
||
|
||
| 方法 | 用途 |
|
||
| --- | --- |
|
||
| `CreateData(type, name, data, pageSize, pageList)` | 构建后端请求参数 |
|
||
| `ExecDatabase(num)` | 向主服务发送 POST |
|
||
| `ExecDatabase1(num)` | 向备用服务发送 POST |
|
||
| `getTable(requestData, param, e)` | 分页表格查询并格式化日期 |
|
||
| `getData(requestData, carrier, param)` | 普通查询 |
|
||
| `getSelect(requestData, select, carrier, param)` | 下拉框查询 |
|
||
| `addForm(form, callback)` | 打开新增表单并重置 |
|
||
| `editForm(row, form, callback)` | 行数据填充到编辑表单 |
|
||
| `addTable(...)` | 新增表格行 |
|
||
| `editTable(...)` | 编辑表格行 |
|
||
| `deleteRow(...)` | 删除表格行 |
|
||
| `exportExcel_NPOI(param)` | 触发后端 NPOI Excel 导出 |
|
||
| `setColumnWidth(str)` | 按中文字段名设置表格列宽 |
|
||
|
||
### 5.3 基础数据
|
||
|
||
目录:
|
||
|
||
- `src/views/BasicData`
|
||
- `src/api/BasicData`
|
||
|
||
覆盖功能:
|
||
|
||
- 菜单管理。
|
||
- 系统角色维护。
|
||
- 用户权限管理。
|
||
- 人员管理。
|
||
- 车间人员角色管理。
|
||
- 班次管理。
|
||
- 工厂日历。
|
||
- 物料维护。
|
||
- 零件编号维护。
|
||
- 工艺分类、工艺名称、工艺要求维护。
|
||
- 设备能力设置。
|
||
- 设备人员维护。
|
||
- 项目管理显示。
|
||
|
||
MCP 需识别这些页面与 API 名称,支持按中文功能名定位文件、定位后端 `name` 调用点。
|
||
|
||
### 5.4 销售管理
|
||
|
||
目录:
|
||
|
||
- `src/views/SalesManagement`
|
||
- `src/api/SalesManagement`
|
||
|
||
覆盖功能:
|
||
|
||
- 客户管理。
|
||
- 公司信息维护。
|
||
- 产品维护。
|
||
- 报价创建。
|
||
- 销售合同、机床合同、售后合同。
|
||
- 合同查询、合同审核、合同新版页面。
|
||
- 订单管理、订单下发、订单查询、订单审核。
|
||
- 订单进度、订单进度总览、订单追溯、物料追溯。
|
||
- 发货通知、发货记录、发货审核、产品发货、发货通知查询。
|
||
- 售后、售后查询。
|
||
- 统计分析:区域销售、订单趋势、产品类别、产品占比、产品定价、设备利用率、工时统计等。
|
||
|
||
### 5.5 技术中心
|
||
|
||
目录:
|
||
|
||
- `src/views/TechnologyCenter`
|
||
|
||
覆盖功能:
|
||
|
||
- BOM 基础数据。
|
||
- BOM 维护、BOM 查询、BOM 库存查询。
|
||
- BOM 导入。
|
||
- 物料维护、物料查询。
|
||
- 零件图导入。
|
||
- 图纸确认、图纸确认分发、图纸确认查询。
|
||
|
||
### 5.6 精工车间
|
||
|
||
目录:
|
||
|
||
- `src/views/SeikoWorkshop`
|
||
|
||
覆盖功能:
|
||
|
||
- 工艺制定、工艺文档管理、工序查询。
|
||
- 生产计划、生产任务查询。
|
||
- 车间派工、生产执行、在加工零件。
|
||
- 零件追溯、订单工时、工时统计。
|
||
- 工况页面、设备监控。
|
||
- 物料审核、采购合同审核。
|
||
- 质检维护、自检记录、质检信息查询、采购质检、其他质检。
|
||
- 报废投产、其他工作完成、测试数据录入。
|
||
- Andon/异常提示相关页面。
|
||
|
||
### 5.7 装配管理
|
||
|
||
目录:
|
||
|
||
- `src/views/AssemblyManagement`
|
||
|
||
覆盖功能:
|
||
|
||
- 装配任务查询。
|
||
- 接收装配任务。
|
||
- 装配执行。
|
||
- 专机装配执行。
|
||
- 滑台装配执行。
|
||
- 补货单、滑台补货单。
|
||
- 装配领料、临时领料。
|
||
- 装配开始、完成、自检、暂停、恢复、打回。
|
||
- 装配参数、调试数据、滑台调试数据维护。
|
||
|
||
### 5.8 采购管理
|
||
|
||
目录:
|
||
|
||
- `src/views/PurchasingManagement`
|
||
|
||
覆盖功能:
|
||
|
||
- 供应商管理。
|
||
- 到货通知。
|
||
- 采购订单。
|
||
- 外协采购订单。
|
||
- 订单查询。
|
||
- 外协订单查询。
|
||
- 外购件查询。
|
||
- 外协件查询。
|
||
|
||
### 5.9 仓储管理
|
||
|
||
目录:
|
||
|
||
- `src/views/WarehouseManagement`
|
||
|
||
覆盖功能:
|
||
|
||
- 采购件入库。
|
||
- 外协入库。
|
||
- 入库扫描。
|
||
- 入库记录、采购入库记录、外协记录、主轴库存记录。
|
||
- 出库、出库明细、采购出库记录。
|
||
- 领料单查询、物料领用。
|
||
- 退料记录。
|
||
- 库存查询、库存记录、库存汇总、库存盘点。
|
||
- 调拨查询、外协调拨。
|
||
- 补货、补货查询、新补货查询。
|
||
- 库位管理、物料库位、模具管理。
|
||
- 外协厂维护。
|
||
- 仓库可视化。
|
||
|
||
### 5.10 设备管理
|
||
|
||
目录:
|
||
|
||
- `src/views/DeviceManagement`
|
||
|
||
覆盖功能:
|
||
|
||
- 设备状态。
|
||
- 设备状态监控。
|
||
- 设备信息。
|
||
- 实时信息、历史信息、当前监控。
|
||
- 点检、点检记录。
|
||
- 维修记录。
|
||
- 设备能耗。
|
||
- 灯控。
|
||
- 不合格原因。
|
||
|
||
### 5.11 文件、打印、导出和可视化
|
||
|
||
功能:
|
||
|
||
- 文件上传:`uploadFile.ashx`、`MESUploadFile.ashx`、`uploadOP.ashx`、`uploadPerson.ashx` 等。
|
||
- 文件下载:`downloadFile.ashx`、`MESDownloadFile.ashx`、`MESDownloadFileNew.ashx` 等。
|
||
- Excel 导出:通过 `ExcelDownLoad` 指向统一服务。
|
||
- 图片/PDF 查看:`v-viewer`、文件服务接口。
|
||
- 条码/二维码:`@xkeshi/vue-barcode`、`qrcode`。
|
||
- 图表:ECharts。
|
||
- 3D/可视化:仓储可视化、设备监控中存在图片、布局图和部分 Three.js 依赖。
|
||
|
||
## 6. MCP 服务总体设计
|
||
|
||
### 6.1 MCP 服务定位
|
||
|
||
MCP 服务作为 AI 助手和 JY1.0 项目之间的受控桥梁,负责提供:
|
||
|
||
- 项目结构检索。
|
||
- 页面、组件、API、路由定位。
|
||
- 业务功能索引。
|
||
- 后端 `name` 调用点分析。
|
||
- 中文字段与页面表格列提取。
|
||
- 代码规范检查。
|
||
- 文档知识库检索。
|
||
- 可选的只读运行状态查询。
|
||
- 经审批的代码生成建议。
|
||
|
||
MCP 服务不应直接绕过现有前端权限去修改生产业务数据。所有业务数据写操作必须默认关闭,除非后续建立明确的审批、审计和沙箱机制。
|
||
|
||
### 6.2 设计原则
|
||
|
||
- 只读优先:默认工具只读取代码、文档和元数据。
|
||
- 最小权限:按工具粒度授权,不暴露任意 shell。
|
||
- 中文友好:所有业务搜索支持中文字段、中文页面名、中文过程名。
|
||
- 可追溯:工具返回文件路径、行号、调用链、数据来源。
|
||
- 与现有规范兼容:保留 Vue 2、Element UI、统一 `.ashx` 请求模式。
|
||
- 安全隔离:生产数据库写操作不通过 MCP 直接暴露。
|
||
|
||
### 6.3 推荐技术选型
|
||
|
||
| 层 | 方案 |
|
||
| --- | --- |
|
||
| MCP SDK | Node.js MCP SDK 或 Python MCP SDK |
|
||
| 语言 | Node.js 18+ 优先,便于解析 JS/Vue 项目 |
|
||
| 传输 | 本地 stdio 用于 IDE/桌面助手;内网可选 Streamable HTTP |
|
||
| 索引 | ripgrep + 自建 JSON 索引 |
|
||
| 代码解析 | `@babel/parser`、`vue-template-compiler`、正则辅助 |
|
||
| 文档解析 | Markdown 原生、docx 可用 mammoth |
|
||
| 向量库 | 本地 Chroma/Qdrant/Milvus,轻量阶段可用 SQLite + 向量扩展 |
|
||
| 嵌入模型 | DeepSeek 不提供嵌入时,可选 bge-m3、bge-large-zh、text2vec |
|
||
| LLM | DeepSeek Chat / DeepSeek Reasoner |
|
||
|
||
## 7. MCP Resources 设计
|
||
|
||
Resources 用于暴露只读上下文。
|
||
|
||
| Resource URI | 内容 | 来源 |
|
||
| --- | --- | --- |
|
||
| `jy://project/overview` | 项目概览、技术栈、目录说明 | 自动生成 |
|
||
| `jy://project/package` | `package.json` 依赖、脚本 | `package.json` |
|
||
| `jy://project/config` | 服务地址配置摘要,敏感值脱敏 | `static/config.js` |
|
||
| `jy://router/static` | 静态路由 | `src/router/index.js` |
|
||
| `jy://router/dynamic-builder` | 动态路由生成逻辑 | `src/router/getRouter.js` |
|
||
| `jy://api/request-wrapper` | 请求封装说明 | `src/utils/request.js`、`src/utils/curd.js` |
|
||
| `jy://modules/list` | 业务模块目录与页面数量 | 扫描 `src/views` |
|
||
| `jy://api/list` | API 文件与导出函数 | 扫描 `src/api` |
|
||
| `jy://icons/list` | SVG 图标清单 | 扫描 `src/icons/svg` |
|
||
| `jy://docs/index` | 项目文档索引 | `docs/`、`AGENTS.md` |
|
||
|
||
## 8. MCP Tools 设计
|
||
|
||
### 8.1 项目结构工具
|
||
|
||
#### `scan_project_structure`
|
||
|
||
用途:返回项目目录树、模块数量、关键文件状态。
|
||
|
||
输入:
|
||
|
||
```json
|
||
{
|
||
"maxDepth": 3,
|
||
"includeFiles": true
|
||
}
|
||
```
|
||
|
||
输出:
|
||
|
||
```json
|
||
{
|
||
"root": "D:/景耀/JY1.0",
|
||
"modules": ["SalesManagement", "BasicData"],
|
||
"keyFiles": ["package.json", "static/config.js"],
|
||
"tree": []
|
||
}
|
||
```
|
||
|
||
#### `list_business_modules`
|
||
|
||
用途:列出 `src/views` 下全部业务模块、页面数量、页面路径。
|
||
|
||
输入:
|
||
|
||
```json
|
||
{
|
||
"module": "WarehouseManagement",
|
||
"includePages": true
|
||
}
|
||
```
|
||
|
||
输出需包含:
|
||
|
||
- 模块英文目录。
|
||
- 建议中文名称。
|
||
- 页面列表。
|
||
- 每个页面的 `index.vue` 路径。
|
||
|
||
### 8.2 页面与组件分析工具
|
||
|
||
#### `analyze_vue_page`
|
||
|
||
用途:分析指定 Vue 页面。
|
||
|
||
输入:
|
||
|
||
```json
|
||
{
|
||
"path": "src/views/WarehouseManagement/PurchasePartsStorage/index.vue"
|
||
}
|
||
```
|
||
|
||
输出:
|
||
|
||
- 页面标题推断。
|
||
- template 使用的 Element UI 组件。
|
||
- 表格列中文字段。
|
||
- data 字段。
|
||
- methods 列表。
|
||
- 调用的 `CreateData`/`ExecDatabase`。
|
||
- 后端 `name` 清单。
|
||
- 上传下载/打印/导出能力。
|
||
|
||
#### `find_pages_by_keyword`
|
||
|
||
用途:按中文或英文关键词查页面。
|
||
|
||
输入:
|
||
|
||
```json
|
||
{
|
||
"keyword": "入库",
|
||
"scope": "views"
|
||
}
|
||
```
|
||
|
||
输出:
|
||
|
||
- 命中文件。
|
||
- 命中行号。
|
||
- 上下文片段。
|
||
- 可能关联模块。
|
||
|
||
### 8.3 API 与后端过程分析工具
|
||
|
||
#### `list_backend_operations`
|
||
|
||
用途:扫描项目中所有 `CreateData`、API 文件 `name` 字段、SQL 字符串。
|
||
|
||
输入:
|
||
|
||
```json
|
||
{
|
||
"module": "AssemblyManagement",
|
||
"operationType": "query"
|
||
}
|
||
```
|
||
|
||
输出字段:
|
||
|
||
| 字段 | 说明 |
|
||
| --- | --- |
|
||
| `file` | 文件路径 |
|
||
| `line` | 行号 |
|
||
| `type` | 请求类型 |
|
||
| `name` | 后端过程名或 SQL |
|
||
| `params` | 参数名列表 |
|
||
| `page` | 页面路径 |
|
||
|
||
#### `trace_backend_name`
|
||
|
||
用途:根据后端 `name` 反查调用点。
|
||
|
||
输入:
|
||
|
||
```json
|
||
{
|
||
"name": "装配执行_开始装配"
|
||
}
|
||
```
|
||
|
||
输出:
|
||
|
||
- 调用页面。
|
||
- 方法名。
|
||
- 参数来源。
|
||
- 用户操作入口。
|
||
- 相关表格/弹窗。
|
||
|
||
### 8.4 字段与表格工具
|
||
|
||
#### `extract_table_columns`
|
||
|
||
用途:提取指定页面所有 `el-table-column` 的中文 label、prop、slot 字段。
|
||
|
||
输入:
|
||
|
||
```json
|
||
{
|
||
"path": "src/views/SeikoWorkshop/PartTraceability/index.vue"
|
||
}
|
||
```
|
||
|
||
输出:
|
||
|
||
```json
|
||
{
|
||
"tables": [
|
||
{
|
||
"columns": [
|
||
{"label": "订单号", "prop": "订单号", "width": "140px"}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
#### `find_chinese_field`
|
||
|
||
用途:根据中文字段名搜索全项目引用。
|
||
|
||
输入:
|
||
|
||
```json
|
||
{
|
||
"field": "订单编号"
|
||
}
|
||
```
|
||
|
||
输出:
|
||
|
||
- 页面引用。
|
||
- API 参数引用。
|
||
- 表格列引用。
|
||
- 表单字段引用。
|
||
|
||
### 8.5 代码规范检查工具
|
||
|
||
#### `check_jy_conventions`
|
||
|
||
用途:检查指定变更或文件是否符合本项目约束。
|
||
|
||
检查项:
|
||
|
||
- 是否使用 Vue 2 Options API。
|
||
- 是否引入 Vue 3/Composition API。
|
||
- 是否绕过 `CreateData`/`ExecDatabase` 自行封装业务请求。
|
||
- 是否使用中文字段名。
|
||
- 是否符合 `app-container > el-card > 搜索栏 + el-table` 模式。
|
||
- 是否使用 `.then().catch()` 而非 `async/await`。
|
||
- 是否新增第三方库。
|
||
- 深度选择器是否使用 `>>>`。
|
||
|
||
输入:
|
||
|
||
```json
|
||
{
|
||
"paths": ["src/views/WarehouseManagement/NewPage/index.vue"]
|
||
}
|
||
```
|
||
|
||
输出:
|
||
|
||
- 违规等级。
|
||
- 文件路径和行号。
|
||
- 修改建议。
|
||
|
||
### 8.6 文档与知识库工具
|
||
|
||
#### `search_project_docs`
|
||
|
||
用途:检索 `AGENTS.md`、`docs/`、README、项目档案等文档。
|
||
|
||
输入:
|
||
|
||
```json
|
||
{
|
||
"query": "新增页面开发流程",
|
||
"topK": 5
|
||
}
|
||
```
|
||
|
||
输出:
|
||
|
||
- 文档片段。
|
||
- 文件路径。
|
||
- 相关度。
|
||
|
||
#### `search_code_knowledge`
|
||
|
||
用途:从代码索引和向量知识库中检索相关页面/API/规范。
|
||
|
||
输入:
|
||
|
||
```json
|
||
{
|
||
"query": "如何实现采购件入库页面的批量入库",
|
||
"topK": 8
|
||
}
|
||
```
|
||
|
||
输出:
|
||
|
||
- 命中代码片段。
|
||
- 相关文档。
|
||
- 可追溯引用。
|
||
|
||
### 8.7 可选业务查询工具
|
||
|
||
如需让 AI 助手查询真实业务数据,应单独设计白名单工具,不开放任意 SQL。
|
||
|
||
示例:
|
||
|
||
- `query_menu_by_user`
|
||
- `query_role_modules`
|
||
- `query_dictionary`
|
||
- `query_order_status`
|
||
- `query_inventory_summary`
|
||
|
||
要求:
|
||
|
||
- 只读。
|
||
- 参数校验。
|
||
- 绑定服务账号。
|
||
- 返回数据脱敏。
|
||
- 写审计日志。
|
||
|
||
## 9. MCP Prompts 设计
|
||
|
||
### 9.1 新增页面 Prompt
|
||
|
||
名称:`create_jy_vue_page`
|
||
|
||
用途:指导 AI 按项目规范新增 Vue 页面。
|
||
|
||
输入:
|
||
|
||
```json
|
||
{
|
||
"module": "WarehouseManagement",
|
||
"pageName": "库存预警",
|
||
"backendNames": ["仓储管理_库存预警_查询"],
|
||
"fields": ["物料名称", "图号", "库存", "最低库存"]
|
||
}
|
||
```
|
||
|
||
输出:
|
||
|
||
- 页面文件建议路径。
|
||
- API 调用建议。
|
||
- Vue 2 代码骨架。
|
||
- 表格列定义。
|
||
- 查询条件。
|
||
- 需要后端配置的菜单字段。
|
||
|
||
### 9.2 故障排查 Prompt
|
||
|
||
名称:`debug_jy_request`
|
||
|
||
用途:根据报错、页面、后端 `name` 定位问题。
|
||
|
||
输出:
|
||
|
||
- 请求链路。
|
||
- 可能原因。
|
||
- 需要检查的 Cookie、路由、参数、后端过程。
|
||
- 前端修改建议。
|
||
|
||
### 9.3 功能说明 Prompt
|
||
|
||
名称:`explain_jy_feature`
|
||
|
||
用途:解释某个页面或模块功能。
|
||
|
||
输出:
|
||
|
||
- 功能入口。
|
||
- 页面操作流程。
|
||
- 涉及后端过程。
|
||
- 关键字段。
|
||
- 相关页面。
|
||
|
||
## 10. MCP 服务内部索引设计
|
||
|
||
### 10.1 文件索引
|
||
|
||
```json
|
||
{
|
||
"path": "src/views/WarehouseManagement/PurchasePartsStorage/index.vue",
|
||
"module": "WarehouseManagement",
|
||
"type": "vue",
|
||
"mtime": "2026-04-23T16:54:00",
|
||
"size": 123456
|
||
}
|
||
```
|
||
|
||
### 10.2 页面索引
|
||
|
||
```json
|
||
{
|
||
"path": "src/views/AssemblyManagement/AssemblyExecution/index.vue",
|
||
"module": "AssemblyManagement",
|
||
"components": ["el-table", "el-dialog", "el-select"],
|
||
"methods": ["searchTable", "submitStart", "submitFinish"],
|
||
"backendNames": ["装配执行_开始装配", "装配执行_完成装配"],
|
||
"fields": ["订单号", "产品名称", "状态"]
|
||
}
|
||
```
|
||
|
||
### 10.3 后端操作索引
|
||
|
||
```json
|
||
{
|
||
"name": "仓储管理_采购件入库_循环执行",
|
||
"type": "12",
|
||
"params": ["物料流水号组", "实际到货数量组", "入库人员流水号"],
|
||
"callers": [
|
||
{
|
||
"file": "src/views/WarehouseManagement/PurchasePartsStorage/index.vue",
|
||
"method": "submitInStorage",
|
||
"line": 800
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 10.4 字段索引
|
||
|
||
```json
|
||
{
|
||
"field": "订单号",
|
||
"occurrences": [
|
||
{
|
||
"file": "src/views/SalesManagement/OrderInquiry/index.vue",
|
||
"kind": "table-column"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
## 11. 安全设计
|
||
|
||
### 11.1 权限分层
|
||
|
||
| 等级 | 能力 | 默认 |
|
||
| --- | --- | --- |
|
||
| L0 | 读项目文档 | 开启 |
|
||
| L1 | 读项目代码 | 开启 |
|
||
| L2 | 生成建议,不写文件 | 开启 |
|
||
| L3 | 写项目文档 | 需授权 |
|
||
| L4 | 修改前端代码 | 需授权 |
|
||
| L5 | 调用只读业务接口 | 需服务账号和审计 |
|
||
| L6 | 调用写业务接口 | 默认禁止 |
|
||
|
||
### 11.2 敏感信息处理
|
||
|
||
- `static/config.js` 中 IP、文件服务地址可展示,但生产账号、密钥必须脱敏。
|
||
- 用户提供的账号密码不写入文档和代码。
|
||
- DeepSeek API Key 只能放环境变量或密钥管理服务。
|
||
- MCP 日志不得记录完整 Cookie、token、密码、身份证、手机号等敏感数据。
|
||
|
||
### 11.3 业务写操作限制
|
||
|
||
禁止通过通用工具暴露:
|
||
|
||
- 任意 SQL 执行。
|
||
- 任意 `type=2/7/12` 写操作。
|
||
- 任意文件删除。
|
||
- 任意生产数据库更新。
|
||
|
||
如后续确需写操作,必须满足:
|
||
|
||
- 白名单过程名。
|
||
- 参数 schema。
|
||
- 人工确认。
|
||
- 审计日志。
|
||
- 回滚方案。
|
||
|
||
## 12. 部署设计
|
||
|
||
### 12.1 本地 stdio 模式
|
||
|
||
适合开发者 IDE、Codex、Claude Desktop 等本地 AI 工具。
|
||
|
||
启动方式:
|
||
|
||
```bash
|
||
node server.js --root D:/景耀/JY1.0
|
||
```
|
||
|
||
配置示例:
|
||
|
||
```json
|
||
{
|
||
"mcpServers": {
|
||
"jy-mes": {
|
||
"command": "node",
|
||
"args": ["D:/景耀/JY1.0/mcp-server/server.js", "--root", "D:/景耀/JY1.0"]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 12.2 内网 HTTP 模式
|
||
|
||
适合多人共享 AI 助手。
|
||
|
||
建议:
|
||
|
||
- 部署在内网服务器。
|
||
- 使用反向代理和 HTTPS。
|
||
- 增加用户认证。
|
||
- 按用户角色限制工具。
|
||
- 建立调用日志。
|
||
|
||
## 13. 实施路线
|
||
|
||
### 阶段 1:只读项目索引
|
||
|
||
目标:
|
||
|
||
- 搭建 MCP 服务骨架。
|
||
- 实现 `scan_project_structure`、`list_business_modules`。
|
||
- 建立页面/API/字段索引。
|
||
- 支持按关键词搜索。
|
||
|
||
交付:
|
||
|
||
- `mcp-server/` 服务。
|
||
- `index-store/` 索引文件。
|
||
- 基础 Resources 和 Tools。
|
||
|
||
### 阶段 2:Vue/API 深度分析
|
||
|
||
目标:
|
||
|
||
- 解析 `.vue` 页面结构。
|
||
- 提取 `el-table-column`。
|
||
- 提取 `CreateData` 调用和参数。
|
||
- 反查后端 `name` 调用链。
|
||
|
||
交付:
|
||
|
||
- `analyze_vue_page`。
|
||
- `list_backend_operations`。
|
||
- `trace_backend_name`。
|
||
- `check_jy_conventions`。
|
||
|
||
### 阶段 3:文档知识库接入
|
||
|
||
目标:
|
||
|
||
- 将 `AGENTS.md`、`docs/`、关键源码说明入库。
|
||
- 支持语义检索。
|
||
- AI 回答必须给出来源。
|
||
|
||
交付:
|
||
|
||
- 知识库构建脚本。
|
||
- 文档检索工具。
|
||
- 知识库更新机制。
|
||
|
||
### 阶段 4:AI 助手集成
|
||
|
||
目标:
|
||
|
||
- 接入 DeepSeek。
|
||
- 支持项目问答、功能解释、代码生成建议、排障。
|
||
- 支持 MCP 工具调用。
|
||
|
||
交付:
|
||
|
||
- AI 助手后端服务。
|
||
- Web 聊天界面或集成到现有系统。
|
||
- 权限和审计。
|
||
|
||
### 阶段 5:受控业务查询
|
||
|
||
目标:
|
||
|
||
- 增加只读业务查询白名单。
|
||
- 支持订单、库存、设备状态、任务状态等查询。
|
||
|
||
交付:
|
||
|
||
- 只读业务 API 代理。
|
||
- 参数 schema。
|
||
- 审计日志。
|
||
|
||
## 14. 验收标准
|
||
|
||
MCP 服务应满足:
|
||
|
||
- 能列出全部业务模块和页面。
|
||
- 能按中文关键词定位页面和后端调用。
|
||
- 能分析指定 Vue 文件中的表格列、方法、请求。
|
||
- 能反查某个后端 `name` 被哪些页面调用。
|
||
- 能根据项目规范检查新增页面。
|
||
- 能检索项目文档并返回来源。
|
||
- 不暴露任意 shell、任意 SQL、生产写操作。
|
||
- 生成代码建议符合 Vue 2、Element UI、现有全局 CRUD 方法。
|
||
|
||
## 15. 后续建议
|
||
|
||
- 为后端存储过程建立正式清单,补齐参数、返回字段和业务含义。
|
||
- 将页面中文标题、路由路径、组件路径、后端 `name` 维护成可生成的功能矩阵。
|
||
- 将编码异常文件逐步统一为 UTF-8,降低 AI 和工具解析难度。
|
||
- 将现有散落在页面内的 API 调用逐步沉淀到 `src/api`,便于 MCP 建模和复用。
|