# 生产工作台 - 工作站待完成数量联调方案 ## 涉及页面 - 生产工作台(`/mes/workbench`)→「选择工作站」弹窗 ## 需求说明 工作站卡片需要展示该工作站的**待完成数量**,口径与工作台左侧「工单列表」(待报工台账)一致: - 任务状态为进行中:草稿(0)、生产中(1)、部分完成(2)、已停工(9) - 且仍有待报工量:`排产数量 - 已生产数量 > 0` - 卡片显示的是满足上述条件的**任务条数**,不是数量总和 ## API | 方法 | 路径 | 说明 | |------|------|------| | GET | `/mes/pro/task/pending-count-by-workstation` | 按工作站统计待报工任务条数 | **请求参数:** 无 **响应字段:** | 字段 | 类型 | 说明 | |------|------|------| | data | Map | 工作站编号 → 待报工任务条数;无待办的工作站不返回 | **响应示例:** ```json { "code": 0, "data": { "9": 1, "10": 1, "11": 1, "12": 1, "13": 1, "14": 1, "15": 1 }, "msg": "" } ``` **权限:** `mes:pro-task:query`(与待报工台账接口一致,工作台页面已具备该权限) ## 接口调用时序 1. 打开「选择工作站」弹窗 2. 并行请求: - `GET /mes/md-workstation/page?pageNo=1&pageSize=200` 获取工作站列表 - `GET /mes/pro/task/pending-count-by-workstation` 获取各工作站待办数 3. 卡片渲染时用 `工作站 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` | 并行加载统计,卡片名称行增加待完成徽标 |