编辑 | blame | 历史 | 原始文档

工序「是否倒冲」字段

背景

报工审批时,倒冲工序按 BOM 自动扣料(BOM 用量 × 报工数量,从线边库 FIFO 扣减);非倒冲工序不自动扣料,物料走手工领料/投料。

新增字段挂在**工艺路线工序**(mes_pro_route_process,与「是否关键工序」「是否质检工序」同级),不是工序主表。

涉及页面

  • 工艺路线 - 工序列表/表单(维护路线下的工序配置,新增「是否倒冲」开关)
  • 生产报工 - 报工审批(倒冲工序未配 BOM 时给出错误提示)

数据库

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):

{
  "routeId": 1,
  "processId": 10,
  "sort": 1,
  "keyFlag": false,
  "checkFlag": false,
  "backflushFlag": true
}

响应示例(get/list):

{
  "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

<el-form-item label="是否关键工序">
  <el-switch v-model="form.keyFlag" />
</el-form-item>
<el-form-item label="是否质检工序">
  <el-switch v-model="form.checkFlag" />
</el-form-item>
<!-- 新增 -->
<el-form-item label="是否倒冲">
  <el-switch v-model="form.backflushFlag" />
  <span style="margin-left: 8px; color: #909399; font-size: 12px;">
    开启后报工时按BOM自动扣料;关闭后不自动扣料,走手工领料
  </span>
</el-form-item>

2. data 数据

data() {
  return {
    form: {
      // ...原有字段
      keyFlag: false,
      checkFlag: false,
      backflushFlag: true, // 默认倒冲
    },
  }
}

3. 工序列表表格展示(可选)

<el-table-column label="是否倒冲" align="center" width="100">
  <template #default="scope">
    <el-tag :type="scope.row.backflushFlag ? 'success' : 'info'">
      {{ scope.row.backflushFlag ? '倒冲' : '不倒冲' }}
    </el-tag>
  </template>
</el-table-column>

4. 表单重置/回显

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)或仓库领料单手工处理。