工艺管理模块系统性修复总结
一、修复背景
用户要求检查当前实现有何问题,保证基本功能能用,界面风格尽量统一,然后思考工艺管理特殊性——工艺规程编制管理、工艺文件编制管理、工艺模板编制管理三者间如何协同、如何变成资产、如何与质量和生产关联使用。
二、已完成修复
Phase 1: 修复 3 个关键断裂功能
| 功能 | 问题 | 修复方案 |
|------|------|----------|
| editProcess | 导航到 /process-spec-studio?specId=xxx 后重定向丢失参数 | 改为 /process-center?tab=spec&specId=xxx,传递 prop |
| viewAsAsset | 裸路径导航无参数 | 改为 router.push({ name: 'asset-detail', params: { id } }) |
| sync-from-SCSAI | 空壳 { synced: 0 } | 集成 SCSAIProcessSyncService 执行真实同步 |
涉及文件:
src/views/ProcessManagement.vuesrc/views/ProcessCenter.vuesrc/views/ProcessSpecStudio.vueserver/routes/extra-routes.js
Phase 2: 规程生成引擎分析
分析了两个引擎的设计意图,结论是互补而非竞争:
| 引擎 | 设计意图 | 适用场景 |
|------|----------|----------|
| LLMProcessGenerator | 4 阶段纯 LLM(结构化→参数→校验→组合) | 复杂产品、无模板可参考 |
| ProcessSpecGenerator | 模板为基础 + 规则 + LLM 降级 | 标准产品、有历史数据 |
无需合并,两个引擎各有明确分工。
Phase 3: ProcessSpecStudio.vue 拆分
从 2667 行大文件中提取共享逻辑:
| 新建文件 | 行数 | 职责 |
|----------|------|------|
| src/composables/usePssSharedData.js | 139 | 行业/模板共享状态管理 |
| src/composables/usePssGovToast.js | 27 | 治理反馈 toast 逻辑 |
涉及文件:
src/views/ProcessSpecStudio.vue(移除重复函数,使用 composables)
Phase 4: 变更管理集成
建立工艺规程 ↔ ECR/ECO/ECN 桥接:
| 文件 | 变更 |
|------|------|
| server/core/llm-process-store.js | 新增 spec_change_links 表 + 4 个桥接函数 |
| server/routes/llm-process.js | 新增 5 个变更管理 API 端点 |
新增 API:
POST /api/llm-process/specs/:id/create-ecr— 创建变更请求GET /api/llm-process/specs/:id/change-history— 变更历史GET /api/llm-process/specs/:id/pending-change— 待处理变更POST /api/llm-process/specs/:id/submit-for-review— 提交审核POST /api/llm-process/specs/:id/approve-change— 批准/拒绝变更
Phase 5: 统一 DB 访问 + 认证
问题诊断:
- 6 种不同的 DB 访问方式(
global._llmProcDb、global._llmKnowledgeDb、global._processSpecDb、模块本地缓存、每次新建连接) - 3 种不同的
apiJson签名 extra-routes.js创建了不完整的process_specs表(缺少 8 个列)llm-process.jsPOST /specs 写入core_runtime.db,其他写入sccapp_process_data.db- 13+ 个破坏性端点无认证
修复方案:
| 文件 | 变更 |
|------|------|
| server/core/process-db.js(新建) | 统一 DB 连接 + 表创建 + 认证 + 响应函数 |
| server/routes/extra-routes.js | 使用统一模块,DELETE/sync 添加认证 |
| server/routes/llm-process.js | 使用统一模块,POST/DELETE 添加认证 |
| server/routes/process-knowledge.js | 使用统一模块 |
| server/core/llm-process-store.js | 移除 global._llmProcDb,使用统一模块 |
| server/core/llm-process-knowledge.js | 移除 global._llmKnowledgeDb,使用统一模块 |
| server/boss-scheduler/workers/process-worker.js | 使用统一模块,移除直接 require('sqlite-compat') |
关键改进:
- 消除 6 种不同的 DB 访问模式
- 消除 3 个全局变量(
_llmProcDb、_llmKnowledgeDb、_processSpecDb) - 破坏性端点添加 JWT 认证
- 修复 schema 漂移(
extra-routes创建了不完整的表) - 修复 DB 路径不一致(部分代码写入错误数据库)
三、构建验证
npm run build # 24s 通过
node --check # 所有 7 个修改文件通过
四、待解决问题
4.1 工艺管理核心问题(高优先级)
| 问题 | 现状 | 需要解决 |
|------|------|----------|
| 规程↔文件↔模板三者协同 | 三套数据分离,无统一关联模型 | 建立统一的工艺资产关联模型 |
| 工艺资产管理 | 规程只是 llm_process_specs 表记录 | 需要版本化、审批流、发布机制 |
| 与质量关联 | 仅 llm_process_metrics 自动评分 | 需与 NCR/CAPA/AUDIT 等质量对象关联 |
| 与生产关联 | 未连接 | 需与 SCSAI 的 Process/Production 对象关联 |
4.2 SCSAI 限制(中优先级)
| 问题 | 现状 |
|---|---|
| ECR/ECN 无 ManualRelease | SCSAI ECR 状态走 Workflow,程序化不可行 |
| ECR/ECN 状态 edit 受控 | state/current_state 直接 edit 不生效 |
| 数字员工 DELETE | AGENT/DIGITAL_EMPLOYEE 类型服务端 Method 限制 |
| SCIOT 目录不存在 | C:\bossagents\SCIOT 路径无效 |
4.3 数据库问题(低优先级)
| 问题 | 现状 |
|---|---|
| process_knowledge_entries 表在错误 DB | process-knowledge.js 连 core_runtime.db,但工艺数据在 sccapp_process_data.db |
| process_specs 表结构不完整 | extra-routes.js 创建的表缺少 parameters_json、steps_json 等列 |
| sccapp_process_data.db 体积膨胀 | 从 303MB 增长到 629MB,需定期清理 |
4.4 前端问题(低优先级)
| 问题 | 现状 |
|---|---|
| ProcessSpecStudio.vue 仍有 2648 行 | Phase 3 仅提取了 composables,核心组件仍需拆分 |
| 工艺管理界面风格不统一 | 不同页面 UI 风格差异较大 |
| 导入导出仅支持部分格式 | useImportExport.js 仅支持 JSON/CSV |
4.5 数字员工问题(低优先级)
| 问题 | 现状 |
|---|---|
| 2 个 PLM 孤儿对象 | AGENT 和 DIGITAL_EMPLOYEE 各 1 个无法删除 |
| 质量员工已连 SCSAI | 7 个质量员工已迁移,但需验证全链路 |
| 工艺数据修复员工 | process-worker.js 已修复,需实际运行验证 |
五、下一步建议
短期(1-2 周)
- 修复
process-knowledge.js的 DB 路径:改为sccapp_process_data.db - 添加变更管理 UI:在
ProcessSpecStudio.vue添加变更请求按钮和历史列表 - 验证质量员工 SCSAI 直连:7 个质量员工读写全链路测试
中期(1 个月)
- 建立工艺资产管理模型:定义规程↔文件↔模板的关联关系
- 工艺规程审批流:集成 ECR/ECO 审批
- 与生产对接:确认 SCSAI 的
Process/Production类型,建立关联
长期(3 个月)
- 工艺知识图谱:基于
llm_process_knowledge表构建 - 智能工艺推荐:基于历史数据推荐最优工艺路线
- 全流程数字化:从设计→工艺→生产→质量的完整闭环
六、文件变更清单
新建文件
server/core/process-db.js— 统一 DB 访问模块src/composables/usePssSharedData.js— 共享数据 composablesrc/composables/usePssGovToast.js— 治理反馈 composable
修改文件
server/routes/extra-routes.js— 使用统一模块 + 认证server/routes/llm-process.js— 使用统一模块 + 认证 + 变更管理 APIserver/routes/process-knowledge.js— 使用统一模块server/core/llm-process-store.js— 使用统一模块 + 变更管理表server/core/llm-process-knowledge.js— 使用统一模块server/boss-scheduler/workers/process-worker.js— 使用统一模块src/views/ProcessManagement.vue— 修复 editProcess/viewAsAssetsrc/views/ProcessCenter.vue— 传递 specId propsrc/views/ProcessSpecStudio.vue— 使用 composables + specId prop + loadSpecById
BossAgents