# 工序「是否倒冲」字段 ## 背景 报工审批时,倒冲工序按 BOM 自动扣料(BOM 用量 × 报工数量,从线边库 FIFO 扣减);非倒冲工序不自动扣料,物料走手工领料/投料。 新增字段挂在**工艺路线工序**(`mes_pro_route_process`,与「是否关键工序」「是否质检工序」同级),不是工序主表。 ## 涉及页面 - 工艺路线 - 工序列表/表单(维护路线下的工序配置,新增「是否倒冲」开关) - 生产报工 - 报工审批(倒冲工序未配 BOM 时给出错误提示) ## 数据库 ```sql ALTER TABLE mes_pro_route_process ADD COLUMN backflush_flag bit(1) DEFAULT b'1' COMMENT '是否倒冲' AFTER check_flag; ``` - 默认 `b'1'`(倒冲),保留现有「配了 BOM 就扣料」的行为。 - 历史数据回填为倒冲=true。 ## API 工艺路线工序接口(`/mes/pro/route-process`)的 **create / update / get / list** 请求与响应均新增 `backflushFlag` 字段,其余不变。 **新增字段:** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | backflushFlag | Boolean | 否(默认 true)| 是否倒冲。true=报工时按 BOM 自动扣料;false=不自动扣料 | **请求示例(create/update):** ```json { "routeId": 1, "processId": 10, "sort": 1, "keyFlag": false, "checkFlag": false, "backflushFlag": true } ``` **响应示例(get/list):** ```json { "id": 1, "routeId": 1, "processId": 10, "keyFlag": false, "checkFlag": false, "backflushFlag": true } ``` 报工审批接口 `PUT /mes/pro/feedback/approve` 行为变更(无入参变化): | 工序 backflushFlag | BOM 配置 | 审批结果 | |--------------------|----------|----------| | true(默认)| 有 | 正常扣料入库 | | true | 无 | 报错:`当前工序为倒冲工序,但未配置BOM消耗,无法报工`(错误码 1040506013)| | false | 有 | 不扣料(BOM 配置存在但不使用)| | false | 无 | 不扣料 | ## 前端修改点 ### 1. 工艺路线 - 工序表单加「是否倒冲」开关 在「是否关键工序」「是否质检工序」之后加一个 `el-switch`: ```html 开启后报工时按BOM自动扣料;关闭后不自动扣料,走手工领料 ``` ### 2. data 数据 ```js data() { return { form: { // ...原有字段 keyFlag: false, checkFlag: false, backflushFlag: true, // 默认倒冲 }, } } ``` ### 3. 工序列表表格展示(可选) ```html ``` ### 4. 表单重置/回显 ```js resetForm() { this.form = { // ...原有字段 keyFlag: false, checkFlag: false, backflushFlag: true, } } handleEdit(row) { this.form = { ...row } // backflushFlag 随 row 回显 } ``` ## 注意事项 - 字段挂在**工艺路线工序**(每条路线下的工序逐条配置),不是工序主表;与 `keyFlag`/`checkFlag` 同级,前端在路线-工序配置页维护。 - 默认值为「倒冲=true」,与历史行为一致。只有显式关闭的工序才会跳过自动扣料。 - 倒冲工序必须在「工艺路线产品 BOM」(`/mes/pro/route-product-bom`)里配好该路线+工序+产品的 BOM 消耗,否则报工审批会报错。 - 非倒冲工序的物料请通过任务投料(`/mes/pro/task-issue`)或仓库领料单手工处理。