> **源文件**:仪陇表务管理系统-PRD-04-功能需求说明-11-水表检定记录-V1.0.docx > **导出时间**:2026-05-26 10:34 **仪陇表务管理系统 产品需求说明书 04-功能需求说明 水表检定记录** 文档版本:V1.0 对应 01 版本:仪陇表务管理系统-PRD-01-总体说明-V1.0 模块序号:11 模块名称:水表检定记录 ## 水表检定记录 本模块对接专用检定测量系统,归集全部检定记录并与表务业务检定关联,含 Web 菜单:水表检定记录。与落地检、到期检、争议检、其他检定登记联动。 ### **水表检定记录** #### 功能描述 对接专用检定测量系统获取全部检定记录(含合格与不合格),提供记录关联、检定属性标记(落地检、争议检定、到期检定、其他检定)及作废管理能力,支持与各类业务检定 ID 自动或手工匹配,实现检定记录统一归集与溯源。 #### 菜单权限 表务水表管理中心;表务总公司管理人员;表务系统管理员 #### 数据权限 表务水表管理中心:可见、可操作全公司范围内水表检定记录数据;可手工关联、作废记录。 表务总公司管理人员:可见全公司范围内水表检定记录数据(只读)。 表务系统管理员:可见、可操作全公司范围内水表检定记录数据。 表务分公司管理人员、表务分公司库管员、表务营业办/供水站职员:不可见本菜单。 #### 核心逻辑 检定记录由测量系统同步获取,本菜单不负责检定操作本身。 系统自动按水表编号、时间窗口等规则尝试与业务检定单匹配;未匹配记录可手工关联。 检定属性包括:落地检、争议检定、到期检定、其他检定;标记后写入检定台账。 作废仅标记记录状态,须保留历史追溯;已关联业务的作废须二次确认并记录原因。 #### 功能需求 ##### **一级页面:水表检定记录** #整体布局 -- 上下结构:查询条件区 + 数据列表区;顶部「同步检定记录」按钮 #查询条件 -- 检定记录 ID:文本,支持精确 / 模糊搜索 -- 水表编号:文本,支持模糊搜索 -- 检定属性:下拉单选(全部、落地检、到期检定、争议检定、其他检定、未关联) -- 检定结果:下拉单选(全部、合格、不合格) -- 记录状态:下拉单选(全部、有效、已作废) -- 检定日期:日期范围选择 -- 功能按钮:查询、重置 #数据列表 -- 表格标题:水表检定记录列表 -- 表格字段:检定记录 ID、水表编号、检定日期、检定结果、检定属性、关联业务单号、关联业务类型、记录状态、同步时间 -- 行内操作:详情;关联业务(未关联时显示);作废(有效记录且授权角色可见) #交互说明 -- 点击「同步检定记录」触发从桌面检定程序 / 测量系统拉取最新记录 -- 系统自动尝试与落地检、到期检、争议检、其他检定登记业务 ID 匹配关联 -- 点击行或「详情」打开「弹窗:水表检定记录详情」 ##### **弹窗:水表检定记录详情** #弹窗类型 -- 抽屉弹窗(右侧滑出);遮罩:有 #整体布局 -- 宽度约 960px;Tab:检定数据 / 业务关联 #信息展示 -- Tab·检定数据:检定记录 ID、水表编号、检定日期、检定结果、检定人员、测量系统来源、检定数据明细(只读)、记录状态、同步时间 -- Tab·业务关联:关联业务类型、关联业务单号、关联水表业务状态摘要;未关联时提示可手工关联 #底部按钮 -- 关闭 -- 关联业务:未关联且有效记录时显示,打开「弹窗:关联检定业务」 -- 作废:有效记录且授权角色可见,二次确认后标记作废 #交互说明 -- 作废后不影响已完成的业务流转历史,但不再参与新业务自动匹配 ##### **弹窗:关联检定业务** #弹窗类型 -- 居中模态弹窗;遮罩:有 #信息展示 -- 检定记录 ID:只读 -- 水表编号:只读 -- 关联业务类型:必填,下拉单选(落地检、到期检定、争议检定、其他检定) -- 关联业务单号:必填,文本或选择,须与所选业务类型匹配且水表编号一致 -- 检定属性:只读,随业务类型自动带出 #底部按钮 -- 保存:校验后建立关联并回写业务侧检定记录 ID -- 取消:关闭弹窗 --- ## 详细设计(研发) > 以下内容合并自 `design/功能设计/`,与 PRD 需求章节配套使用。数据模型详见 `design/数据库设计-V1.0.md`。 ### 仪陇表务-功能设计-11-水表检定记录-V1.0 # 仪陇表务 — 功能设计 11 水表检定记录 V1.0 > 需求来源:`../demand/功能需求说明/仪陇表务管理系统-PRD-04-功能需求说明-11-*.md` > 数据模型:见 [数据库设计-V1.0.md](../数据库设计-V1.0.md) > 接口约定:见本文 **§接口设计(研发)**、[仪陇表务-公共接口说明-V1.0.md](./仪陇表务-公共接口说明-V1.0.md)、[00-总体框架设计-V1.0.md](../../design/00-总体框架设计-V1.0.md) ## 1. 模块概述 | 项 | 说明 | |----|------| | 模块序号 | 11 | | 模块名称 | 水表检定记录 | | 后端包(建议) | `com.tofly.wm.manage.verify.record` | | 业务模式 | 外部同步 | | 工单 | 无 | ## 2. 功能范围 - 记录同步 - 属性标记 - 作废 ## 3. 数据模型 ### 3.1 涉及表 - `wssmet_verifyrecord_w` ### 3.2 实体约定 - 所有实体 `extends BaseEntity`;逻辑删除 `Boolean deleted` ↔ `deleted`。 - 字典 `DictEntry` + `@DictDirectory(MeterConstant.*)` ↔ 库列 `VARCHAR2`;组织/用户 `OrganizationEntry`/`UserNameEntry` ↔ 库列 `NUMBER(19)`;附件 `FileEntryList`/`FileEntry` 用 `@TableField(exist = false)`,**无库列**。 - 申请类主表含 `process_instance_id / work_order_code / approve_status`;工单反查 `(无本地表,见 workflow).TABLE_NAME` + `TABLE_ID`。 ## 4. 业务流程 测量系统推送→自动/手工关联业务单。 ## 5. 核心业务规则 - RECORD_STATUS 有效/作废 ## 6. 接口设计(概要) | 方法 | 路径(示例前缀) | 说明 | |------|------------------|------| | — | `/verifyRecord/page` | 见 PRD 界面 | | — | `/verifyRecord/void` | 见 PRD 界面 | - 标准 CRUD 另含:`GET /page`、`GET /list`、`POST /update`、`DELETE /{id}`、`DELETE /deleteByIds`。 - 返回体:须为带**具体**泛型的 `ResultResponse<...>`,见下文 §接口设计(研发)各接口出参(**禁止** `T`/`Vo` 占位)。 ## 7. 权限与数据范围 遵循 PRD-02:菜单角色 + 组织数据权限 + 工单岗位权限;具体角色见 PRD-04 各功能「菜单权限」「数据权限」章节。 ## 8. 上下游依赖 | 上游 | 下游 | |------|------| | 见 PRD-03 流程说明 | 见 PRD-01 总体主流程 | --- *本设计仅依据 `../demand/` PRD 与 [数据库设计-V1.0.md](../数据库设计-V1.0.md);实现时遵循 `java6/java-ylsw-bw.md` 与 `database-design.mdc`(`wssmet_*` 表名),**不参照**存量业务表与接口。* --- ## 接口设计(研发) > 统一前缀:`/api/wm/manage/verify/record`;各接口 **出参** 须为具体泛型(见下文,**禁止** `T`/`Vo` 占位);公共约定见 [仪陇表务-公共接口说明-V1.0.md](./仪陇表务-公共接口说明-V1.0.md)。 #### 检定记录-分页查询 | 项 | 内容 | |----|------| | 接口说明 | 分页查询检定记录 | | 请求地址 | `GET /api/wm/manage/verify/record/verifyRecord/page` | | 请求类型 | GET | **入参(Query(PageQuery))** | 字段 | 类型 | 说明 | |------|------|------| | meterCode | String | 水表表号 | | verifyDate | Date | 检定日期 | | verifyResultCode | String(枚举 code) | 检定 | | sourceSystem | String | 来源 | | verifyData | String | 检定数据 | | verifyAttrCode | String(字典 code) | 检定属性编号 | | refTableName | String | 关联表 | | refBizCode | String | 关联业务编号 | | recordStatusCode | String(枚举 code) | 记录状态 | | voidReason | String | 作废原因 | | syncTime | DateTime | 同步时间 | **出参** - ResultResponse> > 外层包装 ResultResponse 含 code、message、data,见 [公共接口说明](./仪陇表务-公共接口说明-V1.0.md) §1.3。 **data(PageInfo)字段** | 字段 | 类型 | 说明 | |------|------|------| | pageNum | Integer | 当前页码 | | pageSize | Integer | 每页条数 | | total | Long | 总记录数 | | pages | Integer | 总页数 | | list | List | 当前页数据列表 | **`VerifyRecordVo` 字段** | 字段 | 类型 | 说明 | |------|------|------| | id | String | 主键 | | recordId | Long | 记录 | | meterCode | String | 水表表号 | | verifyDate | Date | 检定日期 | | verifyResultCode | String(枚举 code) | 检定结果 | | verifyUserId | Long | 检定用户ID,关联tf_user表的id字段 | | sourceSystem | String | 来源 | | verifyData | String | 检定数据 | | verifyAttrCode | String(字典 code) | 检定属性 | | refTableName | String | 关联表 | | refTableId | Long | ref_tableID,关联(待补充)表的id字段 | | refBizCode | String | 关联业务 | | recordStatusCode | String(枚举 code) | 记录状态 | | voidReason | String | 作废原因 | | syncTime | DateTime | 同步时间 | #### 检定记录-列表查询 | 项 | 内容 | |----|------| | 接口说明 | 列表查询检定记录 | | 请求地址 | `GET /api/wm/manage/verify/record/verifyRecord/list` | | 请求类型 | GET | **入参(Query)** | 字段 | 类型 | 说明 | |------|------|------| | meterCode | String | 水表表号 | | verifyDate | Date | 检定日期 | | verifyResultCode | String(枚举 code) | 检定 | | sourceSystem | String | 来源 | | verifyData | String | 检定数据 | | verifyAttrCode | String(字典 code) | 检定属性编号 | | refTableName | String | 关联表 | | refBizCode | String | 关联业务编号 | | recordStatusCode | String(枚举 code) | 记录状态 | | voidReason | String | 作废原因 | | syncTime | DateTime | 同步时间 | **出参** - ResultResponse> > 外层包装 ResultResponse 含 code、message、data,见 [公共接口说明](./仪陇表务-公共接口说明-V1.0.md) §1.3。 **data(List)元素字段** **`VerifyRecordVo` 字段** | 字段 | 类型 | 说明 | |------|------|------| | id | String | 主键 | | recordId | Long | 记录 | | meterCode | String | 水表表号 | | verifyDate | Date | 检定日期 | | verifyResultCode | String(枚举 code) | 检定结果 | | verifyUserId | Long | 检定用户ID,关联tf_user表的id字段 | | sourceSystem | String | 来源 | | verifyData | String | 检定数据 | | verifyAttrCode | String(字典 code) | 检定属性 | | refTableName | String | 关联表 | | refTableId | Long | ref_tableID,关联(待补充)表的id字段 | | refBizCode | String | 关联业务 | | recordStatusCode | String(枚举 code) | 记录状态 | | voidReason | String | 作废原因 | | syncTime | DateTime | 同步时间 | #### 检定记录-详情 | 项 | 内容 | |----|------| | 接口说明 | 查询检定记录详情 | | 请求地址 | `GET /api/wm/manage/verify/record/verifyRecord/{id}` | | 请求类型 | GET | **入参(Path: id)** | 字段 | 类型 | 说明 | |------|------|------| | id | String | 主键 | **出参** - ResultResponse(含明细 list 若适用) > 外层包装 ResultResponse 含 code、message、data,见 [公共接口说明](./仪陇表务-公共接口说明-V1.0.md) §1.3。 **data(VerifyRecordVo)字段** **`VerifyRecordVo` 字段** | 字段 | 类型 | 说明 | |------|------|------| | id | String | 主键 | | recordId | Long | 记录 | | meterCode | String | 水表表号 | | verifyDate | Date | 检定日期 | | verifyResultCode | String(枚举 code) | 检定结果 | | verifyUserId | Long | 检定用户ID,关联tf_user表的id字段 | | sourceSystem | String | 来源 | | verifyData | String | 检定数据 | | verifyAttrCode | String(字典 code) | 检定属性 | | refTableName | String | 关联表 | | refTableId | Long | ref_tableID,关联(待补充)表的id字段 | | refBizCode | String | 关联业务 | | recordStatusCode | String(枚举 code) | 记录状态 | | voidReason | String | 作废原因 | | syncTime | DateTime | 同步时间 | #### 检定记录-新增 | 项 | 内容 | |----|------| | 接口说明 | 新增检定记录 | | 请求地址 | `POST /api/wm/manage/verify/record/verifyRecord/` | | 请求类型 | POST | **入参(Body: Dto)** | 字段 | 类型 | 说明 | |------|------|------| | recordId | Long | 记录 | | meterCode | String | 水表表号 | | verifyDate | Date | 检定日期 | | verifyResultCode | String(枚举 code) | 检定 | | verifyUserId | Long | 检定用户ID,关联tf_user表的id字段 | | sourceSystem | String | 来源 | | verifyData | String | 检定数据 | | verifyAttrCode | String(字典 code) | 检定属性编号 | | refTableName | String | 关联表 | | refTableId | Long | ref_tableID,关联(待补充)表的id字段 | | refBizCode | String | 关联业务编号 | | recordStatusCode | String(枚举 code) | 记录状态 | | voidReason | String | 作废原因 | | syncTime | DateTime | 同步时间 | **出参** - ResultResponse **data 字段** | 字段 | 类型 | 说明 | |------|------|------| | id | Long | 新增记录主键 | #### 检定记录-修改 | 项 | 内容 | |----|------| | 接口说明 | 修改检定记录 | | 请求地址 | `POST /api/wm/manage/verify/record/verifyRecord/update` | | 请求类型 | POST | **入参(Body: Dto(含 id))** | 字段 | 类型 | 说明 | |------|------|------| | recordId | Long | 记录 | | meterCode | String | 水表表号 | | verifyDate | Date | 检定日期 | | verifyResultCode | String(枚举 code) | 检定 | | verifyUserId | Long | 检定用户ID,关联tf_user表的id字段 | | sourceSystem | String | 来源 | | verifyData | String | 检定数据 | | verifyAttrCode | String(字典 code) | 检定属性编号 | | refTableName | String | 关联表 | | refTableId | Long | ref_tableID,关联(待补充)表的id字段 | | refBizCode | String | 关联业务编号 | | recordStatusCode | String(枚举 code) | 记录状态 | | voidReason | String | 作废原因 | | syncTime | DateTime | 同步时间 | **出参** - ResultResponse **data** 无业务字段(null)。 #### 检定记录-删除 | 项 | 内容 | |----|------| | 接口说明 | 逻辑删除检定记录(支持批量) | | 请求地址 | `DELETE /api/wm/manage/verify/record/verifyRecord/deleteByIds?ids=1,2` | | 请求类型 | DELETE | **入参(Query: ids)** | 字段 | 类型 | 说明 | |------|------|------| | ids | String | 主键,逗号分隔 | **出参** - ResultResponse **data** 无业务字段(null)。 #### 手工关联业务 | 项 | 内容 | |----|------| | 接口说明 | 将测量系统记录关联业务单 | | 请求地址 | `POST /api/wm/manage/verify/record/verifyRecord/link` | | 请求类型 | POST | **入参(Body)** | 字段 | 类型 | 说明 | |------|------|------| | recordId | Long | 记录ID | | bizType | String | 业务类型 | | bizId | Long | 业务ID | **出参** - ResultResponse **data** 无业务字段(null)。 #### 作废记录 | 项 | 内容 | |----|------| | 接口说明 | 作废检定记录 | | 请求地址 | `POST /api/wm/manage/verify/record/verifyRecord/void` | | 请求类型 | POST | **入参(Body)** | 字段 | 类型 | 说明 | |------|------|------| | recordId | Long | 记录ID | **出参** - ResultResponse **data** 无业务字段(null)。