报工审批时,倒冲工序按 BOM 自动扣料(BOM 用量 × 报工数量,从线边库 FIFO 扣减);非倒冲工序不自动扣料,物料走手工领料/投料。
新增字段挂在**工艺路线工序**(mes_pro_route_process,与「是否关键工序」「是否质检工序」同级),不是工序主表。
ALTER TABLE mes_pro_route_process
ADD COLUMN backflush_flag bit(1) DEFAULT b'1' COMMENT '是否倒冲' AFTER check_flag;
b'1'(倒冲),保留现有「配了 BOM 就扣料」的行为。工艺路线工序接口(/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 | 无 | 不扣料 |
在「是否关键工序」「是否质检工序」之后加一个 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>
data() {
return {
form: {
// ...原有字段
keyFlag: false,
checkFlag: false,
backflushFlag: true, // 默认倒冲
},
}
}
<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>
resetForm() {
this.form = {
// ...原有字段
keyFlag: false,
checkFlag: false,
backflushFlag: true,
}
}
handleEdit(row) {
this.form = { ...row }
// backflushFlag 随 row 回显
}
keyFlag/checkFlag 同级,前端在路线-工序配置页维护。/mes/pro/route-product-bom)里配好该路线+工序+产品的 BOM 消耗,否则报工审批会报错。/mes/pro/task-issue)或仓库领料单手工处理。