# MES 计量器具与计量检测记录 - 前端联调方案 ## 涉及页面 | 页面 | 菜单路径 | 路由路径 | component_name | |------|----------|----------|----------------| | 计量器具 | 设备管理 -> 计量器具 | `mes/dv/metering/index` | MesDvMetering | | 计量检测记录 | 设备管理 -> 计量检测记录 | `mes/dv/meteringcheck/index` | MesDvMeteringCheck | > 两个页面为平级菜单。检测记录页可通过「计量器具」下拉筛选,仅查看某台器具的检测历史。 ## 业务流程与数据带入 1. 计量器具列表 -> 新增/编辑表单:录入器具编码、名称、类别、校准周期、使用部门、责任人等。 2. 计量检测记录 -> 新增/编辑表单:选择「计量器具」(从 `/mes/dv/metering/simple-list` 带入 `meteringId`、`code`、`name`)。 3. 检测记录保存后,后端自动计算 `nextCheckDate` 并**回写**到计量器具的 `lastCheckDate`、`nextCheckDate`: - `nextCheckDate` 传空时 = `checkDate + 校准周期(月)`(自动计算); - `nextCheckDate` 传值时 = 以传入值为准(手动指定)。 4. 计量器具列表展示 `expireStatus` 到期状态标记,由后端按 `nextCheckDate` 与全局配置的提醒天数计算。 ## API ### 计量器具 | 方法 | 路径 | 说明 | 权限 | |------|------|------|------| | POST | /mes/dv/metering/create | 创建计量器具 | mes:dv-metering:create | | PUT | /mes/dv/metering/update | 更新计量器具 | mes:dv-metering:update | | DELETE | /mes/dv/metering/delete?id= | 删除计量器具(有关联检测记录时拒绝) | mes:dv-metering:delete | | GET | /mes/dv/metering/get?id= | 获得计量器具详情 | mes:dv-metering:query | | GET | /mes/dv/metering/page | 计量器具分页 | mes:dv-metering:query | | GET | /mes/dv/metering/export-excel | 导出 Excel | mes:dv-metering:export | | GET | /mes/dv/metering/simple-list | 精简列表(下拉选项) | mes:dv-metering:query | **分页筛选参数(page 接口):** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | code | String | 否 | 器具编码模糊 | | name | String | 否 | 器具名称模糊 | | brand | String | 否 | 品牌/生产厂家模糊 | | category | Integer | 否 | 器具类别(字典) | | deptId | Long | 否 | 使用部门 | | chargeUserId | Long | 否 | 责任人 | | status | Integer | 否 | 状态(字典) | | expireStatus | Integer | 否 | 到期状态:1 已过期 / 2 即将到期 / 3 正常 | ### 计量检测记录 | 方法 | 路径 | 说明 | 权限 | |------|------|------|------| | POST | /mes/dv/metering-check/create | 创建检测记录 | mes:dv-metering-check:create | | PUT | /mes/dv/metering-check/update | 更新检测记录 | mes:dv-metering-check:update | | DELETE | /mes/dv/metering-check/delete?id= | 删除检测记录 | mes:dv-metering-check:delete | | GET | /mes/dv/metering-check/get?id= | 获得检测记录详情 | mes:dv-metering-check:query | | GET | /mes/dv/metering-check/page | 检测记录分页 | mes:dv-metering-check:query | | GET | /mes/dv/metering-check/export-excel | 导出 Excel | mes:dv-metering-check:export | **分页筛选参数(page 接口):** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | meteringId | Long | 否 | 计量器具(从器具列表带入) | | checkCode | String | 否 | 检测编号模糊 | | checkResult | Integer | 否 | 检测结论(字典) | | checkDate | LocalDate[] | 否 | 检测日期区间 | ### 响应字段新增说明 计量器具列表/详情响应额外返回: | 字段 | 类型 | 说明 | |------|------|------| | deptName | String | 使用部门名称 | | chargeUserNickname | String | 责任人昵称 | | expireStatus | Integer | 到期状态:1 已过期 / 2 即将到期 / 3 正常 | | expireDays | Long | 距到期天数(正数未到、负数已过期) | 计量检测记录列表/详情响应额外返回: | 字段 | 类型 | 说明 | |------|------|------| | meteringCode | String | 计量器具编码 | | meteringName | String | 计量器具名称 | | checkUserNickname | String | 检测人昵称 | ## 字段展示规则 | 字段 | 展示位置 | 说明 | |------|----------|------| | expireStatus | 计量器具列表 | 1 已过期=危险(danger);2 即将到期=警告(warning);3 正常=成功(success) | | status | 计量器具列表、表单 | 字典 mes_dv_metering_status(在用=success/停用=info/报废=danger) | | category | 计量器具列表、表单 | 字典 mes_dv_metering_category | | nextCheckDate | 两个页面 | 计量器具展示为「下次检测日期」列;检测记录保存时回写 | | checkResult | 检测记录列表、表单 | 字典 mes_dv_metering_check_result(合格=success/不合格=danger) | | meteringCode/meteringName | 检测记录列表 | 从器具带入展示 | | deptName/chargeUserNickname | 计量器具列表 | 部门、责任人名称 | ## 业务规则说明 | 场景 | 规则 | |------|------| | 检测记录新增 | 未填 nextCheckDate 时按 `checkDate + 校准周期` 自动计算并保存 | | 检测记录更新 | 重新计算 nextCheckDate,并回写器具 | | 检测记录删除 | 器具按剩余「最新一条记录」整体重算回写(无记录则 lastCheckDate/nextCheckDate 置空) | | 计量器具删除 | 已关联检测记录时拒绝删除,提示「计量器具已关联检测记录,无法删除」 | | 到期提醒 | 到期前 N 天(全局配置 `mes.dv-metering.remind-days`,默认 30)发送站内信给责任人;同一器具同一到期日 60 天内只提醒一次 | | 编码/编号唯一 | 器具 code、检测 checkCode 均唯一,重复时后端报错 | ## 注意事项 - expireStatus 由后端计算并返回,前端只需按三态渲染 tag 颜色,无需自行计算天数。 - 删除器具前需确认无关联检测记录;删除检测记录后器具的到期日会随之变化,前端应刷新器具列表。 - 检测记录页依赖计量器具数据,应先存在器具再登记检测记录。 - 提醒天数可在「基础设施 -> 配置管理」中修改 `mes.dv-metering.remind-days`,改后立即生效。 - 三个新字典可在「系统管理 -> 字典管理」中维护:mes_dv_metering_category、mes_dv_metering_status、mes_dv_metering_check_result。