生产工作台 - 工作站待完成数量联调方案
涉及页面
- 生产工作台(
/mes/workbench)→「选择工作站」弹窗
需求说明
工作站卡片需要展示该工作站的**待完成数量**,口径与工作台左侧「工单列表」(待报工台账)一致:
- 任务状态为进行中:草稿(0)、生产中(1)、部分完成(2)、已停工(9)
- 且仍有待报工量:
排产数量 - 已生产数量 > 0
- 卡片显示的是满足上述条件的**任务条数**,不是数量总和
API
| 方法 |
路径 |
说明 |
| GET |
/mes/pro/task/pending-count-by-workstation |
按工作站统计待报工任务条数 |
请求参数: 无
响应字段:
| 字段 |
类型 |
说明 |
| data |
Map<Long, Long> |
工作站编号 → 待报工任务条数;无待办的工作站不返回 |
响应示例:
{
"code": 0,
"data": {
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1
},
"msg": ""
}
权限: mes:pro-task:query(与待报工台账接口一致,工作台页面已具备该权限)
接口调用时序
- 打开「选择工作站」弹窗
- 并行请求:
GET /mes/md-workstation/page?pageNo=1&pageSize=200 获取工作站列表
GET /mes/pro/task/pending-count-by-workstation 获取各工作站待办数
- 卡片渲染时用
工作站 id 查询映射,未命中显示 0
字段展示规则
| 字段 |
展示位置 |
说明 |
| 待完成数量 |
卡片名称右侧徽标 |
有任务时橙色徽标"待完成 N";N=0 时灰色徽标"待完成 0" |
| 待完成数量 |
徽标 hover 提示 |
"该工作站待报工任务数:N" |
业务规则说明
| 场景 |
规则 |
| 统计口径 |
与「待报工台账」完全一致,避免卡片数量与左侧工单列表对不上 |
| 统计接口失败 |
隐藏全部徽标,不影响工作站列表加载与选择(统计为辅助信息) |
| 工作站暂无待办 |
显示灰色"待完成 0",保持卡片布局一致 |
| 数量含义 |
任务条数;同一工作站多条任务时按条累加,不合并为数量合计 |
注意事项
- 统计接口返回的 Map key 是字符串形式的工作站编号,前端按
String(工作站id) 取值
- 弹窗每次打开都会重新请求统计,报工后重新打开即可看到最新数量
- 该接口返回全量工作站统计,数据量很小(每工作站一行),无需按工作站 id 过滤
- 若后续需要"待完成数量总和"(剩余可报工量合计),可复用同一查询增加
SUM(quantity - produced_quantity) 字段,无需新增接口
后端改动
| 文件 |
改动 |
MesProTaskMapper |
新增 selectPendingFeedbackCountByWorkstation(),按 workstation_id 分组统计 |
MesProTaskService / Impl |
新增 getPendingFeedbackCountByWorkstation(),返回 Map |
MesProTaskController |
新增 GET /pending-count-by-workstation 接口 |
前端改动
| 文件 |
改动 |
src/api/mes/pro/task/index.ts |
新增 getPendingFeedbackCountByWorkstation() |
src/views/mes/workbench/components/WorkstationSelectDialog.vue |
并行加载统计,卡片名称行增加待完成徽标 |