> **源文件**:仪陇表务管理系统-PRD-04-功能需求说明-05-落地检管理-V1.0.docx > **导出时间**:2026-05-26 10:34 **仪陇表务管理系统 产品需求说明书 04-功能需求说明 落地检管理** 文档版本:V1.0 对应 01 版本:仪陇表务管理系统-PRD-01-总体说明-V1.0 模块序号:05 模块名称:落地检管理 ## 落地检管理 本模块覆盖新水表到货后的首次强制性检定、不合格返厂及合格水表铅封绑定与总仓入库,对应《PRD-01》落地检管理能力。含 Web 菜单:落地检登记;App 菜单:总仓入库(App)。与采购管理到货登记、配置管理周期设置、水表检定记录联动。 ### **落地检登记** #### 功能描述 根据采购计划到货的待落地检水表,按照检定标准进行检测,判定是否合格,记录检定数据(质量、体积、误差等),检定结果数据保留在电脑程序中,能够进行查看与导出。不合格水表标记不合格,总仓管理人员可线上登记返厂相关信息,完善物流公司、物流单号等资料。原不合格水表完成返厂流程后,由供货厂商补发全新合格水表,新水表重新依次执行到货登记、落地检定、铅封绑定及入库全流程。 #### 菜单权限 表务水表管理中心;表务水表采购;表务总公司管理人员;表务系统管理员 #### 数据权限 表务水表管理中心、表务总公司管理人员、表务系统管理员:可见、可操作全公司范围内落地检业务数据。 表务水表采购:可见全公司范围内落地检及到货关联数据(只读,不可办理检定)。 #### 核心逻辑 待检数据来源:采购计划到货登记完成后,水表状态为待落地检。 落地检完成后:检定合格则状态为待铅封号绑定并进入总仓入库 App 待办;检定不合格则状态为首检不合格,可办理返厂登记。 检定记录写入检定台账,并与水表生命周期、水表基础档案联动更新。 返厂登记完成后状态为返厂,留存返厂业务记录供溯源。 #### 功能需求 ##### **一级页面:落地检登记** #整体布局 -- 上下结构:查询条件区 + 待检/已检水表列表;顶部「批量检定」「返厂登记」入口(按行状态显示) #查询条件 -- 水表编号:文本,支持模糊搜索 -- 采购计划单号 / 到货单号:文本,支持模糊搜索 -- 检定状态:下拉(全部、待落地检、检定合格、检定不合格、已返厂) -- 到货日期:日期范围 -- 功能按钮:查询、重置 #数据列表 -- 表格标题:待落地检 / 落地检记录列表 -- 表格字段:水表编号、出厂编码、采购计划单号、到货日期、水表口径、水表类型、检定状态、检定日期、检定人 -- 行内操作:检定登记(待落地检);查看详情;返厂登记(检定不合格且未返厂) #交互说明 -- 点击「检定登记」打开「弹窗:落地检登记」 -- 点击行或「查看详情」打开「弹窗:落地检详情」 -- 列表默认展示待落地检水表,支持切换「全部记录」 ##### **弹窗:落地检登记** #弹窗类型 -- 居中弹窗;遮罩:有;主页面:不可操作 #整体布局 -- 宽度约 900px;水表基础信息只读区 + 检定数据录入区 #信息展示 -- 水表编号、出厂编码、水表口径、水表类型、到货日期:只读 -- 检定结果:必填,单选(合格、不合格) -- 检定日期:只读,默认当前日期 -- 检定人:只读,默认当前登录用户 -- 质量、体积、误差等检定指标:按检定标准录入(数值 / 文本) -- 检定说明:选填,多行文本 -- 检定记录附件:选填,支持上传(对接桌面检定程序导出数据时可关联) #底部按钮 -- 保存:校验后保存检定结果 -- 取消:关闭弹窗 #交互说明 -- 保存合格:水表状态更新为待铅封号绑定,推送至「总仓入库(App)」待办列表,同步检定台账 -- 保存不合格:水表状态更新为首检不合格,行内显示「返厂登记」 ##### **弹窗:落地检详情** #弹窗类型 -- 抽屉弹窗(右侧);只读 #信息展示 -- 水表基础信息、检定结果、检定指标明细、返厂信息(如有)、关联到货信息 #底部按钮 -- 关闭 ##### **弹窗:返厂登记** #弹窗类型 -- 居中弹窗;遮罩:有 #信息展示 -- 水表编号、检定结果:只读 -- 返厂原因:必填,下拉或文本 -- 物流公司:必填,文本 -- 物流单号:必填,文本 -- 返厂日期:只读,默认当前日期 -- 备注:选填 #底部按钮 -- 保存;取消 #交互说明 -- 保存后水表状态更新为返厂;厂商补发新表后须重新执行到货登记、落地检、铅封绑定及入库全流程 ### **总仓入库(App)** #### 功能描述 系统自动筛选状态为「待铅封号绑定」的待入库水表,按检定批次汇总推送至总公司库管员手机 App。库管员现场完成铅封号实物挂载,通过扫码完成线上绑定与总仓入库登记。 #### 菜单权限 表务水表管理中心;表务系统管理员 #### 数据权限 表务水表管理中心:可见、可操作全公司范围内待绑定及入库作业数据。 表务系统管理员:可见、可操作全公司范围内相关数据。 #### 核心逻辑 前置条件:水表已完成落地检且检定结果为合格。 扫码绑定完成后更新铅封号、水表状态为总公司在库(在库属性:全新),生成总仓新表入库出入库台账及生命周期总仓入库阶段记录。 入库完毕的水表进入可领用状态,供领取管理模块办理领用。 #### 功能需求 ##### **一级页面:总仓入库(App)** #整体布局 -- 上下结构:顶部筛选 + 待绑定水表卡片列表;底部固定「扫码绑定」按钮 #查询条件 -- 检定批次 / 到货单号:选填筛选 -- 水表口径、水表类型:下拉筛选 #信息展示 -- 卡片字段:水表编号、出厂编码、水表口径、水表类型、到货日期、检定合格日期 -- 列表仅展示状态为「待铅封号绑定」的水表 #底部按钮 -- 扫码绑定:调起摄像头扫描铅封条码 / 水表条码,进入绑定确认页 #交互说明 -- 绑定成功:更新铅封号,水表状态为总公司在库、在库属性为全新;生成总仓新表入库台账及生命周期记录 -- 支持离线暂存,联网后自动同步 ##### **二级页面:铅封绑定确认(App)** #页面标题 -- 标题文案:铅封绑定确认;返回:返回待绑定列表 #信息展示 -- 水表编号、出厂编码:只读(扫码带入) -- 铅封号:必填,扫码或手工录入,须校验唯一性 -- 绑定照片:选填,现场拍照留痕 #底部按钮 -- 确认绑定;取消 #交互说明 -- 确认后刷新列表,该水表从待绑定列表移除 --- ## 详细设计(研发) > 以下内容合并自 `design/功能设计/`,与 PRD 需求章节配套使用。数据模型详见 `design/数据库设计-V1.0.md`。 ### 仪陇表务-功能设计-04-落地检管理-V1.0 # 仪陇表务 — 功能设计 04 落地检管理 V1.0 > 需求来源:`../demand/功能需求说明/仪陇表务管理系统-PRD-04-功能需求说明-04-*.md` > 数据模型:见 [数据库设计-V1.0.md](../数据库设计-V1.0.md) > 接口约定:见本文 **§接口设计(研发)**、[仪陇表务-公共接口说明-V1.0.md](./仪陇表务-公共接口说明-V1.0.md)、[00-总体框架设计-V1.0.md](../../design/00-总体框架设计-V1.0.md) ## 1. 模块概述 | 项 | 说明 | |----|------| | 模块序号 | 04 | | 模块名称 | 落地检管理 | | 后端包(建议) | `com.tofly.wm.manage.verify` | | 业务模式 | 登记直办 | | 工单 | 无 | ## 2. 功能范围 - 落地检登记 - 返厂登记 - App 铅封绑定入库 ## 3. 数据模型 ### 3.1 涉及表 - `wssmet_landverify_w` - `wssmet_retfactory_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. 核心业务规则 - 不合格禁止入库 - 关联 VERIFY_RECORD ## 6. 接口设计(概要) | 方法 | 路径(示例前缀) | 说明 | |------|------------------|------| | — | `/landingVerify/` | 见 PRD 界面 | | — | `/returnFactory/` | 见 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_*` 表名),**不参照**存量业务表与接口。* ### 仪陇表务-功能设计-05-落地检管理-详版-V1.0 ## 1. 模块概述 | 项 | 说明 | |----|------| | 模块序号 | 05 | | 模块名称 | 落地检管理-详版 | | 后端包(建议) | `com.tofly.wm.manage.verify` | | 业务模式 | 同04+扩展字段 | | 工单 | 无 | ## 2. 功能范围 - 检定指标录入 - 检定附件 - 绑定照片 ## 3. 数据模型 ### 3.1 涉及表 - `wssmet_landverify_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. 业务流程 在04基础上增加质量/体积/误差及附件留痕。 ## 5. 核心业务规则 - 详版字段写入 LANDING_VERIFY - 附件/照片为 `FileEntryList`,`@TableField(exist = false)`,无库列 ## 6. 接口设计(概要) | 方法 | 路径(示例前缀) | 说明 | |------|------------------|------| | — | — | 同04 | - 标准 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/landing`;各接口 **出参** 须为具体泛型(见下文,**禁止** `T`/`Vo` 占位);公共约定见 [仪陇表务-公共接口说明-V1.0.md](./仪陇表务-公共接口说明-V1.0.md)。 #### 落地检登记-分页查询 | 项 | 内容 | |----|------| | 接口说明 | 分页查询落地检登记 | | 请求地址 | `GET /api/wm/manage/verify/landing/landingVerify/page` | | 请求类型 | GET | **入参(Query(PageQuery))** | 字段 | 类型 | 说明 | |------|------|------| | meterCode | String | 水表表号 | | factoryCode | String | 出厂编码 | | verifyResultCode | String(枚举 code) | 检定 | | verifyDate | Date | 检定日期 | | qualityValue | String | 质量指标 | | volumeValue | String | 体积指标 | | errorValue | String | 误差指标 | | verifyDesc | String | 检定 | | remark | String | 备注 | **出参** - ResultResponse> > 外层包装 ResultResponse 含 code、message、data,见 [公共接口说明](./仪陇表务-公共接口说明-V1.0.md) §1.3。 **data(PageInfo)字段** | 字段 | 类型 | 说明 | |------|------|------| | pageNum | Integer | 当前页码 | | pageSize | Integer | 每页条数 | | total | Long | 总记录数 | | pages | Integer | 总页数 | | list | List | 当前页数据列表 | **`LandingVerifyVo` 字段** | 字段 | 类型 | 说明 | |------|------|------| | id | String | 主键 | | meterId | Long | 水表ID,关联wssmet_meter_w表的id字段 | | meterCode | String | 水表表号 | | factoryCode | String | 出厂编码 | | planId | Long | 采购计划ID,关联wssmet_purplan_w表的id字段 | | verifyResultCode | String(枚举 code) | 检定结果 | | verifyDate | Date | 检定日期 | | verifyUserId | Long | 检定用户ID,关联tf_user表的id字段 | | verifyRecordId | Long | 检定记录编号,关联wssmet_verifyrecord_w表的record_id字段 | | qualityValue | String | 质量指标 | | volumeValue | String | 体积指标 | | errorValue | String | 误差指标 | | verifyDesc | String | 检定结果 | | remark | String | 备注 | #### 落地检登记-列表查询 | 项 | 内容 | |----|------| | 接口说明 | 列表查询落地检登记 | | 请求地址 | `GET /api/wm/manage/verify/landing/landingVerify/list` | | 请求类型 | GET | **入参(Query)** | 字段 | 类型 | 说明 | |------|------|------| | meterCode | String | 水表表号 | | factoryCode | String | 出厂编码 | | verifyResultCode | String(枚举 code) | 检定 | | verifyDate | Date | 检定日期 | | qualityValue | String | 质量指标 | | volumeValue | String | 体积指标 | | errorValue | String | 误差指标 | | verifyDesc | String | 检定 | | remark | String | 备注 | **出参** - ResultResponse> > 外层包装 ResultResponse 含 code、message、data,见 [公共接口说明](./仪陇表务-公共接口说明-V1.0.md) §1.3。 **data(List)元素字段** **`LandingVerifyVo` 字段** | 字段 | 类型 | 说明 | |------|------|------| | id | String | 主键 | | meterId | Long | 水表ID,关联wssmet_meter_w表的id字段 | | meterCode | String | 水表表号 | | factoryCode | String | 出厂编码 | | planId | Long | 采购计划ID,关联wssmet_purplan_w表的id字段 | | verifyResultCode | String(枚举 code) | 检定结果 | | verifyDate | Date | 检定日期 | | verifyUserId | Long | 检定用户ID,关联tf_user表的id字段 | | verifyRecordId | Long | 检定记录编号,关联wssmet_verifyrecord_w表的record_id字段 | | qualityValue | String | 质量指标 | | volumeValue | String | 体积指标 | | errorValue | String | 误差指标 | | verifyDesc | String | 检定结果 | | remark | String | 备注 | #### 落地检登记-详情 | 项 | 内容 | |----|------| | 接口说明 | 查询落地检登记详情 | | 请求地址 | `GET /api/wm/manage/verify/landing/landingVerify/{id}` | | 请求类型 | GET | **入参(Path: id)** | 字段 | 类型 | 说明 | |------|------|------| | id | String | 主键 | **出参** - ResultResponse(含明细 list 若适用) > 外层包装 ResultResponse 含 code、message、data,见 [公共接口说明](./仪陇表务-公共接口说明-V1.0.md) §1.3。 **data(LandingVerifyVo)字段** **`LandingVerifyVo` 字段** | 字段 | 类型 | 说明 | |------|------|------| | id | String | 主键 | | meterId | Long | 水表ID,关联wssmet_meter_w表的id字段 | | meterCode | String | 水表表号 | | factoryCode | String | 出厂编码 | | planId | Long | 采购计划ID,关联wssmet_purplan_w表的id字段 | | verifyResultCode | String(枚举 code) | 检定结果 | | verifyDate | Date | 检定日期 | | verifyUserId | Long | 检定用户ID,关联tf_user表的id字段 | | verifyRecordId | Long | 检定记录编号,关联wssmet_verifyrecord_w表的record_id字段 | | qualityValue | String | 质量指标 | | volumeValue | String | 体积指标 | | errorValue | String | 误差指标 | | verifyDesc | String | 检定结果 | | remark | String | 备注 | #### 落地检登记-新增 | 项 | 内容 | |----|------| | 接口说明 | 新增落地检登记 | | 请求地址 | `POST /api/wm/manage/verify/landing/landingVerify/` | | 请求类型 | POST | **入参(Body: Dto)** | 字段 | 类型 | 说明 | |------|------|------| | meterId | Long | 水表ID,关联wssmet_meter_w表的id字段 | | meterCode | String | 水表表号 | | factoryCode | String | 出厂编码 | | planId | Long | 采购计划ID,关联wssmet_purplan_w表的id字段 | | verifyResultCode | String(枚举 code) | 检定 | | verifyDate | Date | 检定日期 | | verifyUserId | Long | 检定用户ID,关联tf_user表的id字段 | | verifyRecordId | Long | 检定记录编号,关联wssmet_verifyrecord_w表的record_id字段 | | qualityValue | String | 质量指标 | | volumeValue | String | 体积指标 | | errorValue | String | 误差指标 | | verifyDesc | String | 检定 | | remark | String | 备注 | **出参** - ResultResponse **data 字段** | 字段 | 类型 | 说明 | |------|------|------| | id | Long | 新增记录主键 | #### 落地检登记-修改 | 项 | 内容 | |----|------| | 接口说明 | 修改落地检登记 | | 请求地址 | `POST /api/wm/manage/verify/landing/landingVerify/update` | | 请求类型 | POST | **入参(Body: Dto(含 id))** | 字段 | 类型 | 说明 | |------|------|------| | meterId | Long | 水表ID,关联wssmet_meter_w表的id字段 | | meterCode | String | 水表表号 | | factoryCode | String | 出厂编码 | | planId | Long | 采购计划ID,关联wssmet_purplan_w表的id字段 | | verifyResultCode | String(枚举 code) | 检定 | | verifyDate | Date | 检定日期 | | verifyUserId | Long | 检定用户ID,关联tf_user表的id字段 | | verifyRecordId | Long | 检定记录编号,关联wssmet_verifyrecord_w表的record_id字段 | | qualityValue | String | 质量指标 | | volumeValue | String | 体积指标 | | errorValue | String | 误差指标 | | verifyDesc | String | 检定 | | remark | String | 备注 | **出参** - ResultResponse **data** 无业务字段(null)。 #### 落地检登记-删除 | 项 | 内容 | |----|------| | 接口说明 | 逻辑删除落地检登记(支持批量) | | 请求地址 | `DELETE /api/wm/manage/verify/landing/landingVerify/deleteByIds?ids=1,2` | | 请求类型 | DELETE | **入参(Query: ids)** | 字段 | 类型 | 说明 | |------|------|------| | ids | String | 主键,逗号分隔 | **出参** - ResultResponse **data** 无业务字段(null)。 #### 不合格返厂登记 | 项 | 内容 | |----|------| | 接口说明 | 首检不合格水表返厂 | | 请求地址 | `POST /api/wm/manage/verify/landing/returnFactory/` | | 请求类型 | POST | **入参(Body: Dto)** | 字段 | 类型 | 说明 | |------|------|------| | meterId | Long | 水表ID,关联wssmet_meter_w表的id字段 | | returnReasonCode | String(字典 code) | 退回原因编号 | | logisticsCompany | String | 物流公司 | | logisticsNo | String | 物流 | | returnDate | Date | 退回日期 | | remark | String | 备注 | **出参** - ResultResponse **data** 无业务字段(null)。 #### App铅封绑定入库 | 项 | 内容 | |----|------| | 接口说明 | 总仓 App 铅封扫码绑定并入库 | | 请求地址 | `POST /api/wm/manage/verify/landing/landingVerify/app/sealBind` | | 请求类型 | POST | **入参(Body: SealBindDto)** | 字段 | 类型 | 说明 | |------|------|------| | meterCode | String | 水表表号 | | sealNo | String | 铅封号 | **出参** - ResultResponse **data** 无业务字段(null)。