# 生产任务 - 选工作站自动计算生产时长(前端联调方案) ## 涉及页面 | 页面 | 路由路径 | 说明 | |------|----------|------| | 生产任务表单 | `/mes/pro-task` (新增/编辑弹窗) | 选择工作站后自动调用接口计算生产时长 | --- ## API ### 新增接口:计算生产时长 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/mes/pro/task/calculate-duration` | 根据工作站和数量计算生产时长 | **请求参数:** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | workstationId | Long | 是 | 工作站编号 | | quantity | BigDecimal | 是 | 排产数量 | **响应示例:** ```json { "code": 0, "data": { "duration": 3 }, "msg": "" } ``` | 字段 | 类型 | 说明 | |------|------|------| | duration | Integer | 生产时长(小时),无绑定设备时返回 0 | --- ## 前端修改点 ### 1. 触发时机 在新增/编辑生产任务的表单中,当用户**选择工作站**或**修改排产数量**后,自动调用计算接口。 ### 2. 字段回填 接口返回的 `duration` 值自动填入表单的"生产时长"字段,无需用户手动计算。 ### 3. 边界情况 | 场景 | 表现 | |------|------| | 未选工作站 | 不调用接口 | | 未填数量 | 不调用接口 | | 工作站未绑定设备 | 返回 `duration=0`,前端可提示"该工作站未绑定设备" | | 设备未配置生产效率 | 返回 `duration=0`,前端可提示"绑定设备未配置生产效率" | --- ## 计算逻辑说明 | 步骤 | 说明 | |------|------| | 1 | 查询工作站绑定的所有设备 | | 2 | 总效率 = Σ(每台设备的 `productionEfficiency` × `conveyorBelt`) | | 3 | 传送履带为 0 或空时默认取 1 | | 4 | 生产时长(小时)= 向上取整(排产数量 / 总效率) | --- ## 注意事项 - 调用接口前需确保 `workstationId` 和 `quantity` 均有值,避免无效请求 - 接口返回 0 时,建议给出友好提示,而非静默 - 用户仍可手动修改计算后的生产时长 - 该接口仅用于前端辅助计算,不影响后端创建/更新任务的业务逻辑