23 KiB
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.jssrc/store/modules/user.jssrc/store/modules/permission.jssrc/router/index.jssrc/router/getRouter.jssrc/permission.js
功能:
- 用户名密码登录。
- Cookie 保存 token、用户姓名、人员流水号、工号等。
- 登录后获取用户信息和角色菜单。
- 后端返回菜单数据,前端按
pid递归构建路由。 - 动态组件路径映射到
src/views下的 Vue 文件。 - 路由
meta.title为中文标题,meta.icon对应src/icons/svg文件。
动态路由核心模式:
component: () => import(`@/views${data[i].component}`)
5.2 统一请求机制
核心文件:
src/utils/request.jssrc/utils/curd.jsstatic/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/BasicDatasrc/api/BasicData
覆盖功能:
- 菜单管理。
- 系统角色维护。
- 用户权限管理。
- 人员管理。
- 车间人员角色管理。
- 班次管理。
- 工厂日历。
- 物料维护。
- 零件编号维护。
- 工艺分类、工艺名称、工艺要求维护。
- 设备能力设置。
- 设备人员维护。
- 项目管理显示。
MCP 需识别这些页面与 API 名称,支持按中文功能名定位文件、定位后端 name 调用点。
5.4 销售管理
目录:
src/views/SalesManagementsrc/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
用途:返回项目目录树、模块数量、关键文件状态。
输入:
{
"maxDepth": 3,
"includeFiles": true
}
输出:
{
"root": "D:/景耀/JY1.0",
"modules": ["SalesManagement", "BasicData"],
"keyFiles": ["package.json", "static/config.js"],
"tree": []
}
list_business_modules
用途:列出 src/views 下全部业务模块、页面数量、页面路径。
输入:
{
"module": "WarehouseManagement",
"includePages": true
}
输出需包含:
- 模块英文目录。
- 建议中文名称。
- 页面列表。
- 每个页面的
index.vue路径。
8.2 页面与组件分析工具
analyze_vue_page
用途:分析指定 Vue 页面。
输入:
{
"path": "src/views/WarehouseManagement/PurchasePartsStorage/index.vue"
}
输出:
- 页面标题推断。
- template 使用的 Element UI 组件。
- 表格列中文字段。
- data 字段。
- methods 列表。
- 调用的
CreateData/ExecDatabase。 - 后端
name清单。 - 上传下载/打印/导出能力。
find_pages_by_keyword
用途:按中文或英文关键词查页面。
输入:
{
"keyword": "入库",
"scope": "views"
}
输出:
- 命中文件。
- 命中行号。
- 上下文片段。
- 可能关联模块。
8.3 API 与后端过程分析工具
list_backend_operations
用途:扫描项目中所有 CreateData、API 文件 name 字段、SQL 字符串。
输入:
{
"module": "AssemblyManagement",
"operationType": "query"
}
输出字段:
| 字段 | 说明 |
|---|---|
file |
文件路径 |
line |
行号 |
type |
请求类型 |
name |
后端过程名或 SQL |
params |
参数名列表 |
page |
页面路径 |
trace_backend_name
用途:根据后端 name 反查调用点。
输入:
{
"name": "装配执行_开始装配"
}
输出:
- 调用页面。
- 方法名。
- 参数来源。
- 用户操作入口。
- 相关表格/弹窗。
8.4 字段与表格工具
extract_table_columns
用途:提取指定页面所有 el-table-column 的中文 label、prop、slot 字段。
输入:
{
"path": "src/views/SeikoWorkshop/PartTraceability/index.vue"
}
输出:
{
"tables": [
{
"columns": [
{"label": "订单号", "prop": "订单号", "width": "140px"}
]
}
]
}
find_chinese_field
用途:根据中文字段名搜索全项目引用。
输入:
{
"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。 - 是否新增第三方库。
- 深度选择器是否使用
>>>。
输入:
{
"paths": ["src/views/WarehouseManagement/NewPage/index.vue"]
}
输出:
- 违规等级。
- 文件路径和行号。
- 修改建议。
8.6 文档与知识库工具
search_project_docs
用途:检索 AGENTS.md、docs/、README、项目档案等文档。
输入:
{
"query": "新增页面开发流程",
"topK": 5
}
输出:
- 文档片段。
- 文件路径。
- 相关度。
search_code_knowledge
用途:从代码索引和向量知识库中检索相关页面/API/规范。
输入:
{
"query": "如何实现采购件入库页面的批量入库",
"topK": 8
}
输出:
- 命中代码片段。
- 相关文档。
- 可追溯引用。
8.7 可选业务查询工具
如需让 AI 助手查询真实业务数据,应单独设计白名单工具,不开放任意 SQL。
示例:
query_menu_by_userquery_role_modulesquery_dictionaryquery_order_statusquery_inventory_summary
要求:
- 只读。
- 参数校验。
- 绑定服务账号。
- 返回数据脱敏。
- 写审计日志。
9. MCP Prompts 设计
9.1 新增页面 Prompt
名称:create_jy_vue_page
用途:指导 AI 按项目规范新增 Vue 页面。
输入:
{
"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 文件索引
{
"path": "src/views/WarehouseManagement/PurchasePartsStorage/index.vue",
"module": "WarehouseManagement",
"type": "vue",
"mtime": "2026-04-23T16:54:00",
"size": 123456
}
10.2 页面索引
{
"path": "src/views/AssemblyManagement/AssemblyExecution/index.vue",
"module": "AssemblyManagement",
"components": ["el-table", "el-dialog", "el-select"],
"methods": ["searchTable", "submitStart", "submitFinish"],
"backendNames": ["装配执行_开始装配", "装配执行_完成装配"],
"fields": ["订单号", "产品名称", "状态"]
}
10.3 后端操作索引
{
"name": "仓储管理_采购件入库_循环执行",
"type": "12",
"params": ["物料流水号组", "实际到货数量组", "入库人员流水号"],
"callers": [
{
"file": "src/views/WarehouseManagement/PurchasePartsStorage/index.vue",
"method": "submitInStorage",
"line": 800
}
]
}
10.4 字段索引
{
"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 工具。
启动方式:
node server.js --root D:/景耀/JY1.0
配置示例:
{
"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 建模和复用。