# 工艺流程（Process Routing）迁移分析方案

## 一、旧代码研读范围

- 旧页面：`/home/james/WEBMAN-VUE-APP-develop/webman-vue-app/src/views/production_configuration/technology_model/technology_flow/process.vue`
- 旧 API：`src/api/production_configuration/technology_model/technology_flow.js`、`technology_flow_process.js`、`calculation_script.js`
- 旧组件：`components/ProcessPlugin/ResultParam`、`TemperatureSupp`、`CalculationScript`、`components/technology/technology-flow-model.vue`
- V2 页面：`src/views/production-master-data/process-model/process-routing/index.vue`、`process-routing-card/index.vue`

## 二、旧模块接口清单

| 接口 | 方法 | method 参数 | platform | 主要参数 | 返回数据使用 |
| --- | --- | --- | --- | --- | --- |
| `production_configuration/technology_model/technology_flow/list` | GET | `production_configuration_technology_model_technology_flow_list` | background | `page_no`、`page_size`、`code`、`name`、`flow_category_id`、`product_model_id` | 工艺流程主列表 |
| `technology_flow/create` | POST | `production_configuration_technology_model_technology_flow_create` | background | `code`、`name`、`flow_category_id`、`product_model_id`、`remark` | 新增流程 |
| `technology_flow/edit` | PUT | `production_configuration_technology_model_technology_flow_edit` | background | `id` + 表单字段 | 编辑流程 |
| `technology_flow/delete` | DELETE | `production_configuration_technology_model_technology_flow_delete` | background | `id: []` | 删除流程 |
| `technology_flow/copy` | POST | `production_configuration_technology_model_technology_flow_copy` | background | `id: []` | 复制流程 |
| `technology_flow_process/all` | GET | `production_configuration_technology_model_technology_flow_process_all` | background | `flow_id` | `process`、`flow_data`、`is_binding_batch`、`technology_flow_operate_log` |
| `technology_flow_process/create` | POST | `..._create` | background | `flow_id`、`workingsubclass_id`、`code`、`name`、`pin_check` | 新增流程工序 |
| `technology_flow_process/edit` | PUT | `..._edit` | background | `id`、`flow_id`、表单字段 | 编辑流程工序 |
| `technology_flow_process/delete` | DELETE | `..._delete` | background | `id: []`、`flow_id` | 删除流程工序 |
| `technology_flow_process/move_up` | POST | `..._move_up` | background | `flow_id`、`move_id`、`quilt_move_id`、`move_sort`、`quilt_move_sort` | 上移排序 |
| `technology_flow_process/move_down` | POST | `..._move_down` | background | 同上 | 下移排序 |
| `technology_flow_process/set_setting` | POST | `..._set_setting` | background | `id`、`flow_id`、`setting: JSON.stringify(data)` | 保存设定值插件数据 |
| `technology_flow_process/get_optional_params_details` | GET | `..._get_optional_params_details` | background | `process_id`、`page_no`、`page_size`、`name`、`code` | 当前流程工序已绑定结果参数 |
| `technology_flow_process/get_all_workingsubclass_params` | GET | `..._get_all_workingsubclass_params` | background | `process_id` | 左右树：全部/已选结果参数 |
| `technology_flow_process/add_optional_params` | POST | `..._add_optional_params` | background | `process_id`、`optional_params: JSON.stringify(list)` | 保存结果参数绑定 |
| `technology_flow_process/get_step` | GET | `..._get_step` | background | 无 | 温度补偿工步下拉 |
| `technology_flow_process/get_temperature_list` | GET | `..._get_temperature_list` | background | `process_id` | `data`、`start_work_step_id`、`end_work_step_id` |
| `technology_flow_process/create_temperature` | POST | `..._create_temperature` | background | `process_id`、`start_work_step_id`、`end_work_step_id`、`temp_data` | 保存温度补偿 |
| `technology_flow_process/get_temperature_template` | POST | `..._get_temperature_template` | background | 无 | blob 模板文件 |
| `calculation_script/all` | GET | `production_configuration_technology_model_calculation_script_all` | background | `process_id` | 当前工序计算脚本列表 |
| `calculation_script/create` | POST | `..._create` | background | `process_id`、`code`、`name`、`interface_code`、`interface_position`、`status`、`remark`、`calculation_script_content` | 新增脚本 |
| `calculation_script/edit` | PUT | `..._edit` | background | `id` + 新增字段 | 编辑脚本 |
| `calculation_script/delete` | DELETE | `..._delete` | background | `id` | 删除脚本 |

