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

待报工台账

背景

排产后需要一个"待报工台账":展示已排产但尚未报工完的任务,核心指标 待报工数量 = 排产数量 − 已报工数量。数据源为生产任务(mes_pro_task),任务级汇总视图。

涉及页面

  • 新增菜单/页面:待报工台账(生产管理下)
  • 复用生产任务列表的关联展示(工单/产品/工序/工位/客户)

API

方法 路径 说明
GET /mes/pro/task/pending-feedback-page 待报工台账分页(进行中且仍有待报工量的任务)

请求参数(Query,复用 MesProTaskPageReqVO)

参数 类型 必填 说明
pageNo Integer 是 页码
pageSize Integer 是 每页条数
code String 否 任务编码(模糊)
name String 否 任务名称(模糊)
workOrderId Long 否 生产工单编号
routeId Long 否 工艺路线编号
processId Long 否 工序编号
workstationId Long 否 工作站编号
createTime LocalDateTime[] 否 创建时间区间

status/statuses 参数在此接口被忽略:后端强制 status=进行中(0),且过滤 待报工数量 > 0。

响应(MesProTaskRespVO,关键字段)

字段 类型 说明
id Long 任务编号
code String 任务编码
name String 任务名称
workOrderCode / workOrderName String 工单编码/名称
itemCode / itemName / itemSpecification String 产品编码/名称/规格
unitMeasureName String 计量单位
processName String 工序名称
workstationCode / workstationName String 工位编码/名称
clientName String 客户名称
quantity BigDecimal 排产数量
producedQuantity BigDecimal 已报工数量(已审批累加)
qualifyQuantity BigDecimal 合格品数量
unqualifyQuantity BigDecimal 不良品数量
pendingQuantity BigDecimal 待报工数量 = 排产 − 已报工
feedbackRate BigDecimal 报工完成率(%) = 已报工 / 排产 × 100
startTime / endTime LocalDateTime 排产开始/结束时间
requestDate LocalDateTime 需求日期
status Integer 任务状态(此处恒为 0=进行中)

响应示例:

{
  "code": 0,
  "data": {
    "list": [
      {
        "id": 101,
        "code": "PT202507130001",
        "name": "电路板【100】个",
        "workOrderCode": "WO-001",
        "itemName": "电路板",
        "processName": "注塑",
        "workstationName": "注塑工作站",
        "quantity": 100.00,
        "producedQuantity": 30.00,
        "qualifyQuantity": 29.00,
        "unqualifyQuantity": 1.00,
        "pendingQuantity": 70.00,
        "feedbackRate": 30.00,
        "status": 0
      }
    ],
    "total": 1
  }
}

前端修改点

1. 表格列建议

<el-table-column label="任务编码" prop="code" />
<el-table-column label="工单编码" prop="workOrderCode" />
<el-table-column label="产品" prop="itemName" />
<el-table-column label="工序" prop="processName" />
<el-table-column label="工位" prop="workstationName" />
<el-table-column label="排产数量" prop="quantity" />
<el-table-column label="已报工" prop="producedQuantity" />
<el-table-column label="合格" prop="qualifyQuantity" />
<el-table-column label="不良" prop="unqualifyQuantity" />
<el-table-column label="待报工数量" prop="pendingQuantity">
  <template #default="scope">
    <el-tag type="warning">{{ scope.row.pendingQuantity }}</el-tag>
  </template>
</el-table-column>
<el-table-column label="完成率" prop="feedbackRate">
  <template #default="scope">
    <el-progress :percentage="Number(scope.row.feedbackRate)" />
  </template>
</el-table-column>
<el-table-column label="需求日期" prop="requestDate" />

2. 查询表单

<el-form :inline="true" :model="queryParams">
  <el-form-item label="任务编码">
    <el-input v-model="queryParams.code" clearable />
  </el-form-item>
  <el-form-item label="工单">
    <el-select v-model="queryParams.workOrderId" clearable><!-- 工单下拉 --></el-select>
  </el-form-item>
  <el-form-item label="工序">
    <el-select v-model="queryParams.processId" clearable><!-- 工序下拉 --></el-select>
  </el-form-item>
  <el-form-item label="工位">
    <el-select v-model="queryParams.workstationId" clearable><!-- 工位下拉 --></el-select>
  </el-form-item>
</el-form>

3. API 调用

// api/mes/pro/task.js
export function getPendingFeedbackPage(params) {
  return request({
    url: '/mes/pro/task/pending-feedback-page',
    method: 'get',
    params
  })
}
// 页面 list 方法
getList() {
  this.loading = true
  getPendingFeedbackPage(this.queryParams).then(res => {
    this.list = res.data.list
    this.total = res.data.total
  }).finally(() => this.loading = false)
}

注意事项

  • 台账只显示 进行中 + 仍有待报工量 的任务:已报满(待报工=0)或已完工/已取消的任务不出现。
  • 想看"所有进行中任务(含已报满未关单)"用 /mes/pro/task/page?status=0。
  • producedQuantity 只含**已审批通过**的报工;草稿/审批中/待检验的报工未回写,台账看不到这部分在途报工量。
  • 该接口复用任务分页权限 mes:pro-task:query,如需独立权限可新增按钮权限码。