编辑 | 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,如需独立权限可新增按钮权限码。