## 三、旧组件清单

| 组件 | 功能 | 关键属性/状态 | 使用场景 |
| --- | --- | --- | --- |
| `SctBaseTable` | 工序明细表格，带上移/下移/操作列插槽 | `columns`、`data`、`buttontable`、`up/down/handle` 插槽 | 流程卡工序列表 |
| `SctBaseDialog` + `SctBaseForm` | 新增/编辑流程工序 | `workingsubclass_id`、`code`、`name`、`pin_check` | 工序新增编辑 |
| `TechnologyFlowModel` | 设定值插件容器 | `type`、`code`、`pluginData`、`rowData`、`processArr`、`is_binding_batch` | 依据工序插件类型编辑设定值 |
| `ResultParam` | 查看并绑定流程工序结果参数 | `flow_process_id`、`workingsubclass_id` | 结果参数弹窗 |
| `TemperatureSupp` | 温度补偿工步范围、补偿值维护、Excel 导入、模板下载 | `flow_process_id` | 化成/分容等工序温度补偿 |
| `CalculationScript` | 计算脚本列表、脚本新增/编辑/删除、接口位置配置 | `flow_process_id` | 流程工序计算脚本配置 |
| 日志抽屉 | 展示 `technology_flow_operate_log` | `nyr_date`、`week`、`username`、`action_name`、`process_name` | 查看流程卡操作日志 |

## 四、已迁移/本轮补齐内容

| 内容 | 现状 | 本轮处理 |
| --- | --- | --- |
| 工艺流程主表 CRUD/复制 | V2 已实现 | 保留 |
| 流程卡入口 | V2 已实现 | 保留旧路由 `/production_configuration/technology_model/technology_flow/:flow_id/process` |
| 流程卡工序新增/编辑/删除/排序 | V2 已实现 | 保留并修正按钮显示规则 |
| 设定值 | V2 已实现简化 JSON 版本 | 保留，继续使用 `set_setting` |
| 结果参数 | V2 误用工序单元参数组件，缺少 `flow_process_id` 绑定 | 新增流程卡专用 `result-param.vue`，按 `process_id` 查询与绑定 |
| 温度补偿 | V2 仅提示“暂未接入” | 新增 `temperature-compensation.vue`，恢复查询、工步范围、维护、导入和模板下载 |
| 计算脚本 | V2 按钮隐藏，仅提示“暂未接入” | 新增 `calculation-script.vue` 和 API，恢复脚本 CRUD |
| 接口封装 | V2 缺少多个旧端点 | 补齐 `process-routing-card.js` 和新增 `calculation-script.js` |
| i18n | V2 缺少插件弹窗文本 | 补齐中英文语言项 |

## 五、迁移优先级与依赖

| 优先级 | 内容 | 依赖 | 原因 |
| --- | --- | --- | --- |
| P0 | 流程卡工序列表、排序、新增编辑删除 | `technology_flow_process/all/create/edit/delete/move_*` | 流程卡核心作业入口 |
| P0 | 结果参数按流程工序绑定 | `get_optional_params_details`、`get_all_workingsubclass_params`、`add_optional_params` | 生产下发/报表字段依赖结果参数 |
| P1 | 温度补偿 | `get_step`、`get_temperature_list`、`create_temperature`、`get_temperature_template`、`xlsx` 工具 | 化成/分容等工序需要温度修正 |
| P1 | 计算脚本 | `calculation_script/all/create/edit/delete` | 工序接口前后置计算依赖 |
| P2 | 设定值插件细分 UI | 旧 `TechnologyFlowModel` 各插件 | 当前 V2 为 JSON 维护，后续可恢复各插件可视化表单 |
| P2 | 日志详情“查看数据” | 操作日志明细接口待确认 | 旧页面仅展示入口文本，实际明细未完整实现 |

## 六、风险与后续建议

- 当前 V2 设定值仍是 JSON 编辑器，不是旧系统按插件类型渲染的专用表单；若业务用户依赖可视化配置，应后续迁移 `SelectionPlugin`、`FormationPlugin`、`OcvrPlugin` 等插件。
- 计算脚本编辑器使用文本域替代旧 Ace 包装组件，功能可提交，但代码高亮/格式化体验弱于旧系统。
- 温度补偿 Excel 导入按旧模板中文列名“温度 / 温度补偿值”解析，需要测试真实模板兼容性。
